简化SODICK的齿轮绘图 cxz 21:28 04.12.01
由于SODICK中的齿轮宏命令生成的齿形不理想,在实际生产中很少采用。
一般都是通过在AGIE中画好齿轮后,将C1-C10的参数(圆心+半径)抄下来。在SODICK中用C+R命令画辅助
线,然后用OVERDRAW命令重绘,形成半粒齿,复制即可。
但每次画齿轮时都要抄三十个数据,这难免会出错。为谨慎起见一般都要核对好几遍。另外,由于
SODICK的精度与AGIE的不同(SODICK将AGIE中的数据四舍五入了!) 用 OVERDRAW命令重绘时,一般都无法
连接。此时,应将无法连接的圆删除。用2 EL+R命令画圆,重复好几次才能成功。其实这样画出的齿轮与
AGIE的有出入了。因为用2 EL+R命令画圆可以画无数个圆。(因不是两圆的公切圆,而是一内切一外切。)
为此,我们需要简化SODICK的齿轮绘图。经过一个多月的努力,我编了个小程序实现了这一目的。
现在,画齿轮谁都可以轻松搞定。
为运行此程序,你需安装“cxz's toolkit”.(其实就两个可执行文件各一些宏,你也可直接将got.exe
和out.exe复制到agie的progs目录,将宏复制到agie的libary目录。)安装完毕后,请退出Easycut重新进入。
你将看到在边菜单上多了一“C”菜单。其子菜单上都是我新增的命令。有画中垂线,角平分线、求两点距离
两直线夹角、设置原点坐标等等。其中本程序将用到的是Gear out(out)和 Gear got(got)。现在你可以画齿
轮了(或打开任一齿轮图形文件也可),再点击Gear out(或直接在命令行输入out命令也可,这是用于画辅助
线的)点击OK即可。再点击Gear got(或直接在命令行输入got命令也可,这是用于画白线的)点击三个OK即可。
保存图形文件。运行两可执行文件(got.exe out.exe),选择你刚才保存图形文件。确定退出后。复制pic.dxf
和gear.nc到A盘。在SODICK中 UTY-HEART NC :FIle-open A:\PIC.DXF 你就可得到形成半粒齿,复制即可。
若你要检查是否正确,可在EDIT-LOAD A:\GEAR.NC 全选,复制UTY-HEART NC :SECOND LINES--C+R CIRC
在输入区:右键选粘贴。confirm 即可! (注: 如果AGIE齿轮中含直线,请在SODICK中用2-pt lines连接!)
好的,现在来看看我是如何实现的。先用AGIE窗口的自动赋值功能与命令链(CHAIN)功能将数据保存到
PRG文件中,再编一小程序提取所需参数,并将其转换成DXF文件。
使用窗口法也许是自动将参数写入AGIE的图形文件(*.prg)的唯一方法。在AGIE中的齿轮图形大致可分为
三类:无直线(withoutL)、一直线、需手动加线。对于最后一种,我们需手动加一直线。(C9与C2的公切线,
此时C1没用到) 我是根据AGIE中直线的数目来区分这三类齿轮的。(为此你不能复制图形用GCOPY命令,因
为这样会影响直线的数目)。再分别求出各图形的交点。用“svar/arcdef1$=、、、、”命令给字符串赋值
并传递给下一个命令窗口。(通过“syntax 4 1,0,6 1,0,6 1,0,6 1,0,6 params a1$,a2$,a3$,a4$
inputs myform1”接收) 同时就直接写入AGIE的图形文件中。你用其它方法都无法将数据传递写入文件中。
在AGIE中好像没有字符串合并的函数。(不能用strcat 或+ ,本宏命令我都是用手动赋值的)其实难点就在于
如何将数据写入AGIE的图形文件。若采用命令行直接接收参数,那样每次必须手动输入全部坐标,或用
CURSOR--CIRCLE X,Y捕捉功能输入圆弧上的点的坐标(但这也要求用户手动切换到这一捕捉方式)。窗口法的
另一好处是避免了通过临时文件提取数据的局限性--每次必须重新进入AGIE并单步执行。
命令链其实很简单,你只需在AGIE.cfg中加chain6$ = 'out,dg'即可。这样你一输入out就
会自动执行DG命令。这样就形成了我们所需的格式化数据文件了。其中OUT后一行是用于画辅助线(红线)的
圆(XC,YC R)你只需去掉几个逗号,另存为*.NC 文件即可。GOT后面的三行是用于画实线(白线)的圆心坐标,
起点坐标,终点坐标。如果在第三行前面有六个零(0,0,0,0,0,0),忽略它即可。
翻一下手册,你就会知道在SODICK中支持数据的批量输入,这样你可将数据以如下格式保存为NC文件:
点(X,Y,),线(X1,Y1X2,Y2),圆(XC,YCR),圆弧(XC,YCXS,YSXE,YE)。这可通过
简单的提取带齿轮参数的图形文件中参数即可。去除行头,多余的逗号。如“
while(str=fgets(fpin)){ if (! memicmp(str,"DG",2)) {str=str+3;Str=move(str); fputs(str,fp);”
即可。但在SODIK中
每次只能复制一行,当你用UTY-HEARTNC-SCEONDLINES-ARCS--C+2PT画圆弧时,你必须将其分成
三段(3,3,4)。这样你每画一齿轮必须进出HEARTNC三次。
其实,SODICK支持DXF文件的导入。你可将数据转换成DXF文件。我是参考Master CAM 生成的DXF文件格
式。(AutoCAD生成的DXF文件有太多的控制信息,R14与R13有很大的区别)本DXF文件格式很简练,除了头
尾,(0,SECTION,2,ENTITIES0,ENDSEC,0,EOF)都是有用的图形信息。你可通过“0,ARC,8,1,62,0,10,XC,
20,YC,30,0.000,40,R,50,SANG,51,EANG"来生成此DXF文件。当然,你需将坐标转换成相对于圆心的角度。而且
DXF文件每行一个数据,无逗号。在MaterCAM 中你可通过档案-转换-DXF-批量读入此DXF文件。在AutoCAD中
你可用Import命令导入此DXF文件(不过一般找不到图形在哪儿,即使用ZOOM-ALL还是很小)。Sodick好像只
支持DXF这一数据交换格式。(可导入MasterCAM中的DXF,但不支持AutoCAD中的多义线PLINE)
总体来说,本程序应该比较简单了吧!如果你还是觉得太复杂。那你自己还是手工抄吧!当然,本程序是
用CMM(C的简化版C--)编的,界面不是很好(类WINDOWS3.X)由于我没有AGIE宏语言的参考资料,我都是从它那
仅有的例子中猜出它的语法的!如果你对AGIE宏语言有深入的研究,你可编出更优美的宏命令。你也可做个
更漂亮的界面,提供更多的交互功能。在画圆弧时,我放了很多的冗余信息。其实,大多数的圆弧的起点
坐标与上一圆弧的终点坐标重合,你可只保存一次。但此时你必须将齿轮的类型信息传输给程序。另外,本
程序只对齿轮的支持,对其它图形不具通用性。你可通过
分析提取AGIE的NC文件(*.tap)中的数据,再形成DXF文件。但AGIE在我们这儿也算得上古董级的机床了,
现在一般都用Sodick编程了。这样转化就没有什么实用价值了。但如果你要将Sodick的图形文件(*.asc)
转换成Agie的程序文件(*.prg)是很简单的,我编了个小程序(sodick.exe)可实现这一目的。
(详见“将Sodick的图形文件转换成AGIE的图形文件”)
感谢我的朋友们在此期间对我的支持。并给我提出宝贵的建议。尤其感谢我的师姐,是她,一次又
一次地嚷嚷太烦了,还是手工抄抄好!这鞭策我一次次的改进。最后终于完成了。我拒绝再改!
by cxz 22:51 05.12.01