将Sodick的图形文件转换成AGIE的图形文件 cxz 18:42 04.12.01
Agie与Sodick的图形文件格式不同,互不通用。如何实现两者间的数据共享呢?
本文将介绍如何将Sodick的图形文件转换成AGIE的图形文件。
在AGIE的图形文件(*.prg)中保存了一系列的绘图命令(类似于批处理文件)。而Sodick
的图形文件(*.asc)是以ASCII码形式保存的。它一般可分成五个部分:标志区、数据区、
辅助区、元素区、控制区。(当然这是我自己分的!)下面来详细介绍一下各个区:
A、标志区:存放版本信息、视图大小、图层、FIT等信息;
B、数据区:以十六进制形式存放图形的象素值,此区最大,一般都占140多K;
C、辅助区:存放辅助线(红线)的信息(以C开头,如CLIN,CCIR等);
D、元素区:存放各元素(白线)的信息,Sodick中有五大元素类型:点(POINT)、线(LINE)、
圆(CIRCLE)、圆弧(ARC)、倒圆(FILLET)、倒角(CHAMFER);此区最有价值,其实本区也可与
辅助区合为一区,但转换时一般只用到此区,故分为两区
E、控制区:存放NC路径信息,在生成切割路径时就形成此区;
当然也有例外的情况,你将一DXF文件导入时,系统将生成一同名的ASC文件,此文件很小
只包含标志区与元素区,一旦你另存后又会恢复它的本来面目--大于140K。
由以上的分析可以看出,我们只需将元素区的内容提取形成PRG文件即可。当然PRG文件
也需简化一下。如将点统一为“PNT/1,XY,x,Y”形式、线或倒角为“LIN/1,XY,X1,Y1,XY,
X2,Y2”、圆为“CIR/1,XY,XC,YC,R,R1”、倒圆或圆弧为“ARC2/XC,YC,RR,SANG,IANG,OUT”
(此宏命令是我为Sodick量身定做的,当然你可用三点画圆弧法画,不过这样你就需要四五
条指令了)。
好的,让我们来分析一下元素区的元素信息。(你可以参考EL DETAIL的信息格式,
你会发现两者是完全一致的。) 每个元素由三行组成:第一第二行存放元素类型、序号、线型、
颜色等,第三行存放详细的坐标、角度等数据。我们只需提取第一行的ELEM-TYPE与第三行即可。
这可通过"while(cl) { if(! memicmp(cl,"LINE",4)) {cl[5]='\0';str= fgets(fpin);
str= fgets(fpin);str=str+6;str=strcat(cl,str);fputs(str,fp);cl=fgets(fpin);}
else cl=fgets(fpin);}}"来提取并合为一行。将所有有用的信息提取后放到一临时文件中,此
时你可用EXCEL导入此文件,用形如H18:
“=IF(A18="CLINE";CONCATENATE("LIN/";G18;",xy,";B18;",";C18;",XY,";D18;",";E18);" ")”
形成PRG文件。其中圆弧中的SANG、IANG分别为起始角度与夹角。如果你不喜欢我编的ARC2宏。
你可通过形如“pnt/95,xy,-22.18741214,13.64571649 pnt/96,xy,-26.49407995,19.03071649
pnt/97,xy,-20.97407995,19.03071649 pnt/98,rp,97,r,5.52000000,a,-141.348831
cir/3,p,96,p,98,p,95”来画圆弧,当然你必须判断IANG的正负(逆时针为正,顺时针为负)
而调整“cir/3,p,95,p,98,p,96”。其实,SODICK到AGIE的转换就这一难点。
当然,还有更简单的方法就是运行我编的小程序(SODICK.EXE)。你只需选择需要转换的SODICK
文件(*.asc) 点确定。就可在AGIE中LOAD同名的图形文件。(注:在AGIE目录中不可有同名的文件
我可没空检查!我会毫不留情地覆盖的!到时找不到原来的文件可别来骂我!已修正15:21 07.12.01)
另外,为了加快运行
速度,我假设你的图形文件中肯定有一辅助线(要不是你用EDIT LN-DEL DRAFT LN删除了所有红线
的话,这几乎是不可能的!这时你只要随便加一辅助线即可。)要知道这样速度提高了十倍!这样即
使你将文件放在软盘中也可几秒钟搞定!(因为跳过了前面的140K)。
Thanks by cxz 21:18 04.12.01