这里有个,只供参考[code="lisp]
(defun c:tt ( / dist ename ept fdist file fistpt fpt gcdz i lename lept lobj lspt lst maxx maxy minx miny Name obj objname pt ptl rename rept robj rspt slen spt ss v x zpt zsdist)
(vl-load-com)
(while (setq ename (car (entsel "\n请选择断面线:")))
(if ename
(progn
(setvar "osmode" 33)
(setq zPt (getpoint "\n拾取断面起点:")
zPt (list (car zPt) (cadr zPt))
)
(setvar "osmode" 0)
(setq obj (vlax-ename->vla-object ename))
(setq objname (vlax-get obj 'ObjectName ))
(if (or (= objname "AcDbLine") (= objname "AcDbPolyline"))
(progn
(setq sPt (vlax-curve-getStartPoint obj)
ePt (vlax-curve-getEndPoint obj)
)
(vla-Offset (vlax-ename->vla-object ename) -0.3) ;控制中线两边
(setq Lename (entlast)