在m之后重新生成图形
你好我用(vla put LayerOn obj:vlax true)将更多属性更改为层,
(vla put Freeze obj:vlax false)
蝙蝠没有实现这幅画。我尝试:
(vla regen(vla get activeDocument(vlax get acad object))acAllViewports)
bat没有任何变化。
有什么想法吗? 代码已删除。糟糕的解释。 如果我正确理解了你的观点,你需要对这些层上的每个实体名称使用entupd函数。 不,我只修改图层特性:打开或关闭。 当冻结和解冻层时会发生这种情况。
尝试移动到任何布局选项卡并返回到模型,您将发现所有对象都出现了。
(vlax-for obj (vla-get-Layers oacd)
(if (member (vla-get-Name obj) lStrat)
(progn (vla-put-LayerOn obj :vlax-true) (vla-put-Freeze obj :vlax-false) )
(progn (vla-put-LayerOn obj :vlax-false) )
) ;_ end of if
) ;_ end of vlax
......
(vla-regen oacd acAllViewports)
这是一种方式,但我需要一个程序行。
我问是否有人知道vl函数或加法器方法,如(vla regen x),它可以帮助我重新生成图形对象的外观。 我认为除了entupd函数之外,没有其他函数可以做到这一点,但无论如何,现在,你能发布变量列表(lStrat)吗? 假设层名称列表为(list“0”“one”“two”“three”),如以下代码所示。
[未经测试]
(mapcar '(lambda (x) (setq lst (cons (strcat x ",") lst ))) (list "0" "one" "two" "three"))
(if (setq s (ssget "_x" (list (cons 8 (vl-string-right-trim "," (apply 'strcat lst))))))
(repeat (setq i (sslength s))
(entupd (ssname s (setq i (1+ i))))
)
)
请阅读代码发布指南,并在代码中添加代码标签。
你在这里的一个英语论坛上。
页:
[1]
2