How to Use PenguinCAM

PenguinCAM supports two workflows: direct import from Onshape (recommended), or manual DXF file upload.

Onshape Workflow (Recommended)

1. Install the Onshape App

Add PenguinCAM to your Onshape account from the Onshape App Store. This adds a PenguinCAM panel to your Onshape workspace.

2. Design Your Part

Create your part in Onshape as a flat plate or profile to be cut from sheet stock. PenguinCAM works best with:

3. Select Mode

In the PenguinCAM panel, choose between:

4. Open PenguinCAM Panel and Select a Face

Open the PenguinCAM panel in Onshape, then click on a face in your model:

⚠️
Tip: If you have drawings visible in your part studio, hide them first. Face selections on drawings won't work - you need to select the actual solid body face.

5. Send to PenguinCAM

Click "Send to PenguinCAM" in the panel. This will:

6. Configure Parameters

Review and adjust the cutting parameters:

Parameter Description
Machine Select which CNC machine to use (if you have multiple configured)
Material Type Choose the material preset (plywood, aluminum, etc.). Sets feed rates and depth of cut.
Material Thickness Stock thickness in inches. Auto-detected for 2.5D parts from CAD.
Tool Diameter End mill diameter in inches (e.g., 0.157 for 4mm)
ℹ️
Multi-layer parts: The auto-detected thickness should match your CAD part. Changing this value may cause incorrect cut depths. If the detected value is wrong, check your CAD model - the part might have unexpected faces at different depths.

7. Orient Your Part (2D Setup View)

Before generating G-code, you'll see your DXF pattern in the 2D setup view:

Orient your part to match how you'll clamp the stock on your machine table.

8. Generate G-code

Click "Generate Program" to create the CNC toolpaths. PenguinCAM will:

Tab Strategies

PenguinCAM offers two strategies for securing parts during perimeter cutting:

9. Preview Toolpaths

Switch to "Preview G-code" mode to see the 3D visualization:

Use the mouse to rotate the view, scroll to zoom, and verify everything looks correct.

10. Download Program

Click "Download Program" to save the G-code (.nc file) to your computer. If Google Drive is configured, you can also save directly to your team's shared drive.

Manual File Upload

For users who prefer to work with manually exported files or don't use Onshape, PenguinCAM supports direct DXF file upload:

  1. Export a DXF file from your CAD software (top view, looking down)
  2. Open penguincam.popcornpenguins.com
  3. Drag and drop your DXF file into the upload area
  4. Configure parameters and generate G-code as described above
ℹ️
Note: Manual file upload is limited to 2D parts only. Multi-layer (2.5D) machining requires the Onshape integration.

Aluminum Tube Mode

For machining patterns on aluminum tubing:

  1. Select "Aluminum Tube" as the material type
  2. Enter the tube height (distance from bottom to top in the CNC jig)
  3. Enable "Square the zero end" to face off the first end
  4. Enable "Machine far end to length" to cut the tube to size

Tube mode will:

Understanding the Output

G-code Header Comments

Every generated program starts with setup instructions:

Coordinate System

PenguinCAM uses this coordinate system:

Work Coordinate System

Programs use G54 work coordinates. Set your work zero on the CNC at:

Troubleshooting

Part doesn't fit on stock

Check the "Stock Size" display after generating G-code. If it's larger than your machine, you'll need to either:

Holes aren't round

Make sure your tool diameter is smaller than the hole. PenguinCAM will warn you about unmillable features if the tool is too large.

Tabs are in bad locations

Tabs are placed automatically based on perimeter length. You cannot manually position tabs, but they're designed to be easily removed with a file or grinder after cutting. Alternatively, configure the "pause for fixturing" option in your team config to skip tabs entirely and fixture through milled holes instead.

Multi-layer part has incorrect depths

Verify the auto-detected thickness matches your CAD part. If wrong: