通用API:使用Visual Basic在工程设计和分析软件工具之间进行通信外文翻译资料

 2022-10-31 14:40:03

英语原文共 13 页,剩余内容已隐藏,支付完成后下载完整资料


通用API:使用Visual Basic在工程设计和分析软件工具之间进行通信

Prince, Stewart P., Ryan, Robert G., and Mincer, Tom

California State University, Northridge

提交于2005年ASEE年会

概要:加州州立大学的机械工程学生Northridge目前使用SolidWorks套件设计和分析工具来补充课堂学习。特别是,SolidWorks,CosmosWorks,CosmosMotion和FloWorks以及Microsoft Excel用于解决不同类型的工程问题。可以通过使用Visual Basic应用程序接口(API)来简化和增强不同程序包之间的通信。使用API,在Solidworks中创建的模型文件可以直接在诸如Excel之类的控件程序中操作,并且可以返回所产生的更改的参数以供进一步查看。本文介绍了API函数以及如何在前述软件工具之间传输数据。介绍了机器设计实例,显示了如何在Excel中设计简单的支撑轴,在Solidworks中建模,并在CosmosWorks中进行应力和偏转分析。然后将结果(包括应力,挠度和质量属性)返回到Excel进行审查。

介绍:加利福尼亚州立大学机械工程系,Northridge已经使用Microsoft Excel计算环境作为其主要编程“语言”十多年了。 工作表环境的熟悉功能,以及使用Visual Basic for Applications(VBA)执行复杂计算的能力,为分析,设计和优化工程系统提供了有效的平台。

自2000年以来,该部门一直使用SolidWorks和相关的COSMOS分析包作为设计和分析零件和组件的工具。 Visual Basic语言的持续开发以及通过应用程序接口(API)与SolidWorks“设计套件”进行通信的能力,为创建集成计算环境进行设计和优化开辟了新的可能性。

Visual Basic编程语言基于BASIC(初学者通用符号指令代码)语言,这是一种比计算机历史上任何其他程序员使用的语言。 名称的“Visual”部分是指用于创建图形用户界面(GUI)的方法。 用户不必编写多行代码来描述界面元素的外观和位置,而是将预先构建的图形对象放在屏幕上,从而显着减少编程时间。

Visual Basic已经从原始的BASIC语言演变而来。它现在包含许多新的语句,以及直接与Microsoft Windows GUI中找到的关键字。 开始学习Visual Basic的学生可以使用几个关键字创建强大的应用程序,但该语言可以强大的高级编程,并适合于工程课程。

Visual Basic支持集成开发环境(IDE),这是一个将程序设计,编辑,编译和调试集成到通用环境中的工作环境。 其他程序将在每个功能单独的程序中,使开发更加困难。

该API允许学生使用Visual Basic在另一个应用程序内进行编程。 许多应用程序,如基于Microsoft Windows的应用程序,以及Solidworks套件,DP Technologies Espirit和无数其他应用程序,都支持Visual Basic和API。 使用API,学生可以在另一个应用程序的内部编写自己的自定义程序,也可以直接在它们之间进行通信。 这使Visual Basic和API成为学生的重要工具,因为他们需要在追求工程学位的同时学习许多不同的应用程序。

应用程序的API可能支持多种语言(Visual Basic,C ),因此API和编程语言之间存在明显的区别:应用程序可以包含支持不同语言的API,而可以使用Visual Basic等编程语言 在应用程序中创建一个程序。

了解Visual Basic

因为Visual Basic是如此容易学习和非常强大的,它经常被工程学生用来创建自定义程序和解决问题。 Visual Basic程序的最基本的部分是窗体。 表单对象是可以放置控件的界面的最基本的构建块,并且可以在其后面创建代码。 程序可以包含许多形式。

控件是要包含在表单中的对象。 几乎有几千个控件可用,包括:文本框,标签,计时器,对话框,按钮等等。 大多数学生将使用允许输入和显示数据,访问其他应用程序和处理数据的控件。

Visual Basic中的每个对象都有自己的一组:属性,方法和事件。 例如,考虑一个电话(而不是一个Visual Basic对象,但只是用来演示这个概念)。 电话的属性可能包括大小,类型和颜色等属性。 电话的方法或动作可能包括拨号或挂断。 还可以对事件作出响应,例如响应拨号。 一个类与一个对象不同,它定义了一个在执行过程中创建的对象的结构或行为。

Visual Basic代码可以通过两种方式添加到程序中:(1)将表单(2)放在模块中。 一个表单是图形化的,后面是一个编码区域。 该区域可用于子程序的一般编码以及响应对象事件的代码。 模块是可用于子程序的另一个编码区域,但不能用于事件代码。

典型的Visual Basic程序可能如下创建:假设程序的目的是基于一组输入(例如,力,区域)计算输出值(例如压力),可以使用文本框创建一个表单 ,标签和按钮(例如计算按钮)(参见图1)在计算按钮下方存在一个子程序,它将根据力和区域文本框中的值计算压力。 单击计算按钮将创建一个激活计算子程序的事件。 然后,子程序将该值发送到输出压力文本框。 如果宏驻留的程序是Microsoft Excel,则输出也可以写入表单单元格,但是如何处理数据取决于宏所在的位置。

图1:Microsoft Word中的visual Basic API布局,显示带有文本框,标签和按钮的表单。

创建程序后,可以通过直接从IDE作为解释程序(宏)运行,或者通过编译并将其作为独立程序(可执行文件)运行来启动程序。 在大多数情况下,学生将宏嵌入应用程序并直接从IDE运行,或在应用程序中的某处执行该按钮。

SolidWorks和序列设计

SolidWorks设计套件是为计算机辅助设计(CAD)创建的一组应用程序。 像许多其他程序一样,SolidWorks支持API,并提供了大量独特的对象,可用于执行简单的任务,如数据操作,但也足够强大,可以从一组指导方程构建整个程序集。 这种方法比SolidWorks中的“设计表”选项要强大得多,通常用于通过Excel工作表来控制零件几何图形,该工作表具有链接到关键尺寸的单元格。

套件的核心是一个建模程序,其中首先创建实体。 套件中的其他程序可以从同一个SolidWorks GUI访问,使访问几乎无缝和简单。 这减少了学生学习宇宙分析软件包所需的时间,因为使用的菜单和术语类似。 请注意SolidWorks画面中的COSMOSWorks菜单标题,如图2所示。

图2使用Solidworks创建的示例程序集,显示了分解视图。

虽然主要的SolidWorks程序可以执行其他任务,例如创建零件和图纸的装配,但是SolidWorks中的其他程序集成使套件变得如此强大。 该套件包含执行以下任务的设计工具:运动学,有限元应力,流体流动,制造和热传递分析(以及更多)。 在一个程序之间的意思是改变的套件之间是完全相关的反映在另一个程序中。

使用套件,学生首先对零件进行建模。 自动创建一系列默认功能(三个默认基准面和坐标系),并在功能管理器窗口中可见。 学生通过在任何可用的平面上创建一个简单的草图来开始创建实体。 然后将此草图挤出或旋转以创建基础固体(也是特征)。 然后可以使用此技术添加或减少材料,直到模型(单个模型是零件)完成。

部分完成后,可以进行多种类型的分析。 例如,如果学生希望在零件(或组件)上执行压力分析,则选择COSMOSWorks Stress选项,将包含与有限元应力分析相关的所有菜单的压力界面暴露出来。 在应用必要的加载和约束之后,将模型进行网格划分,并选择分析类型(静态,动态)。 仍然在SolidWorks中,执行分析并返回结果。 所有重要信息,如应力,变形,应变和安全系数均以图形和数字格式提供。 由于存在完整的关联性,因此可以改变模型的几何形状,并且所有分析参数都将被直接更新,从而使迭代成为非常简单的任务。

SolidWorks API

SolidWorks和该套件中的许多程序通过API支持Visual Basic。 这允许学生(1)创建程序以简化和自动化套件内的操作(2)创建程序以在模型创建之前或期间进行初步分析(3)与支持API的套件外的程序共享数据。

SolidWorks创建了一系列丰富的对象,它们包含方法,属性和事件。 列表太长时间不能在这里详细讨论,因此只会考虑几个。 通常,Visual Basic程序或宏将以“getobject”方法(函数)或“createobject”方法开头。 这些方法获取或创建所需应用程序的实例。 如果在SolidWorks内部,将使用getobject函数,例如,如果Microsoft Excel内部可以使用,这取决于应用程序是否已经打开。

例如,考虑以下几点。 假设在SolidWorks中创建了一个零件,并且具有名为“D1”的维度的功能,则从在SolidWorks应用程序中写入的宏中获取的一段代码可能看起来像以下:

例如:

Set swapp = GetObject(, 'sldworks.application')rsquo;

Set part = swapp.ActiveDocrsquo;

Set feature = part.FirstFeaturersquo;

end sub

第一行获取应用程序对象(请注意,必须在创建对象时使用set命令)。 一旦创建了外部应用程序的新实例并获得了对应用程序对象的引用,则可以访问顶级应用程序对象下的各种对象以及各种属性和方法,例如活动部分或文档 ,和功能。 因此,现在可以使用的第一个功能以及其所有方法,属性和事件。

·交换对象或solidworks_application对象被创建。

·零件对象或solidworks零件对象是从solidworks中的活动零件创建的。

·要素对象或solidworks要素对象是从零件中的第一个特征创建的。

现在考虑子程序的其余部分。 只要在当前部分提供功能,程序就会开始骑自行车,暴露需要的任何信息。 在这种情况下,需要找到名为“D1”的维并更改其值。

只要功能存在,继续WHILE循环

featurename = feature.Name lsquo;expose the name property of each feature

Set thedispdimen = feature.GetFirstDisplayDimensionrsquo; get the dimension object of the feature object

While (Not thedispdimen Is Nothing)rsquo; as long as the dimension is not nothing, continue while loop

Set thedimen = thedispdimen.GetDimensionrsquo; create and get the dimension object of the feature

thevalue = thedimen.Valuersquo; get the value property of the dimension object

thename = thedimen.Namersquo;get the name property of the dimension object

If thedimen.Name = 'D1' Thenrsquo;keep cycling through the features until the d1 dimension if located

thedimen.Value = 25rsquo;change the value (property) of the d1 dimension to 25

End If

Set thedispdimen = feature.GetNextDisplayDimension(thedispdimen)rsquo;get the next dimension object

Wend

Set feature = feature.GetNextFeature()rsquo;get the next feature object

Wend

因此,名为“D1”(属性)的维(对象)的值(属性)更改。 还可以从模型中获取信息:

Set swmodelext = part.extensionrsquo; get extension info

Set mass = swmodelext.createmasspropertyrsquo; create mass array object mass.usesystemunits = False

vol = mass.volumersquo;get the volume property

mprop = swmodelext.getmassproperties(1, nstatus)rsquo;get t

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[141741],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。