利用Python在Workbench的DM中進行幾何操作/運算【轉發】
2017-07-03 by:CAE仿真在線 來源:互聯網
編者按
文中所出現的代碼來自于ANSYS幫助手冊,需要深究的話可以多研究研究手冊的內容。
Workbench幾何部分除了建模還包括對幾何模型的一些操作,這些也能夠用Python和API函數完成。
正文
Workbench的幾何建模程序DesignModeler(DM)雖不支持APDL參數化建模,但是卻支持Python和C#,大量的API函數也是基于IronPython的。靈活運用Python和DM中的API函數接口,可實現模型的參數化以及模型的一些操作,比如拉伸、旋轉、布爾運算等。
本次對這些幾何模型的操作作簡單闡述。
利用Python和API函數可進行的操作如下圖所示,熟悉Workbench幾何建模的應該對這些都不陌生。
![]()
圖1
這些API函數的入口為:ExtAPI.DataModel.GeometryBuilder.Operations。
(1)拉伸操作
利用Python和API函數進行拉伸操作的代碼如下:
def Ongenerate(feature,function):
# 定義函數
length = 0.3
# 定義變量
bodies = []
# 定義空列表
builder = ExtAPI.DataModel.GeometryBuilder
# 獲取入口,并賦值給變量builder
polygon=builder.Primitives.Sheet.CreatePolygon([0.,0.,3*length,0.,0.,2.*length,length,0.,2.*length])
# 通過CreatePolygon創建三角形的三條邊
polygon_generated = polygon.Generate()
# 生成線體(對應workbench的generate操作)
extrude = builder.Operations.CreateExtrudeOperation([0.,1.,0.],length/2.)
# 利用CreateExtrudeOperation函數進行拉伸操作,定義方向向量和拉伸長度
bodies.Add(extrude.ApplyTo(polygon_generated)[0])
# 定義拉伸的對象為前面生成的線體
feature.Bodies = bodies
# 生成的拉伸模型賦值給變量
feature.MaterialType = MaterialTypeEnum.Add
# 類型為add
return True
上面代碼注意一個: bodies.Add(extrude.ApplyTo(polygon_generated)[0]),其中有一個[0],這是因為ApplyTo()會返回一個體列表,[0]表示這個列表的第一個體。
生成的圖形如下:
![]()
圖2
(2)轉換
利用Python和API函數進行移動操作的代碼如下:
def Ongenerate(feature,function):
# 定義函數
length = 0.3
# 定義變量
bodies = []
# 定義空列表
builder = ExtAPI.DataModel.GeometryBuilder
# 獲取入口,并賦值
polygon = builder.Primitives.Sheet.CreatePolygon([0.,0.,2.*length,0.,0.,1.*length,length,0.,0.7])
# 通過CreatePolygon函數創建線體
polygon_generated = polygon.Generate()
# 生成片體
body = builder.Operations.Tools.EdgesToWireBody(polygon_generated.Edges);
# 利用函數EdgesToWireBody將片體的邊轉換為線體
bodies.Add(body)
# 添加到列表
feature.Bodies = bodies
# 賦值
feature.MaterialType = MaterialTypeEnum.Add
# 定義類型為Add
return True
最終如下所示,將一個三角形的面轉換為三條邊。
![]()
圖3
轉自公眾號:CAE技術分享
相關標簽搜索:利用Python在Workbench的DM中進行幾何操作/運算【轉發】 Ansys有限元培訓 Ansys workbench培訓 ansys視頻教程 ansys workbench教程 ansys APDL經典教程 ansys資料下載 ansys技術咨詢 ansys基礎知識 ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓