久久精品草-久久精品成人-久久精品成人免费网站-久久精品成人欧美大片免费-香港三级大全-香港三级日本三级a视频

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




主站蜘蛛池模板: 日韩欧美在线观看一区 | 日韩一级片在线播放 | 在线视频啪 | 欧美成人一区二区三区不卡视频 | 欧美中文在线观看 | 国产欧美日韩精品一区二区三区 | 亚洲一区二区三区欧美 | www.日本色| 性生生活三级视频观看 | 福利国模私拍视频在线观看 | 亚洲综合网在线观看首页 | 岛国片免费在线观看 | 国产成人久久精品激情91 | 欧美高清网站 | 91麻豆精品国产一级 | 日韩高清在线日韩大片观看网址 | 一区二区精品在线观看 | 成人综合视频网 | 99v视频国产在线观看免费 | 国产福利2021最新在线观看 | 国产欧美日韩在线不卡第一页 | 国产伦精品一区二区三区精品 | 亚洲美女性生活视频 | 久久精品国产99久久99久久久 | 日韩在线免费播放 | 免费观看污网站 | 毛片91| 国产精品秒播无毒不卡 | 九一色视频 | 久久这里是精品 | 国产综合激情在线亚洲第一页 | 欧美一区二区三区精品影视 | 操一操日一日 | 国内精品视频在线播放一区 | 麻豆chinese新婚vide | 国产精品自产拍在线网站 | 岛国大片在线观看免费版 | 一区二区三区日韩 | 麻豆国产一区 | 伊人久久久综在合线久久在播 | 亚洲情a成黄在线观看 |