Here is a quote from Edward Ford’s blog:
I’ve looked high and low for a nice open source, entry level CAM program. As luck would have it, after YEARS of searching, I found one mentioned in another forum, and tracked it down to find out it had been abandoned but the source was released before said abandonment. It was created by a guy named Jack, and I’m planning to do an entire other blog post explaining how this came to be. For now, just know that Jack’s creation (which he called PartKam), is now available on my github page, and is being hosted at one of my other domains. You can find it here: www.makercam.com. You will find a basic ‘help’ and ‘tutorial’ links at the top of the page.
One can directly download and save a local copy
and then use it w/ a standalone Flash player from Adobe if desired.
(from the programs' about page)
- arbitrary profiles, pockets, and drilling operations
- true shape nesting
- automatic island detection
- sketch-to-CAD tool for easy prototyping
- svg import and export --- please note that under certain circumstances, MakerCAM only imports the first path in register at the origin, successive paths are scattered about the canvas. If elements are out of place, combine them into a single path (in InkScape this is done by selecting the paths and choosing Path | Combine).
Most notably, it is necessary to set the scaling of imported files using Edit | Edit Preferences to access SVG Import Default Resolution (px/inch) --- 72 for Adobe Illustrator, 90 for InkScape.
- Profile --- a 2d cut into the material. The depth parameter specifies the depth of cut into the material and should be negative.
- Tabs --- can only be made after a successfully calculated profile operation
- select the profile, then CAM | add tabs to selected
- enter spacing for and size of the tabs
- (optional, possibly buggy feature) drag tabs around to move them, or delete a selected tab by pressing delete or backspace
- Please note that tab height is in mm, while width is in cm per Tab Bug
- Pocket --- removes material from the interior of a path down to the specified depth. Note, that this is limited by bit geometry, so square corners will be rounded, matching the radius of the cutting bit --- it may be that for small paths the bit will not fit w/in the path, so no cut will be made. Try simplifying the path to a single stroke and using Follow Path below, or consider a V-carving or single path option such as Hershey Text for Inkscape.
- Follow Path --- moves the cutting tool along the selected path, down to the specified depth without using offsets. Suitable for effects like engraving and provides complete control in one plane (unfortunately, it is not possible to specify more than a single target depth, precluding engraving style control).
- Drill --- drills to the specified depth.
Terminology and Functionality
Please see the Glossary for definitions of terms:
- safety height
- step over
- step down
- roughing clearance
- plunge rate
- stock surface
In discussing this, cvoinescu noted:
The step down is not the total depth of the pocket, it's how deep to mill in one step. Several steps may be required to achieve the target depth. Basically, the endmill will be removing a step over by step down section of material as it moves. If the pocket is round, one strategy results in a spiral, or spiral-like pattern of arcs, first plunging <step down> in the center then spiralling out step over each turn. Then the machine returns to the center, plunges to twice step down, and does the spiral again, and so on until target depth (actually, target depth less roughing clearance; the finishing pass removes the rest). Other shapes are milled in a similar fashion..
Please note that roughing clearance only makes sense when one is making two passes at a given path --- the first pass (the roughing pass) will specify how much material is to be left by setting roughing clearance to a positive value and will typically be done w/ a minimal value for stepover, a faster value for feed rate, while the second pass (the finishing pass) with zero for roughing clearance, will remove the balance of the material w/ a larger value for stepover, a slower value for feed rate and will leave a finer finish.
From forum discussion Re: Burned Out and can't get started with CAD
Diamond Circle Square 3D Example
Having drawn up a file as shown on the Inkscape page, it may then be prepared to be imported into MakerCAM and readied for machining:
- First note the need to ensure MakerCAM and Inkscape agree on units, this is best done in MakerCAM's preferences by Edit | Edit Preferences and changing SVG Import Default Resolution from 72 to 90.
- One should also set measurement preferences (drop-down menu in the top-right corner) to cm
- Second, due to limitations in MakerCAM, it's most expedient to:
- add outline paths so that pocketing operations may be used to remove material
- combine all paths into one, since paths after the first are scattered across the canvas, alternately:
- break the file up into multiple discrete files
- import each part, process it at a different depth setting, then export G-code
- concatenate the G-code files
For more details see Tutorial CAD/CAM 3D Diamond-Circle-Square InkScape/MakerCAM
Stair-stepping when making circles
GRBL is limited in the number of characters per line it can handle, which causes it to ignore the end portions of too-long lines --- unfortunately MakerCAM outputs such lines per a forum discussion. Some Communication / Control programs such as Grbl Controller will trim too-long lines on-the-fly.
Source is available on github.
- (Interface) Add a second button to the Pocket, Profile and Follow Path Operations ”Calculate and Export” which would allow one to efficiently handle projects w/ a single path
- (License) port from Flash to non-proprietary system --- perhaps http://paperjs.org/
- (Interface) Tab height should be set in same unit as width in metric
- (Bug?) Multiple objects in a file are scattered around the canvas on import
- (Usability) G-code export precision is so high, some lines are longer than Grbl can accept
- (Bug) inaccurate conversion of dimensions when switching measurement systems
- (Interface) selected tool is not highlighted
- (Interface) add mm as a unit option
- (Interface) the click to close a Bézier path should allow one to continue holding the mouse button down and to reshape the just drawn portion of the path until release
- (Interface) honour traditional keyboard modifiers (well, the ones Freehand used):
- shift constrains angle
- command/control allows moving the just placed on-curve node
- alt/option releases the far off-path node
- (Interface) remember/store tool settings
- an option when creating a pocket to choose the shape which is used for carving the pocket (e.g., if the pocket is a circle, and a semi-circle was chosen for the carving, the shape of the resulting pocket would be a half hemisphere)--- this would allow one to do much more complex shapes --- even better would be an option to do something like to Adobe Illustrator's Mesh Fill which would let one set points w/in a pocket and specify their depths individually, then specify the entry / exit angle(s) for the point and the perimeter and whether they are joined by straight or curved lines
- (Usability) Support SVG spec completely for import. Files from the commercial program iDraw include paths defined in a way that MakerCAM doesn't understand.
- (Feature) Support import of simple vector .pdfs w/ no text.