Sweety 发表于 2022-7-6 10:18:35

锁定层的DXF代码

你好
 
向锁定层指示的DXF代码是什么?
 
谢谢

lpseifert 发表于 2022-7-6 10:25:02

DXF代码70
4=锁定
 
来自帮助

alanjt 发表于 2022-7-6 10:33:09

使用logand 4

Sweety 发表于 2022-7-6 10:37:13

非常感谢你的帮助。。
 
这是我从Alanjt代码中获得的一段代码,但经过一些修改以满足我的问题。。。。。。。
 
(logand 4 (cdr (assoc 70 (entget (tblobjname "LAYER" (cdr (assoc 8 (entget (car (entsel "\nSelect something:" ))))))))))

 
这是让它工作的唯一方法吗?
 
非常感谢。

Se7en 发表于 2022-7-6 10:43:27

>这是让它工作的唯一方法吗?
 
但这不起作用。。。我很困惑。

Sweety 发表于 2022-7-6 10:49:19

 
感谢Se7en对您的兴趣。
 
上述代码将返回数字4,这意味着根据lspeifert和Alanjt,已锁定。
 
因此,如果你想检查它是否正确,你可以添加以下内容。
 
(eq 4 (logand 4 (cdr (assoc 70 (entget (tblobjname "LAYER" (cdr (assoc 8 (entget (car (entsel "\nSelect something:" )))))))))))
 
但我相信你知道这一切,不是吗?
 
非常感谢。

Se7en 发表于 2022-7-6 10:57:21

 
哦,好的。是的,你是对的。这将用于查看选定对象的层是否已锁定。

Sweety 发表于 2022-7-6 11:01:59

 
我真的很高兴你成功了。。。。
 
我以前也见过VBA,我希望有人能为我带来或编写这些代码?
也许下面的内容会让人开始。。。。
 
(setq *activeDoc* (vla-get-activedocument (vlax-get-acad-object)))
(and (setq ent (entsel "\n Select something :"))
    (setq obj (vlax-ename->vla-object (car ent)))
   )
(if (eq .............................

 
非常感谢。

lpseifert 发表于 2022-7-6 11:07:26

艾伦准则的修订

(setq obj (vlax-ename->vla-object (tblobjname "LAYER" (cdr (assoc 8 (entget (car (entsel "\nSelect something:" ))))))))
(if
(=:vlax-true (vlax-get-property obj 'Lock))
(princ "The layer is locked")
(princ "The layer is not locked")
)

Sweety 发表于 2022-7-6 11:14:23

 
很不错的。
 
非常感谢你,艾斯佩尔特。
页: [1] 2
查看完整版本: 锁定层的DXF代码