AutoCAD是美国Autodesk公司推出的优秀的计算机辅助设计软件, 其内嵌式的AutoLisp语言,更给进行二次开发的用户提供了一个强大 的工具。本人在长期进行CAD辅助绘图的实践中总结出了一些经验,编 制了一些小程序,用于解决在CAD绘图中经常碰到的一些小问题,并且 希望能够抛砖引玉,同读者朋友们互相交流,共同提高。 1.在绘图屏幕上方状态条显示系统时间和绘图比例 在绘图过程中,用户有时想知道当前的绘图比例是多少,或者想知 道现在是什么时间。虽然在AutoCAD中有Dimscale和Time这两个系统 命令可以显示出想要知道的东西,但是每次都要键入这些命令显然很 麻烦。其实解决这个问题的方法非常简单,只要在acad.mnl中的C::St a rtup()中加入下列几句DIESEL说明程序,就能够做到在每次打开一 张图时,在屏幕绘图区的上方显示出系统时间及绘图比例,且时间的显 示会随时间变化而变化。 (setvar ″MODEMACRO″ (strcat ″$(substr,$(getvar,CLAYER),1,8)″ ;显示层名 ″$(if,$(getvar,ORTHOMODE),Ortho,)″ ;显示正交状态 ″$(if,$(getvar,SNAPMODE)″ ;显示捕捉状态 ″Snap:$(if,″ ″$(=,$(index,0,$(getvar,snapunit)),″ ″$(index,1,$(getvar,snapunit))),″ ″$(index,0,$(getvar,snapunit)),″ ″/=″ ″)″ ″,″ ″)″ ″1:$(getvar,DIMSCALE)″ ;显示绘图比例 ″ $(edtime,$(getvar,date),yy-m-dd H:MM:SSam/pm)″ ;显示系统时间,精确到秒 ) ) 2.任意变换绘图十字线的角度 这个小程序可以在绘图过程中任意改变绘图十字线的角度。这对 于画任意角度的直线及其垂直线是很有效的。键入CCA命令可以通过 选取相应的实体,使十字线同实体成正交状态, 用户便可在此实体上 画与之平行或垂直的线段了。如果想恢复到原来的状态只要另外再键 入RCA命令即可。 ;;;File Name:myca.lsp ;;;By An Yuhui ;;;4-12-1995 ;;;Function list: ;;; c:cca() change current angbase ;;; c:rca() recover current angbase ;;; ********** (defun c:cca() (setq en(entsel)) (setq pt(cadr en)) (setq e1(entget (car en))) (if(=(cdr (assoc 0 e1)) ″POLYLINE″) (progn (command ″explode″ pt) (setq e1 nil) (setq e1 (entget(entlast))) ) ) (setq pt1(cdr (assoc 10 e1))) (setq pt2(cdr (assoc 11 e1))) (setvar ″snapang″ (angle pt1 pt2)) (setvar ″orthomode″ 1) ) (defun c:rca() (setvar ″snapang″0) (setvar ″orthomode″) ) 3.实现尺寸线的连续标注 AutoCAD的DIM命令中有一个Continue连续标注命令,它的作用是 在标注完一个尺寸线后,在这条尺寸线的基础上对另一条开始进行标 注,其实在使用时仍要不断地键入命令,同时当标注水平的一连串线段 时,很有可能高高低低的对不齐。以下的程序可以实现真正意义上的 水平或垂直线段连续标注,方便易用,而且速度快! ;;;File Name:dimcont.lsp |