(print "图号修改(型如GCGS2010-165-19,若为多行文字请先炸开),命令:thxg")
(defun c:thxg(/ all endno aa bb cc wz tha thh thq th srz)
(if (null xzz) (setq xzz 0))
(setq srz(getint (strcat "输入修正值<" (itoa xzz) ">:")))
(if (not (null srz)) (setq xzz srz))
(setq ALL (ssget(list (cons 0 "text"))))
(if all (SETQ nn (SSLENGTH ALL)))
(print (strcat "设定的修改值为:" (itoa xzz)))
(setq endno 0)
(WHILE (and (<endno nn) all)
(setq aa (ssname all endno))
(setq bb (entget aa))
(setq cc(cdr(assoc 1 bb)))
(setq wz(rinstr cc "-"))
(setq tha(substr cc (+ wz 1) ( - (strlen cc) wz -1)))
(setq thh(itoa (+ (atoi tha) xzz)))
(setq thq (substr cc 1 wz))
(setq th(strcat thq thh))
(setq bb (subst (cons 1 th) (assoc 1 bb) bb))
(entmod bb)
(print (strcat cc "已修改为" th))
(setq endno (+ endno 1))
)
(print)
)
(defun rinstr(str cset / len i aa)
(if (>(strlen str) 0)
(progn
(setq i (strlen str))
(setq aa(substr str (strlen str) 1))
(while (and (/= aa cset) (>= i 1))
(setq i(1- i))
(setq aa(substr str i 1))
)
)
)
(setq i i)
)
方法/步骤创建一个cad,新建一个工程,如下图所示。
在lisp编辑器中编写一下程序,程序的作用为计算线段总长度,并选择另存为位置,保存文件lsp文件。
使用cad加载lsp文件,选择lsp文件位置。
在命令栏点击l,用cad绘制几条线段,如下图所示。
在命令栏输入ll,选择所有线段,则在图下计算并显示出了所有线段的总长度,如下图所示。
用lisp的代码为(defun c:LL ()
(setvar "cmdecho" 1)
(setq en (ssget (list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))
(setq i 0)
(setq ll 0)
(repeat (sslength en)
(setq ss (ssname en i))
(setq endata (entget ss))
(command "lengthen" ss "")
(setq dd (getvar "perimeter"))
(setq ll (+ dd ll))
(setq i (1+ i))
)
(princ "所选线条总长为:")(princ ll)(princ)
)
你想具体问哪一方面呢?是CommonLisp吗?和用其他语言写程序基本是一样的,只不过lisp的macro太灵活啦,这个要自己好好体味一段时间。如果你想问的是如何起步的话,那么可以这样:
(1)选择一本书,推荐两本,分别是“land of lisp”和“practical common lisp”你如果想要的话我这有这两本书的pdf可以发给你
(2)选择一款编辑器或IDE,你可以用eclipse架设lisp的开发环境,但前段时间我试了一下,由于eclipse的版本现在高于那款lisp环境插件的版本,所以现在新版的eclipse用不了lisp的环境了,但推荐用编程界的两大神器之一:Emacs,你可以上网搜一下,关于它的资料有很多(用google,别用百度),它直接由lisp模式,但如果你想要诸如括号匹配,括号高亮什么的.......我可以把那部分的.emcas文件发给你...........当然很多人编写lisp的都会给emacs装上一款slime插件,网上也有别人帮你装好的一套,可以直接下载,直接用,那么如果你想要那个的话,在google中搜索lispbox
(3)多用google..............
--------------------------------------------------------------------------------------
如果你问的是画CAD的lisp,那这个我就不太懂啦..........
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)