Cadivari 0.3.0 can also create an outside contour from a suitable planar model face. See 3D model setup and contours for selection, model-derived depths and regeneration. Those model boundaries use linear output; the exact circle behaviour below applies to sketch-circle sources.
Recommended closed-part test
- In CAD, create a vertical mirror guide. Draw one open spline side with both spline endpoints snapped to the mirror axis. Select the spline and confirm Path status · closed.
- Switch to CAM, choose Add contour, and click the spline boundary. Set up an Outside closed contour with the default 6 mm cutter.
- Enable four tabs, switch to Manual, and drag the gold markers around the curved outline. Switch Start to Manual and drag the cyan marker clear of every tab.
- Draw a through opening as a circle. In CAM, choose Add contour, click the circle boundary, and create the automatically prepared Inside closed contour.
- For a grouped test, draw two separate or nested rectangles and one circle. Choose Add contour, click all three, click the inner rectangle twice to remove and restore it, then create one three-contour group.
- Confirm 2D and 3D show all three paths, animation completes one circle through every depth before a Safe-Z transfer, and saved G-code contains all three loops in the displayed order.
- Open 3D, choose Complete job · ordered sequence in the Animate selector, and play both operations. The readout should change from operation 1 to operation 2 at Safe Z.
- At the top of Operations, place the circular opening first and outside cutout last in Job sequence & output. Reverse them once and confirm export is blocked.
- Review the combined G-code. The circle should use two exact G2/G3 semicircles per pass, the outside profile should use bounded linear spline segments, and the program should contain one final M30.
01 · CONNECTED CONTOURS
Lines and curves can form one closed operation
In CAM, choose Add contour and click any segment in an endpoint-connected loop. Cadivari follows and highlights the entire component, accepting it only when every junction has degree two and no segment crosses another away from a shared endpoint. The loop may contain any ordered combination of ordinary lines, circular arcs, and open spline segments. A spline explicitly closed while drawing is also accepted.
Outside or Inside compensation samples the complete loop, offsets it by the tool radius, and blocks collapsed, self-crossing, or out-of-stock results. The associative boundary record is stored internally only when Create closed contour is pressed; cancelling setup leaves no unused CAM record. The resolved polyline supplies the shared 2D, motion, 3D, animation, G1 review, preflight, and export geometry.
A standalone circle still uses exact radius compensation and G2/G3 motion. General line/arc/spline loops currently use guarded linearized output after compensation; exact retained arcs in a closed mixed loop are a later refinement.
02 · MULTI-CONTOUR OPERATION
Click several loops when the machining setup is shared
While Add contour is active, click a closed path to add it and click it again to remove it. Continue clicking rectangles, circles, closed splines, mirrored outlines, or connected line/arc/spline loops. Whole rectangles are associative closed boundaries, so their grouped toolpaths follow later position and size edits. The setup reports the selected count and applies one shared cutter, Inside or Outside placement, depth, stepdown, feed, spindle, entry, and direction.
Cadivari stores a deterministic nearest-neighbour order from job zero. It completes every depth pass on one contour, retracts to Safe Z, travels to the next loop, and only then begins its entry. The same ordered motion drives 2D, 3D, animation, G-code, preflight, export, and saved projects.
Every loop keeps its own automatic start and tab positions. Switching those controls to Manual exposes independent cyan and gold markers on every contour. Duplicate loops, compensated crossings, missing or changed source paths, collapsed offsets, and stock violations block the complete group and identify the affected contour.
Create separate operations when cutter side or any machining value differs. A nested inner and outer boundary often need different Inside/Outside placement, so group them only when the chosen side is correct for every loop. Open contours keep their Left/On-line/Right workflow.
03 · BOOLEAN RESULT EDGES
Choose the outer boundary or one exact hole
After creating a Union or Subtract result in CAD, switch to CAM and choose Add contour. Hover the result and click the precise highlighted edge you intend to machine. Outer edges default to Outside; interior holes default to Inside. The source stays associative, but a changed boundary count deliberately invalidates the stored link instead of silently selecting a different loop.
Use separate operations for an outer edge and a hole. A grouped contour has one shared cutter side, so Cadivari prevents mixing those opposite Boolean roles in one group.
02 · MIRRORED CONTOUR
The live reflection becomes one closed source
A mirror-linked spline is CAM-eligible only when both endpoints meet its mirror axis. Cadivari samples the editable half, reflects the ordered points, joins both axis endpoints, and checks the resulting loop for crossings. The reflection remains associative: reshaping the source spline or guide rebuilds the CAM source.
Outside compensation moves the cutter centre one tool radius away from the part boundary. Inside compensation moves toward the enclosed area. Collapsed, self-crossing, missing, and out-of-stock results are blocked.
03 · EXACT CIRCLE
Inside keeps the complete cutter within a circular opening
Choose Add contour in CAM and click the circle outline. Cadivari opens the closed-contour setup and defaults a standalone circle to Inside. This direct selection also works when the same circle is already the island boundary of an annular pocket, such as a gasket seat or rosette channel.
For an Inside circular contour, the cutter-centre radius is the CAD radius minus half the tool diameter. If that radius is not positive, the operation is blocked. The circle remains analytical through motion and output; display sampling never becomes machine geometry.
Each depth pass uses two semicircular moves. This avoids a controller-dependent full-circle endpoint convention while preserving the exact centre and radius as G2 or G3.
04 · WORKHOLDING
Tabs and start positions follow the full curved length
Automatic tabs are spaced by path distance. Manual mode stores normalized positions around the loop, so a marker can be dragged across any segment join without losing its place. Width, height, overlap, through-depth, and tab-count checks remain active while dragging.
The start marker also projects to the complete compensated contour. Automatic placement chooses a tab-free location; Manual lets you drag the cyan marker. A start inside a tab span is rejected.
05 · SHARED MOTION
The same path drives 2D and 3D views and animation
The solid purple line is the CAD source, the mint line is the cutter centre, and the translucent amber band or channel represents the full cutter diameter. Every pass uses the stored depth plan. Deep tab passes lift and lower at explicit boundary points. The animated cutter follows those exact motion records.
The Animate selector can play an individual operation or the complete enabled job. Selecting one operation keeps it vivid and dims the others as contextual geometry. Complete-job playback follows enabled operations in export order and links each operation to the next at Safe Z. An operation set to Off stays visible as subdued context and remains available for individual playback.
06 · COMPLETE JOB
Machine inside features before releasing the part
Job sequence & output appears at the top of Operations whenever operations exist. Use the arrow buttons to set their order and the On/Off control to temporarily exclude an operation without losing its settings. Enabled inside and open work must precede the final enabled outside cutout.
Review combined G-code opens the single ordered program made from enabled operations. Export complete job… opens its operator preflight and local save flow. To output only one operation, use the review and preflight buttons inside that operation's own card.
A passing job creates one metric, absolute Shapeoko/GRBL program. Mode blocks are emitted once, each enabled operation receives an explicit numbered header, Safe Z linking is preserved, and only one final M30 is written.
SAFETY BOUNDARY
Preview and export are not machine verification
- Millimetres and stock-top Z0 remain fixed defaults; XY zero uses the selected stock anchor
- Multiple cutters use explicit tool-change stages; the final outside cutout remains last
- Spline offsets are bounded linear approximations; circles remain exact
- Path-ramp entry is available; straight plunge and vertical tab transitions remain explicit alternatives or warnings
- Clamp collision, material simulation, feeds for a specific wood, and direct machine control are not provided