starlet2003 发表于 2009-1-12 23:21:00

[求助]我这样解冻图层有问题吗?

<p>代码:</p><p>(setq lay_ent (entget (tblobjname "layer" layer)))<br/>(setq l (boole&nbsp; 2 (cdr (assoc 70 lay_ent))&nbsp;4 ))<br/>(setq lay_ent (subst (cons 70 l) (assoc 70 lay_ent) lay_ent ))<br/>(entmod lay_ent)</p><p>为什么entmod之后,在图层特性管理器里图层的状态都正常,视图里却显示不出图形。</p><p>这时候执行regen命令,会有“重生成被排入队列”的提示,并可以显示图形,在家里测试一切正常,但在单位测试的时候却时常失败。</p><p>上面是作为一种尝试,使用layer命令比较简单,但感觉速度会慢很多。</p><p>上面的代码有问题吗?</p><p></p>

starlet2003 发表于 2009-1-20 20:24:00

<p>哪位大侠知道呀?</p>

hb_xiaofen 发表于 2009-1-21 09:34:00

本帖最后由 作者 于 2009-1-21 9:48:34 编辑 <br /><br /> <p>不过你的boole运算有点问题,如果layer图层冻结也就是为1的时候,1和4的boole运算结果为仍然为1,怎么能解冻呢?</p><p>应该是操作为(boole 1 (cdr (assoc 70 l_ent)) (+ 64 32 16 4 2)))</p><p>用subst和entmod能在2004和2006版本中冻结和解冻图层,</p><p>没发现什么问题,其它版本我没有,也不太清楚</p><p>不过一般我操作图层都用vlisp,vla函数</p><p></p>

starlet2003 发表于 2009-1-21 14:28:00

<p>不好意思,贴代码的时候搞错了,应该是:</p><p>(setq l (boole&nbsp; 2 (cdr (assoc 70 lay_ent))&nbsp;1 ));解冻(2 改为8或者9也没有什么影响)</p><p>上面那段是用来解锁的,呵呵...</p><p>问题时解冻之后,数据无法显示?有时候用regen也没有效果...</p><p><br/></p>
页: [1]
查看完整版本: [求助]我这样解冻图层有问题吗?