CAM ToolController
Description
A Tool Controller is the object that an Operation references to know which Tool Bit to use and with which spindle speed, feed rates and rapid rates. It lives in the Tools group of a Job and owns one Tool Bit object (shown as its child in the tree). The same Tool Bit can be used by several Tool Controllers with different settings, for example roughing and finishing. When the Job is post-processed, the Tool Controller emits the tool change (T and M6), spindle speed (S) and spindle direction (M3, M4 or M5) commands.
Usage
Tool Controllers are created by:
-
CAM ToolBitDock (),
-
the Add button of the Tools tab in the Job task panel,
-
the last two entries of the Tool controller drop-down in an operation’s task panel (create a new Tool Controller from the Toolbit Selector, or copy the current one).
They are edited by double-clicking the Tool Controller in the tree (Tool Controller Editor task panel), with the Edit button of the Job’s Tools tab, or introduced in 1.1 directly in the Tool Controller page of an operation’s task panel (26.3 and later: shown on its own tab). A Tool Controller that is used by an operation cannot be deleted from the Job editor.
Task panel
-
Controller Name / Tool Number: the label and the number used for the
Tcommand. -
Horizontal feed, Vertical feed, Lead-in feed, Lead-out feed, Ramp feed, Horizontal rapid, Vertical rapid.
-
Spindle: direction (Forward, Reverse, None) and speed in rpm.
-
introduced in 26.3 Feeds and Speeds Wizard button: opens the Suggest Feeds & Speeds dialog, see CAM FeedsSpeeds.
When the editor is embedded in an operation’s task panel, a warning states how many other operations use the same Tool Controller.
Properties
-
Tool (
Link): the Tool Bit used by this controller.
-
ToolNumber (
IntegerConstraint, 0 to 10000): the tool number emitted with the tool change. -
SpindleSpeed (
Float): speed of the cutting spindle in rpm. -
SpindleDir (
Enumeration): Forward, Reverse or None; initialized from the Tool Bit’s Spindle Direction.
-
HorizFeed (
Speed): feed rate for horizontal moves. -
VertFeed (
Speed): feed rate for vertical moves in Z. -
RampFeed (
Speed) introduced in 26.3: feed rate for ramp moves; bound to HorizFeed by an expression until changed. -
LeadInFeed (
Speed) introduced in 26.3: feed rate for lead-in moves; bound to HorizFeed by default. -
LeadOutFeed (
Speed) introduced in 26.3: feed rate for lead-out moves; bound to HorizFeed by default. -
introduced in 26.3 NoEngagementFeed: feed for moves in which the Tool Bit does not engage material. An Operation reads the value when it recomputes.
A machine-based Post-Processor uses NoEngagementFeed only when the Post-Processor Property Output non-engaging moves at the no-engagement feed rate is enabled. The Post-Processor then writes each G0 move that carries a no-engagement feed annotation as a G1 move with that feed as the F value. The Post-Processor Property is off by default and is set in the Machine Editor; see Machine.
-
HorizRapid (
Speed): rapid rate for horizontal moves. -
VertRapid (
Speed): rapid rate for vertical moves in Z.
Rapid rates are only used for cycle-time estimation and by post-processors that output rapids as feed moves.
These properties are added the first time the Feeds and Speeds dialog is opened for the controller. introduced in 26.3
-
OpTypeHint (
Enumeration: empty, profile, pocket, slot, drill, adaptive, surface_finish): which kind of cutting the controller is intended for; used when matching presets. -
FeedSpeedProvenance (
Map): for each of HorizFeed, VertFeed and SpindleSpeed, the source that last wrote the value (for examplepreset:tool/<material>/<op>).
Expressions and templates
Feed properties may hold expressions (for example VertFeed = HorizFeed * 0.5); expressions are preserved in Job Templates. Tool Controllers, including their Tool Bit, are saved in Job Templates and restored when a Job is created from the template.
Tool Bit replacement
introduced in 26.3: when the library Tool Bit a controller’s Tool Bit came from has changed, the Update Tools from Library command (Job context menu, or automatically on document open) replaces the controller’s Tool Bit with the current library version.
Scripting
import Path.Tool.Controller as PathToolController
from Path.Tool.toolbit import ToolBit
tb = ToolBit.from_shape_id("endmill.fcstd").attach_to_doc(App.ActiveDocument)
tc = PathToolController.Create("TC: 6mm Endmill", tool=tb, toolNumber=3)
tc.HorizFeed = "600 mm/min"
tc.SpindleSpeed = 12000
job.Proxy.addToolController(tc)
The legacy module PathScripts.PathToolController is not available.