CamBam Training

March 17, 2018 | Author: rhutchcroft | Category: Machining, Machine Tool, Drilling, Cartesian Coordinate System, Numerical Control


Comments



Description

Profile Machining OperationA 2.5D Profile machining operation is typically used to cut out shapes. Other uses include facing edges and with increased cut widths can be used to create pockets. Cuts can be inside or outside a selected shape. Lead in moves and holding tabs are supported. Properties ClearancePlane The clearance plane (offset from the work plane). The clearance plane should be clear of the stock and any holding devices to allow free movement to any location. CollisionDetection Makes sure adjacent toolpaths do not overlap. Multiple Toolpaths are unioned together. CornerOvercut [New! 0.9.8] Set CornerOvercut to True to add an extra machining move, which will cut into inside corners that would not ordinarily be cut. This will result in some stock overcutting but is useful in cases where machined parts will be fitted together such as slot joints or inlays. CustomMOPFooter CustomMOPHeader CutFeedrate CutOrdering CutWidth DepthIncrement Enabled FinalDepthIncrement HoldingTabs A multi-line gcode script that will be inserted into the gcode post after the current machining operation. A multi-line gcode script that will be inserted into the gcode post before the current machining operation. The feed rate to use when cutting. Controls whether to cut to depth first or all cuts on this level first. The total width of the cut. If this width is greater than the tool diameter, multiple parallel cuts are used. Depth increment of each machining pass. If Enabled is true, the toolpaths associated with this machining operation are displayed and included in the gcode output. The depth increment of the final machining pass. Defines holding tabs (bridges) to prevent cut parts moving while cutting. See the holding tab reference for more information. InsideOutside Controls whether to cut Inside or Outside the selected shapes. For open shapes there is not inside or outside, so the point order controls which side of the line to cut. LeadInMove Defines the type of lead in move to use. LeadInType : None | Spiral | Tangent SpiralAngle : Used by spiral and tangents to control ramp angle. TangentRadius : The radius of the tangent lead in LeadOutMove [New! 0.9.8] Defines the type of lead out move to use. See LeadInMove for a description of the LeadOutMove sub properties Maximum distance as a fraction (0-1) of the tool diameter to cut in horizontal transitions. If the distance to the next toolpath exceeds MaxCrossoverDistance, a retract, rapid and plunge to the next position, via the clearance plane, is inserted. MaxCrossoverDistance MillingDirection Controls the direction the cutter moves around the toolpath. Conventional or Climb milling supported. Name Each machine operation can be given a meaningful name or description. This is output in the gcode as a comment and is useful for keeping track of the function of each machining operation. OptimisationMode An option that controls how the toolpaths are ordered in gcode output. Default - Toolpaths are ordered to minimise rapids. Experimental - A new, hopefully improved optimiser that is currently in testing. None - Toolpaths are not optimised and are written in the order they were generated. PlungeFeedrate PrimitiveIds RoughingClearance The feed rate to use when plunging. List of drawing objects from which this machine operation is defined. This is the amount of stock to leave after the final cut. Remaining stock is typically removed later in a finishing pass. Negative values can be used to oversize cuts. SpindleDirection SideProfile The direction of rotation of the spindle. A composite properties that enables the creation of pseudo 3D objects from 2D shapes by creating radii and slopes. See the side profiles reference for more information. SpindleSpeed StartPoint The speed in RPM of the spindle Used to select a point, near to where the first toolpath should begin machining. If a start point is defined, a small circle will be displayed at this point when the machining operation is selected. The start point circle can be moved by clicking and dragging StepOver The cut is increased by this amount each step, expressed as a fraction (0-1) of the cutter diameter. StepoverFeedrate StockSurface Style [New! 0.9.8] The feed rate to use for crossover moves. This is the Z offset of the stock surface at which to start machining. Select a CAMStyle for this machining operation. All default parameters will be inherited from this sytle. Tag [New! 0.9.8] A general purpose, multiline text field that can be used to store notes or parameters from plugins. TargetDepth ToolDiameter The Z coordinate of the final machining depth. 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. ToolNumber 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. ToolProfile 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. Transform Used to transform the toolpath. Warning! This property is experimental and may give unpredictable results. VelocityMode Instructs the gcode interpretter whether or to use look ahead smoothing. ConstantVelocity - (G64) Smoother but less accurate. ExactStop - (G61) All control points are hit but movement may be slower and jerky. Default - Uses the global VelocityMode value under machining options. WorkPlane Used to define the gcode workplane. Arc moves are defined within this plane. Options are XY, XZ and YZ Pocket Machining Operation Pockets are used to clear out stock within boundary shapes. If selected shapes contain other shapes, CamBam will automatically detect these as 'Islands'. That is, the area around them will be cleared and the islands will remain prominent. Properties ClearancePlane The clearance plane (offset from the work plane). The clearance plane should be clear of the stock and any holding devices to allow free movement to any location. CollisionDetection Makes sure adjacent toolpaths do not overlap. Multiple Toolpaths are unioned together. CustomMOPFooter CustomMOPHeader CutFeedrate CutOrdering DepthIncrement Enabled FinalDepthIncrement FinishStepover FinishStepoverAtTargetDepth LeadInMove A multi-line gcode script that will be inserted into the gcode post after the current machining operation. A multi-line gcode script that will be inserted into the gcode post before the current machining operation. The feed rate to use when cutting. Controls whether to cut to depth first or all cuts on this level first. Depth increment of each machining pass. If Enabled is true, the toolpaths associated with this machining operation are displayed and included in the gcode output. The depth increment of the final machining pass. . . Defines the type of lead in move to use. LeadInType : None | Spiral | Tangent SpiralAngle : Used by spiral and tangents to control ramp angle. TangentRadius : The radius of the tangent lead in LeadOutMove [New! 0. via the clearance plane. SpindleDirection SpindleSpeed StartPoint The direction of rotation of the spindle. StepoverFeedrate StockSurface The feed rate to use for crossover moves. expressed as a fraction (0-1) of the cutter diameter. Name Each machine operation can be given a meaningful name or description. hopefully improved optimiser that is currently in testing. Negative values can be used to oversize cuts. The effects of each option can be seen when using the new Draw . a retract. OptimisationMode An option that controls how the toolpaths are ordered in gcode output. None . is inserted. If the distance to the next toolpath exceeds MaxCrossoverDistance. a small circle will be displayed at this point when the machining operation is selected.Toolpaths are not optimised and are written in the order they were generated. unioned with offsets from islands radiating outward.9. This is the Z offset of the stock surface at which to start machining. RoughingClearance This is the amount of stock to leave after the final cut.8] The feed rate to use when plunging. The speed in RPM of the spindle Used to select a point. List of drawing objects from which this machine operation is defined. See LeadInMove for a description of the LeadOutMove sub properties Maximum distance as a fraction (0-1) of the tool diameter to cut in horizontal transitions. This option controls the pattern used to fill the pockets. The start point circle can be moved by clicking and dragging StepOver The cut is increased by this amount each step. Default . Experimental . OutsideOffsets region filled with progressive offsets from outside in (like current pocket method). rapid and plunge to the next position. If a start point is defined. PlungeFeedrate PrimitiveIds RegionFillStyle [New! 0. This is output in the gcode as a comment and is useful for keeping track of the function of each machining operation.Toolpaths are ordered to minimise rapids. Options are:      HorizontalHatch region filled with horizontal lines VerticalHatch region filled with vertical lines InsideOutsideOffsets region filled with progressive offsets from outside in. Remaining stock is typically removed later in a finishing pass. near to where the first toolpath should begin machining. .Fill Region menu option.8] Defines the type of lead out move to use. MaxCrossoverDistance MillingDirection Controls the direction the cutter moves around the toolpath.9. Conventional or Climb milling supported. InsideOffsets region filled with offsets from islands radiating outward.A new. The tool number is also used to look up tool information in the current tool library. TargetDepth ToolDiameter The Z coordinate of the final machining depth. XZ and YZ . VelocityMode Instructs the gcode interpretter whether or to use look ahead smoothing. All default parameters will be inherited from this sytle. WorkPlane Used to define the gcode workplane. Transform Used to transform the toolpath. ExactStop . multiline text field that can be used to store notes or parameters from plugins. the diameter from the tool information stored in the tool library for the given tool number will be used. Warning! This property is experimental and may give unpredictable results.9.8] A general purpose. This is the diameter of the current tool in drawing units. or if this is not present in the Machining folder level. If the tool diameter is 0. Arc moves are defined within this plane. Default .Uses the global VelocityMode value under machining options.Style [New! 0. Tag [New! 0. If ToolNumber changes between successive machine ops a toolchange instruction is created in gcode.8] Select a CAMStyle for this machining operation. ConstantVelocity . ToolNumber The ToolNumber is used to identify the current tool. Options are XY.(G64) Smoother but less accurate. If no tool library is defined the Default-(units) tool library is assumed. ToolNumber=0 is a special case which will not issue a toolchange. ToolProfile The shape of the cutter If the tool profile is Unspecified.9. the profile from the tool information stored in the tool library for the given tool number will be used. The tool library is specified in the containing Part.(G61) All control points are hit but movement may be slower and jerky. Y coordinate of each drill point $z . The depth increment controls the pitch of the spiral toolpath if DrillingMethod=SprialMill. A multi-line gcode script that will be inserted into the gcode post before the current machining operation. Custom GCode script used for drilling if DrillingMethod=CustomScript Various macros can be used in this script which will be expanded by the post processor.8] $n .tool diameter $x .tool number $p .G82 or G83 SpiralMill_CW .9. Dwell The time to pause at the bottom of the drill cycle.plunge feedrate $h .Clockwise spiral toolpath SpiralMill_CCW . If True. Properties ClearancePlane The clearance plane (offset from the work plane).9.Clearance Plane $d . This is the depth of cut for each loop of the spiral. Used for spiral mill drilling and is the diameter of the hole required.Counter clockwise spiral toolpath CustomScript .Drilling Machining Operation Used to create circular holes from selected point lists or circles. CustomMOPFooter CustomMOPHeader CustomScript A multi-line gcode script that will be inserted into the gcode post after the current machining operation. The clearance plane should be clear of the stock and any holding devices to allow free movement to any location.8] For spiral drilling only.denotes a new line $c . Method used to generate the drilling instruction. then move toward or away from the center of the hole before retracting.Peck distance $r .. then the sizes of the selected shapes .8] The feed rate to use when cutting.9..Stock Surface $t .Z coordinate of each drill point [New! 0.Target depth CutFeedrate DepthIncrement [New! 0.8] $s .Uses G81.Dwell $q .9.Hole diameter $f . The unit of time measurement depends on the machine interpreter configuration and may be seconds or milliseconds.Retract height [New! 0.X coordinate of each drill point $y . the toolpaths associated with this machining operation are displayed and included in the gcode output. Options are: DrillingMethod CannedCyle . If this is set to Auto.Uses the CustomScript property script DrillLeadOut [New! 0. | . Enabled HoleDiameter If Enabled is true. Name Each machine operation can be given a meaningful name or description. rapid and plunge to the next position. a retract. Warning! The behaviour of this property has changed from earlier versions. All default parameters will be inherited from this sytle.A new.Toolpaths are not optimised and are written in the order they were generated. via the clearance plane.8] A general purpose. LeadOutLength [New! 0. RoughingClearance This is the amount of stock to leave after the final cut. If the tool diameter is 0. Experimental . the target depth is now an absolute Z coordinate. List of drawing objects from which this machine operation is defined. If 0. This is output in the gcode as a comment and is useful for keeping track of the function of each machining operation. TargetDepth The Z coordinate of the final machining depth. If length is positive. SpindleDirection SpindleSpeed StartPoint The direction of rotation of the spindle.8. hopefully improved optimiser that is currently in testing. Negative values can be used to oversize cuts.8] This is the Z offset of the stock surface at which to start machining. a small circle will be displayed at this point when the machining operation is selected. retract to this value after each peck.8] For spiral drilling only. move toward the hole center. As of 0. . is inserted.9. For peck canned cyles. PeckDistance PlungeFeedrate PrimitiveIds RetractHeight [New! 0. The start point circle can be moved by clicking and dragging StockSurface Style [New! 0.9. Select a CAMStyle for this machining operation. near to where the first toolpath should begin machining. ToolDiameter This is the diameter of the current tool in drawing units. multiline text field that can be used to store notes or parameters from plugins. OptimisationMode An option that controls how the toolpaths are ordered in gcode output.9. The speed in RPM of the spindle Used to select a point.Toolpaths are ordered to minimise rapids. the diameter from the tool information stored in the tool library for the given tool number will be used. MaxCrossoverDistance Maximum distance as a fraction (0-1) of the tool diameter to cut in horizontal transitions. The feed rate to use when plunging. Remaining stock is typically removed later in a finishing pass. consistent with all other machining operations.are used to calcuate the hole diameter. Tag [New! 0.9. If length is negative.9. move away from the center. If a start point is defined. None . If the distance to the next toolpath exceeds MaxCrossoverDistance.8] The incremental depth to drill before a retract. then doesn't peck drill. In previous versions drilling target depth was relative to the stock surface. The distance to move in the lead out direction if DrillLeadOut=True. Default . . The clearance plane should be clear of the stock and any holding devices to allow free movement to any location. ExactStop . Properties ClearancePlane The clearance plane (offset from the work plane). ToolProfile The shape of the cutter If the tool profile is Unspecified. Transform Used to transform the toolpath. Default . This is output in the gcode as a comment and is useful for keeping track of the function of each machining operation.Uses the global VelocityMode value under machining options.ToolNumber The ToolNumber is used to identify the current tool. Enabled MaxCrossoverDistance If Enabled is true.9.(G61) All control points are hit but movement may be slower and jerky. Name Each machine operation can be given a meaningful name or description. a retract. WorkPlane Used to define the gcode workplane. A multi-line gcode script that will be inserted into the gcode post before the current machining operation. XZ and YZ Engraving Machining Operation Engraving machining operations 'follow' their selected shapes. or if this is not present in the Machining folder level. is inserted. OptimisationMode An option that controls how the toolpaths are ordered in gcode output. If the distance to the next toolpath exceeds MaxCrossoverDistance. Maximum distance as a fraction (0-1) of the tool diameter to cut in horizontal transitions. Options are XY. The tool number is also used to look up tool information in the current tool library. via the clearance plane. VelocityMode Instructs the gcode interpretter whether or to use look ahead smoothing. ConstantVelocity . CustomMOPFooter CustomMOPHeader CutFeedrate DepthIncrement [New! 0. including Z movements. Depth increment of each machining pass. The tool library is specified in the containing Part. The feed rate to use when cutting. Warning! This property is experimental and may give unpredictable results. If no tool library is defined the Default-(units) tool library is assumed.8] A multi-line gcode script that will be inserted into the gcode post after the current machining operation. ToolNumber=0 is a special case which will not issue a toolchange. the toolpaths associated with this machining operation are displayed and included in the gcode output.(G64) Smoother but less accurate. the profile from the tool information stored in the tool library for the given tool number will be used. If ToolNumber changes between successive machine ops a toolchange instruction is created in gcode. Arc moves are defined within this plane. rapid and plunge to the next position. Toolpaths are ordered to minimise rapids. The tool library is specified in the containing Part.Default .A new. The tool number is also used to look up tool information in the current tool library. .(G61) All control points are hit but movement may be slower and jerky. ExactStop . VelocityMode Instructs the gcode interpretter whether or to use look ahead smoothing. This is the diameter of the current tool in drawing units. None . a small circle will be displayed at this point when the machining operation is selected. Select a CAMStyle for this machining operation. The start point circle can be moved by clicking and dragging StockSurface Style [New! 0. List of drawing objects from which this machine operation is defined.Toolpaths are not optimised and are written in the order they were generated. If ToolNumber changes between successive machine ops a toolchange instruction is created in gcode. or if this is not present in the Machining folder level. Negative values can be used to oversize cuts. TargetDepth ToolDiameter The Z coordinate of the final machining depth. hopefully improved optimiser that is currently in testing.8] A general purpose. Experimental .9. multiline text field that can be used to store notes or parameters from plugins. This is the amount of stock to leave after the final cut. If a start point is defined. Transform Used to transform the toolpath. ToolNumber=0 is a special case which will not issue a toolchange. Warning! This property is experimental and may give unpredictable results. Tag [New! 0. SpindleDirection SpindleSpeed StartPoint The direction of rotation of the spindle.9. PlungeFeedrate PrimitiveIds RoughingClearance The feed rate to use when plunging. ConstantVelocity . If no tool library is defined the Default-(units) tool library is assumed. Remaining stock is typically removed later in a finishing pass. All default parameters will be inherited from this sytle. the profile from the tool information stored in the tool library for the given tool number will be used. ToolProfile The shape of the cutter If the tool profile is Unspecified. The speed in RPM of the spindle Used to select a point. ToolNumber The ToolNumber is used to identify the current tool. the diameter from the tool information stored in the tool library for the given tool number will be used.(G64) Smoother but less accurate. near to where the first toolpath should begin machining. If the tool diameter is 0.8] This is the Z offset of the stock surface at which to start machining. The profile line can be drawn anywhere in the drawing. In this initial lathe release there are a number of limitations:   Only profiling operations are currently supported. The part should be drawn to allow for the cutter size and shape.cb in the CamBam samples folder demonstrates the new lathe operation. mirrored lines on the opposite side of the turning axis or lines along the turning axis as the lathe operation will try to cut these as well which will cause problems. Options are XY.Uses the global VelocityMode value under machining options.9. This is so that the drawing will appear in the same orientation as when standing in front of a conventional lathe. the Machining Origin should be set so that it lies on the axis of rotation and at the Z=0 (lathe coordinate). Arc moves are defined within this plane. The shape should be drawn so that: The lathe +X axis is drawn in the -Y direction and The lathe +Z axis is drawn in the +X direction. Do not draw closed polylines. Only draw the profile line to be cut.8 and is still undergoing testing and development. WorkPlane Used to define the gcode workplane. XZ and YZ Lathe Machining Operation NOTE! The lathe code is new to version 0. The Lathe machining operation has been provided as a plugin. Treat any lathe gcode with caution and run simulations or air cuts before machining. . The file lathe-test. Drawing A lathe profile can be generated from a 2D line representing the shape to machine. No facing.Default . boring or threading support yet. In this way the plugin can be developed and updated independently of the main CamBam application. The toolpaths will be converted to standard lathe X and Z coordinates when the gcode is produced. Apart from the tool radius. there is no mechanism to define a lathe tool shape. It is also a demonstration of the ability to extend CamBam's machining capability using user written plugins. If this line is away from the origin. StockSurface should be set to the stock radius. The X size will be the length of the stock (along the lathe's Z axis). The tool diameter is set to twice the tool nose radius. The Stock offset Y value should be set to negative the stock radius. to determine properties such as stock surface and the machining envelope. The X and Y size should both be set to the stock diameter. CamBam's stock definition does not currently support cylindrical stock so the stock will be shown as a rectangular block. Stock surface equals the radius of the stock. a small RoughingClearance value is set.Stock Object The lathe operation can use information from the stock object if one is defined. The tool profile is set to Lathe. then select Lathe. Make sure the following are set:          Workplane is set to XZ. Clearance plane is greater than the radius of the stock. . The machining origin is set along the axis of rotation. If Roughing. then insert a lathe operation by selecting the top Machining menu.The lathe plugin does not currently add an icon to the toolbar or drawing context menu. The correct RoughingFinishing option is set. DepthIncrement and feedrates are appropriate for the material. Using the Lathe Operation Select a suitable profile line. Note . The tool number is also used to look up tool information in the current tool library. RoughingFinishing The RoughingFinishing property is used to select the machining method. down to the source shape + roughing clearance. StockSurface Can be set explictly or determined from the stock object. This section describes some post processor properties that are relevant to customising the lathe gcode output. The clearance plane value should always be expressed as a radius. or if this is not present in the Machining folder level. Properties ClearancePlane The safe X lathe coordinate to avoid any stock. If Roughing is selected. If the tool profile is Unspecified. The new Lathe tool profile should always be used. . ToolNumber=0 is a special case which will not issue a toolchange. LatheCutDirection   RightHand . the diameter from the tool information stored in the tool library for the given tool number will be used. WorkPlane Should always be set to XZ for lathe code.Cuts will move from right (+Z) to left (-Z). If no tool library is defined the Default-(units) tool library is assumed. ToolDiameter This is the diameter (or twice the tool radius) of the current tool in drawing units. If ToolNumber changes between successive machine ops a toolchange instruction is created in gcode. Stock surface should always be expressed as a radius.  Define the stock object if needed. If the tool diameter is 0.Cuts will move from left (-Z) to right (+Z). this is the radial X distance between each parallel cut. ToolNumber The ToolNumber is used to identify the current tool. For finishing. LeftHand . The tool library is specified in the containing Part. Post Processor Three sample lathe specific post processor definitions have been provided : Mach3-Turn. Mach3-Turn-CV (Mach3 with CutViewer definitions) and EMC2-Turn. followed by a single cut at the roughing clearance distance that follows the shape. the profile from the tool information stored in the tool library for the given tool number will be used. These defintions may need to be customised to suit the configuration of those controllers. a number of straight passes are used at each depth increment. DepthIncrement When roughing. A suitable post processor such as Mach3-Turn or EMC-Turn are selected in the Machining properties. a single cut that follows the shape at the roughing clearance distance is used. ToolProfile The shape of the cutter. The reference point is sometimes referred to as the 'Imaginary' or 'Virtual' tool point. If False. ConvertToLines may be used as a last resort if CamBam can not generate arc codes in a format compatible with the destination controller. For right hand cuts the toolpath Z will be offset by a negative tool radius. If True. StockSurface and ClearancePlane parameters should always be specified as a radius. XModeDiameter Code to use to set X diameter mode (eg G7 for EMC2) XModeRadius Code to use to set X radius mode (eg G8 for EMC2) InvertArcs If set True. regardless ot the post processor LatheXMode value. a positive tool radius Z offset is used. The tool library can be selected by changing the ToolLibrary property in the Machining or Part properties. The toolpath will be offset by a negative tool radius in the lathe X axis. the toolpath at the center of the tool radius is output. Tool libraries are currently designed to support milling cutters.LatheXMode Controls whether the X lathe coordinates will be written to gcode as Radius. Tool Definitions A sample lathe tool library 'Lathe-mm' is provided. The direction of the Z tool radius offset is determined by the cut direction. where smaller tolerances will result in smoother curves but larger files. This may be useful for front face lathe operations. In the diagram above. an appropriate tool radius offset is applied. DepthIncrement. ConvertToLines is used with the ArcToLinesTolerance property. ArcOutput Normal is the preferred setting and will use G2 and G3 codes to output arcs. However there are a couple of parameters than are useful to store in the tool library. the dot at the tool radius center will be the reference point. CW arcs will be output as CCW and vice versa. For left hand cuts. . rather than lathe. the red cross represents the toolpath reference point when LatheToolRadiusOffset is set True. or a Diameter. LatheToolRadiusOffset If False. 40 degree back angle and 40 degree taper.3 {$endcomment} Creating GCode The basic work flow for creating Gcode files is:     1. This example ToolChange property defines a right hand cutter with a 2mm radius. this intructs the post processor to determine the tool radius from the tool diameter. 0=Tool Center. Select drawing objects and define Machining Operations 3.ITP Refer to the CutViewer Turn documentation for details of this description.R. R . Pressing CTRL+T. CutViewer Turn recognises a gcode comment that defines the geometry of the lathe tool in the following format: TOOL/STANDARD. or by right clicking on individual machining operations in the drawing tree and selecting Generate Toolpath from the context menu.ToolProfile should always be set to the new Lathe option.toolchange} macro from with the ToolChange post processor section. Among other things. A new ToolChange property has been added. ITP .Imaginary Tool Point.40.2. IC .A.BA.Angle. This is a text value that can be included by the post processor when using the {$tool.Inner circle.Back angle. . Generate Toolpaths and visually inspect 4. {$comment} TOOL/STANDARD. Create the destination Gcode file Generating and Inspecting Toolpaths Toolpaths are generated by selecting the Machining . Here is a summary of the parameters:      BA .40. A . 3 for right hand offset. 4 left hand offset.radius}. Create or Import drawing objects 2.Radius.IC.{$tool.Generate Toopaths menu item. For example. Setting the machining option ShowCutWidths=True is a useful way of seeing the areas of stock that will cleared. Toolpaths can be shown or hidden using the View . Note: These options are stored within the drawing file. Note: This option currently is only accurate when viewed in the XY plane.CamBam provides a 3D drawing view. Default settings for new drawings can be set in the DrawingTemplate file. There are a number of settings which control the appearance of the toolpaths. The toolpaths indicate the path that will be travelled by the central tip of the cutting tool. Small arrows indicate the cutting directions. By selecting the Machining folder in the drawing tree a number of options are available under the Toolpath Visibility group of the machining properties. Rapids are displayed using dotted red lines. Rotate the view (using ALT+Drag) to see more detail of the toolpaths including the different depth levels. Different colors are used to differentiate straight line moves and arc moves.Show Toolpaths top menu and context menu options. Creating Destination Gcode File . a destination file location prompt is displayed. Common available macros are described in the post processor section. Some CNC controllers may not recognise the way these moves are formatted. If a gcode file has not been previously created. DistanceMode Absolute | Incrememental . the resulting toolpath may look a mess of random arcs in the controller. CustomFileFooter This text is inserted at the end of the gcode output. True will always output these parameters.] button to appear which can be used to open a file browser. This is particularly useful for new designs. Machining Options Each CamBam drawing can define a number of machining options that control how toolpaths are generated and displayed.Y parameters. A better solution is to now use the post processor system to define arc moves to be compatible with the target system as rapid sequences of small line moves can cause problems with some CNC controllers. It can contain multiple text lines or pipe characters '|' to denote new lines. Common available macros are described in the post processor section. CustomFileHeader This text is inserted at the beginning of the gcode output. the arc X. It can contain multiple text lines or pipe characters '|' to denote new lines.8] now defined in the post processor. ArcOutput [0. as well as how gcode output is produced. ArcOutputAllAxis True | False If False.Y. Under Tools .Produce Gcode menu option.9.Options. The gcode filename is stored and can be changed by selecting the machining object in the drawing tree and changing the OutFile property under the Destination group of the machining properties. a Gcode file can be produced to send to the CNC controller. If this setting is different to the way the CNC controller interprets arc moves. It can also contain $macros. toolpath arcs are output using G2 and G3 moves.Z parameters are treated as modal.Once the machining operations have been correctly defined and inspected. It can also contain $macros. ArcCenterMode Incremental | Absolute This property controls whether the I and J parameters for arc moves (G2. Normal | ConvertToLines If set to Normal. G3) use absolute coordinates or relative to the X. Gcode Generation there is a setting called DefaultGCodeExtension which is used to set the file extension. A default filename is suggested by appending the default Gcode file extension to the current filename. This property is overridden by the arc definitions in the selected post processor. To do this. Often it is useful to be able to create Gcode from a single machining operation. so setting this to ConvertToLines will output a sequence of line moves G1... right click a specific machining operation in the drawing tree and select Create Gcode File from the context menu. That is they may be omitted if the coordinate are unchanged from the previous arc move. This is done by selecting the Machining . where each machining step can be exported and tested separately. Selecting the OutFile value will cause a [. This feature currently only works when the drawing view has not been rotated. An 'X' icon will be displayed on the drawing at the machining origin point. OutFile This is location of the desintation gcode file. Holding Tabs InnerTabScale.9.8i] Adjusts the length of the holding tabs by scaling the length by these amounts. Clicking the [. A typical example might be 0.This value is currently only used when interpreting gcode. If set to 0 (the default). This can significantly improved cutting times in some files.1 or Metric or 0. Gcode generated by CamBam will currently always use Absolute (G90) distance mode for X. .9. This property is overridden by the NumberFormat specified in the selected post processor. RebuildToolpathBeforePost Controls whether to regenerate toolpaths before creating gcode post. ShowCutWidths [0. True | False. OuterTabScale is the length toward the toolpath and InnerTabScale is the length away from the toolpath. If a non zero FastPlungeHeight is specified. PostProcessorMacros This is a text field containing multiple macro definitions (one per line). IfNeeded .Y=0) point when gcode is created. True | False. It should be easy to spot any areas that are not shaded and will therefore have stock remaining. NumberFormat Controls how decimal numbers are output to the gcode file. Controls the visibility of a small arrow at the start point of each toolpath that indications the direction of machining. a rapid move is used (G0) to the specified height above the stock. The ellipsis button [.8] moved from machining to first item in the drawing tree. Prompt .8] moved from machining to first item in the drawing tree. See the Post Processor section for more information. NOTE: MachiningOrigin replaces the GCodeOrigin and GCodeOriginOffset properties of earlier releases.. ShowDirectionVector [0.Toolpaths will automatically be regenerated before posting the gcode.] to the right of this property can be used to select a point in the drawing.004 for Inches. Prompt or IfNeeded are useful when the toolpaths take a long time to generate such as with some 3D operations.    Always . This cross can be dragged to a new location using the mouse.Y and Z coordinates..9. The post processor controls how the gcode files are formatted and are user configurable using XML based post processor files.Prompts whether or not to regenerate toolpaths before posting. Show cut widths will shade the areas that will be cut. PostProcessor A selection from a drop down list which contains a list of all the post processors available.. the current machining operation's PlungeFeedrate is used (which can be painfully slow).] button to the right of this property will open a file browser.. OuterTabScale New! [0. These macros can be used by the selected post processor and are a handy way of passing parameters from the drawing to the post processor. MachiningOrigin A drawing point that will be used as the machining origin (X=0. of the format $macro=value. FastPlungeHeight This value is used when moving down to the stock surface or next cutting level.Toolpaths will be regerated if machining properties or drawing objects change. so a machining operation will by default machine all the way through the stock. If a machining operation or style's StockSurface property is set to Auto. machining folder level. True | False.8] moved from machining to first item in the drawing tree. the stock's stock surface value will be used. the profile from the tool information stored in the tool library for the given tool number will be . This is the same as using the View . the stock's stock surface and Z size will be used to determine the target depth. In this way it is possible to define different stock objects for each part if needed.9. StockSize is used to set the X. If ToolNumber changes between successive machine ops a toolchange instruction is created in gcode. or if this is not present in the Machining folder level. ShowToolpaths [0. StockSurface defines the Z coordinate of the top surface of the stock. Y and Z dimensions of the stock block. Shows or hides the toolpaths. The stock object defined at the part level will take precedence over the stock object defined at the.9.8] moved from machining to first item in the drawing tree.ShowRapids [0. Style Select a default CAMStyle for all machining operations in the drawing. a stock offset of -10. The tool number is also used to look up tool information in the current tool library. ToolDiameter This is the diameter of the current tool in drawing units.Show Toolpaths menu option. NOTE: Rapids are currently only displayed within each machining operation. For example. ToolNumber The ToolNumber is used to identify the current tool. StockOffset is used to define the position of the lower left corner of the stock. If a machining operation or style's TargetDepth property is set to Auto. the diameter from the tool information stored in the tool library for the given tool number will be used.-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). otherwise the specified library will be used when looking up tool numbers. Stock The stock object can be used to automatically calculate some machining properties. Can be overriden in the machining operation's or parts Style property. the default tool library will be used (Default-{$Units}). If the tool diameter is 0. The tool library is specified in the containing Part. Stock is undefined if it's X Y and Z sizes are all set to zero. ToolProfile The shape of the cutter If the tool profile is Unspecified. Rapids from one machining operation to the next are not yet shown but should be in the next release. True | False. StyleLibrary This property is used to locate the style definitions used in the drawing. Controls the visibility of a dashed line that indicates rapid moves from one toolpath to the next. ToolLibrary If left blank. ToolNumber=0 is a special case which will not issue a toolchange. If no tool library is defined the Default-(units) tool library is assumed. Some of the Part properties such as Stock and Tools are repeated in the parent Machining folder.cb. the corresponding value will be used from the machining object. To create gcode for just one part.9. right click the part in the drawing tree. Part Machining Object A Part is a way of grouping multiple. If Default is used. will toggle a part's enabled state. All | SelectedOnly When there are a lot of machining operations. right click the part in the drawing tree. the (enabled) machining operations in this part will have their toolpaths displayed and they will be included . If the Part properies are unspecified. for example if a part uses a different stock definition. By default. pressing the space bar when the item is selected in the drawing tree. Right click an individual machining operation to generate toolpaths for just that mop. This is particularly useful with geometry that involves a sequence of many small movements. generating gcode will write the output from all the enabled parts in the drawing. sometimes referred to as 'Look Ahead'.used. no velocity mode gcode is written (or the global velocity mode is used for machining operations). then select Produce gcode. VelocityMode ConstantVelocity | Default | ExactStop Controls the use of G61 and G64 commands in gcode output. Properties Enabled If Enabled is true. Usually it is best to define these properties at the Machining folder level. It may be useful to define the properties at the part level if they differ from the global Machining settings. To generate the toolpaths for all the machining operations in a part. Parts can be enabled or disabled individually. only the toolpaths for the machining operation selected in the drawing tree are visible. By setting ToolpathVisibility to SelectedOnly. in the CamBam samples folder illustrates a good use of different parts. often trying to approximate a natural shape. and right click the Machining folder (or press CTRL+T) to generate toolpaths for all enabled operations in the drawing. Constant velocity. related machining operations into a single object.8] moved from machining to first item in the drawing tree. ToolpathVisibility [0. is a useful feature implemented in some CNC controllers so that motion is smoothed between control points. then select Generate toolpaths. For example it may be useful to have a global value of ConstantVelocity set for the drawing and use ExactStop for finishing machine operations. Here machining operations are separated into parts for front and back faces for the lid and base of a small wooden box. As with layers and machining operations. This global velocity mode setting can be overridden by individual machine operations. A single drawing file can contain many different part objects. it can get visually confusing as to which toolpath belongs to which machining operation. The file heart-shaped-box. The downside is a potential loss of accuracy. so they need only be defined once per drawing. then set the Rows and Columns values to determine the number of copies of each part. This name will be used to generate a filename when creating gcode output from the part.9.9. If a machining operation or style's StockSurface property is set to Auto. An 'X' icon will be displayed on the drawing at the machining origin point. Clicking and dragging this icon will change the nesting pattern and will also change the nesting method to Manual. A new 'Nest to point list' Part context menu function has been added. When the toolpaths are generated. AllMOPsPerCopy .9. If a machining operation or style's TargetDepth property is set to Auto.8f] Grid Order Controls the direction of the grid layout. The centre of each outline contains a triangular icon.8f] GCodeOrder Controls how the nested machining operations are ordered in the gcode output. OutFile This is location of the desintation gcode file.All the MOPs in the part are posted before moving to the next nest location.PointList The location of each nest copy is taken from a point list drawing object which is set in the PointListID property. the stock's stock surface and Z size will be used to . before moving to the next MOP (which would require a tool change).    Auto . Multiple copies of the part's toolpaths will be written to the gcode output. The Spacing value will control the distance between each copy. The ellipsis button [.. This will increase the gcode file size. If false then each row or column will proceed in the same order with a rapid back to the start of each. NestMethod: Change this to Grid or IsoGrid. the grid will alternate the direction of each row or column (depeding on Grid Order).Each MOP is output at each nest location before moving to the next MOP. New [0.. the stock's stock surface value will be used.Y=0) point when gcode is created. New [0.] button to the right of this property will open a file browser.All consecutive MOPs within the part with the same toolnumber will be posted then repeated for each nest copy. Clicking the [. For example RightUp will make copies to the right of the original.] to the right of this property can be used to select a point in the drawing. This cross can be dragged to a new location using the mouse. Name Nesting A descriptive name for the part. New [0. an outline should be displayed to indicate the location of each copy. This compositie property provides a method of generating an array or nest of parts..8f] NestMethod . in this way a list of nest points can effectively be copied from one part to another by shareing a common point list.in the gcode output. but does avoid some of the issues encountered when using subroutines. NestEachMOP . MachiningOrigin A drawing point that will be used as the machining origin (X=0.9.8f] Grid Alternate If set to true. New [0. then move up to the next row.. NOTE: MachiningOrigin replaces the GCodeOrigin and GCodeOriginOffset properties of earlier releases. Stock The stock object can be used to automatically calculate some machining properties. Unlike older templates. the profile from the tool information stored in the tool library for the given tool number will be used. ToolNumber The ToolNumber is used to identify the current tool. If the tool diameter is 0. Tag ToolDiameter A general purpose. StyleLibrary This property is used to locate the style definitions used in the Part or machining operations. Style Select a default CAMStyle for this part. ToolLibrary If left blank. The stock object defined at the part level will take precedence over the stock object defined at the. Each machining operation now has a Style property. StockSize is used to set the X. ToolNumber=0 is a special case which will not issue a toolchange. For example. the machining operation refers to the style object to resolve properties when needed. any changes to a CAM style will immediately affect all operations that refer to it. In this way. . CAM Styles Machining templates from previous CamBam versions have been renamed CAM Styles in this version and their behaviour has changed considerably. ToolProfile The shape of the cutter If the tool profile is Unspecified. the default tool library will be used (Default-{$Units}). The tool library is specified in the containing Part. the diameter from the tool information stored in the tool library for the given tool number will be used. This is the diameter of the current tool in drawing units. This refers to a style definition. so a machining operation will by default machine all the way through the stock. In this way it is possible to define different stock objects for each part if needed. or if this is not present in the Machining folder level. StockOffset is used to define the position of the lower left corner of the stock. a stock offset of -10. StockSurface defines the Z coordinate of the top surface of the stock.determine the target depth. As with templates. The tool number is also used to look up tool information in the current tool library. If ToolNumber changes between successive machine ops a toolchange instruction is created in gcode. which is available to all drawings. Stock is undefined if it's X Y and Z sizes are all set to zero. Instead. machining folder level. stored in a system library. If no tool library is defined the Default-(units) tool library is assumed. otherwise the specified library will be used when looking up tool numbers. multiline text field that can be used to store notes or parameters from plugins. styles are a way of grouping machining parameters into reusable objects to help simplify common machining tasks. Y and Z dimensions of the stock block. All machining operations in the part will use this style unless set otherwise in the machining operation's Style property. the style's properties do not get copied into the machining operation.-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). For example if the TargetDepth property is set to Auto. Auto. Value and Auto properties The way machining operation properties are entered and displayed has changed a lot in version 0. to be used by all machining operations unless specified otherwise in the operation or part.9. an optional StyleLibrary parameter can be specified. These libraries can be copied and modified and multiple style libraries can be defined. extra CAM styles may not need to be defined at all.the value of that property will be taken from CAM style associated with the machining operation. . If the properties in the default CAM style are set as close as possible to the values used by the majority of machining operations encountered. The style library property can contain the following macros: {$Material} This will be expanded to the name of the material used in the stock object. {$Units} This will be expanded to the drawing units abreviation (e. This %ALLUSERSPROFILE%\CamBam root folder can be changed in the system configuration SystemPath property. As well as the Style property. If no style is defined for a machining operation. then in many cases. often based on other settings. If the parent style parameter is not set. If the Style property is left blank for an object. 'mm' for Millimeters and 'in' for Inches. Properties are still managed through the property grid.Default. If the part's style is also blank. If no style is set at the machining level. Part and Machining CAM styles As well as in each machining operation. Value .indicated the property value has be entered explicitly. Changes to style libraries will detected when CamBam is restarted. The style libraries are XML based files stored by default in the %ALLUSERSPROFILE%\CamBam\styles folder. or by right clicking on the CAM Styles system folder and selecting Refresh from the context menu. Default properties will be displayed in grey italics and will typically show the default value that will be used. the default (blank name) top level style will be used to resolve default properties. the property is overriden from the value stored in it's parent style. so that styles can be based upon other styles. but the properties can have multiple states.g. Right clicking the property name will show a menu that contains the following options: Default. CamBam will look to the containing part object. a default 'blank' named style will be used. CamBam will refer to the next level upwards to chose a style. Value. Default . the target depth will be calculated to cut the full depth of the stock object. This can be used to determine the correct style to use when the same Style name is present in multiple libraries. the style set at the top Machining level will be used. In this way. CAM Styles also contain a parent style property. Style libraries CAM style definitions are stored in style libraries and maintained from the CAM Styles folder of the system tree. which displays the properties for selected objects.may be used where a property value is to be calculated internally by CamBam. CAM Styles can also be set at the Part level and in the top level Machining folder.8. This makes it easy to set just one style at the top level of a drawing. Auto . Machine operation. {$Material}-{$Units} (if a stock material is defined) 2. Properties Height MaximumTabs MinimumTabs SizeThreshold [New! 0. The cache conflict alert was added to prevent inadvertant changes to a drawing resulting from changing a style or other dependent system library.8] The approximate distance between each automatically generated holding tab.the old value will continue to be used and left as a Default.the newly calculated default value will be used. an extra lead in move (as defined in the profile's LeadInMove property) is inserted at the trailing edge. Style libraries will be searched in the following order: 1. but the current action will be cancelled. This will change the property from a Default to an explicit Value. This only remains in effect until the file is closed. the the same response will be used whenver a new conflict is detected. The minimum number of auto tabs to insert around each shape. Square | Triangle UseLeadIns Square holding tabs will result in a vertical plunge on the trailing edge. Standard-{$Units} Property cache conflict alert If the result of a Default property has changed from it's previous value. The maximum number of auto tabs to insert around each shape. changed default properties will once again be reported. Holding Tabs Holding tabs or bridges are used to hold material in place when cutting through the entire depth of stock. If UseLeadIns is set True. a Property Cache Conflict message may be shown. measured at the thinnest part of the tab. The next time the file is opened. Use existing value .If no style library is provided. Width The final width of the holding tab. Click on the + sign to the left of this to expand the property to modify sub properties.8] The height of the holding tab measured from the stock base or target depth. This provides the following options:    Use new value . If Use same action for all conflict is checked. especially in harder materials. . None | Auto | Manual. The Profile machining operation contains a HoldingTabs composite property. it is not neccesary to also provide the dependent style definitions as all the required information will be preserved within the file. Shapes with perimeters less than this value will not have any automatically calculated tabs. In this way. This can be hard on cutters. Cancel current action .9.9. if a drawing is transferred to another computer. TabDistance TabMethod TabStyle [New! 0.the old value will continue to be used. but is not suitable for clearing stock.Value contains the radius of the convex curve. Slope . Below are some examples of various combinations of side profile methods. the toolpaths will just follow the calculated profile. . The sign of the Value parameter is significant and reversing the sign will result in different effects. right clicking the holding tab or source geometry where a new tab should be inserted then selecting an option from the HoldingTabs context menu. When False. Once the tabs are visible. ConcaveRadius . As soon as the tabs are dragged. the tab method is changed to manual. Value AdjustCutWidth A value that controls the selected side profile method. To automatically calculate tabs again set the tab method back to Auto or select Autocalc from the right click Holding Tab context menu. This is fine for a finishing pass.Value contains the angle in degrees from vertical.cb sample file.cb.To automatically generate holding tabs.cb and heart-shaped-box.Value contains the radius of the concave curve. The minimum and maximum tab values are then used to limit the number of tabs. This is useful for roughing operations. set the tab method to Auto then regenerate the toolpath. Properties Method None . Side profiles are created by manipulating the SideProfile composite property of the 2D Profile machining operation.Normal perpendicular sides. The number of tabs is worked out by dividing the perimeter of the drawing object by the tab distance property. Tabs can be removed and added by selecting the profile operation in the drawing tree. The files side profiles. These images were created from the side profiles. ConvexRadius . in the CamBam samples folder illustrate various uses of side profile operations. Set AdjustCutWidth=True to machine all the stock layers above as well as on the profile. they can be dragged around to preferred locations using the mouse. Side Profiles Side profiles are a method of producing pseudo 3D objects from 2D shapes by creating radii and slopes. value signs and profile inside/outside settings. Profile=Inside Method=ConcaveRadius. Value=+Ve. Profile=Outside Method=CovexRadius. Value=-Ve. Profile=Outside Method=CovexRadius. Value=+Ve.Method=CovexRadius. Value=-Ve. Profile=Inside Method=CovexRadius. Profile=Outside Method=ConcaveRadius. Value=+Ve. Profile=Outside . Value=-Ve. Profile=Inside . Value=+Ve. Value=+Ve. Value=+Ve. Profile=Inside Method=ConcaveRadius. Profile=Outside Method=Slope. Value=-Ve. Value=-Ve. Profile=Inside Method=Slope.Method=ConcaveRadius. Profile=Outside Method=Slope. Value=-Ve. Profile=Inside Method=Slope. Select the machining folder in the drawing tree and look in the Post Processor group of the machining properties.PostFile This section defines the general structure of the gcode file. The post processor used for a specific drawing is set under the machining options. PostProcessor This option is a drop down list that contains all the custom post processors found in the post folder. the PostProcessor machining option should defined in an empty CamBam file and this file used in the DrawingTemplate setting under Tools Options.Reload Post Processors menu option. PostProcessorMacros This option is used to pass user defined macros from the drawing to the post processor. {$header} . or by defining user macros in the PostProcessorMacros machining option within the drawing. copied and modified within the 'Post Processors' section of the System tab. Some examples of macros are given below. The macro definitions are defined within the . and text macros of the format {$macro}.This macro is evaluated using the Footer section described below. If post processor files are modified or new ones created outside of CamBam. internally by the post processor. To set a post processor as the default for all new drawings. EMC and USBCNC. the post processor list should be refreshed using the Tools . stored in the \post sub folder of the system folder. Post processors are XML files with a . make sure the Advanced property view button is selected. Each block is formatted using the rules in the MOP section.This macro is evaluated to a list of blocks of text.Post Processor System The format of generated gcode files can be controlled using post processor definition files. which is output to the destination gcode file directly. Each section can contain a mixture of literal text. This is a mult-line text field containing multiple macro definitions in the format $macro=value. If any of the following sections are not visible in the property editor. The macros are evaluatied and the resulting text values are written to the gcode output. Example: % O{$o} ( MY FANUC POST ) {$header} . an internal post is used. If no post processor is specified. These definitions can be created. It typically includes three macros that are evaluated internally based on rules defined in further sections of the post processor. one block per each machining operation.This macro is evaluated using the Header section described below. (Main) .. intended to be compatible with the RS274 NIST gcode specification as used many common CNC controllers such as Mach3. {$mops} . {$footer} .cbpp file extension.cbpp file. Post Processor sections The XML file contains a number of sections. 0.{$stock_length}.7 (Main) .0. the PostProcessorMacros property is used to pass the {$stock_.0 M09 {$spindle(off)} {$endrewind} (Main) .{$stock_x}.G0 X10Y10Z0 {$mops} {$footer} % Note.Header Defines the text rules used by the {$header} macro.header} {$units} {$distancemode} {$velocitymode} {$cuttercomp(off)} {$toolchange(first)} G54 ( Use fixture 1 ) {$clearance} Once again.name} {$date} {$endcomment} {$tooltable} {$comment} CUTVIEWER {$endcomment} {$comment} FROM/0. Example: {$clearance} G28 G91 Z0 G90 G53 X-15. which in this example may contain text such as: $stock_length=150 $stock_width=150 $stock_height=12.5 {$endcomment} {$comment} TOOL/MILL.MOP .{$stock_y}.{$stock_z} {$endcomment} {$cbfile.{$stock_width}.0 Y0. {$stock_height}.20. The % characters are output literally and would be omitted if not using an RS232 file transfer program.0.. Example: {$comment} {$cbfile..0 {$endcomment} {$comment}STOCK/BLOCK. the value of {$o} macro is passed to the post processor using the drawing's PostProcessorMacros property which may contain a value such as '$o=1234'.} macros to the post processor.Footer Defines the text rules used by the {$footer} macro. (Main) .7 $stock_x=75 $stock_y=75 $stock_z=12.1. Example: {$comment} T{$tool.ArcCenterIncremental Used in the {$mop.header} {$spindle} {$s} {$blocks} {$mop.8h] Used in the {$cuttercomp(off|L|R)} macros. Tool tables are typically inserted in the header of a file and contains commented text describing the list of tools that are used in the gcode file. Mach3 recognizes G91. G1.CutterCompOff.length}. Options .ToolTableItem Defines how each item of the {$tooltable} macro is produced. {$tool.index} M6 G Codes .ToolChange Defines how the {$toolchange} macro is formatted. Mach3 recognizes G90. CutterCompLeft.9. {$tool. Typically Off=G40. Example: {$clearance} {$comment} T{$tool. Left=G41.footer} Tools . G82. Examples: {$comment} {$mop.header} macro to specify that ArcCenterMode is set to Absolute. 0 {$endcomment} T{$tool. Right=G42. This information will be repeated in the gcode output for each active machining operation.index} : {$tool. G3.diameter} {$endcomment} Tools . .1 G Codes .index} : {$tool. G2.name} {$endcomment} {$toolchange} {$velocitymode} {$workplane} {$mop.diameter} {$endcomment} {$comment} Tool Radius and Taper coming soon {$endcomment} {$comment} TOOL/MILL. G83 These sections define how the commonly used gcode operators are output.ArcCenterAbsolute Used in the {$mop. G81. CutterCompRight [New! 0.diameter}.header} macro to specify that ArcCenterMode is set to Absolute.radius}. {$tool.G0.1 Options .Defines how each item of the {$mops} macro is formatted. Off=M5. WorkplaneXZ.8h] Typically inches=G20.9. M Codes .8h] Typically exact stop=G61. Typically G80.8h] M Codes . VelocityModeConstantVelocity [New! 0.9.EndRewind Typically M30.9.9. G Codes .8h] Code sequence used at the end of a group of canned cycle blocks. [New! 0.9.CannedCycleStart [New! 0.WorkplaneXY.8h] Typically CW=M3.9.9. SpindleCCW. Typically G98 for initial level return after canned cycles. . constant velocity=G64. G Codes .Repeat [New! 0. XZ=G18.\nFor example EMC2 recognizes G8. G Codes .8h] Code sequence used at the start of a group of canned cycle blocks.XModeDiameter Used in the {$lathexmode} macro to specify that X values are in diameter mode.G Codes .XModeRadius Used in the {$lathexmode} macro to specify that X values are in radius mode.8h] Typically XY=G17.VelocityModeExactStop.DistanceAbsolute. CCW=M4. YZ=G19.UnitsInches. incremental=G91.8h] Typically absolute=G90. DistanceIncremental [New! 0.CannedCycleEnd [New! 0.8h] Typically M47. G Codes . G Codes . M Codes .9.\nFor example EMC2 recognizes G7. G Codes . SpindleOff [New! 0. NOTE! Incremental distance mode is not currently suported.SpindleCW. WorkplaneYZ [New! 0. millimeters=G21.9. G Codes . UnitsMM [New! 0. but may be set to X or Z for lathe operations. Example: Rapid {$g0} {$_f} {$_x} {$_y} {$_z} {$_a} {$_b} {$_c} FeedMove {$_g1} {$_f} {$_x} {$_y} {$_z} {$_a} {$_b} {$_c} ArcCW {$g2} {$_f} {$_x} {$_y} {$_z} {$i} {$j} ArcCCW {$g3} {$_f} {$_x} {$_y} {$_z} {$i} {$j} Note: The gcode operators {$g. Drill {$g81} {$_x} {$_y} {$_z} {$_r} {$_f} DrillDwell {$g82} {$_x} {$_y} {$_z} {$p} {$_r} {$_f} DrillPeck {$g83} {$_x} {$_y} {$_z} {$p} {$_q} {$_r} {$_f} Lathe .M Codes . specifies whether X values are radius or diameter mode.LatheXMode For lathe operations. EndComment .Comment. That is they will only be output if the current value has changed.Drill. DrillPeck These sections define how the commonly used canned cylce instructions are formatted. Options . If set to ConvertToLines small line moves are used rather than arc commands. Canned Cycles . Moves .ArcToLinesTolerance If ArcOutput=ConvertToLines is used.. This is to show values that are modal (or sticky). Options .ArcOutput Controls how arcs are output to gcode. Options . this value controls the maximum allowed error when converting arcs to lines.8h] Typically M0.Stop [New! 0.} and their parameters can specified using an underscore (_) prefix.. ArcCW. Smaller tolerances will result in smoother curves but larger files. DrillDwell. FeedMove. Usually Z.Rapid.ClearancePlaneAxis Used to specify which direction clearance moves are made.9. ArcCCW These sections define how the commonly used gcode move instructions are formatted. Omitting the underscore will force the parameter to be always output. Options . MaximumArcRadius A numerical value that controls the maximum radius allowed for arc moves.8h] Character sequence used at the end of a line.UpperCase If set to True.#0 is used. Options . If the length of an arc is less than the MinimumArcLength value then a straight move (G1) is used instead. This is useful for TurboCNC users where very small arcs can cause glitches that may appear as dimples in the toolpath. no move instruction will be written to the gcode as the coordinates are identical when formatted to 2 decimal places. Options .9.MinimumArcLength A numerical value that controls the precision limits used for outputting arc moves (G2. CW arcs will be output as CCW and vice versa. G3). Example: MinimumArcLength=1e-4 Options . EndComment: Options . This is particularly useful for Fanuc posts that do not support lower case characters. Options .Defines the text to be used at the beginning and end of a comment. Post Processor Macros .InvertArcs If set True. the post processor converts all text written to the gcode file to upper case. adding padding zeros if required. It can also change the gcode instructions that are required.233 and a number format of #. Escape code \r and \n can be used.EndOfLine [New! 0. If an arcs radius exceeds this value.NumberFormat This is a string formatting pattern that controls how floating point numbers are displayed.234 to X=1. if a toolpath contains a move from X=1. Example 1: Comment: ( EndComment: ) Example 2: Comment: . a straight line move (G1) is used. A hash character (#) denotes an optional digit place holder and a 0 character denotes a digit that is always displayed. For example. This may be useful for front face lathe operations. Example: MaximumArcRadius=1e6 Options . y. $footer Evaluates the text in the .name Inserts the current machining operation's Name property. this macro checks the x.z coordinate parameters against the current tool location.cbpp file. Note: CamBam does not currently calculate radius compensation codes for toolpaths. R=G42 $date Inserts the current date time stamp $distancemode Currently this always equates to G90 $endcomment Inserts the text defined in the EndComment section of the . $_g81. $g82. $endrewind Currently hard coded to: M30.cbpp file. off = G40. $header Evaluates the text in the Header section of the . $_g2.$blocks This macro is generated internally and contains all the move instructions required by the current machine operation (MOP)'s. $_g1. $g3. L=G41.z) Generated internal. $check(x.cbpp file.. $g81. $mop. If the underscore (_) prefix is used.header Inserts the current machining operation's CustomMOPHeader property. .cbpp Footer section of the .cbpp file. $g2. $mops Inserts a list of objects. $g0.footer Inserts the current machining operation's CustomMOPFooter property. $_g3.header Inserts the drawing’s Machining option CustomFileHeader property. $g1. $cuttercomp(off|L|R) Cutter radius compensation.y. If different a sequence of moves will be inserted to move to the new position using the clearance plane and plunge feed rates where necessary.cbpp file. one item for each enable machining operation.footer Inserts the drawing’s Machining option CustomFileFooter property. That is the first occurrence of the code will be written but omitted if following blocks use the same instruction.name Inserts the drawing’s Name property. these instructions are assumed to be modal (or sticky). $cbfile. The format of each code is taken from the G. $_g83 These Gcode macros control how the gcodes are output. $clearance Rapids to the clearance plane. $_g82. Each list item is defined using the MOP section definition of the . $comment Inserts the text defined in the Comment section of the . definitions in the . $g83 $_g0.cbpp file. $cbfile. or to use alternative G codes. $mop. $mop. $cbfile.. This may be useful to control zero padding (eg G1 vs G01). . these parameters are treated as modal. $f.$repeat Currently hard coded to: M47 $s Inserts the current machining operation's SpindleSpeed property. $yabs.radius Uses the current machining operation's ToolProfile property to determine a radius. $_c. That is they will only be output if the current value has changed.index Inserts the current machining operation's ToolNumber property..8h] The same as the other register macros ($x. ConstantVelocity=G64 $workplane Inserts the current machining operation's WorkPlane property. 0 for EndMills and Diameter / 2 for bullnose.length Currently inserts 0. The same as the other register macros ($x.diameter Inserts the current machining operation's ToolDiameter property... $a. $i. XY=G17.9. XZ=G18. Millimeters=G21 $velocitymode Inserts the current machining operation's VelocityMode property ExactStop=G61.9. $_y etc). . [New! 0. ccw=M4. $tool. $_r. $units Uses the drawing's Units property. $q $_x. no tool change code is inserted. Each item in the list is formatted using the ToolTableItem definition in the . $tool. $p. but with the value sign reversed. $_z. $xabs. $zabs. $_a. $tooltable Inserts a list of objects for each tool that is referenced in the current drawing. $zneg. $_y. YZ=G19 $x. Omitting the underscore will force the parameter to be always output. $_j. $b. If an underscore (_) prefix is used.8h] These macros insert the parameters used in common Gcode move operations. $tool. $toolchange Inserts a tool change instruction.. $toolchange(first) Inserts a tool change instruction using the first tool in the current drawing's tool table. $_i. Inches = G20. $_b.cbpp file. $r. $_p. $c. ccw=M4. $z. $y. off=M5 $stop Currently hard coded to: M0 $tool. $_y etc). $_f. off=M5). [New! 0. $spindle Inserts a macro depending on the current machine operation's SpindleDirection property (cw=M3. $_q $xneg. $j. Future releases will get this information from a tool database. $yneg. but with the value always positive. If the tool number has not changed. $spindle(off|cw|ccw) cw=M3. based on the ToolChange definition in the . .cbpp file. Properties ArcCenterMode CustomMOPFooter CustomMOPHeader CutFeedrate DistanceMode Enabled MaxCrossoverDistance GCode distance mode (Absolute or Relative). used to determine I and J coordinates in G02 and G03 (arc) commands.Toolpaths are not optimised and are written in the order they were generated. the toolpaths should then be regenerated. Another useful feature of backplotting is the ability to convert the gcode toolpaths to drawing objects. Right click the NCFile object under the machining tree and select 'Toolpath To Geometry' from the context menu.8. near to where the first toolpath should begin machining. GCode files can be opened using File . The start point circle can be moved by clicking and dragging Style [New! 0. Used to select a point. is inserted. or dragged onto the main drawing view. will be written to the gcode output of the parent drawing. hopefully improved optimiser that is currently in testing. a retract. multiline text field that can be used to store notes or parameters from plugins. A multi-line gcode script that will be inserted into the gcode post before the current machining operation. The feed rate to use when cutting. used to determine X. Name Each machine operation can be given a meaningful name or description. None .8] Select a CAMStyle for this machining operation.9.Backplotting + NCFile object CamBam can be used to view toolpaths contained within many gcode files. Maximum distance as a fraction (0-1) of the tool diameter to cut in horizontal transitions. A multi-line gcode script that will be inserted into the gcode post after the current machining operation. rapid and plunge to the next position.9. . GCode distance mode (Absolute or Relative). The filename of the gcode file which will be read.8] As of version 0.Open. Default . Also.9. back plotted and inserted into output gcode. The gcode file is associated with a special NCFile machining operation that will appear in the machining tree view. the contents of the gcode file referenced in the NCFile object. a small circle will be displayed at this point when the machining operation is selected.Toolpaths are ordered to minimise rapids. Experimental . via the clearance plane. the gcode source file will be opened in the configured gcode editor. If the distance to the next toolpath exceeds MaxCrossoverDistance. This is output in the gcode as a comment and is useful for keeping track of the function of each machining operation. If a start point is defined. PlungeFeedrate SourceFile StartPoint The feed rate to use when plunging. by double clicking the NCFile machining operation in the drawing tree. If any options are changed. All default parameters will be inherited from this sytle. Y and Z coordinates. This operation contains properties that can change the way the gcode is interpretted and displayed.A new. If Enabled is true. the toolpaths associated with this machining operation are displayed and included in the gcode output. Tag A general purpose. New [0. OptimisationMode An option that controls how the toolpaths are ordered in gcode output. CamBam currently only supports basic gcode and does not recognise more complex gcode syntax such as subroutines. G3 (arc) moves. Note Polylines with first and last points having the same coordinates are not neccesarily closed. If ToolNumber changes between successive machine ops a toolchange instruction is created in gcode. XZ and YZ CAD Entities Polyline Polylines consist of multiple straight line and circular arc segments. The tool library is specified in the containing Part. Properties Closed True | False Open polylines have two ends and no defined inside or outside. The tool number is also used to look up tool information in the current tool library. Options are XY. ToolNumber=0 is a special case which will not issue a toolchange. If no tool library is defined the Default-(units) tool library is assumed. Region . The closed marker should be set to True for these shapes otherwise unexpected results may occur. Each point contains an X.[New! 0. Polylines are used internally to represent toolpath shapes as they currespond well to gcode G1 (line) and G2. If the tool diameter is 0.] button to the right of the property will open up a window where the points can be editted directly. Arc moves are defined within this plane. Bulge is defined as tan(sweepangle/4) for arc segments.8] ToolDiameter This is the diameter of the current tool in drawing units. or if this is not present in the Machining folder level. the diameter from the tool information stored in the tool library for the given tool number will be used.Y and Z coordinate and a bulge parameter.. where bulge=0 is a straight line. WorkPlane Used to define the gcode workplane.9. ToolProfile The shape of the cutter If the tool profile is Unspecified. ToolNumber The ToolNumber is used to identify the current tool.. Points This property contains a collection of polyline points. Clicking the [. the profile from the tool information stored in the tool library for the given tool number will be used. Closed polylines are where the first and last points are the same and have a well defined inside and outside. they can be created from the Draw-Point List menu operations Divide Geometry Evenly divides a selected shape into a given number and inserts a point at each division. Circle Properties CenterPoint The coordinates of the center of the circle Diameter The diameter of the circle. . To create a region.Convert . Rectangle Properties CornerRadius New! This will round the corners of the rectangle to a given radius.A region consists of a closed outer shape and a number of internal holes. Step Around Geometry Inserts a point at given distances around a selected shape. Extents Inserts a point at the extremities and center of a boundry rectangle enclosing each selected object.To Region menu option. PointList Point lists are useful for defining points to be used for drilling operations. select inner and outer shapes then use the Edit . Centers Inserts a point at the center of each selected object.] button to the right of the property will open up a window where the points can be editted directly. or press CTRL+R Note: Currently. Offset Fill Geometry Fills a closed shape with points where alternating rows are offset by half the stepping distance.. As well as drawing directly. Fill Geometry Fills a closed shape with points. Clicking the [. This is useful for generating a bolt hole pattern. some shapes such as circles will need to be converted to polylines first before being used to create a region.. Properties Points This property contains a collection of points. Location2 (P2) This point is not currently used. Not currently supported.Height The height of the rectangle. Sweep The sweep angle in degrees from the first to seconf arc point. Height Text TextAlignmentH TextAlignmentV This is the text height in drawing units. Underline Font Style. Center or Bottom (relative to Location). Text Properties Location (P1) This is the first and at the moment. The intention is to use it to define alignment options that evenly spread the text between two points. then use the up and down arrow to try different options. Width The width of the rectangle. click the [. For a bit of fun.] button after this property. A setting of 2 would double the space used for each character (but not the character itself). Center or Right (relative to Location). The default is 1. The text to enter. Italic Font Style. Left. To enter multi line text. As per DXF I may add other options to differentiate absolute bottom and baseline. only alignment point. NOTE: Bottom is actually the baseline of the text. This is the font name to use for the text. Top. Regular Font Style. The TextAlignmentH and TextAlignmentV options are all relative to this point... Positive angles are counter clockwise and negative angles . Bold Italic Regular StrikeOut Underline Bold Font Style. Angle = 0 is along the positive X axis. Arc Properties CenterPoint The center of the arc. Radius The radius of the arc. StrikeOut Font Style. Start The start angle in degrees of the first arc point. The default is 1. Not currently supported. or perhaps as an alernative to the Rotate option. select a font. try clicking on this option. LineSpace Font This scales the distance between each text line. CharSpace This option scales the width used for each character. LowerLeftPoint The coordinates of the lower left corner of the rectangle. but can only contain straight sections. changing one axis will cause the other (enabled) axis to be scaled by the same amount Short cut buttons are provided for common scaling factors   100% will revert the objects their original size (100%). Line Lines have multiple segments. The Original Size column displays the current dimensions of the selected objects. CAD Transformations Moving Objects can be moved by selecting them. . Unticked axis will retain their original size. similar to polylines. Each axis can be scaled seperately by using the check box to the left of the axis label. this will be 1mm. then a destination point. this will be 10mm. objects will be moved on major grid unit (If using millimeters. If the Preserve aspect ratio box is checked. then holding down the SHIFT key whilst dragging the objects with the mouse. If CTRL+SHIFT keys are held down.Move menu option can be used to position an object by first selecting a source point. Using the keyboard only. Spline drawing is not yet supported. mm to inches will scale mm measurements to inches.Resize menu option (or Ctrl+E) is used to resize selected drawing objects. if using inches then this will be 1") NOTE: The grid major and minor units can be defined in the system configuration. Alternatively.clockwise. if using inches then this will be 1/16"). Resizing The Transform . grid section. Spline Splines (or NURBS) can currently only be imported from DXF files. the Transform . A specific size can be entered in the New Size column or a scaling factor entered in the Percent column. selected objects can be moved holding the SHIFT key and using the arrow keys. This will move the object one minor grid unit in the arrow key direction (If using millimeters. Surface Surfaces are triangle face meshes imported from STL and 3DS files. This can be useful to accurately position one object relative to another as the point selection will 'snap' to object points. There is also an optional 4th parameter 'scale'. If the View . the rotation angle should snap to common angles (multiples of 30 and 45 degrees). This will first prompt for the center point of rotation. holding down the SHIFT key then using the view rotation mouse+keyboard combinations. First select the objects to copy then select the Transform .Array Copy menu option. First select the objects to copy then select the Transform . with each copy offset by specified angle. with 0 degrees along the positive X axis. ALT+SHIFT and mouse drag. For example 0. Array Copy Array copy is used to create multiple copies of a drawing object.80%. Move the mouse about the rotation point to control the rotation angle. Alternatively. where n is the copy number. This method currently only rotates about the origin and does not snap to angles. This will display a form with 3 columns. Select the point of the selected axis to align. Polar Array Copy Polar array copy is used to create multiple copies of a drawing object around a point. followed by the number of copies to make. For example. not including the original selected objects. one for each axis.70%. not including the original selected objects. which can be used to increase (scale > 1) or decrease (scale < 1) the size of each copy. Align Transform . so is only really useful for positioning 3D objects for artistic effects. Rotating The Transform .Polar Array Copy menu option.Align can be used to position selected objects. inches to mm will scale inch measurements to millimeters. The routine first prompts for the center point of rotation.9 would offset each copy 1 unit in the Y direction and scale the copies 90%.etc of the original size.1. then press Apply. selected objects can be rotated 'freehand'. or none to leave the current axis position intact.Y. Press Apply for the resize to take effect. The Z coordinate can be omitted and 0 will be assumed. The routine first prompts for the number of copies to make.0. The routine then prompts for an offset distance for each copy in the format X.Snap to grid menu option is enabled. Each copy is scaled using the following formula 1+(scale-1)*n. by selecting them. with each copy offset a specified distance.Rotate menu option (or Ctrl+R) is used to rotate selected objects. Enter the drawing coordinate underneath which will be the new location of the alignment point.0. .Z. with your right thumb pointing in the direction of the positive axis. to make 12 objects. the direction of rotation for a positive angle is the direction that the other fingers curl. Transform matrix More advanced transformations can be defined by changing the selected object's Transform property. Click the [.Z. This is a 4 x 4 matrix which is used to position.] button to the right of the Transform property to open up the transformation editor dialog. in the format X. The transform property is located in the object property window for the selected objects(s). Centering The Transform .The routine then prompts for an offset angle for each copy. Center (Of Points) will align the 'average' point of all the control points contained in the selected shapes. Rotation follows the right hand rule.Center menu options can be used to center objects about the drawing origin.Y.. The Z rotation coordinate can be omitted and 0 will be assumed. For example.30 (that is 30 degrees around the positive Z axis). There are two variations: Center (Extents) will use the center point of the bounding rectangle to align the selected shapes. To visualise this. set the number of copies to 11 (note the original copy is not counted). and use the following rotation value : 0. rotate and scale the object.. . about each axis.0. The angles are measured in degrees. evenly spaced around a point. 8 many operations will now automatically apply transformations. a circle center point and diameter. . To reset the transformation matrix. Apply Transformations Changing the Transform property does not initially change any other object properties. This right hand rule applies to rotations about all the axis. This behaviour can be controlled by changing the AutoApplyTransformations in the system configuration. select the required operation from the Transformation drop down list. To rotate. your fingers will curl in the direction of a positive rotation about the Z axis. The transformed values will be automatically calculated when needed (during toolpath generation for example). Multiple transformations can be applied as along as Apply is clicked between each. then press the Apply button.9. select an object then use the View . scale or translate. select an Axis that the transformation applies to and an amount. For rotations. click Identity.Apply Transformations menu option. This will transform all the shape's properties where appropriate.Values can be entered into the matrix directly or a number of helper buttons can be used. NOTE: As of version 0. To change these properties immediately. the positive Z axis is coming out of the screen towards you. then reset the transform matrix back to Identity. or polyline control points will remain unchanged. If you place your right thumb in the positive Z direction. For example. offset from the selected shape by a given distance. each letter will be converted to a region. Offset Creates a polyline. the outer and inner shapes will be converted to polylines. For regions. the resulting offset polyline will be outside the selected shape. For text objects. this operation will only work on the first 2 selected objects. For polylines. Intersection Points This operation inserts points at the intersections of selected shapes. This is useful when drawing so that other drawing operations can 'snap' to these points. If a negative offset is given.CAD Operations Explode Replaces a drawing object with it's constituent parts. Union Replaces shapes with the outer boundaries of all the selected shapes. For point lists. this will create individual point objects.Fill Region . Draw . Join This operation will attempt to join individual selected objects in single objects. Intersection Currently. This distance (measured in the current drawing's units) is used to determine how close the end points of shapes need to be before they are join. Break At Intersections Breaks selected shapes at the intersection points with other selected shapes. The join routine will first prompt for a join tolerance. this will create individual line and arc objects. Subtract Currently. Trim Trims (deletes) parts of objects contained inside or outside selected trimming objects. If a positive offset distance is supplied. this operation will only work on the first 2 selected objects. the offset polyline should be inside the shape. In pocketing. Outside Offsets Progressive offsets from outside shape inwards. Once this method has been well tested. They were introduced for 3D waterline roughing to specify how areas should be clears at each roughing level. Step Over : This is the distance between fill lines. Inside Offsets Progressive offsets from holes outwards.These methods are used to fill regions with line patterns. this would be the same as the stepover distance. this would be the same as the tool radius. In pocketing. Inside + Outside Offsets . 2D Pocketing machine operations will be modified to make use of the same routines. Region fillers take the following parameters: Margin : This is the distance away from source shapes to avoid filling lines. More region filling options and ability to write custom region fillers is planned soon. Vertical Hatch Vertical line fille style. . Horizontal Hatch Horizontal line fille style.Progressive offsets from outside shape inwards unioned with offsets from holes outwards. right click the drawing to bring up the drawing context menu. Step 2 .5 -5 200 100 1.Insert an HTD timing pulley outline. A new profile object will be created and displayed under the Machining folder in the drawing tree.5 Generate the resulting toolpath for the profile.Timing Pulley menu item.Insert a Profile machine operation Select the pulley outline then click the profile machining operation button from the toolbar. Change the profile machine operation's properties to the following: ToolDiameter StockSurface DepthIncrement TargetDepth CutFeedrate PlungeFeedrate ClearancePlane 2 0 0. Step 1 . then insert a new curve with the center of the pulley about the origin. A sample profile is available from the downloads file above. The object property window will display the profiles's properties ready for editing. Use the new Plus Toolkit to generate a timing pulley by selecting the Toolkit . The plugin will prompt for the number of teeth for a 5mm pitch pulley. .Tutorial: Timing Pulley Profile This tutorial demonstrates profile machining operations to generate an HTD5 timing pulley. then select Machine . This tutorial uses the new Plus Toolkit to generate the timing pulley profile.Generate Toolpaths. ALT + double click will zoom the drawing to fit the view window. Download the files used in this tutorial. Options. To reset the view. right click the machine operation in the file tree and Generate Toolpath. hold the alt key then click and drag on the drawing. If this mode is selected the view can be rotated by clicking the middle mouse button and dragging with the left. .Creating the inner hole First draw a circle using the cricle drawing tool with the center on the origin with width 8. To reset the view in this mode hold the center mouse button and double click. Another rotation mode can be set in Tools . Select the circle and insert another profile machining operation . RotationMode = Left_Middle. Again. hold the alt key then double click the drawing. Set the target depth and other properties to match the first profile operation. Change the InsideOutside property to Inside. Step 3 .To rotate the 3D drawing view. nc extension. select the machining folder from the drawing tree. Visually inspect the toolpaths and double check the parameters of each machining operations. The machining properties for this drawing will then be displayed in the object properties window.Step 7 . .Creating GCode Before producing the gcode output. If the drawing file has been saved the default file will be in the same folder as the drawing file with a . CamBam will then prompt for the location of the gcode file to produce. To control how the gcode file is produced.Produce GCode. To create a gcode file (post). right click to get the drawing menu then select Machine . If the destination file already exists you will next be asked to confirm whether to overwrite it. now would be a good time to save your drawing. Along the way it will also cover . select them.Load a DXF file I have included a heart DXF in the above zip file. or click on the first polyline point (the cursor should snap to it). This will form the outer boundaries of an island pocket. this shape can come in very handy indeed! This shape is a nice and clean. closed polyline. CAD drawing. Step 2.Loading DXF files. To convert objects to polylines. Step 1 . Download the files used in this tutorial. If you are married and fanatical about CNC. then select Convert To .Free hand CAD drawing Use the polyline drawing tool to draw a random shape around the heart. then press ENTER or click the middle mouse button. or when the drawing window has focus. press the C key to close the shape.Polyline from the drawing's context menu.Tutorial: Pocketing and Island Pocketing This tutorial will cover pocket machine operations in more depth (if you will excuse the pun). use the CTRL+P shortcut key. If your DXF files contain many small segments or uses non polyine objects you should tidy the drawing before creating any machining operations. . object transformations and Automatic Island Pockets. For the last point. Transformations can still be manually applied in CamBam plus 0. transformations need to be applied before generating toolpaths. To rotate a shape.9 onwards but should not be necessary.To make the shape a bit rounded create an offset shape.Translate drawing context menu. Click the ellipsis button to the right of the Transform value to open up the transformation dialog.If the polyline does not sit evenly around the heart. To reset the transformation.8. then hold the SHIFT key and drag objects with the left mouse button. To position objects more accurately. NOTE: For CamBam free beta version 0. then click Edit . If you place your right thumb in the positive Z direction. you can free hand move objects by selecting them. Select the polyline. This will prompt for a distance to draw an offset polyline. use the Transform . click Identity.Apply Transformations from the top menu. The positive Z axis will be coming out of the screen towards you.Offset from the drawing context menu. Multiple rotations can be applied as along as Apply is clicked between each. Click OK when done. This is done by selecting all transformed geometry the selecting Edit . your fingers will curl in the direction of a positive rotation about the Z axis. select it then look for the Transform property in the object property window. enter an angle in Amount then click Apply. Select Z from the Axis drop down list. Positive offsets will be outside the polyline shape and negative offsets will be inside. This will translate an object given an origin and destination point.2 and previous. This right hand rule applies to rotations about all the axis. . Step 3 . The RoughingClearance can be adjusted so the positive and negative shapes fit very closely. If stock surface is at zero then the target depth should be negative.Creating an Island Pocket As of CamBam plus beta 0. To ensure a final light finishing pass at the lowest level cut. If a negative RoughingClearance value is entered in . This will store all the parameters for the selected machine operation in the currently active machining template. which is shown in the drop down template list on the toolbar. For pocketing The important thing to remember is that the TargetDepth should be lower than StockSurface. please see the Stepper Mount tutorial in Getting Started. right click the pocket machine operation in the drawing tree then select Copy MOP To Template. that is if 3 concentric shapes are selected for a pocket. Two levels of nesting are currently supported. . This stock can then be removed using a later finishing profile. enter a small value in the FinalDepthIncrement property (0. but for clarity 2 separate pockets were used. 0. Whenever a new machine operation is created. Enter a small value here to specify how much stock to leave remaining between the walls of the pocket ans the target geometry. The distance between each cut level is specified in the DepthIncrement property. the pocketing routines will interpret this as a pocket within an island within a pocket. it will used the information stored in the selected template. In this tutorial we could have used just 1 pocket from all 3 polylines. Another useful parameter is RoughingClearance. I like to adjust roughing clearance while the stock is still mounted in the machine so I can test it with a previously cut inlay. This will be the depth of stock removed at the bottom pass of the pocket. This is very useful when making inlays or die cutting.004"). To save entering in all the pocketing parameters for the second pocket. CamBam can cut deep pockets by generating toolpaths at progressively deeper cutting levels. island pockets can be created automatically by selecting inner and outer polylines then inserting a pocket as usual.1mm . Step 4 .9 onwards. the geometry will be over cut by this amount.Pocket the heart Select the heart shape then insert a pocket machine operation using the pocket tool basics. . type a new name in the template selection list and press enter. the routines should detect that you intend to do a island pocket and will generate toolpaths in between the 2 curves. To apply a template to an existing machine operation. If you have not done so already. Select the machining folder from the drawing tree.Region . Now generate the toolpaths. regenerate the toolpaths.To create a new template. If all is well. NOTE: The free CamBam version does not yet support automatic island detection. Select the 2 outer polylines as before then select Edit . select 'Yes' at the confirmation dialog. right click the mop in the drawing tree and select Apply Template to MOP. then under ToolpathVisibility find the ShowCutWidths property and set this to True. For island pockets. It should be easy to spot any areas that are not shaded and will therefore have stock remaining. This feature currently only works when the drawing view has not been rotated. . the inner island walls will contain pieces of un-cut stock. Now select the region and insert a pocket as before. This is by design and the remaining stock can be trimmed away using an outer profile on the pocket islands. To create a new template.Show Cut Widths Before we continue. from the top menu. we will turn on the ShowCutWidths machining property to indicate the areas that will be machined. insert another pocket . This can often be done at full cutting depth so will be more efficient that tidying the inner profiles at each depth level pass. With the 2 outer polylines selected. For this version a Region needs to first be defined. Show cut widths will shade the areas that will be cut. No will rename the current template and Cancel will do neither.Convert to Region. Step 5 . Regenerate the profile and you should see the remaining stock now shaded. right click them in the drawing tree then use the Move Up and Move Down menu commands. to help with readability and debugging. or click the name a second time. Avoid using special characters in the name such as parenthesis as these currently cause problems due to nested comments. but first we will do some cosmetic changes to help manage the drawing. To change the order of machine operations. To rename a machine operation.Machine operation renaming.Step 6 . To remove the excess stock identified in the previous step.Add a Finishing profile to tidy inner islands. . select it in the drawing tree and press F2. Make sure the profile's InsideOutside property is set to Outside. You can also change the DepthIncrement to be the positive target depth so it will cut the profile at full depth. select the island polyline then insert a profile operation . Machine operations can be given a more meaningful name. The drawing is basically complete and ready to save and generate gcode. Step 7 . This should inherit most of the parameters copied to the active template. Create the gcode as normal. The new machine operation names will be present in comments within the gcode file. This is very useful for diagnostic purposes. Tutorial: Drilling Creating drilling patterns is very easy. Here a WingDing TTF character 'N' is used to create a drilling pattern for an external hard disk enclosure. Download the files used in this tutorial. Step 1 - Insert text Drilling machine operations are based on point lists or circle centers. There are a number of routines in CamBam to generate point lists that can give interesting effects. In a new CamBam drawing, insert a text object natty jolly roger. . The WingDings capital 'N' character happens to be a Set the text height to something large like 200 (I am working in mm here), and change the Font property to WingDings. Step 2 - Fill text object with points Select the text object then chose Insert - Points - Offset Fill Geometry from the drawing context menu. This will prompt you for a step distance. Enter 2 here and press enter. You should now have created a set of points which fill the selected geometry (excluding any holes in regions and text). Step 3 - Insert a drilling machine operation With the point lists selected, insert a drilling machine operation . Under the drill mop properties, set ToolDiameter to 1.5 and the target depth to -3. That's pretty much it! To make things clearer, you can right click on the Default layer in the file tree and select 'hide'. You should now just see a bunch of circles indicating the drilling hole sizes. Right Click on machining in the file tree to generate the gcode. Here's one I prepared earlier. This is the aluminium cover off an ICY BOX external USB hdd enclosure. Should look neat with some LEDS behind it. HeightMap Generator option from the top menu. keep your depths reasonably shallow. Step 1 . I then used a drawing program to filter the bitmap to just show the red channel as a greyscale image.DLLs and are located in a plugin subfolder in the CamBam application folder: C:\Program Files\CamBam\plugins or C:\Program Files\CamBamPlus\plugins The source code for the Heightmap generator can also be found in a zip file in these folders. This worked much better than I expected although care must be taken to avoid surface relections and air bubbles. A new method is available in CamBam plus to generate 3D meshes from bitmaps and use 3D profiling operations which can be used to create roughing passes.Points options. the further the item is from the surface of the liquid. The success of a Heightmap depends largely on the quality of the source bitmap. Try experimenting with the other Insert . This is perhaps not such a good idea for making heightmaps of people. WARNING! The Heightmap plugin will produce gcode that plunges the full depth of your heightmap in one go.NET class library . Tutorial: Bitmap Heightmaps This tutorial describes using the Heightmap plugin to generate pseudo 3D profiles from bitmaps.Most geometry can be used to generate point lists.Open the Heightmap plugin The height map plugin is accessed from the Plugins . The same routine can also be used to generate photo engravings in two-toned materials and lithopanes. Front lit objects with even shading usually work best.Select a Bitmap File. Inspired by the inimitable greybeard's experiments in the cnczone 3D for Crazies thread. CamBam Plugins are . Step 2 . I photographed an object submerged in a tray containing water and blue food colouring. In theory. The source code for the heightmap plugin is also provided with CamBam for the adventurous. If using the Heightmap plugin. . the more blue it will appear. With the Heightmap generator window open. Here is an explanation of the properties ClearPrevious The 'tools-generate heightmap' menu option from the heightmap form can be called multiple times. If either is set to 0. These values control the actual physical size of the resulting heightmap.Options top menu. YSize = 0 XSize=4 (inches). the height will be calculated at each pixel point. YSize = 0 XStep / YStep A heightmap creates a series of scan lines. Invert If true then darker colours are higher (larger Z values). the aspect ratio of the bitmap will be applied to the XSize value to determine the Y height. the heightmap previously created will be removed before a new heightmap is generated. select File . Step 3 . If the YSize is set to 0. XSize / YSize Width (X) and Height (Y) of the heightmap in the same units as the current CamBam drawing. The YStep value controls how far apart the horizontal scan lines are and the XStep values determines how far apart each point in the line is in the X direction. YStep=0 (calculate height at each bitmap pixel) . If this option is set true. much the same as how a television image is created. Examples: XSize=100 (mm).Heightmap Options Change the heightmap options from the Heightmap plugin's Tools .Open from the top menu and select the source image. Examples XStep=0. otherwise lighter colours are higher. Here is a screenshot of the resulting heightmap.125(inches) ZMin=-0.Generate Heightmap Close the options window and select Tools .. If the stock surface is used to zero the Z axis. YStep=0.125in at the deepest to 0. YStep=0. An engraving operation is used as these are designed to 'follow' the associated geometry.001 (inches) (calculate height at each pixel in one scan line. then the ZMax would typically be zero as well.75 (mm) (calculate height at each pixel in one scan line. In effect it is using the 3D line as a toolpath. ZMax=0. with each horizontal scanline 0.Generate Heightmap. Change the Engraving machine operation parameters such as cutting feedrates.75mm apart) XStep=0. As well as generating a 3D Line object that contains the resulting heightmap. . with each horizontal scanline 0. Leave the Heightmap generator window open and rotate and scale the CamBam drawing to get a better idea of the Heightmaps dimensions. Zmax This is the highest Z depth.001in apart). Examples ZMax=0. the plugin also creates an engraving machine operation linked to this line. Step 4 .. Zmin This is the deepest Z depthand represents the Z coordinate of the deepest cuts in the heightmap.125in at the heightest points. More information on rotating. You should see some lines appear in the underlying CamBam drawing. panning and zooming the drawing view can be found here. ZMin=-10 (mm) The heightmap heights will range from -10mm at the deepest to 0mm at the heightest points.XStep=0.125 (inches) The heightmap heights will range from -0. Not fantastic to look at but at least there were no disasters. I will try to find some nice examples. The YStep stepover should be increased so the 'scan lines' do not overlap and spoil the shading effect.7mm YStep. the wider the cut and darker it will appear (if using a light on dark laminate). usually into a 2 tone engraving laminate.NOTE: Do not change the engraving target depth value. Here is the very first Heightmap I produced from CamBam. the cutting depth is taken from the source line.02in). For a 60 degree cutter at 0. The image is 120mm X 90mm using a 2mm flat bit in plywood. 0.5mm I use a 0.5mm. . To convert the heightmap into gcode for your machine. Photo Engraving The heightmap process can also generate shaded engravings from bitmaps. This distance will vary depending on the V cutter angle and depth. The deeper the cutter. right click the Machining group in the CamBam tree view then select the Create GCode File menu option. A V cutter is used. The Z depth needs only be small (~0. Here a heightmap pointcloud is viewed in Autocad. By default. Now do Insert . The line object can now be deleted. from the drawings context menu. I entered 1 for the step distance then pressed OK. . The drawing can now be exported to a DXF file.Step Around Geometry. the heightmap will do 1 bitmap pixel = 1 drawing unit (This can be changed in the heightmap options). Lithopanes are typically inverted with the deeper cuts resulting in thinner material and more light shining through. This will insert a point along the line every N step distance. Creating a Point Cloud From a Heightmap Here is a method to generate a DXF point cloud Generate a heightmap polyline as per usual and select the line if it is not already. but don't worry about that.Points . CamBam currently displays points using biggish squares so it will look cluttered.A lithopane is another variation on this theme. where an image is engraved into a think translucent material and viewed with back lighting. 3 . try clicking on this option.. Inserting Text To insert text into a drawing. StrikeOut Font Style. For shallow engraving (0. select the text then select the Machining->Engrave menu option. The text properties are: Location (P1) This is the first and at the moment. Not currently supported. then use the up and down arrow to try different options. use the Insert->Text menu option. Height Text TextAlignmentH TextAlignmentV This is the text height in drawing units. Center or Bottom (relative to Location). The default is 1. try these properties: ClearanceZ=1.. The text to enter. Multiple lines of text can be entered by clicking the elipses [.] button after this property. A setting of 2 would double the space used for each character (but not the character itself). only alignment point. To enter multi line text. or perhaps as an alernative to the Rotate option. TargetDepth=-0. The intention is to use it to define alignment options that evenly spread the text between two points.. As per DXF I may add other options to differentiate absolute bottom and baseline. Not currently supported. Location2 (P2) This point is not currently used.Tutorial: Text Engraving This tutorial describes inserting text into CamBam and genertating an engraving operation from it. select a font. This is the font name to use for the text. For a bit of fun. Top.3mm). Creating Engraving GCode To create some engraving gcode. The default is 1. The TextAlignmentH and TextAlignmentV options are all relative to this point. Regular Font Style.. Center or Right (relative to Location). then change the text properties in the object browser. Underline Font Style. LineSpace Font This scales the distance between each text line.5. NOTE: Bottom is actually the baseline of the text. Bold Italic Regular StrikeOut Underline Bold Font Style. Left. click the [. Italic Font Style.] button to the right of the Text property. CharSpace This option scales the width used for each character. In this case BackFaceZeroZ can be set to 0.ttf. NOTE: I tend to use Metric and CamBam was designed with Metric in mind. so the model is rotated about Z=0 to Notes . this looks nice on screen.. The 3D model is in effect. WARNING! These 3D routines are very new and still in testing stages. but the letters are quite small (3-6mm) and plywood isn't the best precision engraving material. the table surface Z=0 is used. It is strongly recommended to run simulations first or test cuts in soft materials. BackFaceZeroZ determines the current Z coordinate that will become Z=0 when the model is flipped. To create thin engraving. Referencing Z=0 to the machine's work surface and setting a positive stock surface value will result in the model being rotated about Z=0. Back face machining is very similar to the front face roughing and finishing passes. that is a font with no thickness. For information on changing the drawing units. but the resulting toolpaths are pretty messy. BackFaceZeroZ would be the current deepest Z coordinate of the model.back face machining This tutorial show some more advanced concepts of the 3D profiling operation and covers:   Back face machining. If the top of the stock is referenced as machine Z=0. Not exactly high art. Back face machining. The BackFaceZeroZ parameter is a key concept to understand. flipped over to machine the reverse side. 3D Holding Tabs. but it does support imperial units. Tutorial: 3D Profile . Basic Properties Property BackFace BackFaceZeroZ Value True 0 In this example. ideally a 'stick' font should be used. by flipping the stock over after the font face has been machined. One that I am aware of is Camworks.Sample Engraving. The front and back faces may be machined in a single piece of stock. Alternatively the front and back faces may be machined in seperate pieces of stock which can then be fixed together.. see the getting started section. this point will then be at or ideally just below the stock surface (Z=0) plane. with a few extra parameters to control the back face machining behaviour. When the model is flipped. the model is around 100 units tall and is aligned to that the highest Z point is at or just below the stock surface (Z=0). To do this.Center (Extents)) Use a combination of cut and paste and transformation rotations to position the cylinders at required positions around the model. Rotating the drawing view should show a 3D cylinder extending in the positive Z direction.. exluding any holding tab cylinders. but this is planned for a future release.] button to the right of the property can be used to select the shapes. right click on the machining operation in the drawing tree and select Select Drawing Objects. excluding any holding cylinders.Property Value Notes machine the back face. Property BoundaryMethod BoundaryShapeIds Value SelectedShapes 1 Notes This will create a trimming boundary just from selected shapes. the stock surface Z=0 is used. we need to reduce the bounday shape. FlipAxis X The stock will be rotated around the X axis (top to bottom).Extrude.. There is currently no automatic 3D holding tabs funcionality. Position the cylinder First. select Draw . Adjust the machining boundary The holding tab shapes need to be added to the 3D profiles list of surfaces to machine. To prevent the machining operation machining around the ends of the cylinders. 3D Holding Tabs. With the circle selected. Ctrl+click to select the extruded cylinders. Extrude a circle Hide the drawing layer containing the 3D mesh and create a new layer to hold the holding 'tabs'. Here is a method to manually create 3D holding tabs or sprues using cylinder meshes. Draw a 2D circle with a diameter of the holding tabs to be used. Y The stock will be rotated around the Y axis (left to right). when the back face is to be machined.0). when the back face is to be machined. This is acheived by specifying SelectedShapes in the BoundaryMethod property and selecting only the main surface object. Enter an extrusion height large enough to span the largest width of the model plus an extra margin to allow for tool diameters. Enter the ID of the main 3D surface to machine.Surface . Place the center of the cirlce at the drawing origin (0. Enter the number of extrusion steps or facets around the extruded mesh to create. The [. -100 In this example. center the cylinder (Transform . . the program will check for updates from the internet when it loads. transformations such as rotations. Set this option False if you are not connected to the internet. Configuration Tools . such as rotating a circle around the Y or X axis. CheckVersionAtStart True | False If True.8f] Arcs are displayed using multiple line segments. moving. DefaultGCodeExtension A default file extension used when gcode files are produced. AutoApplyTransformations New [0. faces with back facing normals (using right hand rule) are not displayed This can speed up displaying meshes considerably and also make the wireframe 3D view clearer.Front roughing toolpath with manual holding tabs.Options ArcDisplayDegrees New [0. this is not possible so the original entity plus transformation matrix is retained. No other information is transferred.8] If True.9. .9. The version check only downloads a tiny text file from the CamBam web site containing the latest version number. This setting defines the angle between each segment. DefaultFontFamily This is the font used when no font is specified for text drawing objects. In some cases. CutWidthColor The color used to display toolpath cut widths. resizing and array copies will automatically apply transformations and reset the transformation matrix. Smaller numbers make smoother curves but slower display rates. BackfaceCulling When displaying surface meshes. X.cb).DefaultLayerColor The color to use when new layers are inserted into a drawing. Maximum .exe. Example: %windir%\system32\notepad. Minimum . library or post processor files. If no command is specified. DiagnosticLevel An integer number used to control the number of information messages displayed in the message pane at the bottom of the CamBam interface. 3DS etc) is loaded. GridInfo_Inches Information that defines the drawing grid when Inches drawing units are used. The number of backups to keep is specified in the FileBackups property. the internal editor is used. Changing the DisplayMode option requires CamBam to be restarted. GCodeEditor New [0.Number of units in the grid's major scale.9. 'Edit gcode' menu option. a backup of the existing file is created before overwriting. or a non CamBam (such as DXF.cb file) to be used as a template for new drawings. DrawingUnits This sets the drawing units to be used for new drawings. GridColor The color of the drawing grid. This property may be overridden by the drawing units of the DrawingTemplate. the basic format and properties of the drawing template will be used for that document. The backup file is of the format 'filename.8] Specify an external command used to edit gcode files.9. where # is a number. OpenGL is a fast. Typical values are 0 to 4. DisplayMode Controls the method used to display the 3D drawing view. GCode files can be editted by invoking the Machining. DrawingTemplate This property can contain the filename of a CamBam drawing (. FileBackups New [0.8] When saving CamBam (. Y location of the lower left point of the visible grid. GDI is a slower but potentially less susceptible to driver problems. where 0 displays little or no messages and 4 displays reams of diagnostic information.b#'. This is useful for setting default values for properties stored in documents. MajorScale .Number of units in the grid's minor scale. if one is supplied.drawing units used by the grid. Y location of the upper right point of the visible grid. Use this mode if the drawing display seems very slow or corrupted.X.      DrawingUnits . preferred method but may cause problems with some graphics drivers. MinorScale . such as PostProcessors. DefaultStockColor The default color to use to display stock objects. Whenever a new drawing is created. . OffsetBacktrackCheck New [0.8] .the view is rotated by pressing the right then left mouse button and dragging. SplineCurveSteps When splines are displayed. ShowGrid Sets whether the drawing grid is displayed. To end the current drawing mode. press ESC or click the middle mouse button. Alternatively use the show grid button on the toolbar. A larger number will give a smoother appearance but may slow display performance. SnapToGrid True | False If True. If False tabs will be applied when the toolpaths are regenerated. HoldingTabDragToolpathRefresh New [0. Left_Middle .9. This setting controls the number of segments used to display. back track drawing glitches in polylines are detected and removed by the offset routine used in toolpath generation.the view is rotated by pressing the middle mouse button and dragging with the left mouse button. The right mouse button can be released while dragging. . SelectColor The color used to select paint selected shapes.the view is rotated by holding down the alt key and dragging with the left mouse button.GridInfo_Metric Information that defines the drawing grid when Metric drawing units are used.8f] If True. holding tabs are automatically applied to toolpaths when tabs are moved. SnapToPoints True | False If True. ALT_Left .Snap to Grid menu option or toggled using Ctrl+G. SelectFade Controls how much unselected shapes are faded (as a percent). This setting does not affect the resolution of geometric operations based on splines. drawing points will snap to shape control points. RepeatCommands If True. such as toolpath generation. their shape is approximated by line segments.9.8i] True | False If True. Left_Right New [0. This option can also be changed from the View . RotationMode ALT_Left | Left_Middle The key and mouse combination used to rotate the drawing view. Back tracks can cause the offset routines to produce unexpected results.9. drawing points will snap to the minor grid units. circle centers and other significant points. drawing commands will be repeated. The middle mouse button can be released while dragging. SplineToPolylineTolerance Splines are converted to polylines internally before they can be used for some operations. ToolpathRapidColor The color used to display toolpath rapids.8] If True. ViewBackgroundColor The color of the drawing background. Displayed in full. post processor and drawing templates are stored. A smaller value will result in more accurate text conversions but can hinder performance considerably. tools etc). unexpurgated technicolor! :-) ToolpathArcColor The color of arc segments in toolpaths.Common application data folder (%ALLUSERPROFILE%). such as toolpath generation.9.9.8f] The system path is the root folder where CamBam library (styles. SystemPath New [0. WorkerThreads Number of simultaneous worker threads to use. measured in drawing units. measured in font units (0-2048). ViewTextColor The color used to display text in the drawing view.User application data folder (%USERPROFILE%). {$user} . ThinkingMessage Message to display when CamBam is busy calculating. This setting controls the degree of error allowed in this conversion. such as toolpath generation. The following macros can be used:   {$common} . 3D meshes will be displayed in wireframe mode. View3DWireframe New [0. A smaller value will result in more accurate spline conversions but can hinder performance considerably. TextCurveTolerance Text objects are converted to polylines internally before they can be used for some operations. This setting controls the degree of error allowed in this conversion. . ToolpathLineColor The color of line segments in toolpaths.
Copyright © 2024 DOKUMEN.SITE Inc.