将Sodick的图形文件转换成AGIE的图形文件

类别:编程语言 点击:0 评论:0 推荐:

        将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


 

本文地址:http://com.8s8s.com/it/it29644.htm