CAX玩家論壇  

返回   CAX玩家論壇 > 技術討論區 > Catia > Catia 教學區
註冊 論壇輔助說明 會員名單 行事曆事件 標記討論區已讀 統計

回覆
 
主題工具
舊 2010-08-06   #1
cad
老玩家
 
註冊日期: 2007-09-01
住址: 台中
文章: 250
聲望力: 14
聲望: 60 cad 即將成為的新星
微笑 如何利用python進行catia二次開發

首先先跟大家介紹一下何為python??
是一種物件導向、直譯式電腦程式語言,也是一種功能強大而完善的通用型語言,已經具有十多年的發展歷史,成熟且穩定。
這種語言具有非常簡捷而清晰的語法特點,適合完成各種高階任務,幾乎可以在所有的作業系統中執行。
目前,基於這種語言的相關技術正在飛速的發展,使用者數量急劇擴大,相關的資源非常多。 (參考資料: http://zh.wikipedia.org/zh-tw/Python )
不過最重要的是他是一套Free software 也就是免費的語言程式



上圖為pythom的GUI操作畫面
線上體驗 Python (Google App Engine 版) 下載地址: http://www.python.org/download/
至於語法的使用方式請自行上網找,在這邊不介紹了.




連結Catia的方式很簡單,只要以下兩行指令,但必需注意CATIA程式需在啟動狀況下進行連結
程式碼:
import win32com.client
CATIA=win32com.client.Dispatch("CATIA.Application")

Q:
連接之後可以做甚麼?
A:
連接Catia後就可以使用Catia的程式庫,並且利用CATIA的程式庫控制CATIA,或是從CATIA中獲取CATIA的相關資訊




以下簡單範例

CATIA.Caption 這是抓取Catia視窗的名稱
可以看到視窗藍色的字,代表直譯器回應CATIA V5是CATIA程式的視窗名稱



在這邊我們可以把Catia的視窗名稱作一下改變

上面視窗是把Catia視窗名稱進行更名,並且給於Hello Catia的名稱


接下來我們去看Catia的視窗會發現名稱已改變了




相關CATIA的程式庫語法請參考V5Automation.chm檔案
只要有安裝CATIA
這個檔案在..\Dassault Systemes\B20\intel_a\code\bin\ 的目錄下可以找到
其中B20代表我使用的版次,其它版次,請自行對應

以上進行簡單的介紹python如何與CATIA連結進行二次開發的方法 , 希望有興趣的人會喜歡~~
cad 目前離線   回覆時引用此篇文章
舊 2010-08-06   #2
Near.Lin
研發經理
 
Near.Lin 的頭像
 
註冊日期: 2009-06-21
住址: 台中
文章: 2371
聲望力: 15
聲望: 105 Near.Lin 即將成為的新星Near.Lin 即將成為的新星
預設

Catia 在市面上是乎沒看到有人在寫它的3RD !

AutoCad 有 (lisp,Vlisp,Vb,C++)

UG 有 (java,Vb,C++,Grip)

SW 漸漸有人用C++,Vb 寫作

國外好像都有人用C++寫Cad軟體的 3RD

國內少數有人在UG寫專案,對岸則很多這方面的人才.
__________________
.......................................
若人提起透三天 . 偏界邪魔不敢望
Near.Lin 目前離線   回覆時引用此篇文章
舊 2010-08-16   #3
inzachi
工程師
 
inzachi 的頭像
 
註冊日期: 2007-08-16
住址: 台中
文章: 59
聲望力: 0
聲望: 10 inzachi 正向着好的方向發展
預設

引用:
作者: Near.Lin 檢視文章
Catia 在市面上是乎沒看到有人在寫它的3RD !
AutoCad 有 (lisp,Vlisp,Vb,C++)
UG 有 (java,Vb,C++,Grip)
SW 漸漸有人用C++,Vb 寫作
國外好像都有人用C++寫Cad軟體的 3RD
國內少數有人在UG寫專案,對岸則很多這方面的人才.
python 歐州客戶超喜歡用的...
用到連hypermesh 都能拿來自動切一些網格,
或者是拿來做abaqus 批次處理,撈值,判別INP 是否符合規格...etc
應用別看到整個都傻眼~~

沒想到python 還能拿來drive CATIA ...找個機會研究一下XD
__________________
經歷是一筆財富,無論痛苦還是快樂。
inzachi 目前離線   回覆時引用此篇文章
舊 2010-08-25   #4
cad
老玩家
 
註冊日期: 2007-09-01
住址: 台中
文章: 250
聲望力: 14
聲望: 60 cad 即將成為的新星
預設

測試小程式
提供給大家測試
程式內容是在 座標0,0 與座標100,100 的虛擬方塊中
畫100條線,分別起點為座標0,0 ;終點為亂數產生(但不會超出虛擬方塊)


執行結果如下圖....

執行時
1.請先打該開catia,開啟一個PART檔
2.並且新增一個幾何組
3.工作定義在幾何組上
4.打該把下列程式碼存程副檔名為py的檔案,在直接點存好的檔案去執行~

程式碼:
import win32com.client
from random import *

CATIA=win32com.client.Dispatch("CATIA.Application")


def line(p1,p2):
 a1=CATIA.ActiveDocument.part.HybridShapeFactory.Addnewpointcoord(p1[0],p1[1],p1[2])
 a2=CATIA.ActiveDocument.part.HybridShapeFactory.Addnewpointcoord(p2[0],p2[1],p2[2])
 return CATIA.ActiveDocument.Part.HybridShapeFactory.AddNewLinePtPt(a1,a2)
     

s=1
while s <= 100:
    p1=[0,0,0]
    p2=[randint(1,100),randint(1,100),randint(1,100)]
    obname=CATIA.ActiveDocument.part.Inworkobject.name
    CATIA.ActiveDocument.Part.HybridBodies.item(obname).AppendHybridShape(line(p1,p2))
    CATIA.ActiveDocument.Part.update()
    s = s + 1

CATIA.Activewindow.activeviewer.PutBackgroundColor((0,0,1))
cad 目前離線   回覆時引用此篇文章
舊 2017-06-15   #5
Alston Chen
助理工程師
 
註冊日期: 2017-06-14
文章: 7
聲望力: 0
聲望: 11 Alston Chen 正向着好的方向發展
f

哦哦哦,我知道文章有點久遠,但我還是想嘗試問問

我照這方法下去做,並沒有出現什麼耶...反而是點擊.py檔後,電腦根本也不知道要用什麼執行他...

引用:
作者: cad 檢視文章
測試小程式
提供給大家測試
程式內容是在 座標0,0 與座標100,100 的虛擬方塊中
畫100條線,分別起點為座標0,0 ;終點為亂數產生(但不會超出虛擬方塊)


執行結果如下圖....

執行時
1.請先打該開catia,開啟一個PART檔
2.並且新增一個幾何組
3.工作定義在幾何組上
4.打該把下列程式碼存程副檔名為py的檔案,在直接點存好的檔案去執行~

程式碼:
import win32com.client
from random import *

CATIA=win32com.client.Dispatch("CATIA.Application")


def line(p1,p2):
 a1=CATIA.ActiveDocument.part.HybridShapeFactory.Addnewpointcoord(p1[0],p1[1],p1[2])
 a2=CATIA.ActiveDocument.part.HybridShapeFactory.Addnewpointcoord(p2[0],p2[1],p2[2])
 return CATIA.ActiveDocument.Part.HybridShapeFactory.AddNewLinePtPt(a1,a2)
     

s=1
while s <= 100:
    p1=[0,0,0]
    p2=[randint(1,100),randint(1,100),randint(1,100)]
    obname=CATIA.ActiveDocument.part.Inworkobject.name
    CATIA.ActiveDocument.Part.HybridBodies.item(obname).AppendHybridShape(line(p1,p2))
    CATIA.ActiveDocument.Part.update()
    s = s + 1

CATIA.Activewindow.activeviewer.PutBackgroundColor((0,0,1))
Alston Chen 目前離線   回覆時引用此篇文章
回覆


目前檢視此主題的會員: 1 (0 位會員和 1 位遊客)
 
主題工具

發表文章規則
不可以發表新主題
不可以回覆主題
不可以上傳附件
不可以編輯您的文章

開啟 vB 代碼
關閉 HTML 程式碼
論壇跳轉


所有時間均為中原標準時間。現在的時間是 02:36 AM


Powered by vBulletin® 版本 3.6.7
版權所有 ©2000 - 2018,Jelsoft Enterprises Ltd.