lucas3 发表于 2022-7-5 23:41:01

动态更改文本,具有

 

lucas3 发表于 2022-7-5 23:45:17

不更改全局,仅更改选定的

Tharwat 发表于 2022-7-5 23:49:28

这样地?
 

lucas3 发表于 2022-7-5 23:53:48

 
是的,就像那样!

Tharwat 发表于 2022-7-5 23:55:34

 
玩一玩这个。
 

(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)

lucas3 发表于 2022-7-5 23:59:41

 
非常感谢。Tharwat,不能批处理吗?
 
这个呢?

flyfox1047 发表于 2022-7-6 00:00:17

哇,我在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

Tharwat 发表于 2022-7-6 00:05:50

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)

lucas3 发表于 2022-7-6 00:06:38

 
谢谢塔瓦,你是最棒的!我爱你!
 
值只能作为整数,可以吗?
 

MSasu 发表于 2022-7-6 00:12:01

Tharwat,我可以建议不要只影响标签和箭头,而是使用整体尺度(VLA-PUT-SCALEFACTOR),它将考虑其他维度的装饰元素(即扩展、间隙),同时保持它们之间的比例。
页: [1] 2
查看完整版本: 动态更改文本,具有