前几天有网友说他的图纸中图层既没有关闭,也没有冻结,但布局中的图框和视口都看不到了,图纸发过来后我找到了原因,就是图纸空间中的图框和视口都被设置成不可见了。但CAD并没有提供这样的命令,显然是什么专业软件或插件做了这方面的设置。视口和图纸空间的图形用全选或快速选择都可以选中,但就是看不到,如下图所示。
视口也能进去,但由于看不到视口边界,无法选择某个视口进行编辑,如下图所示。
当时我也没有找到解决办法,只能建议他看看他使用的专业软件,如天正里是否有设置图形可见的功能,也不知道他找到没有。
没想到过了两天又有网友遇到类似的问题,这次更奇特了,说是打了一个电话回来图纸就只能看到一条直线了,其他图形都不见了。图纸发过来看了一下,除了一条直线外5万多个图形也都被设置成不可见了。
几个月前就遇到过一个类似的问题,只是一直没有弄清楚这个问题怎么产生的,我也有装天正,不知道天正里有类似隐藏或显示图形的功能。
虽然知道原因,但由于自己不会编程,当时也没有帮到它们,前两天找会LISP编程的朋友写了个小程序,可以将被设置成不可见的图形变成可见,虽然这个插件还不是特别完善,但可以解决大部分类似的问题,再次分享给大家。
将下面代码复制到一个记事本后保存为*.lsp。
(defun c:showall()
(defun codedxf(dxfnum dxflst)(cdr(assoc dxfnum dxflst)))
(defun dxfupd (updent updnum updval)
(if(assoc updnum updent)
(setq updent(subst(cons updnum updval)(assoc updnum updent)updent))
(setq updent(append updent(list(cons updnum updval))))
)
(entmod updent)
)
(setq ss (ssget "X"))
(if ss
(progn
(setq nLen (sslength ss) i 0)
(while (
(setq en (ssname ss i))
(setq entdxf (entget en))
(if (= (codedxf 310 entdxf) nil) (dxfupd entdxf 60 0))
(setq i (1+ i))
)
)
)
)
打开有问题的图纸,执行AP命令,加载保存的LSP程序,加载成功后输入SHOWALL命令,就可以让被设置为不可见的图形显示出来,如下图所示。
其实CAD里有设置图形不显示的功能:隐藏和隔离,但可以随时恢复。但CAD并没有提供将设置成不可见图形变成可见的功能。
如果哪位知道导致出现图形不可见的原因,或者知道某个专业软件中有设置图形不可见和可见的功能的话,请告诉我,这样下次我遇到这类问题的时候就可以直接建议他使用专业软件里的功能了。
通过菜单可查找之前发布的文章,较完整文章目录请访问:资料分享>文章目录。
领取专属 10元无门槛券
私享最新 技术干货