用VisualLISP开发AutoCAD表面粗糙度标注工具汪国荣(中国南车集团眉山车辆厂铸锻公司,四川,眉山,620032)[摘要]首先对嵌入在AutoCAD系统内的LISP语言特点作了简要介绍,然后详细地介绍了如何利用LISP语言编写和调用表面粗糙度标注程序,来增强AutoCAD系统功能。[关键字]表面粗糙度;AutoCAD;LISP语言;函数;绘图0、前言AutoCAD是美国Autodesk公司1982年推出的微机交互式图形系统,通过20多年的发展,其功能得到了很大的扩展和增强,已是目前最流行的计算机辅助设计软件之一,它以其强大而又完善的功能以及方便、快捷的操作在机械、建筑和工程设计领域中得到了广泛应用,但遗憾的是在该系统中未提供表面粗糙度的标注功能,这给经常绘制金属零件加工图的工程人员带来不便。不过,利用捆绑在AutoCAD(R14以后的版本)中的VisualLISP集成开发环境进行LISP语言二次开发,可以帮AutoCAD系统实现粗糙度标注功能。1、LISP语言简介1986年,Autodesk公司为了便于用户在AutoCAD基础上作二次开发,形成专业化的计算机辅助设计系统,自R2.18版本开始,Autodesk公司在AutoCAD内部嵌入了AutoLISP语言,并采用了与标准的LISP语言最为相近的语法和约定,同时还扩充了许多适用于CAD应用和专用功能。形成了能在AutoCAD系统内以解释方式运行的函数求值型语言。随着计算机软硬件技术的飞速发展,AutoLISP由于缺乏集成开发环境,源程序只能在一般文本编辑软件上编辑,不具备其他语言常用的跟踪、断点、单步等程序调式手段,已不能适应AutoCAD环境下的较大型用户化CAD应用系统开发,因此Autodesk公司不断地推出新的开发系统,从R11开始推出ADS,从R13开始推出ARX,但都是基于C语言的开发环境,用户不易在短期内掌握。终于在1998年3月,Autodesk公司从R14开始推出新一代可视化LISP编程软件—VisualLISP。2、编写标注表面粗糙度的LISP程序1)编程绘图的基本思路⑴、定义点坐标。如图1所示,首先按照国标GB/T131-96对表面粗糙度符号的规定,以用户输入的第一点(PB1B)为基点,线段PB1BPB2B与水平线成60度,定义表面粗糙度符号各端点的坐标,相关线段的角度和长度。⑵、绘出粗糙度基本图形。已知各点的坐标,利用绘图函数(pline)绘出粗糙度符号的初始图形。⑶、求出旋转角度。如图1所示,以PB1B为基点,用户鼠标指针在屏幕上的坐标点为P,利用求角度函数(getangle)可以求线段PB1BP与水平线的倾角θ,即求得粗糙度基本图形旋转的角度。⑷、求得文本放置对角线坐标。根据旋...