av久久久-av九九九-av九九-av激情网-欧美三级在线-欧美三级一区二区三区

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




主站蜘蛛池模板: 我的极品女神 电影| 红海行动2在线观看西瓜影院| 40集电视剧雪豹影视大全| 免费播放高清完整版电影| 林安| 林正英复仇电影| 二胡独奏北国之春| 免费观看淫www视频| 一年级歇后语下册| 阴阳先生之阴阳中间站 2016 彭禺厶| 南来北往电视剧剧情介绍| 海绵宝宝第十四季| 周杰伦雨下一整晚歌词| 黄网站在线免费| 2024年计划生育家庭特别扶助| 红装电影在线观看免费版电视剧全集| 谍变1939电视剧剧情介绍| 卢宇静| 在线观看中文字幕视频| 公公在线| 黑玫瑰演员表| 《水中花》日本电影| 梦断楼兰电影| xxoo电影| 电视剧瞧这一家子演员表| 杨玉环秘史| 苦菜花电视剧| 上海东方卫视节目表| 教育向美而生读书心得体会 | 感恩简谱钟丽燕| 美女被吃| 黎姿电影| 延禧| 色戒在线视频观看| 亚纱美| 隐藏的歌手第一季免费观看完整版| 在线观看www视频| 张筱雨视频| 四平青年往事 电影| 还珠格格第一部主题曲| 色即是空2|