利用Python在Workbench的DM中進(jìn)行幾何操作/運(yù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的。靈活運(yùn)用Python和DM中的API函數(shù)接口,可實(shí)現(xiàn)模型的參數(shù)化以及模型的一些操作,比如拉伸、旋轉(zhuǎn)、布爾運(yùn)算等。

本次對這些幾何模型的操作作簡單闡述。

利用Python和API函數(shù)可進(jìn)行的操作如下圖所示,熟悉Workbench幾何建模的應(yīng)該對這些都不陌生。

利用Python在Workbench的DM中進(jìn)行幾何操作/運(yùn)算【轉(zhuǎn)發(fā)】ansys workbanch圖片1

圖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)workbenchgenerate操作)

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


上面代碼注意一個(gè): bodies.Add(extrude.ApplyTo(polygon_generated)[0]),其中有一個(gè)[0],這是因?yàn)锳pplyTo()會(huì)返回一個(gè)體列表,[0]表示這個(gè)列表的第一個(gè)體。

生成的圖形如下:

利用Python在Workbench的DM中進(jìn)行幾何操作/運(yùn)算【轉(zhuǎn)發(fā)】ansys workbanch圖片2

圖2

(2)轉(zhuǎn)換

利用Python和API函數(shù)進(jìn)行移動(dòng)操作的代碼如下:

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


最終如下所示,將一個(gè)三角形的面轉(zhuǎn)換為三條邊。

利用Python在Workbench的DM中進(jìn)行幾何操作/運(yùn)算【轉(zhuǎn)發(fā)】ansys workbanch圖片3

圖3


轉(zhuǎn)自公眾號:CAE技術(shù)分享

開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:利用Python在Workbench的DM中進(jìn)行幾何操作/運(yù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) 

編輯
在線報(bào)名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com