好文档 - 专业文书写作范文服务资料分享网站

基于Autolisp的AutoCAD采点功能二次开发

天下 分享 时间: 加入收藏 我要投稿 点赞

龙源期刊网 http://www.qikan.com.cn

基于Autolisp的AutoCAD采点功能二次开发

作者:范大宇

来源:《中国新技术新产品》2015年第20期

摘 要:Autolisp是一种嵌套在AutoCAD内部的编程语言,它是LISP语言和AutoCAD有机结合的产物,Autolisp是针对AutoCAD二次开发而专门设计的编程语言。在传统车加工手动编程中,首先在AutoCAD中绘制一比一图形,在使用Autolisp中自带的定位点功能,使用鼠标进行采点操作,将显示的坐标X、Y复制到程序文档中,更改坐标轴字母,这样程序中所需要的点位就采集完毕,这样的一个点接一个点的处理方法既效率低下又极易发生错误。 关键词:Autolisp;二次开发;数控车 中图分类号:TP391 文献标识码:A 1 引言

AutoCAD软件作为基础绘图软件,已经大量应用于机械行业和建筑行业。本文主要论述的是在机械行业中,应用Autolisp对AutoCAD进行二次开发,开发手动采点功能,进而应用在数控程序的编制中。 2 简介

通过使用Autolisp对AutoCAD进行二次开发,开发出专门进行采点的程序插件,只需在AutoCAD中的一比一图形上进行鼠标连续点击,对应的点位即保存到固定路径的文件中,对应的数控程序字母,极大的提高的程序编制效率。 3 总体方案 3.1 新件文件操作

由于该程序将采集点位保存到固定路径的文件中,所以在程序开始部位,我们先要在该路径新件文件。通过open命令,尝试打开D盘根目录下名字为“cnc.txt”的文件,然后关闭文件;如果该文件不存在,则在D盘根目录下新建一个名字为“cnc.txt”的文件,并且打开文件然后关闭文件。该操作的子程序名为writef2,如下:

当成功进行一次采点操作后,进行第二此采点操作时,需要先对“cnc.txt”文件进行清空操作,这样才能更好方便的进行第二此采点操作。我们使用的仍然是open命令,挂载的”w”参数在判断出存在“cnc.txt”文件后即进行清空操作。

龙源期刊网 http://www.qikan.com.cn

3.2 采点操作和写入文件操作

先通过getpoint命令提示采点进行鼠标采点,并将采得的点位以字符串格式复制给AA1变量,通过(setq BBX (CAR AA1))和(setq BBY (CADR AA1)),将采得的X轴坐标值和Y轴坐标值分别负值给变量BBX和BBY。这样就得到了鼠标所点选的点位的坐标值。通过使用prin1和prinC命令,将坐标值和字符X、Z一起输出到“cnc.txt”文件中,如下: 函数说明:

Setq 函数的作用是为变量赋值。

Getpoint函数让用户输入一个点并返回该点的坐标值,用户既可以通过拾取点来制定一点,也可以通过输入当前单位格式表示的坐标来指定点。Findfile函数在AutoCAD库路径范围中搜索制定的文件,如果文件存在则返回路径,文件不存在则返回nil。Open函数用于打开一个文件供其他I/O函数访问。该函数可以挂载的”a”、”r”、”w”三个不用的参数。prin1函数的作用是在命令行打印一个表达式或将该表达式写入一个已经打开的文件中,该函数仅仅打印指定内容,不包括换行和空格。如果指定内容中包含控制字符,该函数仍然按原样打印,而不使用扩展功能。prinC函数的作用是在命令行打印一个表达式或将该表达式写入一个已经打开的文件中,该函数与prin1相同,如果指定内容中包含控制字符,该函数将使用扩展功能,而不是按原样打印。 3.3 循环读取操作

在成功采得第一点后,无需其他操作,即可使用鼠标选择第二点、第三点等,该功能是通过循环指令while实现的,通过(while (/= AA1 nil),判断采得的点位是否为空,如不为空则继续进行采点操作。函数说明:While函数对一个测试表达式进行求值,如果是非nil,则执行各表达式,重复这个计算过程,直至测试结果为nil,返回最后所计算的那个表达式。 3.4 半径直径输出

由于数控操作系统不同,不用的数控车床使用不同的编程方式,如半径编程和直径编程的区别。为了能够更加便捷的进行采点操作,该插件对半径和直径编程都进行的开发。首先,需要对采点要进行的半径和直径编程方式进行选择:直径编程方式输入字母D,而半径编程方式输入字母R,输入采集命令使用的是getkword,如果获取的字母是D,则自动跳转到名为ZJ(直径)的子程序中,而半径编程方式输入字母R则自动跳转到名为BJ(半径)的子程序中。

函数说明:Getkword该函数等待用户输入一个关键字并返回该关键字,在调用该函数之前,需要有initget函数设置可接受的有效关键字。 3.5 定义程序命令

龙源期刊网 http://www.qikan.com.cn

函数说明:Defun函数不对任何参数求值,功能是建立一个函数定义,在后面的应用中可以调用这一函数,在Autolisp中可以定义有名或无名的函数,但是主要是定义有名的函数。该函数就是提供给用户定义一个有名函数的特殊函数。 结论

通过对AutoCAD进行二次开发,极大的提高车加工程序的编制效率,也为其它经常使用AutoCAD进行的工作的人员,提供一个解决问题、提高效率的思路。 参考文献

[1]周禾来. AutoCAD2008 Visual Lisp二次开发入门到精通[M].北京:机械工业出版社,2008.

基于Autolisp的AutoCAD采点功能二次开发

龙源期刊网http://www.qikan.com.cn基于Autolisp的AutoCAD采点功能二次开发作者:范大宇来源:《中国新技术新产品》2015年第20期摘要:Autolisp是一种嵌套在AutoCAD内部的编程语言,它是LISP语言和AutoCAD有机结合的产物,Autolisp是针对AutoCA
推荐度:
点击下载文档文档为doc格式
39wcs4x0rm0zdc523xwm17c19373ml00glc
领取福利

微信扫码领取福利

微信扫码分享