快速沿标注线移动标注文字,水平,倾斜
本帖最后由 kenken 于 2020-2-28 20:40 编辑如题,本论坛的一段代码,非常好用
但是,我想实现在 (setq pt (trans (getpoint (cadr en) "\n新位置:") 1 0)) 这段功能变成,类似月offset的功能,即 测量值 和 输入值,偏移方向用鼠标点选,同时输入值能保存,下次直接使用,不需要重复输入。另外移动的基点,我想是文字的中心点。
(defun c:tttt( / att attpar p10 p11 p14 dxf70 pt dx dy)
(defun cz(p1 p2 p3)(inters p1 p2 p3 (polar p3 (+ (angle p1 p2) (/ pi 2)) 5) nil))
(defun npoint(pbase sx sy)
(setq ex (+ (car pbase) sx))
(setq ey (+ (cadr pbase) sy))
(list ex ey 0))
(setq att (car (setq en (entsel "\n选择标注:"))))
(setq pt (trans (getpoint (cadr en) "\n新位置:") 1 0))
(setq attpar (entget att))
(setq p10 (cdr (assoc 10 attpar)))
(setq p11 (cdr (assoc 11 attpar)))
(setq p14 (cdr (assoc 14 attpar)))
(setq p14 (polar p10 (+ (angle p10 p14) (/ pi 2)) 5))
(setq dxf70 (cdr (assoc 70 attpar)))
(if (< dxf70 128)
(progn (entmod (subst (cons 70 (+ dxf70 128)) (assoc 70 attpar) attpar))
(setq attpar (entget att))
(setq pp10 (cdr (assoc 10 attpar)))
(setq pp11 (cdr (assoc 11 attpar)))
(setq dx (- (car p10) (car pp10)) dy (- (cadr p10) (cadr pp10)))
)
(setq dx 0 dy 0 pp11 p11)
)
(setq p10 (cz p10 p14 pt) pp10 (cz p10 p14 p11))
(setq dx (+ dx (- (car p10) (car pp10))) dy (+ dy (- (cadr p10) (cadr pp10))))
(entmod (subst (cons 11 (npoint pp11 dx dy)) (assoc 11 attpar) attpar))
)
(defun C:DTE (/ e)
(while (setq e (car (entsel "\n标注")))
(vla-put-TextMovement (Vlax-Ename->Vla-Object e) 0)
(Command "_.DIMTEDIT" e pause)
)
(princ)
)
页:
[1]