解决某些剖切图无法打印出来的两种方案


【本文在MSCE-U16.3下写就,不保证今后版本就是这样的】

三维设计中最终的图纸模型(SheetModel)中一般来说会有来自绘图模型(DrawingModel)中的参考,而绘图模型中则是一些对设计模型(DesignModel)剖切后保存视图的引用。在某些默认情况下这些剖切图无法打印出来。

请看如下例子:

communities.bentley.com/.../PrintTest.dgn

打开后切换当前模型到“挑坎结构图2”,能看到如下图所示的图纸模型:

现在的要求是,以单色方式打印这个图纸模型。在默认情况下我们对打印对话框做了如下三种设置,效果均不理想:

默认打印方式,右侧图形丢失。且文字颜色不是黑色的。

设置在单色模式后文字颜色正确了。但左侧图形被填充,右侧图形依然丢失。

勾选Rasterized(光栅化)选项后两个图形部分都正确了,但文字是颜色的。

【注】:第四种组合(勾选Rasterized,且设置Color为Monochrome)无法工作。此数据案例使用了填充可见边显示样式(filled visible edge display style),因此在光栅化模式下,打印颜色覆盖控制被禁用。

为此,我们为您提供两个解决方案:

【方案一】:勾选Rasterized选项,再配合如下一个打印设计脚本(Design Script)文件。

communities.bentley.com/.../mono_2D00_color.dscript

该文件中就只有一行如下代码。它将所有元素的颜色都设置为了黑色。

color = (0, 0, 0)

然后,如下图所示,在打印对话框中设计脚本位置指定该文件即可。

【注】:其实打印的再符号化(Resymbolization)有两种技术:笔表和设计脚本。由于剖切元素比较新,而笔表是一种老旧的技术,无法认识这种动态剖切元素。所以,我们才不得不采用了设计脚本这种新的再符号化技术。

【方案二】:一旦打开Rasterized,对于大模型打印速度会很慢。那么,我们就要追踪一下为何我们的剖切图有些不能被打印呢?这是因为图形动态的剖切动作非常耗时,MS软件为了加速这个动态剖切而采用了更高级的GPU(图形处理单元,即显卡中的核心部件,比主机中的CPU功能还强大)编程技术。该技术不能保证在所有情况下的数据一致性。找到了问题的原因后就好办了。我们可以将动态剖切切换到静态的(即Cached方式,专业术语翻译为缓存)。那么如何做到这一点呢?又回到我们文章开头提到的出图基本原理了,SheetModel参考了DrawingModel,DrawingModel参考DesignModel中的SavedView。在DrawingModel参考DesignModel中的视图时(不一定非得是SavedView),有一个Visible Edge(可见边)选项,该选项控制了是动态视图还是静态视图。明白了这个原理后我们先到当前SheetModel的参考对话框中找到它参考了哪些DrawingModel。如下图所示,发现了两个。【注】:参考列表中的两个红色的表明是找不到的参考文件,此处忽略,不影响我们问题的讨论。

进而分别打开“泄0+441.44”和“泄0+448.94”两个绘图模型,将它们的Visible Edge的方式从Dynamic改成Cached。

然后,再返回到图纸模型“挑坎结构图2”,启动打印对话框,此时不勾选Rasterized,将Color设置为Monochrome(单色),就能正常显示出两个图形和文字了,而且都是黑色的。且这种情况下打印速度还很快。

【总结】:对于复杂的设计模型的出图,在出图前最好将所有图纸模型中的Visible Edge(可见边)选项由Dynamic(动态)改为Cached(缓存)。这样,打印时就不需要勾选Rasterized了。当然,如果您要打印三维渲染效果,打印含有透明度的图形,或者点云等复杂元素,Rasterized选项还是有其用武之地的。