Most printed parts are a 2D outline given depth. Rig Cad has three ways to draw that outline, three ways to turn it into a solid, and one habit that makes the difference between a model that resizes and one that breaks: compose the whole profile in 2D first, then extrude, revolve or offset it once. This article walks the flange, cup and gasket in the companion project through that habit.

Three ways to draw an outline

Table: 2D sources and when each one is the right choice.

Source What it is Reach for it when
2D primitive (rectangle, circle, polygon, slot, star, arc slot, teardrop, ellipse) A fully parametric shape with its own options, including cornerRadius and segments The outline is a standard shape or a boolean of standard shapes
path A points array; every path.points[i].x and .y is expression-bindable The outline is a custom profile you can describe by coordinates, such as a revolve section
sketch-2d A constraint-solved sketch with points, lines, arcs, dimensions and a DOF count A relationship must survive a resize: parallel edges, a hole centred on an edge, a fixed angle

Primitives are the default. A rectangle with cornerRadius is exact in its contour and faceted only by segments, which defaults to 8; raise it when the corner is large or the dimension matters. Every 2D primitive centres itself on its local origin, and every one has an outputMode that can emit a solid directly with extrudeHeight, which is the shortcut the hex head in Threads and Snap Fits uses.

A path is the right tool for a section you would otherwise sketch by hand. The cup in the demo is six points, and four of them are bound to cupRadius, cupHeight and cupWall, so the profile is a parametric drawing rather than a fixed one. There is no options.profile on a path node; the points are the profile.

A sketch is the only source with a solver behind it, and it is covered at the end, because it is the one you should reach for last.

Compose the profile before you extrude

The five Boolean operations from Constructive Solid Geometry in Rig Cad work in 2D as well as 3D. When every child of a Union, Difference, Intersection or Hull is a closed 2D profile, the operation combines their regions and emits a profile; Difference is the first child minus the rest. Linear Repeat and Radial Repeat are polymorphic in the same way, so a bolt circle is a Radial Repeat of one circle inside a 2D Difference.

The flange in the demo is exactly that tree, and it is extruded once.

Diagram: The flange tree. One extrude sits on top of a 2D difference whose children are the rounded outline, the centre bore, and a radial repeat of a single bolt-hole circle.

flowchart TD
  E["Flange (extrude, chamfered edge)"] --> D["Flange_Profile (difference)"]
  D --> R["Flange_Outline (rectangle, cornerRadius)"]
  D --> C["Center_Bore (circle)"]
  D --> RR["Bolt_Circle (radial_repeat, count = boltCount)"]
  RR --> H["Bolt_Hole (circle at x = boltCircleDiameter / 2)"]

Compare that with extruding four solids and subtracting them in 3D. The 2D version solves in a few milliseconds, produces a clean prismatic mesh, and cannot suffer the coplanar-face failures that Oversize the Cutter exists to prevent, because there is no cutter. The validator on boltCircleDiameter keeps the holes inside the plate; the derived pitch idea behind it is in Repeats and Arrays.

Extrude: height, taper, twist, and edge profiles

Linear Extrude gives its child profile a height along local Z, growing upward from the sketch plane unless centerZ is on. scaleTop tapers or flares the top face, twistDegrees rotates it gradually from base to top, and a child profile marked isHole is subtracted from the extrusion without a separate boolean.

The edgeProfile option treats the top and bottom edges: straight, chamfer, or rounded, each using edgeRadius as the inset. The demo flange uses a chamfer bound to edgeChamfer. Chamfer is almost free; the rounded profile builds edgeSegments offset layers per edge and is far heavier, so on a plate that only needs a printable edge break, chamfer first. Fillets and Chamfers Without a Fillet Tool compares all the rounding routes.

The extrusion inherits the profile's resolution. A rounded rectangle at segments 8 is a coarse octagonal corner in 3D; the count is on the profile node, not the extrude.

Revolve and the Y-up convention

Revolve sweeps its child profile around the profile's Y axis through revolveDegrees, with nDivisions setting the angular resolution. The result comes out Y-up. World up in Rig Cad is +Z, so a revolved cup that should stand on the build plate needs transform.rotation.x = 90 on the revolve node, which is exactly what the demo's Cup carries. Rotations compose Z, then Y, then X, as described in Transforms and Reference Frames.

Draw the section on one side of the axis, with x as the radius. The cup profile is:

(0, 0) → (cupRadius, 0) → (cupRadius, cupHeight) → (cupRadius - cupWall, cupHeight)
       → (cupRadius - cupWall, cupWall) → (0, cupWall)

Because the points are bound to variables, changing cupWall moves the inner edge and the floor together. That is also the trap: a profile offset horizontally does not give a constant wall on a sloped shoulder. On a segment at angle θ above the radial plane, a horizontal offset d leaves a wall of d · sin θ; a shallow shoulder at a 2 mm offset can be barely 1.1 mm thick. Either offset along the segment normal, apply d = t / sin θ, or use the 2D offset below and let the kernel do the geometry.

Offset: constant walls without mitre arithmetic

The Path Op node in offset2d mode grows or shrinks a closed profile by a signed distance along the true normal. The gasket in the demo is a 2D Difference of an outline and the same outline offset inward by gasketWall, extruded once:

Gasket = extrude( difference( Gasket_Outline, offset2d( Gasket_Outline_Copy, -gasketWall ) ) )

That is a wall of exactly gasketWall on every side, on straight edges and around the rounded corners alike. Measured on a trapezoid whose sloped edge would have fooled a horizontal offset, the inward offset landed on the analytic normal-offset value to seven significant figures. The same construction with a floor plate is the first half of Shell, Hollowing, and Wall Thickness.

Two more uses of the same node:

  • Rounding a profile that has no corner option. Shrink by r then grow by r: inward offsets mitre and outward offsets round, so the order matters, and the reverse order is an expensive identity. Prefer a primitive's own cornerRadius when it exists.
  • Strokes from open paths. A positive offset on an open path becomes a rounded stroke, which is how a drawn centreline becomes a printable rib.

Path Op needs its input in the a child slot; a Path Op created without that role treats the child as a generic solid, so create the relationship at the same time as the node.

When a sketch beats a primitive

A Sketch 2D node carries a constraint solver. Its entities are points, lines and arcs; its constraints are dimensions, angles, parallels, coincidences and a fixed datum. The solver reports a DOF count, and the shape is only determined by its dimensions once that count reaches zero; above zero the outline is wherever the solver happened to leave it. Bind sketch.constraints.N.value to a project variable to make a dimension parametric.

Unlike every 2D primitive, the default sketch is corner-referenced: its rectangle runs from (0, 0) to (10, 5) with the origin corner fixed as the datum. Offset it deliberately, or move the fixed point, rather than expecting it to centre itself. The purple block in the demo is that default sketch extruded, placed above the flange by an expression on its parent.

Use a primitive for a plain shape and a sketch when the shape has rules. The Fusion 360 guide maps sketch-first habits from that world onto this split.

Sketches to solids demo
Project

Sketches to solids demo

@p12/sketches-to-solids-demo
Sketches to solids demo
Sketches to solids demo

Change boltCount and boltCircleDiameter to see the 2D repeat re-tile before the extrude; push the bolt circle into the edge to hit the validator; change cupWall to move the bound profile points; change gasketWall to watch the constant-wall offset.

@p12/sketches-to-solids-demo
Change boltCount and boltCircleDiameter to see the 2D repeat re-tile before the extrude; push the bolt circle into the edge to hit the validator; change cupWall to move the bound profile points; change gasketWall to watch the constant-wall offset.

Where to go next

The variables and bound points here rely on the rules in Expressions and Variables in Rig Cad. Repeated profiles get their own treatment in Repeats and Arrays. If your outline is text, Text as Geometry covers what fonts do to a profile. And when the 2D route is not enough and you need a blended 3D form, Signed Distance Fields is where the tree changes character.