这个图奇怪
本帖最后由 前生 于 2017-8-8 22:34 编辑看附件,外圆的坐标和同心的圆不同,
210猪吗也不同.
问题是:
用subst 分别更新二次,居然不对.
以前的处理方法是:
210的最后一个是 -1.0时,
就将圆的X 坐标(-x) ,重新
entmake一个新的同样大小的圆,
再entdel 删除该变态的圆.
今天觉的麻烦,
就
(ENTMOD
(SUBST (CONS 210 (list 0.0 0.0 1.0))
(ASSOC 210 ED)
ED
)
)
(ENTMOD
(SUBST (CONS 10
(list (- 0 (cadr (assoc 10 ed)))
(caddr (assoc 10 ed))
0.0
)
)
(ASSOC 10 ED)
ED
)
)
了一下
原来是认为,中心坐标更新,210更新.
就应该在屏幕的原来的位置上生成了一个好好的圆,
结果 前生 发表于 2017-8-8 22:40
以前的处理方法是:
210的最后一个是 -1.0时,
就将圆的X 坐标(-x) ,重新
你的代码问题出在ed变量上,第一次使用entmod,虽然把实体更新了,但ed变量并没有更新,第二次entmod只是对ed变量进行,并不是对更新后的实体再次更新,你只在第一次更新时把变量ed也更新一下即可,即(setq ed (entmod...或(entmod (setq ed (subst....)。
通常的方法是,先把整个实体表先改好,最后一次entmod,这样就不太会出现类似错误了。
昨天我是这样子做的.
(setq ed1 (entget en))
(ENTMOD
(SUBST (CONS 10
(list (- 0 (cadr (assoc 10 ed1)))
(caddr (assoc 10 ed1))
0.0
)
)
(ASSOC 10 ED1)
ED1
)
) 第一次实体更新后,对en 实体再取一次值, ll_j 发表于 2017-8-9 09:03
你的代码问题出在ed变量上,第一次使用entmod,虽然把实体更新了,但ed变量并没有更新,第二次entmod只是 ...
对的.
以前也是(setq ed (entmod .........))
感觉实体变化,不需要 (setq ed ....
不知道什么时候,全部就不 (setq ed ....而是直接(emtmod .......了
:lol
页:
[1]