
發布
注冊
/
登錄CATIA二次開發;CATIA插件的案例
【CATIA二次開發】CATIA中如何調用編譯好的exe執行文件,一鍵關閉當前所有文件--
大家好,CATIA軟件沒有一鍵關閉當前所有文件這個功能,但是有的時候我們打開的當前文件太多(如下圖一下打開了幾十個文件),想要一次將其關閉掉,又不想從“任務管理器”直接終止CATIA軟件的運行,那么這個時候我們就要想辦法通過二次開發來實現這一目標。
代碼非常簡單:
Sub CATMain()
On Error Resume Next
For i = 1 To 1000
CATIA.ActiveDocument.Close
Next
End sub
可以在ide中直接新建一個模塊,將以上代碼復制粘貼便可以直接使用。
如何在CATIA中調用編譯好的EXE文件呢?
我們也可以將代碼通過vb軟件編譯成“exe可執行文件”(編譯好的文件放置在如下圖路徑),然后通過catvba進行調用。通過vb編譯的時候,我們最好給其一個窗體置為最前端的設置,這個在之前的圖文教程中講過了,可以翻看歷史圖文!
在vba中通過shell函數調用exe文件的代碼如下:
Sub CATMain()
On Error Resume Next
A = Shell("H:\test" & "\CatCloseALL.exe", vbNormalFocus)
End Sub
注意,這里Shell(pathname[,windowstyle])函數的第二參數windowstyle我們用的是vbNormalFocus類型,原因是我們為宏創建一個圖標,點擊圖標后,可以直接將窗體至于catia繪圖區域最前端。注意一下這一點,關于如何為catvba宏定義圖標和快捷鍵,之前的圖文課程里也介紹了,大家搜索往期圖文教程即可。
展開 【CATIA二次開發】批量更改孔顏色 ¥100
本文由微信公眾號:CATIA那點事兒 原創
開門見山:兩個宏命令,分別是根據已有的色板文件,更改普通孔和螺紋孔的顏色。
色板其實就是個如下格式的Excel文件。不同孔徑對應的顏色可以自己定義,可增加更多行。
以前作者寫過類似的程序,但只是通過遍歷Body的Shapes判斷Shape是否為Hole,來更改實體特征的顏色,這就要求被更改的孔必須得是帶參的孔特征。
本次的程序可以識別消參實體的孔特征。對于同為圓柱特征的孔(1),銷(2),直邊倒出來的圓角(3),程序均可以正確識別,區分出哪個是孔特征。
但更復雜的模型以及算法可靠度需進一步驗證。
以下為實例演示的動圖:
兩個實體,一個帶參,一個非參。注意右邊的實體由左邊復制得到,去參之后右下角的兩個孔螺紋特征消失,且孔徑不再為整數。
點擊運行”普通孔顏色“命令,孔特征被正確識別(倒角及銷子的面沒有被上色),并且顏色根據色板匹配更改。注意由于螺紋孔的孔徑非整數,因此色板中無顏色匹配,未上色。
點擊運行”螺紋孔顏色“命令,左側帶參的螺紋孔被正確識別并上色,右側消參后螺紋特征丟失,未上色。
更多CATIA內容還可以關注樓主的微信公眾號哦
此程序僅為Demo,如您想學習研究,或進行更改優化(如增加遍歷使其可以處理裝配下所有子零件),可下載下面的付費內容,包含源代碼和色板模板文件。
展開 catia V5二次開發技術探討
介紹了CATIAActiveXAutomation組件對象模型原理與結構以及其在catia二次開發中的作用;然后比較了catia二次開發技術的兩次方式:CAAC++技術和CAAAUTOMATION技術,兩種方式各有優劣,并分別在兩種開發環境(VisualC++和VisualBasic)中通過利用Automation接口實現引用類型庫程序以及與catia的通信程序,并給出了部分代碼;最后給出一個端拾器的裝配設計效果。
catia V5二次開發技術探討.PDF
【二次開發】CATIA批量投三視圖功能 ¥100
相對于AutoCAD這種繪制二維圖的傳統方式,CATIA這種先設計三維,再通過投影生成工程圖的方式在設計上可謂是個不小的顛覆。畢竟,三維比二維直觀很多。
然而,當某個總成有幾十個,甚至幾百個零件需要投影時,機械的重復點擊操作,讓很多做CAD的工程師叫苦連天。
誠然,這種大量重復有規律的操作,對于小編這樣一個二次開發狂熱者來說,確實想通過代碼來完成。但投圖過程中,存在著很多不確定的因素:零件大小不同需要選擇不同的圖幅,視圖擺放位置問題等等……
現在,我們來做一些完美的假設:
零件的大小剛好放在A3的圖紙上
我們只投三視圖加軸測圖
主視圖以圖紙左上角為基準,視圖間的距離為40
Product中,每一個子總成對應一個Drawing文件,而子總成下面的零件則對應Drawing中的一個Sheet
那么,我們就可以通過程序實現Product下各子總成的批量投圖,就像開頭提到的那樣。
OK,現在,如果你想要試一下這個二次開發的功能,下載下面的附件即可(只有投影三視圖的功能,只能選A3的圖紙,不包含軸測圖,不能生成圖框)。
MF.zip
如果你想在此基礎上修改代碼,如使用自己公司或OEM的圖框,選擇其他圖幅的圖紙等,可下載下面的付費內容。(付費內容新增了程序使用方法及代碼的說明文檔!)
展開 
CATIA二次開發,批量生成截面線軟件分享
image_process=/format,webp" data-initial-src="https://img.jishulink.com/202603/attachment/cec2d7f1bd324fd2b9d1e29017c86921.png">
</figure>
</figure><p>通過CATIA逐個獲取截面線的操作是很繁瑣的,故筆者開發了一個可批量生成截面線的軟件工具,以高效解決此類問題。</p><p>以上部示意圖為例:</p><p>首先,需創建車門區域的軸測圖、局部視圖及圖紙圖框,簡單方便,如下所示。</p><div contenteditable="false" width="100%">
<jsk id="C_Playb0f19df316cc71f180534531958d0102" videoid="b0f19df316cc71f180534531958d0102" duration="1分9秒">
<img src="https://img.jishulink.com/static/web/youku-case.png" data-mobile-src="https://img.jishulink.com/static/web/youku-case.png?image_process=/format,webp" data-pc-src="https://img.jishulink.com/static/web/youku-case.png?
展開 CATIA管道非標設計EKL二次開發模塊功能介紹
3:可方便接入新增非標二次開發產生的知識工程模板。
6:BOM清單屬性統計高度定制化。
BOM清單中管道關鍵屬性統計的定制化:根據客戶定制需求的自動捕獲重要參數,最終輸出到清單列表。
文章來源:catia汽車
『分享』CATIA二次開發VB幫助文件
對用VB對CATIA進行二次開發有用
V5Automation.part01.exe
V5Automation.part02.rar
V5Automation.part03.rar
V5Automation.part04.rar
V5Automation.part05.rar
V5Automation.part06.rar
V5Automation.part07.rar
V5Automation.part08.rar
V5Automation.part09.rar
V5Automation.part10.rar
CATIA VBA二次開發入門(7)-Visual Studio與Python環境編程
CATIA二次開發過程中有一個好用IDE可以讓編程更加便捷,上一篇講了如何使用VB6.0進行設計,但VB6.0已經是比較陳舊的IDE,無論是界面和功能都落后很多。
【二次開發】CATIA二維圖一鍵標注投影點信息 ¥10
CATIA二維圖中由三維投過來的點,通常都要對其做一些標注,比如名稱、坐標等等…Drawing中自帶的尺寸標注命令中,有一個命令是可以標注坐標的。
但要注意的是: 當視圖與3D有鏈接是,該命令標出來的是三維坐標;當失去鏈接時,標注的是當前視圖坐標系下的二維坐標。并且,其標注的坐標文字格式,也無法隨意更改。
而當我們需要為數十個甚至上百個點標注如下格式的信息時,情況就變得很棘手了。暫且不說手動一個一個去敲這些文字有多繁瑣,單是區分三維和二維點的對應關系就夠受的了!
上述功能可以通過VBA二次開發編寫程序自動實現,運行效果見下面動圖。圖片里只添加了點名稱信息,其他如三坐標什么的,獲取一下填進去,道理是一樣的。
如果,你想體驗上面動圖的演示功能,可以下載下面的免費vbe附件。
Project Point Likn To 3D_Free.rar
如果,你有興趣想研究或根據自己需求修改代碼,請下載下面的付費開源腳本。
展開 CATIA VBA二次開發入門(6)-VB6.0與exe文件
這次給小伙伴帶來的是CATIA VBA二次開發的簡單入門教程,旨在讓沒有接觸過CATIA二次開發的人能夠快速了解并上手二次開發。
教程編輯不易,希望大家多多點贊收藏,支持作者,支持原創
。
這一篇章我們來講一下如何使用外部的VB6.0進行二次開發,并生成可執行程序。
使用外部IDE進行二次開發需先連接CATIA二次開發接口,即前面提到過的CATIA.application。
這次依然使用前面的陣列圓柱體案例程序進行講解。
導入與導出窗體文件
CATIA中雖然集成了VB軟件,但其生成exe文件功能卻被刪除了。因此我們需要借助外部的VB6.0軟件來生成可執行文件。VB6.0需要單獨安裝。
展開 采用Python語言對CATIA 進行二次開發(含源代碼) ¥50
眾所周知CATIA的二次開發一般基于VB或者CAA。VB比較容易上手,開發效率比較高,不過貌似VB現在用的人不多。
CAA ( Component App lication Architecture ) 是CATIA的一整套C + +函數庫,該函數庫在CATIA 運行時加載。用戶通過安裝RADE (Rapid App lication DevelopmentEnvironment)模塊,可以實現在VC + + 編程環境下編制程序,與CATIA進行通信,從而對CATIA進行二次開發,有點難度哈。
那么,作為目前十分火爆的Python語言能否對CATIA進行二次開發呢,答案是肯定的。
以下演示的案例是利用Python語言在CATIA中繪制了一個機翼外形。
如果視頻播放不了,請點擊以下超鏈接:https://mp.weixin.qq.com/s/7d62KejifcX3Qzs2dXysPA
程序運行后的效果圖如下:
【關于軟件和庫】
首先電腦中得安裝有CATIA
下載安裝Python,推薦Python3.5及以后版本,免費下載
安裝pywin32及numpy兩個python庫,安裝方式 pip install numpy。如果不會安裝python的函數庫,可以直接下載一個anaconda3,直接把python3及常用的庫都集成在里面了,很方便。
Anaconda下載地址:Anaconda下載地址
繪制機翼當然還得準備一個翼型數據,翼型數據可以從profili軟件中導出,然后將數據存到文本文件里,以供程序讀取
仿寫VB,CATIA的錄制宏可以得到每一步操作的VB代碼,將VB代碼改寫成Python格式即可。
展開 
淘寶上300+買來的CATIA二次開發視頻教程分享
淘寶上300+買來的CATIA二次開發視頻教程分享
https://pan.baidu.com/s/1iroT9lV8w51rbty6XNB-kQ
【CATIA二次開發】CATVBA中四個延時方法Timer函數,Sleep函數,TimeGettime函數,Adddate函數
我們在做CATIA 二次開發的時候,有的情況下需要暫停程序運行,讓CATIA飛一會。
那么,CATIA VBA 獲取延時較為可行的四個方法:
1、一般延時 Timer函數(計時單位為秒級,1代表1s)
一個應用接口需要限制運行速度,需要在循環中加個延時函數,這個延時不需要多么精確,要求有個幾秒延時,網上用的比較多的就是用Timer函數編寫,也是在VB聯機手冊中所推薦的Timer是VBA自帶的函數,用起來比較方便,一般程序如下:
Sub delay(T As Single)
Dim time1 As Single
time1 = Timer
Do While Timer - time1 < T
DoEvents '轉讓控制權,以便讓操作系統處理其它的事件
Loop
Debug.Print ("運行結束,總計耗時為:" & Timer - time1 & "s")
End Sub
Sub calculate1_time()
delay (1.5)
End Sub
2、精確延時--sleep函數(計時單位為毫秒級,1000代表1s)
精確延時可以用sleep函數,sleep函數是Windows API函數,使用前必須聲明,然后使用:
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
延時-Sleep函數,主要功能就是使當前線程等待?段時間,?法就是“Sleep 毫秒數”,這?的毫秒數可以設置成任意整型數據。如Sleep 1000,表?延時1秒(1000毫秒)。
展開 【CATIA二次開發】CATVBA中四個延時方法Timer函數,Sleep函數,TimeGettime函數,Adddate函數
我們在做CATIA 二次開發的時候,有的情況下需要暫停程序運行,讓CATIA飛一會。
那么,CATIA VBA 獲取延時較為可行的四個方法:
1、一般延時 Timer函數(計時單位為秒級,1代表1s)
一個應用接口需要限制運行速度,需要在循環中加個延時函數,這個延時不需要多么精確,要求有個幾秒延時,網上用的比較多的就是用Timer函數編寫,也是在VB聯機手冊中所推薦的Timer是VBA自帶的函數,用起來比較方便,一般程序如下:
Sub delay(T As Single)
Dim time1 As Single
time1 = Timer
Do While Timer - time1 < T
DoEvents '轉讓控制權,以便讓操作系統處理其它的事件
Loop
Debug.Print ("運行結束,總計耗時為:" & Timer - time1 & "s")
End Sub
Sub calculate1_time()
delay (1.5)
End Sub
2、精確延時--sleep函數(計時單位為毫秒級,1000代表1s)
精確延時可以用sleep函數,sleep函數是Windows API函數,使用前必須聲明,然后使用:
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
延時-Sleep函數,主要功能就是使當前線程等待?段時間,?法就是“Sleep 毫秒數”,這?的毫秒數可以設置成任意整型數據。如Sleep 1000,表?延時1秒(1000毫秒)。Sleep與DoEvents之間是有點區別的。
展開 HyperMesh二次開發技術—插件界面開發
3.啟動名稱為"subWindow"插件
案例源碼進群:756716776下載