(修改边长)水平有限,研究几天就是目前的结果,希望高手出击
本帖最后由 youyou3810 于 2019-5-5 00:18 编辑(defun c:tt1 ()
(setq i 0)
(setq pline (car (entsel)))
(setq ent (entget pline))
(setq pts nil)
(repeat (length ent)
(if (= (car (nth i ent)) 10)
(setq pts (append pts (list (cdr (nth i ent)))))
)
(setq i (1+ i))
)
(print pts)
(nth 0 pts)
(setq pt1 (getpoint "点1:"))
(setq pt2 (getpoint pt1 "点2:"))
(setq ent(subst(cons 10 pt1)(assoc 10 ent)ent))
(entmod ent);重生成更新图元,显示到鼠标 位置
)
1 修改点2位置
2 可以修改任意边长
水平有限,研究几天就是目前的结果,希望高手出击
(defun c:tt ()
(setq i 0)
(setq pline (car (entsel)))
(setq Object (vlax-ename->vla-object pline))
(setq ent (entget pline))
(setq pts nil)
(repeat (length ent)
(if (= (car (nth i ent)) 10)
(setq pts (append pts (list (cdr (nth i ent)))))
)
(setq i (1+ i))
)
(print pts)
(nth 0 pts)
(setq pt1 (getpoint "点1:"))
(setq pt2 (getpoint pt1 "点2:"))
(setq pt1a (car (vl-sort pts (function(lambda (e1 e2)(< (distance pt1 e1) (distance pt1 e2)))))))
(setq pt2a (car (vl-sort pts (function(lambda (e1 e2)(< (distance pt2 e1) (distance pt2 e2)))))))
(setq pt1 (list (car pt1) (cadr pt1)))
(setq pt2 (list (car pt2) (cadr pt2)))
(vla-put-Coordinate Object (vlax-curve-getparamatpoint Object pt1a) (vlax-make-variant(vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 (1- (length pt1)))) pt1 )))
(vla-put-Coordinate Object (vlax-curve-getparamatpoint Object pt2a) (vlax-make-variant(vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 (1- (length pt2)))) pt2 )))
(princ)
)
本帖最后由 youyou3810 于 2019-5-5 00:22 编辑
遇到问题无法确定选中那个边长 两个坐标 如果知道就很好处理了
无法解决无法解决 非常感谢 可以正常使用
页:
[1]