图纸模型
参考
- 类别
导入 - 导出
- 菜单
- 面板
- 菜单
此加载项生成给定网格的平板网。它创建适合直接打印和纸张建模的PDF或SVG文件。主要目标是对整个流程实现最大限度的自动化。还支持将模型的纹理烘焙到输出文档中等常见任务。
用法
要避免最终出现问题,请切换到对象模式。然后,选择要导出的网格,使其成为活动的网格。如果您想快速获得结果,只需从 :menuselection:'文件 --> 导出` 菜单执行此加载项。它将要求提供文件名,并自动执行所有其他操作。所有相关设置位于左下角。下文将更详细地叙述这些问题。
如果你对生成的网不满意,你可以手动编辑它。为此,你必须先执行 展开 工具(属性中的Mesh标签)。为了压平网格,将被切割的边必须被标记为编辑模式的接缝。你可以使用 清除缝合边 和 标记缝合边 工具来组织它们,或者使用对象模式中的 清除所有缝合边 帮助按钮来从头开始。当你导出模型时,它将使用所有给定的接缝,并在必要时增加一些切割。
你也可以调用 展开 工具来预览网的情况。它将在面板中列出所制作的网的所有孤岛,如果你在工具的设置中启用,它还将创建一个显示孤岛的UV布局。请注意,在这个阶段,孤岛的位置并没有被计算出来,所以它们都只是相互重叠在一起的。你可以使用Blender的 打包孤岛 工具来安排它们。
有几种拓扑结构在Blender中是可以实现的,但在纸上现实中是不可能的。
不是完全平坦的多边面(除三角形外的一切)。
零长边(两个顶点正好在同一位置,并由一条边连接)。
零面积的面(通常它们的顶点都位于直线上)。
如果检测到这些情况中的任何一种,该插件将抛出一个错误信息,并且不会输出。错误信息会指导你如何解决这些问题。
纹理导出纹理风格
要输出带有手绘纹理的模型,你必须解开模型,绘制图像并将其分配给模型,以便在渲染时产生效果。你可以使用任何你喜欢的工具来完成这些任务。这个插件的作用很简单,它在 纹理 模式下使用烘焙。
切换到对象模式,取消选择除要导出的对象外的任何对象。然后执行 导出纸张模型 ,在文件浏览器中将 材质 选择器切换到 从材质 。
如果你选择导出一个SVG文件,你会得到几个如何附加图片的选项。所有的选项在 属性 中都有详细的解释。
产生的纹理不依赖于任何场景设置,除了给定的材质,另一方面,所有的设置在做完导出后应该是完整的。
怎样读取网络
文件的大部分外观可以在导出时定制(见下文)。然而,默认的风格应该是纸质模型爱好者所熟悉的:虚线代表向外折叠,虚线代表向内折叠(即形成凹形)。网的每一部分的边界都用实线呈现。粘连的标签有一个灰色的填充颜色,以便与网的其他部分区分开来。
当一个标签的目标边可能不清楚时,就会在标签上写上一个标签。具体来说,如果该边将被贴在与其两个邻居相同的地方,或者其中一个是目标本身,则标签将被省略。标签的格式是 island_abbreviation: edge_number
。岛的缩写写在相应的岛的方括号里,在它的全长名称之前。边缘编号写在目标边缘旁边的一个三角形箭头上,在网外。
如果 创建标签 被禁用,同样的格式将用于网内每个相关边缘的标签。这种方法是为用坚硬和/或厚重的材料建模而设计的,对于这些材料来说,粘贴标签是很没有意义的。如果 创建数字 被禁用,标签将被省略;这对高度详细的模型可能是必要的。
如何打印网络
PDF文件几乎可以在任何地方直接打印。然而,如果你需要用手来改变网,事情就变得很困难。
如果你选择SVG格式,你可以在Inkscape等矢量图形编辑器中编辑导出的文件。你可能想做的一个原因是手动打包孤岛,节省纸张。另一个原因是,标签和数字常常使模型周围变得很杂乱,用手去掉一些标签会很有帮助。
如果打印的文件在页面边缘被裁剪,这意味着你应该在导出时增加 边距 设置。
边标记和面标记
带有自由式标记的边缘(
)将以用户定义的颜色和绘图风格在网上突出显示。这在用于平坦的边缘时尤其有帮助,因为平坦的边缘通常根本就不会被画出来。如果你用 刀 工具画一个形状,然后把一些边缘标记为自由式边缘,你可以在模型上做一个简单的线图。当使用在折叠边缘时,高光部分将被画在折叠线的下面。所以你可能要改变 自由线 的画法,使其更宽,而不是黑色,这样才能保持线条的可辨识度。
设置
图纸模型的孤岛
网格标签中的 纸面模型孤岛 标签提供了两个按钮,可以方便地调用 展开 和 导出纸面模型 工具。它还提供了用于标记和清除接缝的按钮,这取决于上下文,以及实验性的功能 限制孤岛大小 。
一旦调用 展开 工具,模型就会被分割成被压扁的部分,这些部分在下面一个叫做 孤岛 的列表中呈现。该列表允许你改变每个孤岛的标签。如果在导出过程中启用了 创建数字 ,这些标签的缩写将被用来描述哪个标签应该被贴在哪个孤岛上。在运行 展开 工具后,这些孤岛的标签会被重新计算,以便尽可能多的面保持在同一个标签下。
如果你选择一个孤岛并启用 高亮所选孤岛 按钮(并且你展开的网格是活动的),该孤岛将在三维视口中以橙色高亮显示。使用下面的滑块,你可以改变高亮部分的不透明度。
展开
从上面开始的第一个选项是 创建UV映射 。如果启用,将生成一个新的UV图来显示所有的孤岛。然而,他们的位置在输出过程的这个时候还没有计算出来,所以他们都只是被放在左下角。这个选项在手工编辑切割线的时候很有用。你可以使用 展开 工具,得到类似的结果。
该工具有三个滑块,它们都可以调整边缘切割的优先级(即: 面角凸 , 面角凹 , 边缘长度 )。一个高的值使具有相应属性的边缘有更大的机会被切割。正因为如此,通常最好将边缘长度设置为一个负值,让长的边缘保持连接。随机修改这些值通常可能有助于减少网中的岛屿数量。关于这些值的含义,请阅读 技术细节 中的展开部分。
属性
当开始导出时,插件会默默地展开网格(不标记任何接缝),并将所有面分割成岛,这对于复杂的网格可能需要几秒钟。然后,会显示一个文件浏览器。对于SVG格式,你选择的文件名会有一个 _page<number>.svg
的后缀,即使只需要一个页面。
该导出器的设置显示在文件浏览器的左下角。
- 预设
预设 菜单允许快速保存和调用它下面的所有设置,包括模型比例和颜色风格。
- 模型比例
模型比例可以用来缩放整个网。如果你想拥有一个1:72比例的模型,只需将其设置为72。这也是一个重要的选项,因为附加组件产生的岛往往比页面大。
默认情况下,这个值被设置为即使是最大的岛屿也能容纳在页面上。如果设置为1,真实模型将具有与虚拟模型相同的尺寸。
- 创建 UV 映射
与 展开 工具的类似名称的选项具有类似的效果,但不一样。它将创建一个新的UV图,准确地反映所有模型的岛屿的位置。不幸的是,所有页面的岛屿都被放在彼此的上面,而且很可能无法将它们区分开来。
文档设置
与输出文件的格式密切相关的设置在文件设置子面板中。
- 格式
第一个选择器在PDF和SVG文件格式之间切换。
- 页面大小
下面的另一个选择器允许你快速选择最常见的纸张尺寸之一。如果你需要其他东西,请选择 用户定义 并手动设置尺寸。
- 页边距
使得以精确比例导出模型更容易(如果你把 模型比例 滑块设置为1)。
你可以把它设置为你的打印机的不可打印边界的宽度,以使生成的SVG文档无需进一步缩放就可以打印。然而,导出按比例的模型仍然是困难的,因为该插件不能自动分割过大的岛。
- DPI
下一个值是 DPI ,它定义了网的整体分辨率。也就是说,不仅是烘培图像的分辨率(如果有的话),还有线条的粗细。
- 创建标签 Create Tabs
控制是否创建粘性标签。例如,如果你想用胶带粘住模型,就不要选这个。
- 创建一个数字
给一些应该粘在一起的边对添加数字。如果正确的目的地很容易从相邻的边上猜到,这些数字就被排除。在更复杂的模型中,它们可能彼此之间以及与网本身有很多重叠。禁用这个选项可能有助于解决此类问题。如果 创建标签 被禁用,这些数字将被呈现在网的内部。
- 标签和文字大小 Tabs and Text Size
设置岛周围的粘性标签的最大宽度。每个标签的实际尺寸被调整为最多为相应边缘长度的一半。在一些特殊情况下,标签会被做成不与真实面重叠,但它还不能可靠地工作。如果 创建标签 被禁用,这个滑块控制边缘上数字的大小。
- 隐藏边角度
折叠角度低于隐藏边缘角度的边缘将完全不被绘制。在输出光滑表面(如圆柱体)时,增加这个值可能会产生更好的效果:它将省去许多不必要的线条。在某些特殊情况下,降低这个数值可能会有帮助。
- 纹理
纹理 选择菜单列出了用于导出纹理网格的选项。
- 没有纹理
只是在白色背景上创建网(这曾被称为 "纯网" )。其余的选项会调用纹理烘焙,因此会明显地慢一些。
- 从材质 From Materials
导出分配给模型的每个面在其活动材料中的图像。
- 完全渲染,选择为活动
对应于各自的 Bake Type 选项。它们都渲染所有的材料和照明。 完整渲染 只渲染模型,而 选定为活动 则将附近的其他选定对象投射到模型上。它可能有助于程序化地创建毛皮或树叶等图案。
- 图像
在 图像 选择菜单中,你可以选择如何在SVG文件中包含烘焙的图像。如果你想在SVG编辑器中编辑网的布局,选择 链接 或 嵌入 。
- 图像内嵌
创建独立的SVG文件,使其更大但可移植。
- 单一链接(Single Linked)
留下来主要是为了兼容的原因。
颜色和样式
与绘图风格相关的选项被打包在 颜色和风格 子面板中。它们应该是不言自明的。
技术细节
展开
首先,该算法为每条边分配一个 "优先级" ,取决于其角度和长度。优先级较高的边在最终的网中更有可能被切割开来。较短的边有较高的优先级(它们更容易粘在一起),而且角度也更尖锐(这使得网在视觉上更容易理解)。
如果脸部的法线互相对着,就会形成一个凹陷的角度。这样的角度甚至有更高的优先级,这应该是对典型模型的帮助。如果一些面部法线被翻转,算法总是假设它们之间的角度是凸的。
如果有两个以上的面被一条边连接起来,其中两个被指定为主要面,其他的都必须被胶合。主要面的选择要使它们形成尽可能小的角度。
角度与长度的实际优先效果可能会使产生的网发生非常大的变化。对于一些基本模型来说,默认值是通过试验和错误选择的,但对于其他模型来说可能是一个不好的选择。如果你想调整它们, 展开 工具允许你这样做:它们是该工具的三个唯一设置。
切割算法从所有分离的面开始,试图将它们连接起来,形成更大的岛屿,按连接边的优先级排序。如果所形成的岛屿的某些面会重叠,则取消该操作,并继续进行另一条边的运算。如果一些顶点或边最终足够接近对方,它们就会被合并。在这个过程中,每条边正好被访问一次。
重叠检查基本上是线段相交的 Bentley-Ottmann 算法,适用于产生的岛的边界。为了处理一些特殊情况,该算法会自动在一个稍快的版本和一个更强大的版本之间切换。另一个检查是用来检测边界是否与所产生的岛的一个顶点相交 -- 这种情况必须被明确地测试,因为它们不需要引起任何相交的线段。
在页面上定位网状物
因为网状物不仅仅是由真实的面组成,还包括周围的胶合标签,所以它们不能被Blender内部工具( 打包孤岛 )定位。因此,必须要写一个独立的算法。
为了极大地简化过程,所有的网都被打包成(尽可能小的)边界矩形。然后,这些矩形按大小排序(先是最大的),按照这个顺序,算法试图将它们放在一个页面上。为左下角测试的位置是由一个 n × n 的网格给出的,该网格由已经定位的所有岛屿的角组成。通过检查与每个岛的边界矩形的重叠,一个位置被接受或拒绝。
当有任何剩余的岛屿不能被放置到页面上时,就会创建一个新的自由页面。
这种算法应该能可靠地工作,而且相当快。然而,如果边界矩形包含很多自由空间,它显然是低效的。此外,包装在很大程度上取决于处理岛屿的顺序,这绝不是最佳的。