CAM SimpleCopy

CAM SimpleCopy CAM SimpleCopy

Menu location

CAM  Path Modification  Simple Copy

Workbenches

CAM

Default shortcut

None

Introduced in version

-

See also

CAM Copy, CAM Custom

Description

The CAM SimpleCopy CAM SimpleCopy command creates a non-parametric copy of one or more Operations. The copy is a Custom operation named <operation>_SimpleCopy (or SimpleCopy for several Operations) that contains the G-code of the originals and uses their Tool Controller and coolant mode. It is not linked to the originals.

introduced in 26.3: Simple Copy accepts any toolpath object, including dressups, Arrays and other copies, and several Operations can be combined into one copy.

Usage

  1. Select one or more Operations (dressups are accepted). All selected Operations must use the same Tool Controller and the same coolant mode, otherwise the command is disabled.

  2. There are several ways to invoke the command:

    • Press the CAM SimpleCopy Simple Copy button.

    • Use CAM  Path Modification  Simple Copy.

    • Use Path Modification  Simple Copy in the Tree View context menu.

Options

  • The simple copy is not bound anymore to the toolpath that was used to make the copy, and is not parametric. The G-code of the copy can be edited in the Custom task panel (double-click the copy) or in its Gcode property; the changes are kept because the copy is not recomputed from the original.

  • Multiple selected Operations must use the same Coolant Mode and Tool Controller.

Properties

The copy is a Custom operation; see CAM Custom. Source is Text and Gcode contains one entry per command.

Notes

  • An inactive copy (its Active property set to false) shows the Toggle Operation icon in the Tree View.

Scripting

Example:

import Path.Op.Custom, Path.Base.Util
from PathScripts import PathUtils

src = FreeCAD.ActiveDocument.Profile
job = PathUtils.findParentJob(src)
obj = Path.Op.Custom.Create(src.Name + "_SimpleCopy", parentJob=job)
obj.ToolController = Path.Base.Util.toolControllerForOp(src)
obj.CoolantMode = Path.Base.Util.coolantModeForOp(src)
obj.Gcode = [c.toGCode() for c in PathUtils.getPathWithPlacement(src).Commands]
FreeCAD.ActiveDocument.recompute()