嗨,又是我了,能把下面的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[info] http:\\\\[url]www.AsmiTools.com[/url] [info]")
- (princ "\n[info] Type PDIM for multiple LwPolyline dimensioning. [info]")
|