What's New? (Older Versions)

New for 0.9.6

The major feature of this release is a new 3D profile machining operation that will eventually replace the existing Bas Relief method.

New 3D profile machining operation.

The new 3D profile operation supports the following features.

  • Waterline roughing and finishing methods.
  • Z scanning roughing and finishing methods (similar to Bas Relief).
  • Front face and back face machining
  • Generation of molds
  • Restriction of machining boundary to save machining time.
  • Experimental additive support for extrusion heads.

More details can be found in the 3D Profile documentation

New 3D Profile

The left hand buddha was finish machined at 2000mm/min resulting in a fuzzy finish (but total run time was only 45 minutes including a 3mm depth roughing pass and 0.3mm finish stepover). A faster spindle speed should have been used for the finish. The right buddha had a slower finish speed but the tool was referenced incorrectly resulting in roughing gouges. Practice makes perfect!

These files were made from a 1.5M face model from the wonderful Aim@Shape Shape Repository, down-sampled to 30K faces using the equally marvelous MeshLab application.

OpenGL drawing view.

The OpenGL view now supports the ShowCutWidths=True machining option. The cut width shading is now generated using a more sophiscated approach than the old GDI routines. One main benefit is the cut widths can be viewed from multiple angles rather than only face on as with GDI.

OpenGL mode is now enabled by default. If any problems are experienced with OpenGL, legacy GDI support can be enabled. In Tools - Options, under the Display group, there is an option DisplayMode which can be set to GDI or OpenGL. Changing this option will require restarting CamBam.

Edit - Polyline - Arc Fit.

Arc fitting routines were added to help with the new 3D profiling routines, but can also be used directly to help with machining complex polylines.

Select shapes, then slect the Edit - Polyline - Arc Fit menu option to attempt arc reduction on those shapes. New arc-fitted shapes will be created in the current active drawing layer.

The arc fit routines prompt for a fitting tolerance. This is the maximum allowed error in drawing units when attempting to fit curves to existing polyline segments.

Edit - Polyline - Remove Overlaps.

This function was added to help cope with problematic geometry, often caused by bitmap vectorizing software, that resulted in extra polyline segments overlapping existing ones.

This routine will also help remove instances where entire geomtry is duplicated.

To use this feature, it is a good idea to first create a new drawing layer and make it active. Select shapes to clean then select Edit - Polyline - Remove Overlaps. The new (cleaned) shapes will be inserted into the new active layer.

Toolpath changes

The FastPlungeHeight behaviour was added to a couple more places in the post processor.

This should allow for faster toolpath run times but care should be taken with this early release as this new behaviour has not been well tested.

Cross over moves now use the plunge feedrate setting of machining operations. Cross over moves are small feed moves from one toolpath to the start of another, where the distance to travel is within a threshold set in the MaxCrossoverDistance property of each machining operation. Distances greater than this will result in a retract to the clearance plane, rapid to new position then plunge.

Draw - Fill Region

Region fillers are another development added to support the new 3D profiling routines and useful in other applications.

Region fillers are used to fill a shape with lines according to certain patterns. The lines can the be used to form tool paths (as with 3D profile waterline roughing).

Once the technique has been proved with waterline roughing, the intention is to change the existing 2D pocketing operations to use these routines.

The current region filling styles are:

  • Inside Offsets region filled with offsets from islands radiating outward.
  • Outside Offsets region filled with progressive offsets from outside in (like current pocket method).
  • Inside + Outside Offsets region filled with progressive offsets from outside in, unioned with offsets from islands radiating outward.
  • Horizontal Hatch region filled with horizontal lines
  • Vertical Hatch region filled with vertical lines

Machining - RebuildToolpathBeforePost

Changing this option to Prompt gives the ability to create g-code file without the routines automatically rebuilding toolpaths.

This is especially useful with 3D profiles or other complicated operations which may take many minutes to generate a toolpath, only to having to generate it again when g-code is created.

Other new features:

  • Polyline join has been rewritten and number of improvemnets made.
  • Surface join has been rewritten and now checks for common vertices.
  • Can now Explode surfaces to individual faces.
  • Can now trim point lists.
  • New Transform - Scale operation to scale selected objects to a specific size.
  • Can now change GCodeOriginOffset by clicking the [...] button to the right of the property and selecting a drawing point.
  • Machining operation's source shapes can now be editted from a list of IDs in the property grid and can be selected from the drawing using the [...] button to the right of the property.
  • Added repeat mode for drawing shapes and measure commants. This can be turned off in Tools - Options - Drawing, RepeatCommands.

Bug Fixes

  • Canned cycle drilling operations now reset a number of parameters at the start of a block. This was resulting in potential missing modal parameters such as Z and R.
  • Exporting to DXF now applies transformations to objects first.
  • Bug fixed when bottom toolpath was overcutting holding tabs when lead ins used and depth increment evenly divided the target depth.
  • Added sanity check when spiral drill hole diameter was <= tool diameter.
  • Added sanity check when attempting to pocket open polylines.
  • Number or bug fixes and rewrites relating to polyline offset generation which should hopefully improve toolpath generation reliability.

Revision A bug fixes

  • Remove extra spline frame vertices from DXF files with traced polylines.
  • More toolpath fixes
  • Fixed bug with hatching region fillers.
  • Now should recalculte holding tabs when source objects are rotated.
  • Back plotting files with drilling canned cycles fixed in OpenGL mode
  • Fixed bug in new Arc Fit routines that was causing cumulative errors on polylines with many tiny segments.
  • Made extra degenerate tests on by default for all 3D Profiles as was safer and didn't impact performance much.
  • Fixed bug when multiple surfaces selected when using BoundaryMethod=SelectedShapes

Revision B bug fixes

  • Remove extra spline frame vertices from DXF files with traced polylines.
  • More toolpath fixes
  • Fixed bug with hatching region fillers.
  • Now should recalculte holding tabs when source objects are rotated.
  • Back plotting files with drilling canned cycles fixed in OpenGL mode
  • Fixed bug in new Arc Fit routines that was causing cumulative errors on polylines with many tiny segments.
  • Made extra degenerate tests on by default for all 3D Profiles as was safer and didn't impact performance much.
  • Fixed bug when multiple surfaces selected when using BoundaryMethod=SelectedShapes

Revision C bug fixes

  • Reduced 3D scanline trimming boundary.
  • Fixed boundary calculations for Mold and Backface 3D operations.
  • Fixed bugs relating to closed polylines with 2 points.
  • Fixed bugs with vertical hatch fill.

New for 0.9.5

This release introduces a new OpenGL drawing view and includes a number of bug fixes.

OpenGL drawing view.

As the OpenGL view is still in development, the previous GDI+ viewer is active by default. OpenGL is much faster at rendering 3D scenes which is very apparent with files with many drawing objects or toolpaths. It also makes working with 3D surfaces much nicer as it uses solid shading rather than the wireframe view of GDI.

It is still early days for the OpenGL view and improvements to the look and feel are planned.

Unfortunately, ShowCutWidths=true currently does not work in the OpenGL view. Implimenting this functionality is high on the development priority list.

To enable OpenGL, in Tools - Options, under the Display group, there is a new option DisplayMode which can be set to GDI or OpenGL.

You must restart CamBam for the DisplayMode option to take effect.

I would welcome any feedback and suggestions on the OpenGL view so that we can strive to improve it.

Some machining operation properties have moved.

Roughing Clerance is now found in the Step Over section.

Clearance Plane is now found in the Cutting Depth section.

Pocket Finish Step Over

A new property FinishStepover has been added to pocket operations. This is the thickness of stock to leave for the final cut against the pocket wall surface.

Another property FinishStepoverAtTargetDepth determines when FinishStepover is applied.

If FinishStepoverAtTargetDepth = true then for multiple cut depth pockets, the FinishStepover stock thickness is left on each depth level, which is then removed by the very last cut at full depth.

If FinishStepoverAtTargetDepth = false the FinishStepover stock thickness is removed on the last cut at each depth level.

This property has currently only been added to pockets but will be later extended to work with profiles.

Added Feedrate Option To LeadIns

The LeadInMove information contains a new property LeadInFeedrate.

If set to 0, the CutFeedrate will be used for the leadin. A postive number will result in the explicit feedrate being used for lead in moves.

As a safety precaution, leadin feedrates will use the CutFeedrate if the lead in feedrate is set larger than CutFeedrate.

New Layer Context Menus

  • 'Hide All But This' (Layer) right click menu option in drawing tree.
  • 'Show All' (Layers) right click menu option in drawing tree.

Bug Fixes

  • Last used File Open folder is now remembered.
  • Bug with top 3D surface machining menu.
  • Duplicate primitive IDs and corrupt XML file errors.
  • Double clicking empty message window crash.
  • Lowest holding tab toolpath error when even number of depth cuts.
  • Incorrect setting of DXF units.
  • Innermost pocket toolpath glitch.
  • Holding tabs were broken for open polylines with climb milling.
  • Resolved some pocket properties not stored in template.
  • Prevent leadins on toolpaths below a certain size resulting in crazy tight spirals.
  • Prevent regenerating toolpaths for disabled MOPs.
  • No toolpaths were being generated for pockets with RoughingClearace = -tool radius.
  • Sometimes wasn't moving directly to next concentric toolpath when stepover = max crossover.

New for 0.9.4

There has been a lot of work on toolpath generation in this release. This should allow much smoother and more efficient toolpaths as well as allowing machining of shapes that were not possible before.

Warning! A lot of code that has been tried and tested by hundreds of users over the years has been rewritten so please treat this early release with some caution and I would strongly recomend running simulations before cutting.

Toolpath collision detection (unioning)

I think the best way to describe this feature is with some pictures...

Overlapping toolpaths 0.9.3

Toolpaths for shapes close together would overlap in previous versions, resulting in overcutting

New toolpath collision detection

With collision detection, all toolpaths are unioned together, avoiding overcutting.

Another use for collision detections is for inside profiles for regions. This provides an alternative method for island pocketing which requires no 'clean up' pass around inner islands. This will be added as an extra option to pocketing operations.

Alternative Island Pocketing

This new feature also makes it possible to do better isolation routing files for printed circuit boards as previously increasing cut widths would over cut tracks.

New union drawing routine

Unioning is also available as a drawing operation, by selecting multiple objects then using Edit->Union or CTRL+U.

Union operation

This example shows the results of unioning multiple regions.

Side Profiles

Side profiles are a new feature available in 2.5D profile machine operations, though their use will soon be extended to pockets and 3D profiling.

They allow 3D effects from 2D shapes by specifying a profile shape for the cut face.

Side Profile properties are defined in the 'Misc' section of the profile's machining operations properties. Similar to holding tabs and lead ins, this property requires expanding by clicking the '+' plus icon to the left of the property.

AdjustCutWidthsA better description for this property might be 'Roughing or Finishing'
When True, all layers above a profile cut are also cut.
When False, only the side profile shapes are cut.
MethodThe shape of the profile cut. Options are... None - Turns off side profiling and uses normal verticle cuts.
Slope - The cut face is a straight slope or bevel with Value the angle of the slope in degrees from the verticle.
ConvexRadius - The cut face is an outer radius with Value the radius of the curve.
ConcaveRadius - The cut face is an inner radius with Value the radius of the curve.
ValueThis number is used as a parameter for the selected profile shape.

The sign of Value is significant and changes the behaviour of the side profile.
The samples folder contains a file 'side profiles.cb' which shows an example of all the permutation of side profile methods, value signs and inside / outside profiles.

Another example 'heart-shaped-box.cb' is also provided which uses side profiles.

Heart Shaped Box Heart Shaped Box

More lead ins

Lead in moves are now used in pocketing operations as well as profiles.

Holding tabs also now use a lead in move for the trailing edge which avoids the direct plunge used in the previous release.

This behaviour can be turned off with a new property UseLeadIns under the holding tab information.

Improvements to drawing tree view

Machining operations can now be enabled / disabled by the right clicking on them in the tree view and selecting the 'Enable / Disable' menu option. The machine operation icon now also changes to reflect it's state.

The layer icons have been changed to show a green arrow to indicate the active drawing layer and hidden layers are shown faded.

Offline Help Files

Local help is now availble from the Help->Contents menu option. Help is provided as HTML files.

The help files are still in development so there is some missing content. I am also aware of display issues when viewing with Internet Explorer.

Setting Window Transparancy

The CamBam application window can now be made transparent by changing the View->Window Opacity Option which is a percent.

Why do this? I found this very handy for hand-digitising simple shapes, by setting opacity to 70% then positioning CamBam over a bitmap, then drawing around the underlying shape using the polyline drawing tool. A spline drawing tool would make this even more useful but alas this is still on the todo list.

Involute Gear Plugin

With many thanks to Ajayre the CamBam plus toolkit now contains an involute gear generator. This is available under the 'Toolkit' top menu.

Involute Gear Plugin Involute Gear

Changes to top menu

Although not a major change, I have upgraded the control used for the top main menu. This does unfortunately break existing plugins which will need to be modified slightly and recompiled for the new release.

            // Old menu declaration...
            //    MenuItem mi = new MenuItem();
            // Changes to this...
            ToolStripMenuItem mi = new ToolStripMenuItem();
            mi.Text = "HeightMap Generator";
            mi.Click += new EventHandler(HeightMap_Click);
            // Old menu insertion...
            // ui.Menus.mnuTools.MenuItems.Add(mi);
            // Changes to this...

Other Improvements

  • Can now do island pocketing of text objects without converting to polylines first.
  • New interactive arc drawing function.
  • Use of keyboard arrows to pan the drawing view.
  • Better fading of unselected objects.
  • GCode interpreter now supports G91.1 G90.1 instructions
  • More items in template list without scrolling.
  • .dxf is now not appended to drawing name when open DXF files.
  • Post processor now obeys the MaxCrossoverDistance property for machine operations.
  • New option DefaultGCodeExtendion under tools options.
  • Better defaul filename selection when generating gcode from single mop.
  • Improved toolpath efficiency.
  • Objects can be free-hand rotated by holding down shift then rotating using ALT+drag or Middle Mouse+Left Click dragging. A change is planned to rotate in set increments and lock rotation about axis.
  • Rapids are now displayed for the toolpath. These can be turned off under the machining properties in the drawing tree.
  • Some toolpath generation speed improvements.
  • The current CAM Template properties can now be modified by clicking on the word 'Template' to the left of the Template drop down list.
  • A bug was fixed when creating new CAM templates, the new template was not being selected.

New for CamBam plus (versions up to 0.9.3)

This quick guide to some of the new features in CamBam plus.

Including : Holding Tabs, Lead Ins, Undo/Redo, Moving Objects

Holding Tabs

Generate your profile mops, then under the mop's options under Misc there is a HoldingTabs property. You need to click on the + sign to the left of it to expand the property to modify. The sub properties are:
Height - this is the height of the tab
MaximumTabs - used to autocreate tabs
MinimumTabs - used to autocreate tabs
TabDistance - used to autocreate tabs
TabMethod - None | Auto | Manual
Width - the width of the auto tabs

Set the tab method to Auto then regenerate the toolpath.

The number of tabs is worked out by dividing the perimeter of the drawing object by the tabdistance. It then uses the minimum and maximum tab settings to limit the number of tabs it adds.

Once the tabs are visible, you can drag them around to where you would prefer them.
As soon as you drag them, the tab method is changed to manual. To autocalc them again you need to set this back to Auto.

Tabs can be removed and added by selecting the profile mop in the tree then right clicking the holding tab or source geometry where a new tab should be inserted then selecting an option from the HoldingTabs context menu.

NOTE: Holding tabs are only currently working where the source geometry is polylines.

Lead Ins

Under the properties for the profile mop there is a group called LeadInMove, this group needs to be expanded to change the sub-properties.

LeadInType : There are currently 2 options. Tangents and Spirals. Spirals should perhaps more accurately be called spiral ramps as the toolpath is extended and stretched in the Z direction to form the lead in move.

Spiral Angle: If omitted, spiral ramps will get their angle from the plunge and cutting feedrates. Entering an angle in this property (in degrees) will override this. This angle is also used by tangent approaches.

NOTE : Lead ins are only working for profiles at the moment. Leadins for pockets and other mops will be added soon.

NOTE: Lead outs and transition moves between same level stopovers will also be added soon.

Moving Objects

Objects can now be moved by holding the shift key and dragging. Alternatively there is a new context menu option :

Right Click->Transform->Translate, which uses a start and end point for moving.

I have tried to remove the need for 'applying transformations'. You should now be able to resize, move and rotate objects and the toolpaths will be automatically updated.

Undo / Redo

There is now an unlimited undo / redo facility.

Copyright (c) 2018 HexRay Ltd