TimZilla 发表于 2022-7-6 09:56:29

不要捕捉锁定的东西!/L

两个问题!
 
 
第一:有没有办法设置你的osnap,使它们不会捕捉到锁定的东西?
 
第二:有没有办法在不锁定整个层的情况下锁定块或对象?
 
 
 
 
如果我能把这两件事都弄清楚,我会节省很多时间。
 
有时我只是有办法在我的画很多东西,大部分是参考,我从来没有需要捕捉到它,我需要看到它,但我讨厌它拿起我的快照。快把我逼疯了。!

MikeScott 发表于 2022-7-6 10:00:38

我认为这是在错误的部分。。虽然上面说的是定制。。
 
然而,以防万一,这对任何人都有帮助。。OSNAP会自动“首选”当前图形层。也许这就够了?
 
否则,可以通过在绘图设置(在“选项”中)中调整选择框的大小来微调选择过程。。我不确定是否有任何设置可以满足您的要求,但我使用的是旧cad,所以谁知道呢。

TimZilla 发表于 2022-7-6 10:04:50

 
 
是的,我试过调整尺寸,但不适合我。我希望有个天才能为我开发一个lisp命令,我可以说,耶!,谢谢你!
 
 
锁定一个对象而不是一个层怎么样?

TimZilla 发表于 2022-7-6 10:06:46

我是唯一一个这样做会有帮助的人吗?它必须存在。
 
OSNAP更喜欢current不会有帮助,但如果它不捕捉到锁定的东西,它会有帮助。
 
我把我所有的墙和门都放在一层/一种颜色里。
暖通空调/机械一层/一种颜色。
一层/一种颜色的电气。
一层/一种颜色的天花板网格
 
等等
 
然后,我锁定了大部分,它使它褪色。所以当我画我的东西时,是自动喷水灭火系统。我的东西很显眼。如果我能想出一种方法来防止我的睡眠跳到某些事情上,尽管不是所有事情。真希望我有选择权。如果锁定层的功能不起作用,那么即使是防止OSNAP粘附到某些层的选项也很酷。某物

alanjt 发表于 2022-7-6 10:10:15

我要冒很大的风险,用双重否定来回应。

Lee Mac 发表于 2022-7-6 10:13:59

这是目前我能想到的最好的办法,但有点冒险
 

(defun c:VisTog ( / tmp )
;; Lee Mac~27.04.10

(if (or (and *ss* (not (setq tmp *ss* *ss* nil)))
         (and (setq tmp (ssget)) (setq *ss* tmp)))
   
   ( (lambda ( i / e )
       (while (setq e (ssname tmp (setq i (1+ i))))
         (Update
         (PutDXF 60
             (- 1 (cond ((cdr (assoc 60 (entget e)))) (0)))
             (entget e)
         )
         )
       )
   )
   -1
   )
)

(princ)
)

(defun PutDXF ( code value elist )
(entmod
   (if (assoc code elist)
   (subst (cons code value) (assoc code elist) elist)
   (append elist (list (cons code value)))
   )
)
)

(defun Update ( elist )
(entupd (cdr (assoc -1 elist)))
)

TimZilla 发表于 2022-7-6 10:17:46

所以,我可能应该在家里做测试,而不是在工作中,嗯?不能因为把事情搞砸而失去一天的工作。
 
还有,谢谢你的“双重拒绝”
 
我愿意打赌这是可以做到的。任何事情都可以在autoCAD中完成。似乎每次我有一个想法,就有人已经为它创造了一些东西。我喜欢AutoCAD。我真是个书呆子。但我只是喜欢它。

alanjt 发表于 2022-7-6 10:20:44

许多AutoCAD的垂直版本都内置了“对象隔离/隐藏”选项。实际上,我认为新版本的ACAD已经将其添加到了核心。
但这并不是真正“锁定”单个对象。
 

Lee Mac 发表于 2022-7-6 10:23:28

我的代码根本不会损坏您的图形,它只是切换对象可见性,但其风险在于,如果对象可见性出现错误,有些人可能不知道如何重新切换。
 
此功能将使所有内容再次可见
 

(defun c:AllVis ( / tmp )
;; Lee Mac~27.04.10

(if (setq tmp (ssget "_X"))
   
   ( (lambda ( i / e )
       (while (setq e (ssname tmp (setq i (1+ i))))
         (Update
         (PutDXF 60 0 (entget e))
         )
       )
   )
   -1
   )
)

(princ)
)

(defun PutDXF ( code value elist )
(entmod
   (if (assoc code elist)
   (subst (cons code value) (assoc code elist) elist)
   (append elist (list (cons code value)))
   )
)
)

(defun Update ( elist )
(entupd (cdr (assoc -1 elist)))

 

alanjt 发表于 2022-7-6 10:26:59

我的回答并不是故意装腔作势。我诚实地告诉你,这是不可能做到的。李提供的将隐藏一个对象,而不是“锁定”它。您提出的问题与AutoCAD的基本结构不符。
 
实现这一点的唯一方法是在其上放置一个对象反应器,但这简直太疯狂了。
页: [1] 2
查看完整版本: 不要捕捉锁定的东西!/L