Win7x64配置達索CAA開發環境時需要注意哪些地方?


本回答包括以下內容:

Automation(以下簡稱自動化)與CAA的區別

用C#創建Automation根對象的代碼

Automation文檔的使用方法

==========以下是正文========

謝邀,慚愧,沒有什麼特別好的經驗可以分享

個人安裝的CAA環境是R21一套,配DSLS激活

姑且算是裝過十幾次吧,每次失敗都從重裝系統開始

建議用虛擬機,因為可以保存快照,裝到最後不行可以回到之前

這也實在算不上什麼好建議,所以我說一點題外話吧,也是關於CATIA二次開發的,但是不是CAA是COM自動化介面。

相比CAA開發,COM自動化介面的好處在於:

1、不需要購買安裝CAA

2、因為是基於COM組件調用進行開發,所以可以用任何(高)版本VS進行開發,有更好的智能感知和代碼提示

3、CAA開發中涉及大量複雜的設計模式,而且必須用C++開發,編譯環境也必須是達索提供的編譯環境,而自動化開發可以基於C++,也可以使用CLR語言如C#、http://VB.NET,開發難度大大降低,可以非常非常順手的寫圖形化程序,可以在同一個工程中同時用C#、VB、C++/CLI開發,這非常酷

4、開發前準備只需要安裝CATIA和IDE如VS2015、而且介面一定程度上能夠實現跨版本。

相比CAA開發,COM自動化介面的不足在於:

1、自動化只能實現CATIA本身各個模塊能夠做到的工作,比如你有一萬個法蘭需要批量打孔,甚至根據不同大小的法蘭和受力打不通數量的孔,自動化介面都可以勝任。但如果你想要在一個曲面上求空間上從一個點出發經過曲面反射到另一個點的所有反射點,因為這樣的工作CATIA本身做不到,自動化就難以勝任了。

2、自動化開發還有個缺點是:不能像CAA一般,開發嵌入CATIA的可交互的程序(感謝題主補充)。合理的使用自動化提供的select方法可以實現簡單的選擇或選擇集交互,更複雜的拖動乃至子視圖樹狀圖什麼的開發只能靠CAA

所以自動化介面能夠勝任80%的自動化工作,其他的只能靠CAA。

貼一段C#的代碼,這段代碼用於獲得CATIA對象,是每個自動化程序最初的一步,之後都是按部就班的創建和操作CATIA的子類就可以了。

INFITF.Application CATIA;
try
{
CATIA=(INFITF.Application)Marshal.GetActiveObject("CATIA.Application");
}
catch
{
Type oType = System.Type.GetTypeFromProgID("CATIA.Application");
CATIA = (INFITF.Application)Activator.CreateInstance(oType);
CATIA.Visible = true;
}

上述代碼獲得到的CATIA.Application對象就是下面的Application對象了

如果你安裝了CAA的話,以上自動化文檔的內容同樣可以在任何版本的CAADoc目錄中找到,如果你沒有安裝CAA,可以下載我提供的文檔原件壓縮包

達索原來是有在線文檔的,但兩年前關閉了不給訪問了,或者鏈接改了,反正我沒有再找到,這是很可惜的

關於Doc,可以看到是分為三個目錄

不過我比較常用的是第二個和第三個,因為夠用了

Generated文檔

generated文件夾下的是傳統的interface document,裡面樸素的列出了所有的類、公有方法原型、類繼承關係,是我見過的API手冊裡面組織的比較清晰的。裡面有兩個文件夾,interface是給自動化開發用的,refman是給CAA開發用的,兩者文檔結構相似,內容不同,這裡只表interface。

打開Docgeneratedinterfaces\_indexmain.htm,首頁顯示的是Framework list,每個Framework對應一個COM組件,就是說如果你的程序調用了Partinterface,你就要引用Partinterface對應的COM組件(一般和framework名字很像),然後在代碼中impore(VB)或using(C#) PARTITF(它的命名空間,具體什麼名字在vs中引用後可以通過雙擊引用查看到)

第二列是類繼承關係

第三列是比較好用的各類索引,需要什麼方法直接進master之後find之類的,小技巧很多,要靠自己摸索

online文檔

達索原來的線上文檔就是這個online文檔,基本一樣的,相比上面的,這個更像是Guiding、Tutorial之類的東西,講解怎麼使用一些介面,展示一些例子等等。

打開/Doc/online/CAACenV5Title.htm

第一個是CAA開發的,第二個是自動化開發的,下面的那些對象目錄都是在這個文檔裡面找到的。比如零件設計(PartDesign)-&>

Shape Automation Objects-&>

就可以看到

暫時就這些吧,感謝閱讀


謝邀。

今天上午正好配置了V6 2016x的CAA開發環境,比較順利。CATIA V6 2017x及CAA2安裝(2) - 知乎專欄

V5的開發環境主要就是工具欄出不來之類的問題。@伊林依舊 自己的回答已經很好了

補充一句,安裝所有DS的東西前最好把防火牆通通都關掉。

--------2017-03-07補充 關於JRE版本的注意事項------

CAA百科全書的搜索功能需要JRE(Java Runtime Environment)

V5的百科全書聽說要用JRE6u37(u=update) 而且最好不要更新 而且要用32位的版本 哪怕是64位的系統也要用32位的版本 更新會導致不能使用

所以請注意 JRE版本請盡量不要安裝最新版的

而且我在V6安裝的時候也發現 8u121(2017.2的一個版本,比較新)會導致不能安裝V6 2017,8u31反而正常

--------2017-03-08補充 關於Visual Studio2008設置------

今天我又重裝了V5的開發環境。為什麼我要說「又」……

1.外接程序VMDebugger未能載入導致異常

由於電腦上安裝了VMWare(3DEXPERIENCE需要的,你懂的),打開VS2008會彈「Visual Studio 2008 運行時 提示「外接程序VMDebugger未能載入導致異常」

解決辦法如下:開始--運行--regedit回車--(註冊表編輯器)

32位機修改:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudio10.0AddInsVMDebugger.Connect下的LoadBehavior項改為0
64位機修改:
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftVisualStudio10.0AddInsVMDebugger.Connect下的LoadBehavior項改為0

2.VAssistX設置

CAA的代碼提示不好,幾乎都是用VAssistX的。(聽說只能用大番茄(帶X的),小番茄還不行)

這裡需要一個頭文件目錄,直接進CAA安裝目錄,搜索出所有*.h的頭文件,然後複製到一個新文件夾里,重啟Visual Studio,就可以提示了。

3.虛擬機License問題

我的運行環境是先裝了V6,然後裝V5。V6的license管理在虛擬機上,V5安裝完發現RADE特別特別慢,Visual Studio打開後Open Workspace要卡好幾分鐘。MKMK編譯Helloworld要4分鐘。經過分析和測試是Lincense的問題,可能是DSLS先去虛擬機上搜索證書,結果虛擬機沒開啟導致緩慢,超時三四分鐘之後才在本地查找證書。打開虛擬機就可以了。

4.Visual Studio2008顯示行號

工具--選項--文本編輯器--C/C++

5.高亮同名變數(VAssistX)

-------------------------2017-03-10 補充快捷鍵的設置-------------------------

自動插入頭文件

快速打開mkmk進行編譯

快速打開Create/Update Runtime View

設置方法在:工具--選項--(左側,環境--鍵盤),然後在顯示命令包含里輸入mkmk,就可以修改一些關於mkmk的快捷鍵了。

插入頭文件是Mkmk90.Connect.InsertInclude

編譯是Mkmk90.Connect.mkmk

Create/Update Runtime View是Mkmk90.Connect.MkCreateRuntimeView

選中命令後在按快捷鍵一欄中按快捷鍵,然後點擊分配,確定即可。鍵位可以根據自己喜好來。


自己答一個,拋磚引玉

安裝完RADE後,VS界面不顯示RADE插件的解決辦法:

  1. 運行&>regedit&>HKEY_LOCAL_MACHINE&>SOFTWARE&>Wow6432Node&>Wow6432Node 導出
  2. 修改文本 將Wow6432NodeWow6432Node 替換為Wow6432Node
  3. 導入修改後的註冊表文件

此外安裝VS的過程中一定要勾選VCx64編譯器選項,默認是不安裝的。


推薦閱讀:

TAG:二次開發 | CATIA |