- (defun c:redrawpl ()
- (setq sset (ssget "x" '(0 . "lwpolyline") (cons 67 (logand (1+ (getvar "TILEMODE"))1)) ))
- (setq ctr 0)
- (repeat (sslength sset)
- (setq item (ssname sset ctr))
- (vl-cmdf "_isolateobjects" item "")
- (setq ron (vlax-ename->vla-object item))
- (setq olayer (vla-get-layer ron))
- (command "-layer" "set" olayer "" )
- (setq p1 (pline-centroid item))
- (vl-cmdf "_.-boundary" "_A" "_O" "polyline" "_I" "_N" "" p1 "")
- (vl-cmdf "_unisolateobjects" "")
- (vla-delete ron)
- (command "_change" (entlast) "" "p" "la" "layer1" "")
- (setq ctr (1+ ctr))
- )
- )
我正试图用上述方法重新绘制所有多段线。为了避免创建错误的多段线,我使用isolateobjects的功能来关闭其他对象。然后,它将基于保留的多段线创建新的多段线。但我发现当我使用这种方法应用于绘图时,里面有很多物体,速度很慢。此外,某些多段线无法使用此方法创建。还有其他好的方法来创建多段线吗?
非常感谢。 |