邓光晋(深圳市盈瑞恒科技有限公司)
HPGL矢量图形语言应用于富怡服装CAD软件设计输出的PLT文件中,而喷墨绘图仪是富怡服装CAD必须配置的硬件设备,主要用于CAD样片纸样输出,排料图输出。
HPGL矢量图形语言应用于喷墨绘图仪,具有打印速度不受图形复杂程度的影响,只与仪器绘图宽度有关的特点,所以特别适合打印那些形状比较复杂、线条较多的图形。而且它是真正的连续打印,没有段接口的问题,打印精度较高,不会产生错位的问题。
图1为一个简单的图形,使用富怡服装设计放码软件生成HPGL语言的plt文件。
通过这个图形,我们可以清楚地看到这个正方形的描述,生成plt文件:
见图1。
IN;//初始化
SP1;//选择笔号1
LT;//线型
PU40,57956;//抬笔移动到(X:4,Y:57956),乘以0.025得到真实坐标(X:0.1,Y:1448.9)
PD4,4;//落笔从上一坐标点移至当前坐标点
PD180844,4;
PD180844,57956;
PD4,57956;
…………
将PLT格式的文件读出,将线条保存进链表,再在图形显示对话框上按相应的比例画出来。主要步骤流程如下所示:
将PLT文件中的线段保存在链表中,不用排序。
按图形大小和显示对话框大小算出画图比例。
按比例画出链表中的线条。
见图2。
生成位图,取点阵
图1
图2
第一步:将PLT文件中的线段按X方向从小到大排列好。因为我们生成位图时是按X方向一小段一小段生成的,因此在VC++中位图是按X方向取点的。
以上图为例,所取点阵为:
0xc0,0x00,0x00,0x03,0x60,0x00,0x00,0x06,0x30,0x00,0x00,0x0c……
第二步:将点阵数据高位和低位对调,即第7位跟第0位对调,第6位跟第1位对调,以此类推。
以上图为例,对调后的点阵为:
0x03,0x00,0x00,0xc0,0x06,0x00,0x00,0x60,0x0c,0x00,0x00,0x30……
第三步:将点阵数据按Y方向2字节一排排好。以上图为例,排好后的数据为:
第一排:
0x03,0x00,0x06,0x00,0x0c,0x00,0x18,0x00,0x30,0x00,0x60,0x00,
0xc0,0x00,0x80,0x01,0x00,0x03,0x00,0x06,0x00,0x0c,0x00,0x18,
0x00,0x30,0x00,0x60,0x00,0xc0,0x00,0x80.
第二排:
0x00,0xc0,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0c,0x00,0x06,
0x00,0x03,0x80,0x01,0xc0,0x00,0x60,x000,0x30,0x00,0x18,0x00,
0x0c,0x00,0x06,0x00,0x03,0x00,0x01,0x00.
未经压缩的数据流量非常大,而且图形中大部分是空白,因此压缩后的数据流量会大大减小。
压缩方式采用自定义的简单压缩方式压缩数据,如果压缩方式复杂的话,虽然减小了数据流量,却会增加绘图仪解压数据的时间。
压缩后的数据格式为:数据个数+数据+数据个数+数据……
数据个数为相同数据的个数。需要注意的是,最大数据个数为255,超过255个相同数据就要分为两次压缩。即如果连续600个0x00的话,压缩后的数据为:0xff,0x00,0xff,0x00,0x5a,0x00。
压缩后,600字节的0x00就只有6个字节了。
通过网络或者USB将压缩后的数据传输到喷墨绘图仪。
对于喷墨绘图仪,只有简单的单轴运动,没有两轴联动。
单向打印:喷头Y正方向打印一行——喷头回原点——X轴走纸
双向打印:喷头Y正方向打印一行——X轴走纸——喷头负方向打印一行——X轴走纸