仿真在线:有限元分析咨询与培训中心——Ansys|Fluent|Abaqus|HFSS|SolidWorks|课程培训

Workbench如何做二次開發【轉發】

2017-07-03  by:CAE仿真在線  來源:互聯網

下面文中的代碼均來自ANSYS的幫助文檔。


目前極少人做workbench的二次開發,一來是很不好做,二來可能必要性也沒那么大。筆者對Workbench的二次開發作一個大概的介紹,用到的朋友大概也只能啃幫助手冊了。

正文

ANSYS Workbench二次開發比較不容易做,其原因一是Workbench本身就是一個集成平臺而非一個軟件,二是開發接口很難理解,開發手冊寫的真不好,三是目前貌似極少人(資料)做這方面的東西,流傳的資料幾乎沒有(除了ANSYS網站的官方文檔,在百度文庫有一些,再就是幫助手冊了)。

舉個例子,Workbench的二次開發與HyperMesh相比有多費勁,下圖是HyperMesh的一個API函數幫助文檔所給的注釋,可以看到,注釋寫的非常的詳細,包括函數的用途、類型、語法、描述、數據類型、變量描述等等。

Workbench如何做二次開發【轉發】ansys結構分析圖片1

圖1

下面再看看ANSYS幫助手冊所給的一個API函數的解釋,相比之下,費勁很多,看了解釋也很難知道到底該怎么使用這個API函數,而且更詭異的是居然還有很多的API函數沒有給出解釋,下圖這個是創建一個圓柱殼的API函數,但是其他的比如創建矩形的API函數連解釋都沒有,使用者甚至不知道函數名稱是什么。

感覺Workbench對于二次開發的功能沒那么重視,不是其想引導的趨勢。

Workbench如何做二次開發【轉發】ansys仿真分析圖片2

圖2

不過,饒是如此,還是可以做,尤其在后處理方面,在前處理方面則很是費勁,開放的接口太少。

今次大概介紹下Workbench的二次開發。

Workbench二次開發的程序叫做extension,Extension主要有四個功能:

定義工具條和按鈕;

將按鈕與ACT對象綁定;

定義彈窗;

存儲數據。

下面的例子是在Workbench的Mechnical模塊下創建工具條和按鈕。

創建的工具條可以在支持ACT directomization(Workbench,AIM,Mechnical,DesignModeler,以及DesignXplore)的應用程序中使用,也可以在支持guided-process extension(Fulent、Eletronic Desktop)的應用程序中使用。

開發的extension的界面形式是通過xml語言進行編寫的,通過xml定義extension的名稱、屬性、執行腳本、界面上的內容等等,xml寫出來的程序本身不能完成有效功能,只是一個定義好屬性以及保留了接口的界面而已。

<extension version="1" minorversion="0" name="ExtToolbarSample">

<script src="toolbarsample.py" />

<interface context="Mechanical">

<images>images</images>

<callbacks>

<oninit>init</oninit>

</callbacks>

<toolbar name="ToolBar1" caption="ToolBar1">

<entry name="TB1Button1" icon="button1Red">

<callbacks>

<onclick>OnClickTB1Button1</onclick>

</callbacks>

</entry>

<entry name="TB1Button2" icon="button2Red">

<callbacks>

<onclick>OnClickTB1Button2</onclick>

</callbacks>

</entry>

<entry name="TB1Button3" icon="button3Red">

<callbacks>

<onclick>OnClickTB1Button3</onclick>

</callbacks>

</entry>

</toolbar>

<toolbar name="Toolbar2" caption="Toolbar2">

<entry name="TB2Button1" icon="button1Blue">

<callbacks>

<onclick>OnClickTB2Button1</onclick>

</callbacks>

</entry>

<entry name="TB2Button2" icon="button2Blue">

<callbacks>

<onclick>OnClickTB2Button2</onclick>

</callbacks>

</entry>

<entry name="TB2Button3" icon="button3Blue">

<callbacks>

<onclick>OnClickTB2Button3</onclick>

</callbacks>

</entry>

</toolbar>

</interface>

</extension>

整段代碼定義了一個名為ExtToolbarSample的extension,執行的python腳本是toolbarsample.py,通過<image>指定了背景,通過<interface context>指定該extension應用在mechnical模塊下,通過<toolbar>定義了名稱為ToolBar1的工具條,并且通過<entry>定義了按鈕入口,也就是該按鈕可以執行函數OnClickTB1Button1。同樣的按鈕還定義了ToolBar2和ToolBar3,并分別綁定了點擊這幾個按鈕所要執行的函數,這些函數均在toolbarsample.py腳本文件中定義。

后面的代碼定義了另一個工具條,也即是上面這段代碼定義了兩個工具條,每個工具條上面分布有三個按鈕。

這六個按鈕均有相應的函數與之綁定,一旦點擊該按鈕,便能執行相應的函數,完成某個功能。

定義完成后的extension形式如下所示:

Workbench如何做二次開發【轉發】ansys仿真分析圖片3

圖3

可以看到定義的兩個工具條及6個按鈕。

上面的XML所定義的接口代碼需要通過Python腳本文件的形式來實現。

針對上面按鈕所綁定的函數,定義的toolbarsample.py文件內容如下:

import os

import datetime

clr.AddReference("Ans.UI.Toolkit")

clr.AddReference("Ans.UI.Toolkit.Base")

from Ansys.UI.Toolkit import *

def init(context):

ExtAPI.Log.WriteMessage("Init ExtToolbarSample ...")

def OnClickTB1Button1(analysis):

LogButtonClicked(1, 1, analysis)

def OnClickTB1Button2(analysis):

LogButtonClicked(1, 2, analysis)

def OnClickTB1Button3(analysis):

LogButtonClicked(1, 3, analysis)

def OnClickTB2Button1(analysis):

LogButtonClicked(2, 1, analysis)

def OnClickTB2Button2(analysis):

LogButtonClicked(2, 2, analysis)

def OnClickTB2Button3(analysis):

LogButtonClicked(2, 3, analysis)

def LogButtonClicked(toolbarId, buttonId, analysis):

now = datetime.datetime.now()

outFile = SetUserOutput("ExtToolbarSample.log", analysis)

f = open(outFile,'a')

f.write("*.*.*.*.*.*.*.*\n")

f.write(str(now)+"\n")

f.write("Toolbar "+toolbarId.ToString()+" - Button "+buttonId.ToString()+" Clicked. \n")

f.write("*.*.*.*.*.*.*.*\n")

f.close()

MessageBox.Show("Toolbar "+toolbarId.ToString()+" - Button "+buttonId.ToString()+" Clicked.")

def SetUserOutput(filename, analysis):

solverDir = analysis.WorkingDir

return os.path.join(solverDir,filename)

該腳本中通過def定義了多個函數,其中有按鈕所綁定的函數,在這段Py代碼中除了用到通常的python語言,也用到了ANSYS Workbench的API函數,例如ExtAPI.Log.WriteMessage(顯示信息)。

所有關鍵的功能也是通過Python語言和API函數聯合實現的。一般來說,提供的接口越多,所能做的開發也越復雜,開發起來也容易。

結合xml和py兩個文件以及其他一些輔助的,比如背景圖片等,就可以完成一個extension的開發,以擴展Workbench的功能。


轉自公眾號:CAE技術分享

開放分享:優質有限元技術文章,助你自學成才

相關標簽搜索:Workbench如何做二次開發【轉發】 Ansys有限元培訓 Ansys workbench培訓 ansys視頻教程 ansys workbench教程 ansys APDL經典教程 ansys資料下載 ansys技術咨詢 ansys基礎知識 ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓 

編輯
在線報名:
  • 客服在線請直接聯系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com




主站蜘蛛池模板: 中国水泥协会-官方网站| 阻垢剂|缓蚀剂|杀菌剂|分散剂|水处理剂|印染助剂|水处理药剂|造纸助剂|膜阻垢剂|缓蚀剂|HEDP|ATMP|螯合剂-山东凯瑞化学有限公司 水处理药剂生产厂家 | 浙江中拓教育设备有限公司| 企业信息安全整体解决方案提供商-上海华垸信息技术有限公司 | 桥梁支座更换_桥梁检测车租赁_高空作业车出租_支座更换_伸缩缝安装_隧道防水_养护加固_维修_出租_衡水庆兴桥梁养护工程有限公司 桥梁养护|桥梁维修加固|隧道裂缝修补|支座更换|管道堵水气囊|衡水众拓路桥养护有限公司 | 联塑管代理,联塑管厂家批发,中财管总代理,康泰管代理,康泰管厂家批发-邯郸市中枢贸易有限公司 | 免费的动态思维导图软件,脑图大师,思维导图制作软件 - 万彩脑图大师官网 | 钠长石-硅铁-硅钙-孕育剂-球化剂-安阳李氏实业有限公司 | 英格索兰空压机_英格索兰空压机配件_英格索兰空压机维修—商天机械 | 连云港机械手厂家_全自动焊接机械手_刀轴焊接机_智能轴类焊接机_连云港建博自动化设备有限公司 | 悬挂式小鼠笼架,植物标本采集箱,昆虫标本盒厂家-北京合力科创科技发展有限公司 | 欧艺宝盾科技(北京)有限责任公司_北京旋转门厂家_转门维修_高端商务门控定制 - | 智慧园区平台_智慧园区智慧写字楼运营平台领导品牌 | 双合金螺杆|注塑机螺杆|挤出机螺杆|双合金料管—东莞市精耐螺杆机械有限公司 | 天津市金色巨腾科技发展有限公司-天津监控安装,天津弱电工程,天津无线网络覆盖 | 长葛市金葛机械制造有限公司| 泊头市特种油泵阀制造有限公司&nbsp;-&nbsp;渣油泵,重油泵,沥青泵,高压齿轮泵,煤焦油泵,导热油泵,三螺杆泵,圆弧齿轮泵,不锈钢齿轮泵, | 声测管厂家_声测管现货_桥梁桩基声测管_注浆管_沉降板-沧州市福顺昌钢管有限公司 | 郑州建网站,郑州做网站,郑州网站建设,郑州网站制作,郑州高端定制网站,郑州APP开发 | 上海办公室租赁-写字楼出租、创意产业园区厂房招商、孵化器众创联合办公空间出租网 | 热电阻_热电偶_压力表_压力变送器_磁翻板液位计 - 淮安忠和测控仪表有限公司 | 激光焊接不锈钢翅片管,不锈钢翅片管,激光焊接复合翅片管,南通拓帆换热设备有限公司 | 江苏成人高考网-江苏省成人高考报名| 西安宣传片拍摄,陕西艺景网络科技有限公司资料备份,西安影视公司,视频拍摄制作,抖音视频制作,纪录片拍摄西安短视频摄影团队,西安抖音视频拍摄 | 联智通达_工控一体机_工业触摸一体机_工业一体机_工业触控一体机_POS机主板_工控主板_国产化主板_RK3588主板厂商-联智通达 | 郑州编织袋厂_郑州塑料编织袋_河南塑料编织袋厂-河南宏旺塑料编织袋厂家 | 三原图库 - 设计图片素材打包下载sytuku.com | 烟气在线监测系统_VOCs在线监测_分析仪「杭州世驰科技」 | 中科盛世酒窖 - 酒窖设计_酒窖工程_酒窖空调设备_恒温酒柜定制_私人别墅家庭酒窖_不锈钢红酒柜_实木雪茄柜 | 上饶环亚电脑会计培训学校--电脑学校|上饶电脑学校|上饶电脑培训|会计培训|上饶会计培训|上饶县会计培训|广丰会计培训|玉山会计培训|横峰会计培训|上饶网店培训 上进电缆(嘉兴)股份有限公司官网 - 光伏电缆|防火电缆|电力电缆|铝合金电缆专业生产厂家 | 思行科技-珠海小程序开发-珠海网站建设-珠海APP开发-江门小程序开发-江门网站建设-江门APP开发 | 手术无影灯生产厂家-提供电动手术台,电动产床定制与批发-山东华辰医疗设备有限公司 | 实木运动地板价格_运动木地板厂家-欧氏实木运动地板网 | 深圳彩盒印刷-纸盒包装-不干胶标签印刷-深圳印刷厂家-深圳贝的印刷 | 现代卓越官网-专注于pmp培训证书-pmp考试报名时间-pmp认证-项目管理pmp-ACP敏捷管理-NPDP认证 | 自动门、旋转门、速通门维修保养升级服务平台_门道佰分佰【官网】 | 新2025澳门天天开好彩生肖对照表,2025新澳精准正版免费,2025新澳今晚开奖资料大全,新澳门四肖期期准免费,新澳门今晚9点30分开奖结果 | 清河县隆鑫密封件有限公司,汽车用密封条,配电箱柜、集装箱密封胶条,建筑门窗、家具用密封条,无毒环保医用密封条,船舶、农机用密封条,异型产品 | 山东万利精密机械制造有限公司-高速金属圆锯机,数控高速圆锯机,高速圆锯机生产厂家 | 拉力试验机|电子万能试验机|液压万能试验机|摩擦磨损试验机|济南试验机厂家-济南思达测试技术有限公司 | 陕西西安升降机_导轨式升降货梯_电动固定剪叉式升降平台_甘肃兰州液压机械厂家 |