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

2017-07-03  by:CAE仿真在線(xiàn)  來(lái)源:互聯(lián)網(wǎng)



編者按


文中所出現(xiàn)的代碼來(lái)自于A(yíng)NSYS幫助手冊(cè),需要深究的話(huà)可以多研究研究手冊(cè)的內(nèi)容。

Workbench幾何部分除了建模還包括對(duì)幾何模型的一些操作,這些也能夠用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)算等。

本次對(duì)這些幾何模型的操作作簡(jiǎn)單闡述。

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

利用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])

# 通過(guò)CreatePolygon創(chuàng)建三角形的三條邊

polygon_generated = polygon.Generate()

# 生成線(xiàn)體(對(duì)應(yīng)workbenchgenerate操作)

extrude = builder.Operations.CreateExtrudeOperation([0.,1.,0.],length/2.)

# 利用CreateExtrudeOperation函數(shù)進(jìn)行拉伸操作,定義方向向量和拉伸長(zhǎng)度

bodies.Add(extrude.ApplyTo(polygon_generated)[0])

# 定義拉伸的對(duì)象為前面生成的線(xiàn)體

feature.Bodies = bodies

# 生成的拉伸模型賦值給變量

feature.MaterialType = MaterialTypeEnum.Add

# 類(lèi)型為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])

# 通過(guò)CreatePolygon函數(shù)創(chuàng)建線(xiàn)體

polygon_generated = polygon.Generate()

# 生成片體

body = builder.Operations.Tools.EdgesToWireBody(polygon_generated.Edges);

# 利用函數(shù)EdgesToWireBody將片體的邊轉(zhuǎn)換為線(xiàn)體

bodies.Add(body)

# 添加到列表

feature.Bodies = bodies

# 賦值

feature.MaterialType = MaterialTypeEnum.Add

# 定義類(lèi)型為Add

return True


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

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

圖3


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

開(kāi)放分享:優(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ù)咨詢(xún) ansys基礎(chǔ)知識(shí) ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓(xùn) 

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

全國(guó)服務(wù)熱線(xiàn)

1358-032-9919

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