0 引言VBA是一种自动化语言, 结合相应的图形软件, 它可以按照用户的要求, 自动地生成一系列的动作指令。微软开发的图形设计软件AutoCAD, 由于其具有丰富的方便、 快捷的绘图工具, 使得该软件在机械制造行业、 建筑行业中得到了广泛的应用。本文以VBA为开发语言, 依托AutoCAD强大的绘图功能,设计并开发了精工仿真软件。该软件根据用户编写的精工程序, 在自定义的毛坯中, 通过刀具的移动完成材料的切削, 进而实现零件的加工。所有这些过程, 均以三维图形的方式进行动态显示, 可以将精工程序加工的细节详实、 直观地展现在用户面前。利用该软件可以极大地减小零件试切的损失, 对于提高生产效率具有积极作用。1 仿真系统结构设计根据实际零件加工的操作顺序, 精工加工仿真程序设置了零件定义、 程序调用、 刀具选择等功能。系统的顶层功能结构如图1所示。本仿真系统可通过两个对话框定义毛坯的长L、 宽W、 高H、 工作坐标系X、 Y、 Z以及刀具的规格直径Ф、 对刀长度L用户可通过一个文件对话窗体选择精工程序PRO。具体的窗体界面如图2所示。2算法规划与完成2.1 VBA引入衔接AutoCAD选用面向目标的程序规划办法,运用Visual Basic在AutoCAD2005上用VBA技能进行二次开发,可以较好地完成体系程序参数化绘图。VBA是经过AutoCAD ActiveX Automation接口来树立和AutoCAD目标间的联络。ActiveX是树立在COM目标模型之上的一个标准通信协议, 它答应目标之间经过必定的接口相互通信。而AutoCAD ActiveX提供在AutoCAD外操控编程的机制, 经过运用AutoCAD目标, 完成对AutoCAD的操控。2.2 刀具切削实现在精工机床完成零件加工过程中, 主要涉及到两种基本的加工路径, 它们分别是直线运动、 圆弧运动。对于直线加工模型, 主要是定义加工的起点AA和终点B。移动刀具的对刀点在AA和BB之间, 我们利用均匀直线插补算法求得; 刀具和毛坯重合部分, 可以借助对毛坯执行布尔运算生成, 以示零件被切削部分。模型如图3所示。圆弧加工模型, 由于曲线的复杂性和G02、 G03圆弧插补加工方式选择的需要, 在确定加工特征信息时应包括: 起点SA、SB、 SC、 终点EA、 EB、 EC、 半径R, 顺时针G02、 逆时针G03。圆弧生成的变种可以由角度参与确定, 对于加工整圆分为: 顺时针、 逆时针两种。在整个加工模型的建立中, 圆弧加工涵盖了加工的各种基本情况, 因此圆弧加工设计是系统实现的关键。圆弧加工模型如图4所示。下面是基于VBA开发的部分圆弧加工程序:……If G02G03 Like "G02" Thenp1(0)=sa: p1(1)=sb: p1(2)=scp2(0)=ea: p2(1)=eb: p2(2)=ecElsep1(0)=ea: p1(1)=eb: p1(2)=ecp2(0)=sa: p2(1)=sb: p2(2)=scEnd Ifradius=Rd=Math.Sqr((p2(0)-p1(0))*(p2(0)-p1(0))+(p2(1)-p1(1))*(p2(1)-p1(1)))d1=Math.Sqr(radius*radius-(d/2)*(d/2))angle1=Math.Atn(d1/(d/2))angle3=3.141592-(angle1+angle1)If (p2(0)=p1(0)) ThenIf radius>0 ThenIf ((p2(1)-p1(1))>0) ThencenterPoint(0)=p1(0)+Math.Abs(radius)*Math.COS(3.1415926/ 2-angle1)ElsecenterPoint(0)=p1(0)-Math.Abs(radius)*Math.COS(3.1415926/2-angle1)End IfElseIf ((p2(1)-p1(1))>0) ThencenterPoint(0)=(p1(0)-Math.Abs(radius)*Math.COS(3.1415926/2-angle1))ElsecenterPoint(0)=(p1(0)+Math.Abs(radius)*Math.COS(3.1415926/ 2-angle1))End IfEnd IfcenterPoint(1)=p1(1)+(p2(1)-p1(1))/2If radius>0 ThenIf ((p2(1)-p1(1))>0) ThenstartAngleInDegree=angle1+3.1415926/2endAngleInDegree=angle1+3.1415926/2+angle3ElsestartAngleInDegree=-angle3/2endAngleInDegree=angle3/2End If……2.3 实体加工模型AutoCAD具有很强的图形绘制能力, 利用该软件的三维图形绘制命令可以轻松绘制逼真的实体模型。本系统利用自定义的加工函数完成实体模型的加工, 用户只要给定加工所必须的信息, 就可以实现零件的自动加工。自定义函数的原型如下:arcsolidtrace s(0), s(1), s(2), e1(0), e1(1), e1(2), radius, R,H, boxObj, cylinderobj, G02G03函数名称为arcsolidtrace, 圆弧的起点的三维坐标值为s(0), s(1), s(2), 圆弧终点三维坐标值为e1(0), e1(1), e1(2), 圆弧半径为radius, 刀具半径为R,对刀长度为H,零件毛坯实体为boxObj, 刀具实体为cylinderobj, 加工方向为G02G03。程序依照精工圆弧加工规律和给定的参数值, 判断加工路径并完成零件毛坯的布尔运算。部分程序代码如下:……d=Math.Sqr((p2(0)-p1(0))*(p2(0)-p1(0))+(p2(1)-p1(1))*(p2(1)-p1(1)))If d<>0 Thend1=Math.Sqr(radius*radius-(d/2)*(d/2))angle1=Math.Atn(d1/(d/2))angle3=3.141592-(angle1+angle1)If (p2(0)=p1(0)) ThenIf radius>0 ThenIf ((p2(1)-p1(1))>0) Thenm(0)=p1(0)+Math.Abs(radius)*Math.COS(3.1415926/2-angle1)Elsem(0)=p1(0)-Math.Abs(radius)*Math.COS(3.1415926/2-angle1)End IfElseIf ((p2(1)-p1(1))>0) Thenm(0)=(p1(0)-Math.Abs(radius)*Math.COS(3.1415926/2-angle1))Elsem(0)=(p1(0)+Math.Abs(radius)*Math.COS(3.1415926/2-angle1))End IfEnd Ifm(1)=p1(1)+(p2(1)-p1(1))/2If radius>0 ThenIf ((p2(1)-p1(1))>0) ThenstartAngleInDegree=angle1+3.1415926/2endAngleInDegree=angle1+3.1415926/2+angle3ElsestartAngleInDegree=-angle3/2endAngleInDegree=angle3/2End If……3 应用实例应用本系统, 用户只需要选择毛坯类型, 定义毛坯尺寸, 定义刀具规格, 输入编写好的精工程序, 即可验证精工程序的正确性。例如, 用户定义一个矩形毛坯, 和一个半径为10个单位的外形铣刀, 加工一个五角星的案例, 其加工完成后的效果如图6所示。4 结束语利用VBA对AutoCAD的二次开发, 实现了精工程序加工的三维仿真。仿真系统不但利用了VBA的数学计算功能, 更发挥了CAD的三维图形功能, 使得精工仿真达到了逼真、 直观的效果, 提高了精工加工程序验证效率和准确率。本文由海天精工文章整理发表,文章来自网络仅参考学习,本站不承担任何法律责任。//hjlmptdlw.com/