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