Part Machining Object

A Part is a way of grouping multiple, related machining operations into a single object.
A single drawing file can contain many different part objects.

Parts can be enabled or disabled individually. As with layers and machining operations, pressing the space bar when the
item is selected in the drawing tree, will toggle a part’s enabled state.

To generate the toolpaths for all the machining operations in a part, right click the part in the drawing tree, then select
Generate toolpaths. Right click an individual machining operation to generate toolpaths for just that mop, and right click
the Machining folder (or press CTRL+T) to generate toolpaths for all enabled operations in the drawing.

By default, generating gcode will write the output from all the enabled parts in the drawing.
To create gcode for just one part, right click the part in the drawing tree, then select Produce gcode.

The file heart-shaped-box.cb, in the CamBam samples folder illustrates a good use of different parts.
Here machining operations are separated into parts for front and back faces for the lid and base of a small wooden box.

Some of the Part properties such as Stock and Tools are repeated in the parent Machining folder. Usually it is best to define these properties at the Machining folder
level, so they need only be defined once per drawing. If the Part properties are unspecified, the corresponding value will be used from
the machining object. It may be useful to define the properties at the part level if they differ from the global Machining settings,
for example if a part uses a different stock definition.

Properties

Enabled

If Enabled is True, the (enabled) machining operations in this part will have their toolpaths displayed and they will be included in the gcode output.

Machining Origin

A drawing point that will be used as the machining origin (X=0,Y=0) point when gcode is created.

The ellipsis button to the right of this property can be used to select a point in the drawing.

An 'X' icon will be displayed on the drawing at the machining origin point. This cross can be dragged to
a new location using the mouse.

A descriptive name for the part. This name will be used to generate a filename when creating gcode output from the part.

Nesting

This composite property provides a method of generating an array or nest of parts.

Nest Method: Change this to Grid or Iso Grid, then set the Rows and Columns values
to determine the number of copies of each part. The Spacing value will control the distance between each copy.

When the toolpaths are generated, an outline should be displayed to indicate the location of each copy. The centre of
each outline contains a triangular icon. Clicking and dragging this icon will change the nesting pattern and will
also change the nesting method to Manual.

Grid Order Controls the direction of the grid layout. For example
Right Up will make copies to the right of the original, then move up to the next row.

Grid Alternate If set to True, the grid will alternate the direction of each row or column (depending on Grid Order).
If False then each row or column will proceed in the same order with a rapid back to the start of each.

Nest Method = Point List The location of each nest copy is taken from a point list
drawing object which is set in the Point List ID property. A new Nest to point list Part context menu function has
been added, in this way a list of nest points can effectively be copied from one part to another by sharing a common point list.

GCode Order Controls how the nested machining operations are ordered in the gcode output.

Auto - All consecutive MOPs within the part with the same toolnumber will be posted then repeated for each nest copy, before
moving to the next MOP (which would require a tool change).

Nest Each MOP - Each MOP is output at each nest location before moving to the next MOP.

All MOPs Per Copy - All the MOPs in the part are posted before moving to the next nest location.

Multiple copies of the part's toolpaths will be written to the gcode output. This will increase the gcode file size,
but does avoid some of the issues encountered when using subroutines.

The stock object is used to define the dimensions of a block of material from which the part will be cut.

The properties of the stock object can be used to automatically determine some machining properties.

If a machining operation or style's Stock Surface property is set to Auto, the stock's stock surface value will be used.

If a machining operation or style's Target Depth property is set to Auto, the stock's stock surface and Z size will be used
to determine the target depth, so a machining operation will by default machine all the way through the stock.

Stock properties:

Material: Informational text that describes the stock material.Stock Offset: X and Y offset of the lower left corner of the stock block. For example, a stock offset of -10,-20
would position the stock 10 units to the left of the Y axis (X=0) and 20 units below the X axis (Y=0).Stock Surface: The Z location of the top of the stock block.Stock Size: The X, Y and Z dimensions of the stock block.Color: Color to use when displaying this stock object.

Stock is undefined if the X,Y and Z sizes are all zero. Stock can be defined at the part or machining level.
Stock defined at the part level will override and machining level stock definitions and will be used for all operations within the part.

The stock object dimensions can also be passed to simulators such as CutViewer when post processors with appropriate stock macros are included, such as the
Mach3-CutViewer post processor.

All machining operations in the part will use this style unless set otherwise in the machining operation's Style property.

Style Library

This property is used to locate the style definitions used in the Part or machining operations.

Tag

A general purpose, multi-line text field that can be used to store notes or parameter data.

Tool Diameter

This is the diameter of the current tool in drawing units.

If the tool diameter is 0, the diameter from the tool information stored in the tool library
for the given tool number will be used.

Tool Library

If left blank, the default tool library will be used (Default-{$Units}), otherwise the specified library will be used when
looking up tool numbers.

Tool Number

The ToolNumber is used to identify the current tool.

If ToolNumber changes between successive machine ops a toolchange instruction is created in gcode.
ToolNumber=0 is a special case which will not issue a toolchange.

The tool number is also used to look up tool information in the current tool library. The tool library is specified
in the containing Part, or if this is not present in the Machining folder level. If no tool library is defined the
Default-(units) tool library is assumed.

Tool Profile

The shape of the cutter

If the tool profile is Unspecified, the profile from the tool information stored in the tool library
for the given tool number will be used.