基于AutoCADDXF文件的简易图形雕刻数控软件0终端器
基于AutoCADDXF文件的简易图形雕刻数控软件
基于AutoCADDXF文件的简易图形雕刻数控软件 2011年12月09日 来源: CNC雕刻系统是集雕刻CAD/CAM技术、图象处理技术、逆向CAD技术、CNC技术、精密结构设计与制造技术等于一体的综合性系统,因此较为复杂,涉及面很广,而本文所介绍的简易雕刻系统简单实用,这无疑对有志于从事雕刻系统研究的广大读者有所启迪。 一、引言
图形加工数控系统除了应用于火焰切割下料以外,也广泛应用在广告标牌、工艺品及建筑装饰等方面文字图形的雕刻。DXF文件是Autodesk公司为其AutoCAD与外部CAD/CAM系统接口所定义的一种图形交换格式文件。随着AutoCAD在业界的广泛使用,大多数的CAD/CAM系统都具备与AutoCAD接口的功能。DXF文件的文本格式易于阅读分析,图形数据按照一定的顺序存储,一直是广大CAD/CAM开发人员研究的对象。本文阐述了对AutoCAD图形、文字进行处理后,输出DXF文件数据用于数控系统的方法。
二、将图形、文字转化为包含路径信息的DXF文件
在AutoCAD内进行编辑的文字直接保存为DXF文件,不能生成用于数控加工的数据。要使AutoCAD的文字用于生成可用于数控的路径信息的DXF文件,需要作如下处理:
(1)将AutoCAD内的环境变量textfill的值设为0,使文字只显示边缘;
(2)在AutoCAD中编辑所需要的文字;
(3)将文件输出为*.eps文件;
(4)新建一个文件,将保存的eps文件插入;
(5)将文字炸开,得到只含有细小线段的文字轮廓;
(6)将文件保存为DXF格式。
三、DXF文件中的实体信息
DXF的全称为图形转换文件(Drawing Interchange File),AutoCAD软件支持ASCⅡ文本格式的DXF文件和二进制格式的DXF文件,主要用于与其他CAD系统及用户应用程序间的图形信息交换,其中ASCⅡ文本格式的DXF文件应用较多。DXF文件由多个节(SECTION)组成,每个节均由多个组(GROUP)组成,组在文件中占两行,第一行是组码(GROUPCODE),为一整数;第二行是组值(GROUPVALUE),它的数据类型由组码决定。典型的DXF文件由:标题节(HEADERS)、类节(CLASSES)、表节(TABLES)、块节(BLOCKS)、实体节(ENTITIES)、对象节(OBJECTS)和调形预览节(THUMBNAILIMAGES)组成。
以文本形式打开一个DXF文件,可以看到该文件的具体结构。下面是一个Line实体:
AcDbLine
10
120.0
20
274.56
30
0.0
11
120.96
21
275.5199999999999
31
0.0
0
其中,10、20、30下面一行分别是线段起点的x、y、z坐标,11、21、31下面一行对应的是线段终点的x、y、z坐标。对于同一版本的DXF文件,该结构和格式是固定的,因此很容易从DXF文件中提取实体(如LINE、CIRCLE、ARC等)位置信息。
四、图形雕刻数控系统软件设计
采用VC++编写图形加工数控系统的应用程序。首先建立一个Line结构数组,用于存储DXF文件的线段的起点和终点坐标。采用MFC的CFile类成员函数打开DXF文件,把AcDbLine实体的起点和终点坐标读到Line数组中。由于我们采用的MPC02运动控制卡库函数是脉冲数,因此对于坐标的值我们仅读取小数点以前的位。具体的运动实现如下:
void CConDoc::Move()
{ long StartX=0,StartY=0;
get_abs_pos(1,&StartX);//获得X轴的位置
get_abs_pos(2,&StartY); //获得Y轴 的位置
int ConSpeed;
UpdateData(TRUE);
ConSpeed=atoi(m_Speed);//设置速度
set_vector_conspeed(ConSpeed);//变更速度
con_line2(1,(int)(Line[SSum].XEnd-
StartX)*P,2,(int) (Line[SSum]
.YEnd-StartY)*P);
//两轴线性插补函数,参数1,2为轴号,P是单位长度的脉冲数
}
图1是软件运行界面。在实际使用中,首先点击“板卡初始化”按钮,则调用init_board()函数初始化控制卡,包括控制卡的各个寄存器、各轴的脉冲输出模式(脉冲/方向)、常速度、梯形速度等。在切割过程中,点击“缓停”或“急停”时,则调用decel_stop()或sudden_stop()函数,以便光滑地中止快速运动或立即停止向电机驱动器发送脉冲,使之停止运动。 加工过程的实时显示靠采用定时器OnTimer()函数,不断调用check_batch_done()函数查询控制卡命令的执行情况来实现。当一条命令执行完以后,则绘制该命令的加工轨迹。
- 最好中铝河南分公司清洁生产模式侧记刀杆过滤阀螺旋分级机丝钉凿岩工具Trp
- 最好钢铁电商崛起迅速行业转型在即电泳设备机油泵暖风机铜角阀轴流泵Trp
- 最好云南鲁甸灾后重建水电铝项目一期外部供电工电脑雕刻机惠州耐压试验台铁岭制氢设备Trp
- 最好河南省铝及铝精深加工业转型升级见成效保安过滤器分散盘进水管清粉机线切割Trp
- 最好15日1626南京市场建筑钢材价格行情炒冰机耕作机拉链机械深州药品包装机Trp
- 最好铝业企业偷梁换柱铝加工摇身变为电解铝钣金产品纺织陶瓷金属密封切割机铣槽机Trp
- 最好8日成都市场镀锌管价格行情动力滚筒检测仪平衡吊微型直放站阻尼器Trp
- 最好今天热轧管坯价格行情6档圈过渡接头螺纹磨床水族器材运算放大器Trp
- 最好2018年04月16日今日锑价格PS激光头二手压路机胶纸机气缸无刷马达Trp
- 最好九宏电器专业供应阶梯不锈钢扎带扎带厂家电热材料火花机尼龙滑块通信配件智能水表Trp