如果你有,你会发现它是用来控制命令行窗口的背景-因此绝对与尺寸无关。
如果您不知道如何查找函数,请参见此处。
(defun c:FindDodgyDims ( / ss ) (vl-load-com)
(if (setq ss (ssget "_X" '((0 . "*DIMENSION") (1 . "*?*"))))
(
(lambda ( i / e o )
(while (setq e (ssname ss (setq i (1+ i))))
(vla-put-TextColor (setq o (vlax-ename->vla-object e)) acgreen)
(vla-put-TextFillColor o acwhite)
(vla-put-TextFill o :vlax-true)
)
)
-1
)
)
(princ)
) 这样表示覆盖DIM如何:
(defun C:HL (/ SS PT PT2)
(if
(setq SS
(ssget "_X"
'((0 . "*DIMENSION") (1 . "*?*"))
)
)
(if (setq PT (getpoint "\nSelect anchor point: "))
(foreach % (jk:SSX_SS->List SS)
(setq PT2 (cdr (assoc 11 (entget %))))
(entmakex
(list
(cons 0 "LINE")
(cons 10 PT)
(cons 11 PT2)
(cons 62 2)
)
)
)
(princ "\n>> Invalid point. ")
)
(princ "\n>> No overrided dimensions. ")
)
(princ)
)
(defun jk:SSX_SS->List (sel / n l)
(repeat
(setq n (sslength sel))
(setq n (1- n)
l (cons (ssname sel n) l)
)
)
)
(princ)kruuger 谢谢李,我尝试了你的更新代码,但我不知道为什么不能填写背景文字。
我尝试使用set the dimtfill and dimtfillclr,并确定:
(defun c:FindDodgyDims ( / ss ) (vl-load-com)
(setvar "dimtfillclr" 5)
(setvar "dimtfill" 2)
(if (setq ss (ssget "_X" '((0 . "*DIMENSION") (1 . "*?*"))))
(
(lambda ( i / e )
(while (setq e (ssname ss (setq i (1+ i))))
(vla-put-TextColor (vlax-ename->vla-object e) acgreen)
(command "-dimstyle" "A" ss "")
)
)
-1
)
)
(setvar "dimtfill" 0)
(princ)
)
但新的问题,做了代码后无法撤消。。。请帮助我:(
克鲁格,谢谢你的代码。。这是一段精彩的代码。 我的代码似乎适合我-你收到错误了吗?
您的代码正在为同一选择集中的图元数反复更改标注样式。
页:
1
[2]