VB在仿真软件中操控三维对象的实现
VB在仿真软件中操控三维对象的实现
江苏省淮阴商业学校 任彦东
摘要:用VB开发SolidEdge时,可将SolidEdge理解为一个服务程序,而二次开发出来的程序为客户程序,用户只要在客户程序上进行操作,客户程序就会驱动Solidedge完成相关的工作,用户无需全面掌握SolidEdge。本文主要分析VB在仿真软件中操控三维对象的实现。
关键词:VB,仿真软件,三维对象
从20世纪80年代开始,非圆齿轮技术的发展进入了一个新的阶段,许多学者以计算机技术和数控加工技术为利器,投入到非圆齿轮技术的研究中,开发非圆齿轮专用CAD/CAM系统,取得了很大的成绩。通过将计算机模拟及交互技术引入非圆齿轮的加工中,使计算结果及加工轨迹模拟在计算机屏幕上显示,解决了大量的计算问题,增强了加工的直观性[1]。
1 Windows下的Visual Basic 编程环境简介
(1)面对对象的编程
Visual Basic应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和 方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。
Visual Basic应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。
(2)实现菜单选项
菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual Basic也提供了强大的创建菜单功能是程序更加标准。
您可以使用Visual Basic的Application Wizard也可以使用Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单[3]。
(3)实现工具栏
CoolBar控件与Office97种看到的CoolBar是类似的。CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。通过在CoolBar中迁入其他空间你局可以向用户提供更好的灵活性和义用性。
Toolbar 是工具条控件,是实现工具条的主体。其中的按钮可以显示图像和标题,并按功能分组或加入分隔符,还可以围棋设置鼠标停留在其上显示的提示字符。Toolbar也是一个控件容器且具有Style属性,并可以为其增加下拉按钮和平滑按钮等。
2 VB与仿真软件
SolidEdge是由美国UGS公司开发的基于Windows环境的中端CAD软件包,它具有强大的二维和三维绘图功能,界面友好,广泛应用于机械设计行业[2]。
Active Automation技术的完全面向对象化的编程特点,使其开发环境具备了强大的开发能力和简单易用的特点。在众多的开发工具中,VB是一个很容易上手、在二次开发中常用的一个工具。VB程序是一种基于窗体的可视化组件安排的联合,具有较强的计算功能和窗口显示功能,并且通过ActiveX技术可使用其他应用程序提供的功能。
使用VB开发SolidEdge时,首先要在工程中引用SolidEdge自带的类型库文件,才能通过ActiveX Automation访问SolidEdge提供的所有对象和方法。引用SolidEdge类型库的方法有:在VB编程环境下选择主菜单【工程】→【引用】,打开“引用”对话框,点击复选框中SolidEdge的类型库,然后点击确定按钮。然后在VB窗体相应的对象的事件过程添加相应的程序代码,运行工程项目。本仿真系统采用VB语言作为编程工具,进行系统的界面设计及椭圆齿轮加工的数据计算。
第一阶段是建模和分析,需求人员跟用户一起对整个系统进行勘察,范围可以很广但不需深入探讨,目的是识别出系统所需的各种特性,并设定项目的边界。在此基础上看系统有哪些参与者,识别出参与者才能更好地理解项目必须支持的事件。接下来是获取用例,用例实际上就是系统的功能需求,它们表示系统需要做什么,这里的关键点是用例必须是参与者发起的,由参与者监控,直至用例完成。由此得到用例图,建立系统用例模型。但有些用例比较复杂,需要进一步细化,为了更好的理解用例可以做一些详细说明。根据用例和详细说明寻找类并作出分类。寻找出类和类之间的关系就可为项目建立类图。有了类和用例能够进行动态建模,建立系统的动态模型(用顺序图、状态图和协作图等描述)。由于下一步就要进行系统的设计,设计和实现与技术是紧密相关的。所以在系统设计之前,我们需要考虑与所要实现的项目相关的技术层面问题,对系统进行规划。在这里通过VB软件体系结构的确定来作为系统设计和实现的技术指导。
第二阶段是设计阶段,分为构件设计和数据库设计。数据库设计主要是把实体类映射到表,有些实体类之间的关系也可能以表的方式存储起来;构件设计首先是将用例映射为构件,绘制构件图,然后考虑这些构件哪些需要开发,对自开发构件进行设计。
第三阶段是实现阶段,对自开发构件进行开发,按照构件图进行构件的组合。最后阶段是系统的部署,按照部署图进行系统的实施。
3 VB在仿真软件中操控三维对象的实现
在进行加工模拟之前,首先要根据被加工齿轮参数,选取加工刀具参数,然后通过加工刀具设计系统建立刀具的三维模型,并将生成的刀具保存到指定刀具模型库,以备加工齿轮时调用。通过仿真系统窗口输入要加工椭圆齿轮的模数、齿数、偏心率、阶数等参数;再到加工刀具库中选择加工所用刀具;然后点击“开始仿真加工”,系统将转到SolidEdge三维环境下,实时显示刀具的运动轨迹和椭圆齿轮加工状况,生成被加工齿轮的三维模型。齿轮机构设计简单、制造方便、传动效率高,在各个工业部门都得到了广泛的应用。直齿圆柱齿轮传动是一种常见的齿轮传动方式。在现实生产中,加工齿轮的常用方法有仿形法和展成法。本文以仿形法为例,模拟直齿圆柱齿轮的加工过程[3]。
制作步骤如下:
(1)刀具对齿轮毛坯的切削,用2个三维实体的布尔运算完成,刀具与齿轮的运动,由三维实体的Move,Rotate3D等方法完成。
(2)刀具绕自身轴线旋转切削,沿齿轮毛坯轴线上下移动切制齿轮厚度方向齿形。
(3)齿轮毛坯绕自身轴线旋转,每次转动360o/n(n为齿数),切削出各齿轮。
该程序用一个窗体Forml输入设计参数,模数和压力角。用一个公共模块Modulel自定义函数Acos(反余弦)。一般来说,函数应定义在公共模块中,使整个工程均可使用。一般情况是用一个控制类来实现业务的操作,在业务类中定义各种操作,如数据的增删改和一些属性的读取和设置。而本项目通过类HttpRequest对资源请求(数据)进行封装,如果是增删改将把操作类型和存储过程名称也封装在一起,增删改的处理是调用存储过程来实现,通过类CallProcedure提交封装的数据给服务器并取得处理结果,这是由数据库服务器直接执行,数据处理效率更高。而数据查询通过XML文件来配置SQL语句,这时类HttpRequest封装的是资源请求(查询参数)、XML文件名和SQL语句的标号,通过类GetQueryResult提交封装的数据给服务器并用它的方法GetDataSet()取得返回的查询结果。
编程时以非圆齿轮节曲线极角为变量来计算加工刀具的位置。令节曲线极角均匀递增,通过编程计算出每给一均匀递增的极角,所对应的加工刀具沿节曲线滚动及自转数据,生成新位置的刀具模型。部分程序代码如下:
Dim objApp As SolidEdgeFramework. Application
Dim objDoc As SolidEdgeAssembly, AssemblyDocument
Dim objPartFirst As SolidEdgeAssembly. Occurrence
Private Sub Combol_Click<)
XZ=Combol. ListIndex
Select Case XZ
Case 0:Timed. Interval=1
Case 1:Timed. Interval=100
Case 2:Timed. Interval=1000
End Select
……
Context ctx=null;
DataSource ds=nul
SysLog log=null;
//构造函数
public UserMan()
{
//从连接池中获取数据库连接
try(
ctx=new InitialContext();
ds=(DataSource)ctx.lookup("documents");
}
catch(NamingException e) {
e.printStackTrace();
}
本文基于VB开发工具,实现了齿轮加工的三维参数化建模和动画仿真,加深了对仿形法加工齿轮的了解,同时可把设计结果输出到其他大型分析软件如UG,Pro/Engineer,ANSYS等作为有限元分析的基础模型。
参考文献
[1]王洪欣,李木,刘秉忠. 机械设计工程学[M]. 徐州:中国矿业大学出版社,2001:105-106.
[2]张艳,等. Visual Basic程序设计教程[M]. 徐州:中国矿业大学出版社,2001:98-102.
[3]张国宝. AutoCad Visual Basic开发技术[M]。 北京:科学出版社,2006,8:146-147.
收件人:任彦东 江苏省淮安市小康城3区81号 13645238728
VB在仿真软件中操控三维对象的实现.doc