Grrr 发表于 2022-7-5 17:47:11

很抱歉收到你的密码李,但我认为你可以跳过
(setq enx (entget (tblobjname "layer" lay))
通过修改此部分:
    (while (setq lay (tblnext "layer" (not lay)))
       (setq lay (cdr (assoc 2 lay)))
收件人:
11
我还认为这应该是最快的方法——直接迭代layers表。
 
我想我理解你为这个特殊的请求使用了这个(boole)函数。。但是,由于我在处理位/位代码方面总体上很差劲,你能推荐从哪里开始学习如何处理它们吗?

Lee Mac 发表于 2022-7-5 17:51:32

 
你试过了吗?
 
tblnext返回的列表不是tblobjname返回的AcDbLayerTableRecord的完整DXF数据,因此不能用于修改图层特性。

Grrr 发表于 2022-7-5 17:54:46

 
刚刚试过,它:
12
但是,如果您(使用布尔)替换层而不是ENX(因为GC 70出现在两者中),并且在“层”符号上使用(entupd)(因为它引用层定义),会有区别吗?
对不起,我在问你,但我似乎不明白两者之间的区别。

Roy_043 发表于 2022-7-5 17:58:13

在某些情况下,可以使用部分实体列表作为(entmod)的参数。但实体列表还应至少包含对实体名称的-1组码引用。由于(entnext)中的列表缺少这一点,因此不能与(entmod)一起使用。注意,(entupdt)和(entmod)是非常不同的函数。

Grrr 发表于 2022-7-5 18:00:46

 
谢谢,罗伊,我现在明白了。。为什么(tblnext)不能从AcDbLayerTableRecord返回完整的DXF数据,这看起来仍然很奇怪。
这种DXF/Elist操作似乎比处理定制列表更难。

a_67vdub 发表于 2022-7-5 18:03:58

 
 
下面是Stig Madsen关于位码的一篇很棒的文章:
 
 
http://www.afralisp.net/archive/lisp/binary_I.htm
 
 
 
 
史蒂夫

Grrr 发表于 2022-7-5 18:07:01

 
谢谢您!
我不知道AfraLisp有档案。。。很酷的东西!
明天我要开始玩极客。

broncos15 发表于 2022-7-5 18:11:43

谢谢大家的回复!对不起,我出去度假了,所以我没有机会复习这些。我将开始测试这些,并看到速度上的差异。我需要更多地研究lambda函数,因为不幸的是我一直在搞砸它。

tombu 发表于 2022-7-5 18:14:06

我的模板中有一组层状态。我使用功能区中的下拉菜单来控制层的显示方式。
我将此添加到我的acaddoc中。lsp:
13
以确保它不会关闭图层状态中未找到的图层。
页: 1 [2]
查看完整版本: 冻融层