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 then
p1(0)=sa: p1(1)=sb: p1(2)=sc
p2(0)=ea: p2(1)=eb: p2(2)=ec
else
p1(0)=ea: p1(1)=eb: p1(2)=ec
p2(0)=sa: p2(1)=sb: p2(2)=sc
end if
radius=r
d=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)) then
if radius>0 then
if ((p2(1)-p1(1))>0) then
centerpoint(0)=p1(0)+math.abs(radius)*
math.cos(3.1415926/ 2-angle1)
else
centerpoint(0)=p1(0)-math.abs(radius)*
math.cos(3.1415926/2-angle1)
end if
else
if ((p2(1)-p1(1))>0) then
centerpoint(0)=(p1(0)-math.abs(radius)*
math.cos(3.1415926/2-angle1))
else
centerpoint(0)=(p1(0)+math.abs(radius)*
math.cos(3.1415926/ 2-angle1))
end if
end if
centerpoint(1)=p1(1)+(p2(1)-p1(1))/2
if radius>0 then
if ((p2(1)-p1(1))>0) then
startangleindegree=angle1+3.1415926/2
endangleindegree=angle1+3.1415926/2+angle3
else
startangleindegree=-angle3/2
endangleindegree=angle3/2
end 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 then
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)) then
if radius>0 then
if ((p2(1)-p1(1))>0) then
m(0)=p1(0)+math.abs(radius)*math.cos(3.1415926/
2-angle1)
else
m(0)=p1(0)-math.abs(radius)*math.cos(3.1415926/
2-angle1)
end if
else
if ((p2(1)-p1(1))>0) then
m(0)=(p1(0)-math.abs(radius)*math.cos(3.1415926/
2-angle1))
else
m(0)=(p1(0)+math.abs(radius)*math.cos(3.1415926/
2-angle1))
end if
end if
m(1)=p1(1)+(p2(1)-p1(1))/2
if radius>0 then
if ((p2(1)-p1(1))>0) then
startangleindegree=angle1+3.1415926/2
endangleindegree=angle1+3.1415926/2+angle3
else
startangleindegree=-angle3/2
endangleindegree=angle3/2
end if
……
3 应用实例
应用本系统, 用户只需要选择毛坯类型, 定义毛坯尺寸, 定义刀具规格, 输入编写好的数控程序, 即可验证数控程序的正确性。
例如, 用户定义一个矩形毛坯, 和一个半径为10个单位的外形铣刀, 加工一个五角星的案例, 其加工完成后的效果如图6所示。
4 结束语
利用vba对autocad的二次开发, 实现了数控程序加工的三维仿真。仿真系统不但利用了vba的数学计算功能, 更发挥了cad的三维图形功能, 使得数控仿真达到了逼真、 直观的效果, 提高了数控加工程序验证效率和准确率。
本文由 伯特利数控文章 整理发表,文章来自网络仅参考学习,本站不承担任何法律责任。
/bethel/news/
盐雾试验箱基本组成
活性炭吸附治理废气
来自地球母亲的温暖——干热岩
液压油真空滤油机常见故障判断及处理
GE新款AT600钳式超声波液体流量计
如何二次开发AutoCAD
详细介绍费斯托电磁阀的常见故障与维修方法
农村城镇垃圾处理机器无害化资源化处理体系
MYQ4*1.0矿用轻型电缆外径
MAP-005随动三元气体混配器的产品介绍
二手果蔬冻干机
智慧消防提高了消防管理的便捷性
防火泥施工注意事项
热卖AIRPAX转速处理器
BXX51防爆型检修配电箱
单糖多糖分析方法及色谱柱选型
土壤养分检测仪有没有备用电池?
粉体蝶阀V1FS/V2FS应用行业
数字交直流高斯计的作用及主要技术指标
在线氧分析仪标准气体定义