根据需要更改所有设置:
- (defun C:demo(/ en obj points ss tp xyz)
- (defun get3dverices (obj / coords param pt)
- (cond ((eq (vla-get-objectname obj) "AcDbLine")
- (setq coords (list (vlax-curve-getstartpoint obj)(vlax-curve-getendpoint obj))))
- ((wcmatch (vla-get-objectname obj)
- "AcDb2dPolyline,AcDb3dPolyline")
- (setq param
- (cond((eq (vlax-curve-isclosed obj) :vlax-true)
- (fix (vlax-curve-getendparam obj)))
- ((fix (1+ (vlax-curve-getendparam obj))))
- )
- )
- (while (setq pt (vlax-curve-getpointatparam obj (setq param (1- param ))))
- (setq coords (cons pt coords))
- ))
- ((eq (vla-get-objectname obj)
- "AcDbPolyline")
- (setq param
- (cond((eq (vlax-curve-isclosed obj) :vlax-true)
- (fix (vlax-curve-getendparam obj)))
- ((fix (1+ (vlax-curve-getendparam obj))))
- )
- )
- (while (setq pt (vlax-curve-getpointatparam obj (setq param (1- param ))))
- (setq coords (cons pt coords))
- )
- (setq coords (mapcar (function (lambda(x)(list (car x)(cadr x)(vla-get-elevation obj)))) coords)))
- )
- )
- (if
- (setq ss (ssget ":L" (list (cons 0 "LINE,*POLYLINE"))))
- (while (setq en (ssname ss 0))
- (setq points (GET3DVERICES (vlax-ename->vla-object en)))
- (foreach p points
- (setq xyz (strcat "E "
- (rtos (car p) 2 3)
- "[url="file://\\PN"]\\PN[/url] "
- (rtos (cadr p) 2 3)
- "[url="file://\\PEL"]\\PEL[/url]. "
- (rtos (caddr p) 2 3)))
- (command "._leader"
- "_non"
- p
- "_non"
- (setq tp (polar p (/ pi 4) (* 10 (getvar "textsize"))))
- "_non"
- (polar tp 0 (getvar "textsize"))
- ""
- xyz
- ""))
- (ssdel en ss)))
- (princ)
- )
抱歉,几乎没有测试 |