前几天有位网友跟我说他的图纸中线型会导致无法复制粘贴,一开始我还以为他弄错了,因为在我的印象中,线型定义很简单,而且会保存在当前图纸中,即使没有线型文件,线型也应该可以正常显示,即使复杂线型因为没有使用的符号形文件导致显示不正确,但也不至于导致无法复制粘贴。
当图纸发过来后,却发现图中只有一个圆,但打开图的时候确实会提示图中有代理对象,如下图所示。
看到这个提示,我就想应该是代理对象导致,可是打开图形后,全选图形,在特性面板(CTRL+1)中却没有发现有代理图形(PROXY ENTITY),如下图所示。
只选择圆,CTRL+C也会提示无法复制到剪贴版,我尝试将块参照和图案填充都删除了,只剩下圆仍是如此,看来真的跟网友说的是跟线型有关了,这个线型到底有什么特殊呢?从线型列表来看,只是名字有点特殊,其他也看不出来有什么区别,如下图所示。
将圆的线型换成其他线型后就可以复制粘贴了。我怀疑这个线型的数据有问题,于是我在AUTOCAD 2011中加载了一个输出线型定义的程序,发现提示错误,也无法输出。
后来我尝试用AUTOCAD 2017和浩辰CAD打开,发现没有代理对象的提示,并且可以用程序输出线型,但输出的线型跟普通线型并没有什么区别,我尝试在AUTOCAD 2011里将那个线型改名,然后重新加载一个同名的线型,尝试覆盖里面的线型定义,但都没有成功。
最后我尝试用一个可以看图形内部数据的工具查看了一下线型数据,普通的线型只是一些简单的实线、空格长度和数据,如下图所示。
而这个线型就比较特殊,除了有常规线型的数据外,下面还带了其他数据,暂开后,发现里面带了DGN的定义,显示为<Proxy>也就是代理图形,原来代理图形在线型定义里,难怪选择不到。这个数据量还不小,数据有上百条。
由于AUTOCAD 2011无法识别线型附带的这些数据,因此导致无法复制粘贴。普通的代理对象或图形可以炸开X后复制粘贴,但这种处于线型内部的代理图形数据用常规操作却无法处理了。
如果要在当前版本里进行复制粘贴,唯一的处理办法就是换线型了,比如这个线型的基本定义跟HIDDEN线型一样,我们可以加载一个HIDDEN现象,然后将所有使用上述线型的图形选出来后,将线型替换成HIDDEN。线型替换后整体效果不也会有变化,但是用选择过滤器FILTER功能是否能将所有使用此线型的图形都选择出来是一个问题。
我试了AUTOCAD 2017以上版本打开就没有这个问题,看来是可以识别线型附加的这些数据,也就是不存在代理图形,因此可以正常复制粘贴,但具体什么版本开始可以支持的就不好说了。
之前遇到过多张因为有孤立的DGN线型数据导致软件异常大和无法复制粘贴的图纸,这次又遇到不是孤立的数据,但同样不能识别导致无法复制粘贴的问题。
看来设计单位使用MICROSTATION的还不少。AUTOCAD既然跟MICROSTATION很早就交换了数据接口,为什么还是存在这么多数据转换和兼容性的问题,我一直非常想知道这些数据怎么来的,希望那天有位网友能告诉我答案。