我想我遇到的问题与这里没有解决的问题相同。
我试图将外部参照的所有图层设置为图层251。我在网上找到了两个代码,贴在下面。
CVX:
- (defun c:cvx (/ ent_data);;changes all layers in selected xref to color 251
- (setq ent_data (entget (car (entsel))))
- (command "-layer" "Color" 251 (strcat (cdr (assoc 2 ent_data)) "*")"")
- )
X251:
- (defun C:X251 (/ EN L X ad layers)
- (command "UNDO" "BEGIN")
- (setq EN (nentsel "\nSelect Xref: ") L (cdr (assoc 8 (entget (car EN)))) X (substr L 1 (vl-string-position (ascii "|") L)) )
- (setq AD (vla-get-ActiveDocument (vlax-get-Acad-Object)) layers (vla-get-Layers ad))
- (if (/= (vl-string-search "|" L) nil)
- (progn
- (vlax-for layer layers
- (if (/= (vl-string-search (strcat X "|") (vla-get-name layer)) nil)(vla-put-Color layer 251))
- )
- (command ".REGEN")
- )
- (princ "Not an Xref!")
- )
- (prin1)
- (command "UNDO" "END")
- )
我使用了CVX例程一段时间,直到我发现如果选择附着到覆盖外部参照的外部参照,它就不起作用。因此,我尝试切换到X251例程,但如果使用UNDO,则在重新生成图形之前不会反映更改。我尝试使用链接帖子中建议的撤销组,但结果没有改变。有什么建议吗? |