Shapes
Shapes are 2D objects made of one or more curved or straight lines. The Threekit platform allows for Text and Vector assets to be converted to Shapes. Threekit also provides some basic primitive shapes to use from.
The Shapes can be converted to 3D meshes with the available shape object operations, like Mesh From Shape or Extruded Shape. Shapes can also be combined or subtracted with other Shapes with Boolean Shape. The Boolean Shape operation unlocks numerous possibilities with Shapes.
Overall, it is best to think of Shapes as powerful building blocks. They can allow complex vector assets or font files to be converted into a 3D mesh relatively simply.
Shape Operations
Mesh From Shape
The Mesh From Shape converts a shape object to a mesh object. The command creates a surface that caps a closed curve. This does not add thickness to the shape. It allows the shape to be treated like a mesh asset and use operators and functions available to meshes.
Shape | Link to a shape object within your model asset scene to convert to a mesh object. |
Extruded Shape
The Extruded Shape converts a shape object to a mesh object. The command creates a surface that caps a closed curve. This differs from the Mesh From Shape because it adds thickness to the shape. It allows the shape to be treated like a mesh and use operators and functions available to meshes.
Shape | Link to a shape object within your model asset scene to convert to a mesh object. | ||||||||||||||||||
Back Faces | When enabled it adds a polygon face to the extruded back of the shape. | ||||||||||||||||||
Segments | Specifies how many edges or segments are added to the extruded length. This can be important if planning to deform the mesh with other operators. Numeric Range:
| ||||||||||||||||||
Length | Controls the length of the extrusion. Numeric Range:
| ||||||||||||||||||
Bevel | When enabled a flat or rounded edge is added to the extrusion.
| ||||||||||||||||||
Offset | This value determines how far the bevel expands outward. The units are in meters, so it is recommended to use smaller values. Numeric Range:
| ||||||||||||||||||
Style | This setting controls the shape profile of the bevel and where it is applied in the extrusion. It is important to note that you need segments on the extrusion for the bevel style to properly apply.
| ||||||||||||||||||
Round | The front extrusion is beveled. The profile is arced and looks softer. | ||||||||||||||||||
Rounded Both | The front and back of the extrusion are beveled. The profile is arced and softer looking. | ||||||||||||||||||
Extended | The front extrusion is beveled. The profile is linear and sharper looking. | ||||||||||||||||||
Corner Radius | This value controls how far back the extrusion goes along the mesh. The units are in meters, so it is recommended to use smaller values. Numeric Range:
|
Boolean Shape
The Boolean Shape combines two shapes in your model asset to factor into a boolean operation. The boolean operation can best be thought of an equation that adds or subtracts the shapes from each other. The result is a new unique shape.
Shape A | Determines which shape will be defined as Shape A for the Operation setting. | ||||||||
Shape B | Determines which shape will be defined as Shape B for the Operation setting. | ||||||||
Operation | This setting defines which logical operation is applied for the Boolean Shape.
| ||||||||
A intersection B | The resulting Boolean Shape contains only the volume that was common in both shapes. Where Shape A + Shape B overlap. | ||||||||
A union B | The resulting Boolean Shape adds both shapes together. Any intersecting or overlapping portions are removed from the new shape. Shape A + Shape B (removes intersection and overlapping portions) | ||||||||
A subtract B | The resulting Boolean Shape subtracts Shape A from Shape B. Shape A - Shape B | ||||||||
A exclusive or B | The resulting Boolean Shape adds both shapes together. It maintains the intersecting or overlapping portions. Shape A + Shape B (keeps intersecting and overlapping portions) | ||||||||
Use World Space | When enabled the Boolean Shape will use the World Space coordinates of Shape A and Shape B when calculating the Operation. When disabled the Boolean Shape will ignore the World Space coordinates. Instead it will act as if Shape A and Shape B are placed at 0 in the World Space XYZ axis when calculating the Operation. |
Shape Primitives
Polygon
The Polygon shape has a center point and radius. The segments add how many sides go around the polygon. The lower number results in shapes like diamond or hexagons. The higher numbers a smoother circle.
Radius | Determines radius of Polygon shape. |
Segments | Sets the number of sides on a Polygon shape. The higher the number the more circular it looks. |
Angle | Controls the rotation of the Polygon shape. |
Rectangle
The Rectangle shape is a square or rectangle shape.
Width | Determines width of a Rectangle shape. |
Height | Determines height of a Rectangle shape. |
Ring
The Ring shape object can also be thought of as a torus shape. It is much like the Polygon shape object but with a hole in the center.
Inner Radius | Determines the radius of the inner portion of the Ring shape. |
Outer Radius | Determines the radius of the outer portion of the Ring shape. |
Segments | Sets the number of sides on a Ring shape. The higher the number the more circular it looks. |
Angle | Controls the rotation of the Ring shape. |
Text Shape
Text Shape uses fonts from your asset library and then combines them with any shape object operations. The Threekit platform reads .TTF font files.
Text | User-typeable text input field. |
Curve Segments | Determines the amount of segments on the Text Shape. Controls how rounded curved areas of the shape appear. Numeric Range:
|
Font Asset | Link to a custom font asset. Upload a .TTF or .OTF file to your asset library and it will appear as an option for Font Asset. |
Font Size | Selects the font body size. |
Spacing | Determines the space between characters in text. |
Kerning | Extra font styling preset that must be included in the imported font file. Kerning pairs letters that have somewhat matching shapes together and brings them closer together. This makes the font appear with proper spacing. It is recommended to leave Kerning enabled by leaving the box checked. We recommend this because if it is included in the font file this is usually the way the font designer intended it to be used. |
Ligature | Extra font styling preset that must be included in the imported font file. Some combinations of letters will have specific single characters for them, instead of two separate characters. It is recommended to leave Ligature enabled by leaving the box checked. We recommend this because if it is included in the font file this is usually the way the font designer intended it to be used. |
Vector Shape
Vector Shape uses vector assets from your asset library and combines them with any shape object operations. This can be extremely powerful as vector assets can allow for some complex designs.
Vector Asset | Link to a custom vector asset. Upload a .SVG file to your asset library and it will appear as an option for Vector Asset. |
Curve Segments | Determines the amount of segments on the Vector Shape. Controls how rounded curved areas of the shape look. Numeric Range:
|
Shape Limitations
The following are some things to keep in mind when working with Shapes.
Boolean
Given two shapes, it's possible to apply boolean operations on them, like union, intersection, difference (removing the second shape from the first one), and XOR (difference of union
and intersection
).
Shapes can be moved in 3D space, but that doesn't affect the boolean operations.
They only consider the relative positions in local space.
To create different effects, it's possible to apply a transform operator on one of the shapes.
Using the world transform option might not exactly work as expected because only operations not affecting the Z
-axis can properly work. If the Z
-axis is changed in any way, the boolean operations would apply to the projected shape on the XY
-plane.
Fonts/Text
Fonts can be very complicated or incomplete for some characters. In those cases, the behavior is undefined.
Some font files might describe holes in shapes that are not compatible with our shape system.
We use opentype.js
, which doesn't always work properly for non-Latin fonts, like Noto. It's best to check if the font works here first, so that we can tell if the bug is ours or theirs.
SVG
Only SVG images defined with paths can be converted to shapes. The only graphics element that will be converted to shape is <path>
. This means other elements including (but not limited to) circle
, line
, polygon
, and rect
will be ignored. Each path element should contain either only lines or only closed shapes. If a path element contains both, the lines will be discarded. SVG styles are not considered for making shapes, thus, things like stroke thickness or joints won't be used for generating the shape. Definitions (defs
) are not supported either. Color information is discarded.
Importing Shapes
Shapes cannot be imported from any file format. CAD formats support wires, but even if they look like shapes, they're not restricted to two dimensions.
Exporting Shapes
A shape cannot be exported or rendered directly in V-Ray; it must be converted to a PolyMesh first.
Last updated