当前位置:首页 > 科技 > 正文

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 客户化工具还有更多的说明文档。

你可能想看:

有话要说...

取消
扫码支持 支付码