笔者在AUTOCAD中编辑大量图形时,发现仅用AUOTCAD本身提供的命令,效率实在太低,故编写系列批量处理程序以提高工作效率、工作质量。1.批量修改POLYLINE的线宽(CH_w): 我们知道编辑一条POLYLINE的线宽可以通过Pedit命令来完成,如果需要编辑多条POLYLINE时还使用Pedit命令则不但需要选择目标,还要输入线宽,实在有点不方便,而且还可能漏选。其实编写个小小的LISP程序便可一次性完成。程序CH_W.LSP如下: (DEFUNC:CH_W(/wident_ssn_ssent_njent_a) (PRINC"\n请选择目标(WCWPCPF)") (SETQENT_SS(SSGET)WID(GETREAL"\n请输入线宽<0.3>:")) (if(=widnil)(setqwid0.3)) (IF(/=ENT_ssnil) (PROGN (SETQN_SS(SSLENGTHENT_SS) J0) (REPEATN_SS (SETQENT_N(SSNAMEENT_SSJ)ent_a(cdr(assoc0(entgetent_n))) J (1 J)) (if(or(=ent_a"POLYLINE")(=ent_a"LWPOLYLINE")) (COMMAND"PEDIT"ENT_N"w"wid""COMMAND)) );ENDREP );ENDPROGN );ENDIF );enddefun2.批量打印出图(Mplot) 在AUTOCAD中用PLOT命令每次只能打印一张图纸,如果在一个图形文件内有多张大小一样的图纸成纵向排列,间距M_d=500mm。通过Mplot只需调试一张,便可打印所有图纸。程序如下: (defunc:Mplot() (setqp_1(getpoint"\n\tFirstCORNER:") P_2(getPOINT"\n\tOtherCORNER:") n(getint"\n\t总张数:<1>")) (if(=nnil)(setqn1)) (setqm_d500) (REPEATn (command"plot""w"P_1P_2"n"COMMAND)