前两天碰到有人提了这样一个问题,用同一种标注样式创建的标注(标注的箭头样式选择的是“指示原点”),进入布局后,在一个视口中冻结图层:Layer3,其他图层的标注箭头能正常显示,在另一视口中冻结图层:layer2,其他图层上的标注还在,但标注箭头却都消失了,如下图所示。
大家都很奇怪,标注作为一个整体,为什么冻结某个图层的时候,其他部分还在,而圆圈偏偏不见了呢?
这个问题不太常见,但其中隐藏了很多知识点,因此发到这里跟大家分享一下。
要想了解出现这种现象的原因,先要弄清楚下面几个问题:
一、标注是由尺寸线、延伸线、箭头、文字等多部分组成,虽然默认状态下创建的标注是一个整体,但这些部件都可以单独设置,是一种类似动态图块的对象。如果将变量dimassoc设置为1时,创建的标注直接就是分散状态。
二、标注默认的三角形箭头是由程序生成的实线(SOLID)对象,而其他形式的很多箭头都是用图块来生成,比如上图中使用的“指示原点”,还有建筑专业经常使用的斜线等。
想了解这一点很容易,你创建一个标注,将标注炸开(X),选择箭头后打开属性框(CTRL+1)就可以看出箭头是什么对象,如下图所示。
在标注样式管理器对话框中修改标注样式时还可以将标注箭头设置成自己定义的图块,如下图所示。
三、图块内的图形和图块并不一定在一个图层上。假设你在图层2上创建一些图形,然后将这些图形创建为块,你到图层3上去插入此图块,新插入的图块虽然在图层3上,但图层内的图形却仍在图层2上,如果你冻结图层2,图形仍会消失。要想块内图形跟图块在同一图层,需要在0画图形并定义成图块。
四、一张图中图块的名字是唯一的,从其他图中粘贴、插入的同名图块会被自动替换。
了解了上面几点,就可以来分析这张图到底出了什么问题了。
如果使用CAD软件提供的标准箭头,肯定不会出现上述问题,而从标注样式的定义和图形表面看用户并没有使用自定义的箭头,那问题到底出在什么地方呢?
我们将图中的标注炸开,标注箭头的图块名为_Origin,也正常。但将图块炸开后却发现里面的图形不在0层,而是在Layer2上,如下图所示。
如果我们新开一张图,按照他的图来设置标注样式和图层并创建标注后,炸开后,箭头中图形是在0层上。
所以问题的出现只有两种可能:一、在创建标注之前,图中已经存在了一个名为_Origin的图块,图块创建时图形是画在图层Layer2上的;二、创建标注后__Origin图块的定义被修改,编辑图块时将图形移到了Layer2图层上。因为无论标注在那个图层上创建,标注箭头中的图形都在图层Layer2时,冻结Layer2时,所有标注的圆圈就都不显示了。
解决办法:
新开一张图,设置一个同样的标注样式并用此样式创建一个标注,然后删掉标注,这样图中已经有了标准的_Origin图块(可以用I插入图块的命令试试),然后将有问题图整图选中后复制,在新图中粘贴到原坐标就好了。
大部分人不会遇到这样的问题,因为很少有人会去创建或修改标注使用的箭头图块,发这篇文章的目的也不是想要告诉大家如何解决同样的问题,而是借这个问题让大家对标注、图块、图层的相关概念有更深入的了解,并且知道遇到类似问题应该如何分析和解决。
如果对图块、图层冻结相关概念不太了解,请参看公众号或新浪博客里的相关文章。
上述技巧适用于AutoCAD和浩辰CAD等类似的CAD软件。