Lisp到图标
嗨,又是我了,能把下面的lisp转换成图标吗?而不是键入命令。我在asmitools中有一个很好的Lisp程序。感谢asmitools网站。
再次感谢各位。
(princ "\n<<< Select LwPolyline for dimensioning >>> ")
(if(setq plSet(ssget '((0 . "LWPOLYLINE"))))
(progn
(setq pLlst(vl-remove-if 'listp
(mapcar 'cadr(ssnamex plSet)))
oldDss(getvar "DIMASSOC")
); end if
(setvar "CMDECHO" 0)
(command "_.undo" "_be")
(setvar "DIMASSOC" 2)
(foreach pl pLlst
(setq vLst(mapcar '(lambda(x)
(trans x 0 1))(mapcar 'cdr
(vl-remove-if-not
'(lambda(x)(= 10(car x)))(entget pl))))
); end setq
(if(equal '(70 . 1)(assoc 70(entget pl)))
(setq vLst(append vLst(list(car vLst))))
); end if
(while(< 1(length vLst))
(setq cAng(angle(car vLst)(cadr vLst))
cDis(/(distance(car vLst)(cadr vLst))2))
(if(>=(caar vLst)(caadr vLst))
(setq cAng(- cAng pi))
); end if
(setq cPt(polar
(polar(car vLst)cAng cDis)
(+ cAng(* 0.5 pi))(* tOff
(*(getvar "DIMSCALE")
(getvar "DIMTXT"))))
); end setq
(command "_.dimaligned" "_end" (car vLst)
"_end" (cadr vLst) "_none" cPt)
(setq vLst(cdr vLst))
); end while
); end foreach
(setvar "DIMASSOC" oldDss)
(command "_.undo" "_e")
(setvar "CMDECHO" 1)
); end progn
); end if
(princ)
); end of c:pdim
(princ "\n http:\\\\www.AsmiTools.com ")
(princ "\n Type PDIM for multiple LwPolyline dimensioning. ")
我假设你想做一个工具栏按钮。你知道所有的代码都没有发布,但我想我能理解。在CUI中,创建新命令;将其用作宏。
其中LispName是lisp文件的名称
页:
[1]