如何将外部参照移动到0,0 aut
大家好我们在大多数项目中使用外部参照,并将其全部插入0,0,0点。
一些用户在工作时选择外部参照并移动它。
我想知道是否有办法避免这种情况。
Thnaks公司 一种避免的方法是,将外部参照放置在锁定的图层上。但当然,你仍然无法“避免”用户解锁该层,除非你使用反应堆。 是否要在插入点插入外部参照对象文件,插入点可以是任何值,而不是0,0。。。。。。。对的 我同意pBe-您最好的选择是将外部参照放置在锁定的图层上,并进一步教育您的同事不要移动外部参照。
下面是一个简短的程序,用于将所有外部参照移动到原点:
(defun c:x2or ( / def enx inc lst sel )
(while (setq def (tblnext "block" (null def)))
(if (= 4 (logand 4 (cdr (assoc 70 def))))
(setq lst (vl-list* "," (cdr (assoc 2 def)) lst))
)
)
(if
(and lst
(setq sel
(ssget "_X"
(list '(0 . "INSERT")
(cons 2 (apply 'strcat (cdr lst)))
)
)
)
)
(repeat (setq inc (sslength sel))
(setq enx (entget (ssname sel (setq inc (1- inc)))))
(entmod (subst '(10 0.0 0.0 0.0) (assoc 10 enx) enx))
)
)
(princ)
) thanx pBe
谢谢李
但是每次打开或关闭文件时,我都必须运行lisp
从ACADDOC加载并运行它。lsp 为外部参照选择一个专用的“锁定”图层,并将其保留在那里。我甚至会在启动时进行检查,以确保该层仍处于锁定状态。
外部参照移动并不总是一个糟糕的用户,我见过一个有许多外部参照的大型图形,挂起或暂时冻结,当试图查看程序是否再次响应时,您在屏幕上的单击会无意中选择并移动一点外部参照。当然,这是理所当然的假设,我不是一个坏用户。
代码不错,李。除非用户在一家将外部参照视为块(尤其是建筑块)的公司工作,否则这可能是一件好事。 是的,这也是我的第一个想法。虽然这可能会有所帮助,但我确实不能经常使用它-我的外部参照很少实际放置在0,0,0上。大多数被多次放置在不同的位置(镜像和旋转):就像一个房间在平面上的不同位置重复放置一样。如果我运行这段代码,所有房间都会移动,在原点处彼此重叠。始终位于0,0上的唯一外部参照是网格线和剖面线-它们应相对于建筑保持在同一点上。
我也倾向于用锁定层的方法,不得不,别无选择!
页:
[1]