CAM DressupDogbone

CAM DressupDogbone CAM DressupDogbone

Menu location

CAM  Path Dressup  Dogbone

Toolbar

Path Modification → Dressup Operations dropdown

Workbenches

CAM

Default shortcut

None

Introduced in version

-

See also

CAM DressupTag, CAM DressupRampEntry, CAM DressupDragKnife

Description

The CAM DressupDogbone CAM DressupDogbone command dresses up an existing Toolpath to overcut inside corners. A cylindrical Tool Bit cannot reach into a sharp inside corner; the dressup inserts a short move (a bone) into each corner so that the corner material is removed. This is needed when parts must interlock. Its tooltip reads: Creates a dogbone dress-up object from a selected toolpath.

Since version 1.0 the command creates a Dogbone II dressup (module Path.Dressup.DogboneII). The original Dogbone implementation has been removed in 26.3; documents containing the old object type can no longer be loaded with a working dressup. The property names Side, Style, Incision, Custom and Bone Blacklist are the same in both implementations.

Usage

  1. Select one Operation or Dressup (typically a Profile or Pocket).

  2. There are several ways to invoke the command:

    • Select the CAM  Path Dressup  Dogbone option from the menu.

    • Select the Dressup Operations dropdown on the Path Modification toolbar.

    • Select the Path Dressup  Dogbone option from the Tree view context menu.

  3. Adjust Style, Side, Incision and the list of bones in the task panel; the Toolpath updates immediately.

  4. Press OK.

Options

The task panel is titled Dogbones:

  • Style: Dogbone (shortest move that covers the corner), T-bone horizontal, T-bone vertical, T-bone long edge, T-bone short edge (extend in a given direction until the corner is covered). Default Dogbone.

  • Side: Left or Right. On which side of the Toolpath bones are inserted; this also determines which corners are dressed up. The default is derived from the base Operation: Right, Left if the base Operation’s Side is Inside, flipped again if its Direction is CCW.

  • Incision: Determines the incision length of the bone:

    • adaptive (default): The length is adapted to cover the corner based on the angle of its edges, taking the Tool Bit radius into account.

    • fixed: The length is the radius of the Tool Bit ® for T-bones, and R * (2/√2 - 1) for dogbones.

    • custom: The length is taken from the Length field below.

  • Length (property Custom): Bone length when Incision is custom; enabled only in that case. introduced in 26.3 For the adaptive incision a non-zero value also limits the maximum bone length.

  • Bones: List of bone locations (X, Y) with the IDs of all bones at that location across step-downs. Un-check a bone to exclude it (property Bone Blacklist). Selecting a bone highlights a marker in the 3D view (green = enabled, red = disabled). Bones already created by a previous Dogbone dressup on the same Toolpath are greyed out. An empty list usually means the wrong Side is selected.

Properties

Base
  • Base (Link): The base Toolpath to dress up.

Dressup
  • Side (Enumeration): The side of the Toolpath to insert bones; Left or Right.

  • Style (Enumeration): The style of bones; Dogbone, T-bone horizontal, T-bone vertical, T-bone long edge, T-bone short edge.

  • Incision (Enumeration): The algorithm to determine the bone length; adaptive, fixed, custom.

  • Custom (Length): Bone length if Incision is set to custom; default 0. A non-zero value also limits the maximum adaptive length.

  • Bone Blacklist (IntegerList, hidden): IDs of bones that are not dressed up; edit through the task panel.

  • Only Closed Profiles (Bool): introduced in 1.1 Create bones only for outer closed profiles; useful for multi-profile Operations such as Pocket with the ZigZagOffset pattern.

Notes

  • introduced in 1.1 No bone is inserted between two rapid moves.

  • The corner detection works on the tangents of the adjoining moves, so corners between straight and arc segments are handled.

Scripting

import Path.Dressup.Gui.DogboneII as Dogbone

obj = Dogbone.Create(op)  # with GUI

# without GUI:
import Path.Dressup.DogboneII as DogboneII

obj = DogboneII.Create(op, "DressupDogbone")
obj.Style = "T-bone horizontal"
obj.Incision = "custom"
obj.Custom = 1.5