From ShapeOko
Revision as of 07:32, 25 March 2014 by Willadams (Talk | contribs) (Stair-stepping when making circles)

Jump to: navigation, search

Here is a quote from Edward Ford’s blog[1]:

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: You will find a basic ‘help’ and ‘tutorial’ links at the top of the page.

Local Installation

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.

Unfortunately, the default feed and plunge rates are much too fast for a stock, un-tuned machine --- one must always change those values to match the capabilities of one's machine (see Fine Tuning), and the material which one is milling (see Materials (Feeds and Speeds)).


  • 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.[2].

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

Inkscape SVG

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.[3]
  • 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:
  1. add outline paths so that pocketing operations may be used to remove material
  2. combine all paths into one, since paths after the first are scattered across the canvas, alternately:
    1. break the file up into multiple discrete files
    2. import each part, process it at a different depth setting, then export G-code
    3. 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.

MakerCAM outputs too many decimals

There are a number of solutions for this, from trimming-on-the-fly to manually editing the G-code (quickly done using a regular expression), to specific software options:


Source is available on github.

Feature/Wish List

  • (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
  • (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[5].
  • (Feature) Support import of simple vector .pdfs w/ no text.