仅分解坐标尺寸
嘿伙计们,我需要分解DWG中的所有坐标尺寸(X和Y)。我认为这足够简单,但我无法让选择集过滤器列表工作。
我的代码是:
(defun c:eo ()
(setq ss (ssget "X" '((70 . 6))))
(command "explode" ss)
(princ)
)
我只是想知道你们中是否有人可以看看,让我知道我做错了什么?
谢谢。 (ssget "_x"
'((0 . "DIMENSION") (-4 . "<OR") (70 . 38) (70 . 102) (70 . 166) (-4 . "OR>"))
)
哎呀。。误读标题
(if (setq
ss(ssget "_x" '((0 . "DIMENSION")))
)
(repeat (setq i (sslength ss))
(if (Eq (vla-get-ObjectName (vlax-ename->vla-object (setq e (ssname ss (setq i (1- i))))))
"AcDbOrdinateDimension"
)
(command "_explode" e )
)
)
) 非常感谢pBe的回复。
您提供的AutoLISP代码可以工作,但一次只能处理一项。我看不出任何明显的原因来解释为什么会这样……恐怕我不理解您提供的选择集过滤器列表。
我的部分工作代码是:
(defun c:eo ()
(setq ss (ssget "_x" '((0 . "DIMENSION") (-4 . "<OR") (70 . 38) (70 . 102) (70 . 166) (-4 . "OR>"))))
(command "EXPLODE" ss)
(princ)
)
你能看到导致例程只对单个项目进行操作的原因吗?
谢谢你的帮助,伙计。
(defun c:eo ()
(setvar 'qaflags 1)
(if (Setq ss (ssget "_x" '((0 . "DIMENSION") (-4 . "<OR") (70 . 38) (70 . 102) (70 . 166) (-4 . "OR>"))))
(command "_explode" ss ""))
(setvar 'qaflags 0)
(princ)
)
我希望所有选定的维度都不会位于锁定层上。 太棒了,非常感谢pBe。
Tharwat-大多数情况下,该例程将在添加坐标维度后立即使用,因此希望它们永远不会位于锁定层上。
谢谢大家。
页:
[1]