封闭的多段线
最后非C or CL封闭的多段线,使用(vla-put-closed obj :vlax-true)封闭后,同最后C or CL封闭的多段线相比,使用entget(或者(vlax-get obj 'coordinates))会发现,前者要多一个点(组码10)。我试图用(vla-SetBulge obj x y)(vla-put-coordinates obj p)来更新失败了,不知道是什么原因?下面使用entmod来更新,则是成功的。供大家参考;;最后非C or CL封闭的多段线,使其真封闭。但用vla方法失败(vla-SetBulge obj x y)(vla-put-coordinates obj p)
(defun HH-LPClosed (e / EN OBJ)
(setq obj (vlax-ename->vla-object e))
(if (and (equal (vla-get-closed obj) :vlax-false)
(equal (vlax-curve-getStartPoint e) (vlax-curve-getEndPoint e) 1e-7)
)
(progn
(vla-put-closed obj :vlax-true)
(setq en (reverse (entget e)))
(setq en (cdr (member (assoc 42 en) en)))
(setq en (cdr (member (assoc 10 en) en)))
(setq en (subst (cons 90 (1- (cdr (assoc 90 en)))) (assoc 90 en) en))
(entmod (reverse en))
)
)
)
(defun c:a2 (/ E)
(setq e (car (entsel)))
(HH-LPClosed e)
(princ)
) 哦哦,谢谢,你这分享还挺别致的 错误: 参数类型错误: lentityp nil 黄总出的都是精品 czb203 发表于 2022-2-25 21:43
哦哦,谢谢,你这分享还挺别致的
这也太别致了,哈哈哈,掐头直接进入
页:
[1]