Paper Model#

Reference

Categoria:

Import-Export

Menu:

File ‣ Export ‣ Paper Model (.pdf/.svg)

Panel:

Properties ‣ Mesh ‣ Paper Model Islands

Menu:

Mesh ‣ Unfold

Esse add-on gera uma rede plana de uma determinada malha. Ele cria tanto arquivos PDF ou SVG adequados para impressão direta e modelagem em papel. O objetivo principal é a automação máxima de todo processo. Tarefas comuns como gravar a textura do modelo no documento de saída também são suportadas.

Usage#

Para evitar eventuais problemas, mude para o Object Mode. Então, selecione a malha que você quer exportar de modo que ela seja a ativa. Se você quer obter resultados rapidamente, apenas execute esse addon pelo menu File ‣ Export. Ele vai perguntar por um nome de arquivo e fazer todo o restante automaticamente. Todas as configurações relevantes estão no canto inferior esquerdo. Elas são descritas em mais detalhes abaixo.

Se você está insatisfeito com a rede gerada, você pode editá-la manualmente. Para isso, você tem que executar a ferramenta Unfold primeiro (disponível na aba Mesh em Properties). Arestas que serão cortadas de modo a planificar a malha devem ser marcadas como Seams no Edit Mode. Você pode usar as ferramentas Clear Seam e Mark Seam para organizar elas como desejar, ou usar o botão de apoio Clear All Seams no Object Mode para começar do início. Quando você exporta o modelo, ele irá usar todas as seams fornecidas e irá adicionar mais cortes se necessário.

Você pode também chamar a ferramenta Unfold apenas para pré-visualizar a rede. Ela irá listar todas as ilhas da rede produzida no painel e se você habilitar isso nas configurações da ferramenta, ela irá criar também um layout UV mostrando as ilhas. Note que as posições das ilhas não são calculadas nesse estágio, de modo que eles vão apenas ficar um em cima do outro. Você pode usar a ferramenta do Blender Pack Islands para organizar eles.

Há alguns poucos tipos de topologias que são possíveis no Blender mas não na realidade do papel:

  • Faces N-gon (tudo exceto triângulos) que não são perfeitamente planos.

  • Arestas de comprimento zero (dois vértices exatamente no mesmo lugar e conectados por uma aresta)

  • Áreas de área zero (tipicamente seus vértices ficam todos alinhados)

Se qualquer um desses casos é detectado, o add-on irá lançar uma mensagem de erro e não irá exportar. A mensagem de erro guia você para como corrigir os problemas.

Exportando Malhas Texturizadas#

Para exportar seu modelo com uma textura pintada à mão, você deve fazer o unwrap do modelo, pintar uma imagem e atribuí-la ao modelo de modo que tenha efeito durante o render. Você pode usar qualquer ferramenta para essa tarefa. O que o add-on faz é simplesmente gravar (baking) no modo Textures.

Mude para Object Mode e desselecione qualquer objeto exceto aquele a ser exportado. Então execute Export Paper Model e no File Browser troque o seletor Textures para From Materials.

Se você esolher exportar para um arquivo SVG, você obtém várias opções de como juntar as imagens. Todas opções são explicadas com mais detalhe Properties.

A textura resultante não depende de nenhuma configuração da cena exceto para o dado material, e por outro lado, todas configurações devem estar intactas depois da exportação.

Como Ler a Rede#

Muito da aparência do documento pode ser customizada durante a exportação (veja abaixo). Entretanto, supõe-se que o estilo padrão seja familiar para os modeladores de papel: linhas tracejadas representam dobras para fora, linhas traço-ponto dobra para dentro (i.e, para formar formas côncavas). Limite de cada parte da rede é renderizada em linhas sólidas. As abas para colar tem uma cor de preenchimento cinzenta para distinguir do restante da rede.

A label is written on a tab when its target edge might not be clear. Specifically, the label is omitted if the edge will be stuck to the same place as its both neighbors or if one of these is the target itself. The format of labels is island_abbreviation: edge_number. Island abbreviation is written in square brackets under the corresponding island, before to its full-length name. Edge number is written as a triangle arrow next to that target edge, outside the net.

Se Create Tabs é desativada, o mesmo formato é usado para rótulos ao longo de cada areasta relacionada, dentro da rede. Esse método é desenhado para modelagem com materiais duros e/ou espessos, para os quais colar abas é um tanto inútil. Se Create Number é desativada, os rótulos são omitidos; isso pode ser necessário para modelos altamente detalhados.

Como Imprimir a Rede#

O arquivo PDF pode ser impresso diretamente quase que em qualquer lugar. Entretanto, as coisas dificultam se você precisa mudar as rede manualmente.

Se você selecionar o formato SVG, você pode editar os arquivos exportados em um editor vetorial como o Inkscape. Uma razão para você querer fazer isso é para organizar manualmente as ilhas e poupar papel. Outra razão é que as abas e números geralmente bagunçam muito ao redor do modelo e pode ser útil remover alguns manualmente.

Se documentos impressos são cortados ao redor das bordas da página, significa que você deveria aumentar a configuração Margin ao exportar.

Colocando Marks na Rede#

Areas com Freestyle Mark (Edge ‣ Mark Freestyle Edge) vão ser destacadas na rede com uma cor e estilo de desenho definida pelo usuário. Isso é útil especialmente quando usado em arestas planas, que normalmente não seriam desenhadas de forma nenhuma. Se você desenha uma forma com a ferramenta Knife e então marca algumas das arestas como Freestyle, você pode fazer um desenho de linhas simples no modelo.

Quando usado em arestas dobráveis, o destaque será desenhado embaixo da linha de dobra. Então você irá provavelmente ter que mudar o estilo de desenho das Freestyle Lines para deixá-las mais largas e não pretas, de modo que as linhas permaneçam distinguíveis.

Configurações#

Paper Model Islands#

The Paper Model Islands tab in the Mesh tab offers two buttons for calling the Unfold and Export Paper Model tools conveniently. It also offers buttons for marking and clearing seams, depending on the context, and the experimental functionality Limit Island Size.

Once the Unfold tool is called, the model is split into flattened parts and these are presented in a list called Islands below. The list allows you to change the label of each island. If Create Numbers is enabled during export, abbreviations of these labels will be used to describe which tab should be stuck to which island. After running the Unfold tool, these island labels are recalculated so that as many faces as possible remain under the same label.

If you select an island and enable the Highlight Selected Island button (and the mesh you unfolded is the active one), the island will be highlighted in orange in the 3D Viewport. Using the slider below, you can change the opacity of the highlight.

Unfold#

The first option from top is Create UV map. If enabled, a new UV map will be generated to show all the islands. However, their positions are not calculated yet at this time of the export process, so they are all just placed in the bottom left corner. This option is useful when editing the cutting lines by hand. You can use the Unwrap tool and get a similar result.

The tool has three sliders, which all adjust edge cutting priority (namely: Face Angle Convex, Face Angle Concave, Edge Length). A high value gives an edge with the corresponding property a higher chance to be cut. Because of that, it is usually better to set Edge Length to a negative value, letting long edges stay connected. Randomly modifying these values may often help to reduce the count of islands in the net. For information about the meaning of these values, read the Unfold section in the Technical Details.

Properties#

When the export is initiated, the add-on silently unfolds the mesh (without marking any seams) and divides all faces into islands, which may take a few seconds for complex meshes. Then, a File Browser is displayed. With SVG format, the file name you choose will get a _page<number>.svg suffix, even if only one page was needed.

Settings of this exporter are presented in the bottom left corner of the File Browser.

Preset

The Preset menu allows to quickly save and recall all the settings below it, including model scale and color style.

Model Scale

Model Scale can be used to scale the whole net. If you want to have a model in 1:72 scale, just set this to 72. This is an important option also because the add-on often produces islands bigger than the page.

By default, this value is set so that even the biggest island fits onto the page. If set to one, the real model will have the same dimensions as the virtual one.

Create UV Map

Has a similar effect as the similar named option of the Unfold tool, but not the same. It will create a new UV map that exactly reflects the placement of all the model’s islands. Unfortunately, islands from all pages are placed on top of each other, and it is quite impossible to tell them apart.

Document Settings#

Settings closely related to the format of the output document are in the Document Settings subpanel.

Format

First selector switches between PDF and SVG document formats.

Page Size

Another selector below allows you to choose one of the most common paper sizes quickly. If you need something else, choose User Defined and set the dimensions manually.

Page Margin

Makes it easier to export models in exact scale (if you set the Model Scale slider to 1).

You can set it to the width of the non-printable border of your printer, in order for the resulting SVG document to be printable without further scaling. However, exporting in-scale models is still difficult, as the add-on does not automatically split oversize islands.

PPP (DPI)

The next value is DPI, which defines the overall resolution of the net. That is, not only resolution of baked images (if any), but also line thickness.

Create Tabs

Controls if the sticking tabs are created at all. For example, uncheck this if you want to stick the model using tape.

Create Numbers

Adds numbers to some edge pairs that are supposed to be stuck together. These numbers are excluded if the correct destination is easy to guess from the neighboring edges. In more complex models, they may overlap a lot with each other and with the net itself. Disabling this option may help solve such issues. If Create Tabs is disabled, the numbers will be rendered inside of the net.

Tabs and Text Size

Sets the maximal width of the sticking tabs around islands. The actual size of each tab is adjusted to be at most half the length of the corresponding edge. In some special cases, tabs are made not to overlap with real faces, but it does not work reliably yet. If Create Tabs is disabled, this slider controls the size of numbers on edges.

Hidden Edge Angle

Edges with folding angle below Hidden Edge Angle will not be drawn at all. Increasing this value may produce nicer results when exporting smooth surfaces, such as cylinders: it will spare a lot of unnecessary lines. Decreasing it could possibly help in some special cases.

Texturas

The Textures select menu lists options for exporting textured meshes.

No Texture

Just creates the net on a white background (this used to be called «Pure Net»). The remaining options invoke texture baking and therefore are noticeable slower.

From Materials

Exports the image that is assigned to each of the model’s faces in their active material.

Full Render, Selected to Active

Correspond to the respective Bake Type options. They both render all the materials and illumination: Full Render renders the model only, while Selected to Active projects other nearby selected objects onto the model. It may be helpful for creating patterns such as fur or leaves procedurally.

Imagens

The Images select menu allows you to choose how to include the baked images in the SVG file. If you want to edit the layout of the net in an SVG editor, choose either Linked or Embedded.

Embedded

Creates standalone SVG files, making them bigger but portable.

Single Linked

Remains mostly for compatibility reasons.

Colors and Style#

Options related to the drawing style are packed in the Colors and Style subpanel. They should be quite self-explanatory.

Detalhes técnicos#

Unfold#

Firstly, the algorithm assigns every edge a «priority», depending on its angle and length. Edges with higher priority will more probably be cut apart in the final net. Shorter edges have higher priority (they are easier to glue on) and sharper angles too (that makes the net easier to visually understand).

Faces form a concave angle if their normals are pointing against each other. Such angles have even a bit higher priority which is supposed to help for typical models. If some face normals are flipped, the algorithm always assumes the angle between them be convex.

If more than two faces are connected by an edge, two of them are designated as the main ones and all others will have to be glued. The main faces are chosen so that they form the smallest angle possible.

The actual priority effect of angle versus length may change the resulting net very much. The default values were chosen by trial and error for some basic models, but may be a bad choice for others. If you want to tweak them, the Unfold tool allows you to: they are the tool’s three only settings.

The cutting algorithm begins with all faces separated and tries to connect them to form bigger islands, ordered by the connecting edge’s priority. If some of the faces of the resulting island would overlap, the operation is canceled and the algorithm continues with another edge. If some vertices or edges end up close enough to each other, they are merged. During this process, each edge is visited exactly once.

The overlap check is basically the Bentley-Ottmann algorithm for line segment intersection, applied to the boundary of the resulting island. To handle some special cases, the algorithm automatically switches between a slightly quicker and a more robust version of itself. Another check is applied to detect if the boundary crosses itself in just a vertex of the resulting island – such cases have to be tested explicitly as they need not cause any intersecting line segments.

Positioning the Nets on Pages#

Because the nets are not consisting only of the real faces, but also of the gluing tabs around, they cannot be positioned by the internal Blender tool (Pack Islands). Therefore, a standalone algorithm had to be written.

For a great simplification of the process, all nets are packed into (smallest possible) bounding rectangles. These are then ordered by size (largest first) and in this order the algorithm tries to position them on a page. The positions tested for the lower left corner are given by an n × n grid resulting from all the corners of islands already positioned. A position is accepted or rejected by checking overlaps with each of the islands” bounding rectangles.

When there are any islands left that could not be placed onto the page, a new free page is created.

This algorithm should work reliably and quite fast. However, it is clearly inefficient if the bounding rectangles contain much free space. Also, the packing depends heavily on the order in which the islands are processed, which is in no way optimal.