动态更改文本,具有
不更改全局,仅更改选定的 这样地?是的,就像那样!
玩一玩这个。
(defun c:Test (/ s p e gr)
;; Author : Tharwat 20. jan. 2014 ;;
(if (setq s (ssget "_+.:S:E:L" '((0 . "TEXT,MTEXT"))))
(progn
(setq p (cdr (assoc 10 (entget (setq e (ssname s 0))))))
(while (eq (car (setq gr (grread t 15 0))) 5)
(redraw)
(grdraw p (cadr gr) 1 -1)
(vla-put-height
(vlax-ename->vla-object e)
(distance p (cadr gr))
)
)
(redraw)
)
)
(princ)
)
(vl-load-com)
非常感谢。Tharwat,不能批处理吗?
这个呢? 哇,我在BBS上看到了这个帖子。XDCAD。净额
(defun c:tt (/ callback e p0 sty scl h)
(defun callback (dynpt /)
(xdrx_setpropertyvalue
sty
"Dimscale"
(* (distance p0 (trans dynpt 0 1)) scl)
)
)
(if (setq e (car (xdrx_entsel "\nPick Dim: " '((0 . "Dimension")))))
(progn
(XD::Begin)
(setq sty (cadr (xdrx_getpropertyvalue e "Dimensionstyle"))
scl (xdrx_getpropertyvalue sty "Dimscale")
h (xdrx_getpropertyvalue e "Dimtxt")
p0 (trans (caddr (xdrx_entity_getstretchpoint e )) 0 1)
)
(xdrx_pointmonitor "Callback" e)
(getpoint p0)
(xdrx_pointmonitor)
(XD::End)
)
)
(princ)
)
不好吗?在使用之前,必须先应用XD API Lucas,没有必要在回复中引用之前的每一个回复。
试试这个简单的。
(defun c:Test (/ *error* ss in l vl d p gr)
;; Author : Tharwat 21. jan. 2014 ;;
(defun *error* (u) (redraw) (princ "\n*Cancel*"))
(if (setq ss (ssget "_:L" '((0 . "*DIMENSION"))))
(progn (repeat (setq in (sslength ss))
(setq l (cons (cdr (assoc -1 (entget (ssname ss (setq in (1- in)))))) l))
)
(while (eq (car (setq gr (grread t 15 0))) 5)
(redraw)
(setq d (distance (setq p (cdr (assoc 13 (entget (car l))))) (cadr gr)))
(grdraw p (cadr gr) 1 -1)
(foreach x l
(vla-put-textheight (setq vl (vlax-ename->vla-object x)) (atoi (rtos d)))
(vla-put-arrowheadsize vl (/ d 2.))
)
)
)
)
(redraw)
(princ)
)
(vl-load-com)
谢谢塔瓦,你是最棒的!我爱你!
值只能作为整数,可以吗?
Tharwat,我可以建议不要只影响标签和箭头,而是使用整体尺度(VLA-PUT-SCALEFACTOR),它将考虑其他维度的装饰元素(即扩展、间隙),同时保持它们之间的比例。
页:
[1]
2