entmode:定义的更改
你好尝试使用entmode,
这个代码设置为改变圆圈的颜色,我看到数据库条目已经改变,但颜色没有改变,
以及如何将颜色更改为具有ByLayer颜色的实体?
(defun C:002(/ entname entdef color)
(setq sset (ssget))
(setq entname (ssname sset i)) ;_get a selection set
(setq entdef (entget entname)) ;_get the i member defenition
(setq color (subst (cons 62 5) (assoc 62 entdef) entdef ))
)
谢谢
谢伊 如果要更改为ByLayer,只需将例程中的数字5替换为256即可。
(defun c:Test (/ sset i sn c e)
(if (setq sset (ssget "_:L" '((0 . "~VIEWPORT"))))
(progn (setq i -1)
(while (setq sn (ssname sset (setq i (1+ i))))
(if (setq c (assoc 62 (setq e (entget sn))))
(entmod (subst '(62 . 5) c e))
(entmod (append e '((62 . 5))))
)
)
)
)
(princ)
)
谢谢
为什么我不能改变颜色?
你在说我的密码还是你的?
我的,你可以在def列表中看到,它被设置为62.5,但图形屏幕显示的颜色没有不同 如果任何对象的颜色设置为“byLayer”,则该对象将没有DXF 62,因此如果没有,则需要将DXF 62添加到该对象中,并将要添加此新颜色的对象作为
虽然您的代码缺少entmod函数,但您可以看到我的代码。 我懂了。。。我是一个多么愚蠢的程序员啊
谢谢
不,我们以前都遇到过这种情况。 你真好
我管理代码
(defun C:003(/ entname entdef )
(setq sset (ssget))
(setq entname (ssname sset 0)) ;_get a selection set
(setq entdef (entget entname)) ;_get the i member defenition
(if(assoc 62 entdef) ;_ if a color is set
(entmod (subst (cons 62 5) (assoc 62 entdef) entdef )) ;_changh it
(entmod(append entdef '((62 . 5))))
)
)
实体中缺少的DXF是否更多?
谢谢
谢伊 1-一个参数未本地化。
2-如果用户没有选择任何对象,则会抛出错误。
3-您的代码仅适用于一个对象。
4-在例程末尾添加princ函数,以避免返回例程的最后一个操作。
页:
[1]