预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

用Autolisp丰富AutoCAD的绘图功能 黄文豪 (华侨大学教学实验机械厂,福建泉州362011) EnrichthePlottingFunctionofAutoCADwithAutolisp HUANGWenhao (PracticalTeachingMachineFactory,HuaqiaoUniversity,Quanzhou362011,China) 摘要:通过实例阐述了在AutoCAD中运用是用绘制矩形(rectagle)命令根据每段轴或孔的直 Autolisp语言编制参数化绘图程序的技巧,丰富了径、长度等参数,绘制多个矩形组成,或者是根据每 AutoCAD的绘图功能.段轴或孔的直径、长度等参数,绘制出中心线一侧的 关键词:Autolisp;AutoCAD;参数化绘图各段轴或孔的母线,然后以中心线为镜像操作的轴 中图分类号:TP391.72线进行镜像而成. 文献标识码:B但采用上述方法是较为繁琐的,极大地影响工 文章编号:1001-2257(2001)06-0059-02作效率.受其他一些绘图软件的启发,我们采用Au- Abstract:Basedonpracticalexamples,thetolisp语言编制程序,在作图中实现利用鼠标拖动 skillfordesigningparametricplottingprogram的实时参数化绘图,使操作变得简捷、方便,提高了 withAutolispisexpoundedinthispaper,andplot-工作效率.程序流程如图1所示. tingfunctionofAutoCADisenriched. Keywords:Autolisp;AutoCAD;parametric plotting 0引言 计算机辅助设计(CAD)在国民经济生产活动 中的作用越来越突出,应用越来越广泛.在目前众多 的CAD软件中,由美国AutoDESK公司出品的 AutoCAD目前最流行,应用最为广泛.然而正是由 于其通用性强的特点,在具体到各行各业的使用中, 就会产生诸多的不便. 基于这一点,AutoCAD提供了诸多的二次开 发手段,工程技术人员可以利用Autolisp语言编写图1 出适合自己工作需要的专用程序,提高设计绘图的运用AutoCAD绘制图形时,必须根据命令提 工作效率.示逐步输入参数,才能在屏幕上生成图形,因此Au- toCAD是一种非参数化的设计软件.我们运用Au- 利用语言编制参数化绘 1Autolisptolisp语言提供的函数(GRREAD[<Track>]),可 图程序直接追踪输入设备(鼠标)的移动,不断地从鼠标的 在机械设计绘图中,轴或孔的绘制是最经常的移动返回坐标值,并将返回值作为新的实体参数替 工作任务之一.如果运用AutoCAD直接绘制,通常换原有参数,使屏幕图形的变化与鼠标的拖动一致, 而不改变图形实体的线性、层等属性,从而达到实时 收稿日期:2001-06-28 拖动的参数化绘图效果. 机械与电子2001(6)·59· 在程序中我们将组成轴的4条直线的实体数据(entmodsubj1) 赋值给变量subj1、subj2、subj3、subj4,而后用如下(setqsubj2(subst(list10x0y2)(assoc10 语句:subj2)subj2)) (setqsubj1(subst(list10x0y1)(assoc10(setqsubj2(subst(list11x1y2)(assoc11 subj1)subj1))subj2)subj2)) (setqsubj1(subst(list11x0y2)(assoc11(entmodsubj2) subj1)subj1))(setqsubj3(subst(list10x1y2)(assoc10 将鼠标拖动的返回值替换各实体(直线)相对应subj3)subj3)) 的端点坐标参数,再用(entmod)函数修改更新各实(setqsubj3(subst(list11x1y1)(assoc11 体,在程序中运用了(grtext)函数实现鼠标移动的subj3)subj3)) 同时在状态栏上显示实时的直径、长度等参数,使操(entmodsubj3) 作过程更显直观和方便,在程序的结尾为已绘制的(setqsubj4(subst(list10x1y1)(assoc10 轴图或孔图添上中心线.这样,我们就可以快速而准subj4)subj4)) 确地绘制出所需的图形来.(setqsubj4(subst(list11x0y1)(assoc11 下列是程序实现此功能的部分片断:subj4)subj4)) ⋯(entmodsubj4) ;;;下列程序段根据预定义的长度、直径绘制组⋯ 成轴的4条直线