CAM Array
| This command is deprecated since version 1.1. Use the Array dressup instead, which provides the same patterns and keeps the result linked to the Operation. The command remains available in the Path Modification toolbar. |
CAM Array
- Menu location
-
- Workbenches
- Default shortcut
-
None
- Introduced in version
-
-
- See also
Description
The CAM Array command creates a new toolpath by duplicating one or more Operations several times in a pattern.
Usage
-
Select one or more Operations that share the same Tool Controller and have coolant mode
None. -
Press the
Array button, or use , or the Tree View context menu.
-
Set the pattern properties in the property editor; the toolpath updates on recompute. There is no task panel.
The command is enabled only if all selected objects are toolpaths with the same Tool Controller and with CoolantMode None; otherwise a warning ("Arrays of toolpaths having different tool controllers…" or "Arrays not compatible with coolant modes.") is printed and no toolpath is generated.
Properties
Only the properties relevant for the selected Type are shown in the property editor.
-
Type (
Enumeration): Pattern method:Linear1D,Linear2D,PolarorPoints(introduced in 26.3: positions and rotation taken from selected shapes). -
Copies (
IntegerConstraint): The number of copies inLinear1DandPolarpattern (not counting the original). -
CopiesX (
IntegerConstraint) and CopiesY (IntegerConstraint): The number of copies in X and Y direction inLinear2Dpattern. -
Offset (
VectorDistance): The spacing between the array copies in linear pattern. -
Angle (
Angle): Total angle in polar pattern; for 360° the copies are distributed so that the last copy does not overlap the original (introduced in 26.3). -
Centre (
Vector): The centre of rotation in polar pattern. -
SwapDirection (
Bool): Make copies in X direction before Y inLinear2Dpattern. -
ReverseDirection (
Bool): Start from farthest repeat. introduced in 26.3 -
PointsSource (
LinkSubListGlobal): Define the offsets and angle of rotation for repeats from selected shapes (vertices, edges or faces; an object without sub-elements that contains only vertices gives one repeat per vertex, one that contains edges gives a single repeat). introduced in 26.3 -
PointsOrigin (
LinkSubGlobal): Define the base offsets and angle of rotation from selected shape. introduced in 26.3 -
PointsSorting (
Enumeration):Automatic(travel optimised) orManual(selection order). introduced in 26.3
-
UseJitter (
Bool): Use random offset and rotation; the other Random properties are hidden while it is false. -
JitterMagnitude (
VectorDistance): Maximum random offset of copies (default 10, 10, 0). -
JitterAngle (
Angle): Max angle of rotation for jitter randomness (default 10°), rotation about the centre of the base toolpaths. -
JitterSeed (
IntegerConstraint): Seed value for jitter randomness.
introduced in 26.3: The previous percentage-based jitter control has been replaced by UseJitter. Jitter can be applied to polar arrays, and random rotation jitter is available for all array types.
-
Active (
Bool): Make False, to prevent operation from generating code. -
Base (
LinkList): The toolpaths to array. -
CycleTime (
String): Operations cycle time estimation (read-only). -
ToolController (
Link): hidden; taken from the first base Operation.
Notes
-
In
Linear2Dpatterns the copies are ordered in a zig-zag sequence to shorten rapid moves; the original position is not duplicated. -
An inactive Array shows the Toggle Operation icon in the Tree View.
Scripting
See also: FreeCAD Scripting Basics.
Example:
import Path.Op.Gui.Array
from PathScripts import PathUtils
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", "Array")
Path.Op.Gui.Array.ObjectArray(obj)
obj.Base = [FreeCAD.ActiveDocument.Profile]
Path.Op.Gui.Array.ViewProviderArray(obj.ViewObject)
obj.Type = "Polar"
obj.Copies = 5
obj.Angle = 360
PathUtils.addToJob(obj, PathUtils.findParentJob(obj.Base[0]).Name)
FreeCAD.ActiveDocument.recompute()