;; 等宽多段线掏空
(defun c:test1364 (/ i ss s1 pt)
(xyp-CMDLA0)
(setq i -1
ss1 (ssadd)
)
(if (setq ss (ssget '((0 . "*polyLINE"))))
(while (setq s1 (ssname ss (setq i (1+ i))))
(if (/= (setq dw (xyp-DXF 43 s1)) 0)
(progn
(setq ss1 (ssadd s1 ss1)
s0 (entlast)
)
(if (not (xyp-Curve-Close s1))
(progn
(xyp-Offset s1 (* dw 0.5) t nil nil)
(setq s2 (entlast))
(xyp-Offset s1 (* dw 0.5) nil t nil)
(setq s3 (entlast))
(xyp-line (list (vlax-curve-getStartPoint s2)
(vlax-curve-getEndPoint s2)
)
(list (vlax-curve-getStartPoint s3)
(vlax-curve-getEndPoint s3)
)
)
(xyp-PeditJoin (xyp-SSelEntnext s0) 0)
(xyp-Put-CurveWeight (entlast) 0)
)
(progn
(xyp-Offset s1 (* dw 0.5) t nil nil)
(xyp-Put-CurveWeight (entlast) 0)
(xyp-Offset s1 (* dw 0.5) nil t nil)
(xyp-Put-CurveWeight (entlast) 0)
)
)
)
)
)
)
(xyp-erase ss1)
(xyp-CMDLA1)
)