當前位置:首頁 > 科技 > 正文

ANSYS Workbench二次開發入門(1)——WB架構介紹

1. 序言

在現代商業時代,技術正改變着人們的思維方式和工作方式,計算機技術正在日益滲透到我們工作和生活的各方面,這種改變也同樣體現在工程界中。

在工程和制造領域,我們一直在感受這種變化。在産品數據管理、産品設計、分析、制造以及質量控制等方面,計算機輔助工具正在影響着我們的工作方式。另外,計算機技術以及網絡技術的日益發展也大大擴展了工程協同的概念。然而,存在着一個在許多方面已經漸漸落後于上述技術發展趨勢的領域,即集成的、協同的、多物理場的工程分析領域。

ANSYS Workbench正是為了解決與“集成工程分析”相關的問題而開發的,“設計仿真(design simulation)”的概念已經出現,而且以各種形式得到應用。在本文中,我們把設計仿真看作一個基于Internet(浏覽器)的方法,以設計出更好的工程産品。設計仿真環境可以将設計和工程分析完全整合在一個平台下,這個整合的環境正逐漸擴大,最終包含真正的零件或産品的虛拟樣機。

本文描述了Ansys Workbench的特點和功能,闡述了Workbench是如何能夠影響甚至是改變工程界的。

2. 簡介

歡迎進入工程設計仿真環境,在開始進入這個新的工程環境之前,讓我們先來了解幾個概念。

首先,讓我們看看到底什麼是工程仿真(engineering simulation),以及它在以前的、沒有整合的工程強度和有限元分析中是如何應用的。在早先,我們以不同的零件,或者一個裝配件的不同組件為工作對象,執行各種類型的分析,有時直接手算,有時使用計算機求解。然後在這種情況下,将分析的結果組合起來。或者,在更複雜的仿真分析中,各種載荷和邊界條件需要用戶人工或者用其它的工具操作,然後在不同的求解器和仿真軟件間組合不同的分析結果,以确定荷載和最不利工況。

“設計仿真”的目标就是将産品設計所需的各種分析工具整合在一起,并進行“緊密耦合”,而Workbench就是來提供這樣一個單一的(可管理的)工程分析工作環境,在這個環境下不但能對産品進行線性、非線性、靜力、動力等常規分析求解,而且在同樣的工作環境下也可實現真正的、基于計算機的虛拟原型模拟系統。

在正式介紹Workbench之前,讓我們先來了解下面兩個新概念。

分析方法(Stress Method)

分析方法,主要是指單個的、彼此關聯性不強的分析,其着眼點在方法上。例如,基于手工計算進行柱體在壓力作用下的結構分析、或同樣的柱體的熱膨脹分析,再如,結構在風載作用下的分析、以及同樣結構在雪載作用下的分析,等等。

仿真流程(Stress Process)

仿真流程,則是将上述各種分析方法聯結起來,并輔以其它技術,比如載荷計算、材料定義等,從而形成一個完整的分析,以驗證設計,它的着眼點是在整個分析流程上。

Workbench的目标是提供自動化的方法和流程以滿足用戶的工程需求。從分析方法的角度看,它可以進行各種從非常簡單到非常複雜的計算分析。同時,用戶可以在Workbench中整合和開發自己的應用程序,進而實現由Workbench來定義和管理産品研發的完整流程。

概述

ANSYS Workbench提供給用戶的是一個用于工程仿真的多學科工具,與其客戶化工具相結合,可使用戶方便地管理整個工程仿真過程,包括:分析方法、分析流程、共用服務、數據及配置管理等,從而提供給用戶一個非常高效的計算能力以實現快速、準确分析。

通過客戶化的工具,Workbench可以讓用戶将自己的應用程序或第三方程序整合到一個易于管理的、通用的終端用戶工作平台中。

Workbench提供了大量的、技術最先進的工具,以支持對各種分析方法/仿真流程的開發和使用。Workbench不同于其它的客戶化工具,Workbench的開發工具可以用在ANSYS應用程序的開發過程中。例如,Workbench軟件開發工具(SDK)已經被用來将以前開發的應用程序,比如ANSYS CFX等,整合到Workbench環境中。

Workbench就是給用戶提供一個平台,在該平台中,用戶可以自動管理與産品仿真(工程分析)相關的所有流程。

與其它應用程序的接口

Workbench是管理工程仿真環境的革命性典範,它以客戶的需求為基礎,将設計過程和工程數據在多個應用程序間集成起來。

為了深入的了解Workbench,首先讓我們來看看目前的工程仿真環境情況。在目前的仿真環境中,通常是終端用戶來管理工程數據,所有工作文件都由中心數據庫管理,而這些文件間的關系管理,是通過手工文件和文件夾關系的方法來獨立進行,并與版本管理和文件檢入/檢出任務相關聯。

在傳統的環境下,終端用戶是在本地機上來管理每一個工程應用程序的,應用程序之間的數據共享與數據的傳輸是通過應用程序的開發商或者文件數據傳輸/共享機制來完成。

這個傳統的工作方法可以用下圖來描述:

傳統工作方法

而Workbench提供了一個集成的、多應用的、多文檔的工程應用環境,所有用戶可以與多個應用程序及其相關數據進行交互操作。

Workbench的顯著特點是它提供了一個統一的平台,在這個平台上,各種應用程序之間相互開放并共享數據。有人把這個平台比作成可以同時運行多個web浏覽器的Windows操作系統。

為了方便使用這個開放的平台,Workbench充分利用了“起始頁(Start Page)”和“項目頁(Project Page)”結構,使用戶可以定制自己的工作環境。起始頁是進入Workbench環境的入口,它對數據的創建和訪問進行了流程化處理。項目頁是Workbench的項目管理工具,用戶在該頁中可對模型、輸入輸出記錄、處理結果、文檔、以及其它用戶希望儲存的任何内容進行儲存和恢複。

這種數據存儲方式為用戶提供了一個很好的環境,使得在集成仿真過程中,可以随時打開、關閉、存儲以及恢複與所有應用相關的數據和文件。用戶可以重新打開以前的會話,所有的應用和相關的數據都在項目頁中出現。這不僅方便了仿真分析工程師,而且對想要浏覽所有應用結果的用戶也提供了很大的方便。

Workbench數據庫(.wbdb)中包含了一個仿真項目的所有信息,用戶用各種相關的應用程序來完成一個工程項目的所有信息都存儲在這個數據庫中。另外,該數據庫記錄了與每一個應用程序相關的文件和共用的項目數據。

Workbench數據庫支持腳本語言和編譯的應用程序接口,這樣就可以快速方便地與市場上的各種産品數據管理系統(PDM)進行整合。

Workbench特殊的架構使得用戶既可以訪問本地機上的數據,也可以訪問存儲在其它平台上的文件,甚至是PDM中的數據。與PDM的整合需要進行基于應用程序和數據儲存結構的必要的開發。

一個典型的Workbench應用如下圖所示。

Wbdb文件和它存儲的數據是以XML的格式書寫的,在Workbench(IE)環境下是完全支持的。PDM系統中存儲的wbdb文件提供了與終端用戶工作環境、應用程序、以及工程仿真所創建或使用的文件等之間的相關性。

與PDM系統的接口很容易開發,這樣就可以用來控制基于Wbdb文件内容的、與仿真分析相關的所有文件的檢入與檢出。

WorkBench的架構非常便于集成其它應用程序或插件,以支持應用程序和數據查詢系統的直接使用。

Workbench 數據庫

Workbench提供了一個獨特的結構框架,在該框架下可以把計算機輔助設計工具和分析工具進行高度集成。Workbench框架提供了支撐這種集成的主要軟件平台。

集起始頁、項目頁、參數化CAD的雙向互動、整合客戶應用、整合第三方軟件等功能于一體的Workbench框架是這個集成平台的基礎。

Workbench數據庫:

  1. 确保了與分析相關的應用軟件間的一緻性,提供了實際工程仿真所必需的一個緊密耦合環境;
  2. 保留了各個應用程序包在執行或重構一個特定分析時所必需的所有信息;
  3. 可以追蹤與某個分析項目相關聯的、或該項目所必須的各種文件。

2.1.1 産品數據管理(PDM)

雖然在PDM系統中存儲的數據是很容易獲取的,但在PDM系統中要做到這一點,必須要開發合适的雙向接口,以使Workbench可以從PDM系統打開.wbdb文件,并同時中檢出所需要的、與該分析項目相關的所有文件。

與PDM系統的整合接口,可以用Workbench腳本以及SDK應用開發工具來實現。

2.1.2 計算平台

ANSYS産品一貫支持從PC機到高端超級計算機在内的所有主流計算平台,且支持所有這些計算機平台上的并行計算。在計算機服務器方面,Workbench也同樣都支持,用戶可以通過Workbench的交互工具或批處理工具将計算任務分發到各種支持遠程Shell(RSH)接口的Windows系統、UNIX系統或者是Linux系統上進行自動處理。

另外,不管是在本地機還是在遠程機,Workbench都支持大多數的分布式文件系統,這就給用戶提供了一個環境,可以将複雜解算任務分發到任意數量的本地計算機上、或遠程計算機上、甚至超級計算中心上進行分布式并行計算。

在應用Workbench時,有點遺憾的是Workbench用戶界面(GUI)僅支持下面幾個操作平台:

  • Windows (NT, 2000, XP Home, XP Professional)
  • HP-UX
  • SunOS
  • Linux

然而,上述在圖形用戶界面(GUI)上的限制并不妨礙用戶在本地機或網絡上的任何其它平台(包括AIX, IRIX等等)上來進行複雜的計算。

Workbench基于組件的特性可使用戶通過一個網絡化的中心數據庫來發布和使用其它集成的、或第三方的應用程序。

Workbench也支持通過LSF來提交各種解算任務。

因此,在服務器或網絡計算機支持大型并行計算的環境下,當需要管理大型工程仿真項目時,要特别引起注意。

3. Workbench 架構

Workbench擁有一個專門為了實現集成仿真平台而設計的多層架構,在最高層,Workbench允許用戶打開一個新的應用程序或在多個應用程序之間進行切換。

如下圖所示,我們将對ANSYS Workbench中的每一層架構進行解析。

Workbench框架

用戶在Workbench 框架下定義工程項目,并在這樣一個統一的項目環境中管理各個相關的應用程序。該框架提供了一個集成環境,允許用戶同時運行多個應用程序,并且能實現工程數據和參數在各應用程序間的共享。整個框架同時也支持用戶化開發,用戶可以将自己或第三方的獨立的應用程序整合到Workbench中,且與Workbench的版本無關。

3.1.1 Workbench框架功能介紹

下圖展示了Workbench 框架的基本構造和内容

Workbench可以在Internet 浏覽器下運行,應用程序之間共享的數據保存在一個易于傳輸和使用的XML格式文件中。對編碼對象及其方法的支持是通過内部接口或SDK應用程序編程接口來實現的,有關SDK的信息可以參考本文檔中關于SDK架構的部分。

Workbench框架本身并不包含任何工程應用程序,它本質上是一個允許多個(同時運行的)應用程序進行互動操作并共享數據的集成環境,Workbench的設計本身就是為了讓用戶可以無需特定的指令或流程即可在多個應用程序間進行自由切換。

正如後面将會描述的那樣,Workbench用戶開發工具允許用戶針對某一産品或流程要求而建立起一套獨特的工作流程或控制。Workbench注冊表用來管理和控制可用的應用程序,Workbench提供了針對用戶或第三方應用程序的開發和安裝工具,OEM合作夥伴也可将Workbench框架作為自用或随其開發的非ANSYS解決方案一起發放給他們自己的用戶。

Workbench的數據庫管理各個應用程序,并将所有信息保存到各種文件及其它數據源中。參數、數據共享關系、公用數據、優先選擇等都是在Workbench會話層面上進行控制。

3.1.2 框架功能

本節将詳細描述和Workbench框架相關的各功能模塊。

Workbench框架

Workbench框架是Workbench注冊表下所包含和記錄的所有應用程序的父級流程,對所有集成的應用程序而言,它是一個基于HTML、DHTML、以及XML的父級環境,根據用戶的需求激活并且調用任意數目的應用程序。

所有被整合的應用程序(包括ANSYS内部的、用戶的、第三方的)均可自由的管理它們自己的數據以及控制自身的架構。Workbench提供标準應用程序編程接口(API),允許應用程序管理它們自己的環境、通知Workbench或者相關的文件、将Workbench事件或所需操作通知給嵌入的應用程序。

優先選擇

框架的優先選擇是通過選項對話框來管理的,允許Workbench用戶配置他們自己的工作環境,例如界面風格、工程單位制等都是在這裡定義的。所有在Workbench中運行的應用程序都可以通過全局變量、參數或API來實現優先選擇。

項目頁

項目頁是任何激活了的Workbench會話過程的主要工作環境,這個頁面記錄了所有下屬的項目和應用程序,以及與該Workbench會話相關的所有關聯文件。

在一個任意一個Workbench會話過程中, 可以激活一個或多個現存項目或新項目,共享Workbench對象、接口和參數等。

在一個被激活的會話過程中,會運行一系列對用戶透明的Workbench框架組件,它們對Workbench的功能都非常關鍵。

部件管理器

部件管理器是Workbench框架的主要組成部分,用于各種Workbench會話,其主要功能有:

  1. 創建并管理工程應用程序與CAD幾何模型之間的關系;
  2. 與各種已授權的CAD插件(plug-in)一起,讓用戶可以訪問零件、裝配體、或組件;
  3. 提供與參數化CAD系統的雙向參數相關性(當然也允許導入非參數化模型);
  4. ANSYS程序、用戶程序、以及第三方程序均可以通過Workbench來使用Part Manager,從而訪問CAD幾何模型。

Workbench 控制

所有集成應用程序都是通過Workbench 控制組件來将它們的存在性通知Workbench,它允許内部應用程序、用戶應用程序、以及第三方應用程序在同樣一個Workbench會話下基于其結構增添數據,它同時也提供了手段來提取Workbench相關的已有控制和設置。

窗口管理

窗口管理組件提供了對窗口管理的各種支持,包括窗口版式以及各種相關事件等。标準的SDK應用程序編程接口提供了訪問這些功能的手段,這些功能在所有集成的Workbench應用程序間是共享的。

圖形用戶界面(GUI)

Workbench框架提供的GUI管理系統支持支持單獨的應用程序(applets),并可在不同的應用程序之間切換不同的用戶界面。最主要的GUI編程語言是XML語言,并由Workbench下的HTML和DHTML結構所管理。該語言用于應用程序的目錄欄、工具條以及菜單欄,在整個窗口的層次,通常混合使用包括HTML、XML和Jscript在内的幾種語言來創建用戶界面。用戶也可以在窗口層次下使用自己的GUI工具,而與Workbench的交互則隻局限于起始頁、項目頁以及項目目錄層次。

當要集成用戶程序或第三方應用程序時,Workbench SDK則可以創建集成所需的有關文件。

SDKDLL

SDK是Workbench架構下集成其它外部程序的主要接口,它是一種基于Microsoft COM技術的組件(動态連接庫DLL)。對于Workbench的所有對外接口,它提供了一種基于Smart Pointer(CcomPtr)的包裝器。這就允許用戶根據自己所選擇的開發語言,采用标準的Windows(DLL)文件或者UNIX(so/sl)共享庫來開發自己的應用程序,無需遵循基于COM 技術的編程要求。這些應用程序利用與計算機平台相對應的标準數據庫附件連接到激活的Workbench會話中,允許用戶将任意數量的同時運行的應用程序連接到Workbench對象中,而不受外部程序所用編程語言的限制。

腳本引擎

Workbench 框架支持在Windows、UNIX(HP-UX,SunOS)、以及Linux平台上用Jscript 或VBScript 來開發應用程序,後面我們将會介紹有關創建和嵌入腳本程序的架構細節。腳本和XML提供了在Workbench環境下創建流程控制(Workbench仿真向導)的主要工具。

工程數據庫

Workbench下的工程數據模塊為用戶提供了一個在所有激活的Workbench應用程序間共享材料屬性數據、梁截面形狀等信息的環境。工程數據是以XML文件格式存儲的,因而可以在不同的平台之間調用。同時,它也允許用戶以其他格式創建數據,從内部和/或外部傳給所用的應用程序。

有限元模型處理工具(FE Modeler)

FE Modeler 的目的是為了:

  1. 支持用戶的曆史數據和方法,使其可再利用;
  2. 提供一個簡單而完整的途徑,将用戶手上的原始系統向Workbench轉換。

這個模塊可以讀取由NASTRAN、ABAQUS或者其他軟件生成的輸入文件,并且将它們轉換成一個Workbench中性有限元模型,而這些模型可以用于Workbench支持的有限元求解器。

ANSYS 提供的應用程序

以下組件為嵌入Workbench 的ANSYS應用程序,這些應用程序允許用戶或者第三方應用程序去調用它們的數據,并可根據用戶的參數去驅動它們。

DesignXplorer (DX)

除了傳統的DOE方法,ANSYS DesignXplorer還提供了獨有的變分技術。變分技術可以隻通過一次有限元求解就得到整個設計空間,因而可以快速的進行What-if研究以驗證各種設計思想。變分方法可以比傳統的DOE方法快10倍到數千倍,它的出現使設計者和分析人員可以對多個方案進行快速的評估,其所耗時間遠遠低于DOE方法。它的可變參數包括:CAD幾何參數、材料特性、殼的厚度、以及象加強筋個數這種離散參數,等等。該方法适用于三維實體模型、梁殼模型、二維平面模型等,可以是單個零件、也可以是裝配體。

Design Modeler (DM)

Design Modeler 是一個嵌入的ANSYS模塊,是一個面向分析的的參數化建模工具,其主要作用是用于簡化和修複CAD模型,以便于分析。它使Workbench在各種參數化的CAD系統基礎之上,附加一個參數化的建模工具,以便對CAD模型進行必要編輯修改,從而減小分析的規模。Workbench的這種同時将模型編輯、CAD系統、仿真工具等要素融為一體的能力,對“分析驅動産品設計”理念而言,提供了一種最好的支持。

Simulation

Simulation 模塊是用于有限元分析的主要前後處理工具,該模塊通過後面将會詳細介紹的分析向導功能,提供了多個層次的流程用戶化開發能力。Simulation模塊可以作為一個門戶,讓用戶可以方便地使用駐留在各種計算機平台上的有限元求解器,用戶可以在本地計算機、或其它聯在網絡上的任何Windows、UNIX或Linux機器進行求解計算。ANSYS求解器是設計成可以進行大規模并行計算的,隻要有可能,在這些機器上、甚至超級計算機上,都可輕松實現并行計算。在Workbench框架下,求解任務可以同時分配到32位和64位的平台上進行。

3.1.3 框架功能間的數據流

整個Workbench框架是作為一個基于C++對象的架構開發的,這使得整個框架内部的任意對象均可直接與各公共接口、運行中的應用程序、以及組件等實現對接。另外,Workbench框架為ANSYS、用戶、或第三方的各種應用程序提供了大量的公用服務。

下面這幅圖體現了這些對象之間的交互作用:

框架應用程序

本節将詳細描述Workbench框架架構及其組件,這個框架的優勢在于,它可以讓用戶将任意數量的工程設計和仿真程序集成在一個統一的工作環境下。

在我們考察Workbench應用程序之前,讓我們先來看一下Workbench的開發背景,工業界的多方面需要導緻了Workbench的出現,包括:

  1. 産品的真實模拟和虛拟樣機(工程仿真)需要一種工具來處理一系列的問題,包括應力、振動、疲勞、運動、熱力學、以及流體動力學等;
  2. 如果不進行合作的話,沒有任何一家技術提供商可以提供完成整個仿真工作所需的所有技術;
  3. 用戶在進行仿真分析的時候,通常需要在流程中添加自己解決方案,以對各種流程進行裁剪或使其具有很好的自動化特性;
  4. 工程師應該能夠從CAD系統中導入模型,并能和CAD系統實現交互操作,這樣可以減去重複的建模工作;
  5. 需要一種可以使仿真程序在不同的計算機平台上和不同層次上共享數據、減去重複工作的方法,這包括:
  • 可在本地機上快速實現單學科分析;
  • 可将複雜問題分配到聯網的服務器上求解,然後在本地機上管理和觀察計算結果;
  • 可在這些機器上共享模型和數據。

3.1.4 概述

産品分析工作的内容和複雜性是千變萬化的,它既可以是一個單一零件在約束和載荷條件下的分析計算,也可以是對整個複雜裝配體作整體分析

由一個或多個項目構成的Workbench會話所包含的内容有:

  • 與CAD系統之間的雙向鍊接;
  • 用Design Modeler對CAD模型進行參數化修改和簡化(無需修改原始CAD模型),以适于分析計算;
  • 對CAD模型或修改過的模型施加不同的分析環境(載荷和邊界條件);
  • 在不同的環境下求解(本地或遠程);
  • 解釋結果文件并生成計算報告;
  • 根據指定的優化标準對零部件、産品、或模型進行優化;
  • 根據分析結果修改CAD模型;
  • 在同時運行的應用程序上共享模型、參數和數據。

下圖描述了用戶如何在Workbench内部對設計仿真流程進行交互操作和控制

對于一個激活的Workbench會話,用戶的操作有:

  1. 打開與仿真相關的現存項目或新建項目
  2. 可以使用(鍊接)現存的或修改的CAD模型或裝配體
  3. 可以選擇使用原始CAD模型或修改後的模型來進行分析
  4. 進入Simulation模塊,施加需要的材料數據、載荷和邊界條件給單個或多個分析類型
  5. 在求解之前的任何時間,可以選擇求解器平台和并行計算
  6. 開始求解-求解過程在用戶指定的平台上進行,求解過程由Workbench監控,求解完成後結果自動返回到用戶處
  7. 觀察結果,生成計算報告供其他人查閱
  8. 在不同的應用程序間切換,改變CAD參數、Design Modeler參數、載荷和邊界條件等,并重新計算,直到獲得滿意的結果?

在任何Workbench仿真會話中,參數可以在所有激活的應用程序間共享。

如果一個Workbench會話包括多個步驟和求解過程,而這個過程對所有的零件和裝配體都是一樣的,則用戶可以用Workbench分析向導捕捉這個重複的過程。分析向導将在後面詳細解釋。

4. 軟件開發工具 (SDK)

SDK的目的就是提供一個完整的環境,以支持用戶附加的應用程序的開發,這些應用程序隻需要極少的改變即可嵌入Workbench環境中運行。該開發環境從不規定必須使用哪一種指定的計算機程序語言,也不需要為了能在Workbench中運行而将已有的應用程序轉化成新的構架。

另外,非常關鍵的是SDK允許在各種平台(Windows、UNIX或Linux)間使用同樣的(通用)源代碼。

同樣重要的是,用戶在安裝和卸載這些應用程序時,是與Workbench本身的版本無關的。應用程序向上兼容Workbench今後的新版本,當安裝新版本的Workbench時,它能自動識别并發布以前已經安裝好的外部應用程序。

Workbench框架為各種嵌入應用程序提供了一個基本運行平台,這些應用程序所需要的核心技術被嵌入到各種各樣的框架對象中,框架中的主要組件是一系列基于Microsoft COM技術的對象,為客戶化和外部應用程序的集成工作提供了一個非常容易使用的環境。在應用程序的開發上,無論是ANSYS、ANSYS的合作夥伴、還是用戶、以及用戶的技術提供商等,所采用的技術都是一樣的。

SDK 功能介紹

下圖闡述了Workbench SDK的基本構成和内容:

SDK的基礎是在Workbench框架下的嵌入組件(SDKDLL),該DLL是基于COM技術的、并且是在開發周期中随每個Workbench代碼的建立而同時創建的。

SDKDLL的基礎之一是使用COM Smart Pointer接口,它是激活的COM組件的參照。在SDKDLL的建立過程中,程序會圍繞輸出函數自動産生C和C++包裝器,并且生成所有必需的文件頭,以支持外部應用程序的開發和集成。這個不斷建立的過程自動獲取整個ANSYS研發機構所開發的所有新的應用程序接口,它還能維護任何對以前的SDK APIs有影響的源代碼變化,這就保護了以前開發的外部應用程序的向上兼容性。

4.1.1 SDK功能

SDK包含以下工具和功能:

自動注冊

Workbench采用在Windows、HP-UX、SunOS 和Linux上執行的微軟注冊程序來管理内部組件和嵌入的外部應用程序。該自動注冊程序會自動注冊并發布用Workbench的Applet Generator創建的應用程序。

錯誤俘獲

因為Workbench是設計成用來在統一的環境下集成多種(同時運行的)應用程序,因而其更像一個操作系統。

譬如,如果你正在用Microsoft Word時它崩潰了,所有正在運行的其它應用程序和操作系統都還是可以照常運行的。SDK必須保護正在使用各種仿真應用程序的Workbench用戶不會受到某一個單獨運行程序的不管什麼原因的突發性故障的影響,SDK的錯誤俘獲機制正是用于阻止這一類型的同生或串連故障。

Socket連接

為了更方便地通過Workbench起始頁和項目頁對應用程序進行管理,Applet Generator(應用程序創建器)在創建一個SDK Applet時,采用的是socket或FIFO管道接口與外部程序鍊接。通過使用Applet Generator,所生成的代碼就包括了傳輸窗口指針、控制、以及事件給外部應用程序的方法。

Applet Generator(應用程序創建器)

Applet Generator是一個非常獨特的工具,用于支持快速開發、集成和執行嵌入的外部應用程序。實際上,它是一個Microsoft Visual Studio向導,它基于内部、客戶、或第三方的要求來創建Workbench SDK應用程序。在後面的SDK Application View 一節中會對它的操作和使用作詳細介紹。

UNIX Make Files

雖然Applet Generator是一個Visual Studio工具,但它已被設計成可以創建與平台無關的應用程序源代碼,通用(未更改)代碼能在Windows、HP、Sun和Linux下成功地編譯和鍊接。

因此,在開發者的項目(源代碼)目錄下,Applet Generat會輸出一個Makefiles文件,該文件是自動産生的,它包含了每個平台所需的所有編譯和鍊接選項。在這些平台上所需的實際上就是複制、mount或鍊接開發者的源目錄和執行正确的Makefile命令。

安裝工具

SDK的目的不僅是使應用程序的開發更加方便,而且也要使應用程序的分發、安裝/卸載變得更簡單。Applet Generator可以為各種平台(HP、Sun、Linux和Intel(windows))自動創建安裝和卸載的執行文件。

功能模塊之間的數據流

下圖描述了在開發和運行SDK應用程序過程中,數據和流程的整體狀況。

.

SDK 應用

SDK已經被ANSYS及其用戶和合作夥伴用來做内部和外部的開發使用,Applet Generator的流程和使用對于不同的應用程序而言是一樣的,本節将讨論它的一般運行過程,及其輸入、輸出和執行。

4.1.2 SDK 應用介紹

根據不同的開發目标,以及不同的應用程序嵌入方式,可以選擇如下幾種不同的方法實現:

  1. 用ANSYS的現有組件,從零開始,建立一個完整的垂直應用程序;
  2. 在一個項目中嵌入一個用戶自己的應用程序、或者文檔(如Word、Excel等等).;
  3. 使用Workbench的GUI、TreeView、或者ListView;
  4. 使用自己的GUI工具和庫文件;
  5. 在Workbench 嵌入一個外部應用程序,利用其良好的程序構架和CAD plug-in功能。

具體的開發執行會有多種方法,但是SDK工具的基本概念和構架是一樣的。下圖描述了利用Applet Generator開發、決策、以及查看結果文件的基本流程:

這張圖表描述了應用程序開發的基本流程,從概念設計到發布,再到應用階段。

5. 腳本引擎

因為 Workbench 是作為一個工作環境為進行工程仿真的用戶服務的,因此能夠根據用戶的需要,使用Workbench的架構來定義仿真流程和分析方法。

在前一部分中,我們讨論了SDK和Applet Generator創建腳本(JScripe)程序的功能。

也可以在Project層面集成各種 JScript、VBScript 或者其他 ActiveX 文檔。腳本引擎支持 Windows、HP-UX、SunOS 和 Linux操作系統。

Simulation Wizard就是使用了腳本引擎的工具之一,它主要用于創建仿真流程的管理工具。Simulation Wizard 可以集成JScript和XML文檔,以定義和控制與一個特定流程相關的各種用戶操作。

腳本引擎功能介紹

下圖闡述了與腳本引擎相關的,各種由ANSYS提供的、或用戶自己開發的工具。

腳本引擎是Workbench 框架的一個集成組件,所以,在該框架中,任何開發的分析方法或仿真流程工具都可以訪問任何開放的參數、方法、激活的Workbench應用程序的腳本接口、以及CAD 參數等。

腳本應用程序也可用于将HTML 或 ActiveX 文檔以集成應用程序或獨立應用程序的方式集成到Workbench 中,用戶可以将這些應用程序作為Workbench 的Project 進行創建、管理和保存。 Robobat就是使用這種方法集成了他們的ESOP 系統(基于Excel的應用程序),Mathsoft也用這種方法将 MathCad(ActiveX)集成到 Workbench中。

腳本引擎功能

腳本引擎的功能如下表所示:

功能間的數據流動

下圖描述了在使用Simulation Wizard執行任意的仿真流程或分析方法時,數據和過程的流動狀況。

腳本引擎信息模型(數據模型)

腳本應用程序和Simulation Wizard 中的數據模型和數據流僅受所創建的應用程序的架構限制,腳本引擎由Microsoft 和 Mainsoft 支持,并且是一個嵌入式的Workbench 功能,不屬于本文的讨論範疇。JScript 和VBScript 的使用信息可以通過公開的渠道得到,它們的使用方法也可以參考公開出售的書籍和文獻,Workbench中特殊的ANSYS 腳本接口的幫助文件在 ANSYS Workbench Customization Guide中。

5.1.1 腳本引擎應用程序介紹

對用戶産品設計來說,一個最關鍵的要求是,可以創建和重新使用不同的“仿真流程”和“分析方法”,以确保計算結果的一緻性、高質量、和可比較性。使用Workbench SDK的仿真向導(Simulation Wizards)、腳本、以及集成的自有應用程序,可用很好地實現上述要求。

5.1.2 概述

基于 Web 的Workbench架構提供大量的方法便于用戶開發自己的工程仿真工具,腳本引擎是Workbench的一個核心的單元,使用戶不但可以在Windows 平台上,而且可以在HP-UX、SunOS 和 Linux 平台上使用JScript 和VBScript,它可以将基于HTML 的應用程序嵌入到Workbench 中,也可以将Workbench應用程序嵌入到HTML 文檔中。

5.1.3 腳本引擎組件

腳本引擎是一個内嵌的Workbench 模塊,腳本組件,不同于前面已讨論過的功能,它是由ANSYS或者用戶/合作夥伴創建的。因為這是個複雜的概念,外部生成的廣泛的腳本組件在此文檔中無法簡單講述。

5.1.4 腳本引擎的動态行為

采用腳本引擎,可以創建許多使用方法和行為,下圖表示的是一小部分Workbench中存在的、或可以由用戶、合作夥伴和第三方實現的可能的行為。

6. 嵌入式外部應用

為了完全理解什麼是嵌入式外部應用程序,首先讓我們看看什麼是内部應用程序,并搞清楚它是如何成為Workbench 程序的。.

内部應用程序由 ANSYS開發,它們是真實的COM 對象,并且要求使用COM接口和方法去加載、卸載和管理其他對象。

嵌入式外部應用程序是由ANSYS、合作夥伴、用戶或者第三方開發的腳本或編譯好的應用程序,它們在運行的時候加載或集成在Workbench 中,并且在一個版本周期内的任何時刻都可獨立地在Workbench 中發布。

嵌入式外部應用程序通過Workbench SDK提供的“運行加載技術”來與Workbench鍊接,它們通過包含在SDK中的應用程序接口,可以在任何的Workbench 程序中自由調用開放的COM接口和方法。Workbench 沒有強行要求這些外部應用程序的語言和結構,也沒有要求這些應用程序的開發者管理COM組件。SDK會管理這些COM組件,包括實例、範圍和對象的發布。

符号類型定義、應用程序接口、類、結構和在SDK中開放的全局變量允許外部應用程序在所有平台上(Windows、HP-UX、SunOS 和Linux)使用所有的Workbench 原代碼。

Workbench SDK的Applet Generator提供了一系列工具來集成不同類型的外部應用程序,關于這些工具的使用在本文的前面有所描述,在ANSYS聯機幫助文檔“ANSYS Workbench Customization Guid”也有詳細說明。Applet Generator産生Workbench所需的所有代碼,以管理管理外部應用,包括要求的調用和事件句柄。

ANSYS Workbench 的一個戰略性功能是,在運行時,它可以集成由ANSYS、合作夥伴、用戶、或第三方廠商提供的任意數量的嵌入式外部應用程序。應用程序接口允許在一個Workbench會話中同時運行多個應用程序,并且共享信息和參數,這使Workbench在滿足工程仿真需要方面獨樹一幟!

嵌入式外部應用程序 — 功能介紹

嵌入式外部應用程序的功能主要取決于應用程序開發者的判斷力,但是,更為關鍵的是這些應用程序的穩定性及其與Workbench的相互作用。事實上,外部應用程序的使用并不限于非ANSYS開發的軟件,這些接口目前也使用于ANSYS所開發的商業軟件,對于ANSYS用戶和合作夥伴來說,這些工具和接口在ANSYS商業産品中的使用會使其一直保持高質量、穩定性、和可靠性。

要将任意的外部技術以任意方式集成在運行環境中,需要一系列的、遠遠超過嵌入式應用程序的功能才能完成。這些功能在Workbench中管理交互作用、并控制各種不同的應用程序。

與很多其它開發工具不同的是,為了産品的集成,Workbench SDK及其Applet Generator建立了一個初始的集成程序。在為滿足外部應用程序開發者的要求而創建的模闆的基礎上,Applet Generator還創建了大量的、經過調試的應用程序。因此,開發者僅需要将自己的功能加入到所生成的應用中就可以了。

功能間的數據流動

下圖描述了Workbench、SDK和外部應用程序間基本的數據流動。

6.1.1 外部應用程序 — 應用介紹

嵌入式外部應用程序是在Workbench中集成用戶、合作夥伴和第三方應用程序的主要方法,為支持這種集成所需的工具在前面對SDK架構的說明中已經讨論過了,包括它的開發和集成方法。因此,本節的重點是應用介紹,即嵌入式外部應用程序的執行和發布。

6.1.2 概述

嵌入式外部應用程序的範圍非常大,它既可以是隻提供非常少的工程功能的簡單應用,也可以是能完成材料定義、模型建立、疲勞計算、裂紋展開計算等任務的非常複雜的工程分析工具。

下圖描述了Workbench 和各種外部應用程序間的常用的應用流程。

6.1.3 外部應用程序組件

在上面的圖形中,顯示了在配置一個或者多個嵌入式外部應用時,Workbench的基本的運行關系和交互作用。這些不同組件的具體細節、配置和使用方法在本文的前面有所描述,聯機幫助文檔“ANSYS Workbench Customization Guide”中也有詳細的說明。

由于Workbench的開放式架構,它将創建外部應用程序的工具和方法的選擇權完全交給了用戶、合作夥伴和第三方廠商。

6.1.4 外部應用程序的動态行為

由于對Workbench的運行時間和資源的使用至關重要,因此Workbench會直接管理所有的嵌入式應用程序。因為内部和外部應用程序都必須共享實時數據并交互作用,因此,在統一的工作環境下,Workbench提供了在各種應用程序之間進行動态運行時間切換的能力。在一個激活的會話中的所有應用程序雖然都保持激活狀态,但是,改變的僅僅是激活的應用程序的可見性、調用的傳遞、以及事件的處理等。

因為參數和數據共享應用程序的集成本質,Workbench對内部和外部應用都同時提供文件注冊,以保證跨文件的應用數據的續存和一緻。

用戶在運行時控制内部和外部應用程序的加載,在任何會話中,隻有那些被用戶激活了的應用程序才有它們的符号表、庫、相關内存的加載和分配。當加載外部應用程序時,是通過共享數據庫(根據操作系統不同,可能是DLL、so或者sl)運行加載機制來控制的。

外部應用程序的資源加載和使用的基礎是用戶、合作夥伴或者第三方廠商的應用程序架構。

7. 總結

我們盡力向大家展示了Workbench開發的架構和概念,如果你是一個工程師或者是一個工程管理者,你可能會疑惑這裡讨論的工程功能的細節是什麼。如果你是一個基于計算機工程和應用的開發者,你可能會希望得到更多的技術細節,因為它将會影響你在工程中的角色。

如果你處于一個工程管理者的位置,或者你為你的公司提供工程方向上的指導,那麼我們為你提出下面幾點:

  1. Workbench 本身不是一個工程分析工具;
  2. Workbench 是一個用戶環境,使你可以在一個統一的、可管理的工作環境下開發和集成自己的或其它用戶提供的應用程序;
  3. ANSYS 提供業界最豐富的工程分析工具;
  4. 在 Workbench 環境下,ANSYS 提供了大量的應用程序(模塊);
  5. 關于Workbench 客戶化工具還有更多的說明文檔。

你可能想看:

有話要說...

取消
掃碼支持 支付碼