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:

  • 1 = Defaulted value.

  • 100 = Max value. Adds 100 edges to the extruded length.

Length

Controls the length of the extrusion.

Numeric Range:

  • 1 = Defaulted value.

  • The higher the value the longer the extrusion length.

  • Negative values flips the direction of the extrusion.

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:

  • 1 = Defaulted value.

  • The higher the value the larger the bevel extends outward.

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:

  • .5 = Defaulted value.

  • The higher the value the larger the bevel extends backward along the mesh.

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:

  • 4 = Defaulted value.

  • The higher the value the larger the more segments are added and smoother the shape looks.

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:

  • 4 = Defaulted value.

  • The higher the value the larger the more segments are added and smoother the shape looks.

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