MakerPanel/Field notes & documentation

OpenSCAD

The MakerPanel OpenSCAD library is the reference implementation for creating parametric panels, rails, and rack components. It can generate both 2D profiles for laser cutting and 3D solids for printing or CAD interchange.

We recommend using the Robot Developer Extensions URDF editor for VS Code. Its OpenSCAD support provides direct .scad editing, automatic 3D previews, Customizer controls, library-path integration, and STL/SVG export. See OpenSCAD - Robot Developer Extensions for URDF editing for installation and usage details.

Requirements

Installation

  1. Download or clone the repository:

    git clone https://github.com/Ranch-Hand-Robotics/makerpanel.git
  2. Add the repository's makerpanel/ directory to your OpenSCAD library path, or keep your design inside this repository and use a relative include.

  3. Confirm the library is available by opening a new file and including the panel API:

    include <makerpanel/panel.scad>

When using VS Code with the URDF Editor extension, this repository already configures makerpanel/ as an OpenSCAD library path in .vscode/settings.json.

Create a panel

The primary APIs are:

  • makerpanel_2d(width_hp, height_u) — a 2D profile for SVG or DXF export
  • makerpanel(width_hp, height_u, thickness) — a 3D printable/extrudable panel

A minimal configurable panel looks like this:

include <makerpanel/panel.scad>

/* [Customization] */
horizontalPitch = 8; // [1:1:64]
verticalUnits = 1;   // [0.125:0.125:5]
panelThickness = 3;  // [1:0.5:6]

/* [Part Selection] */
part = "makerpanel"; // [makerpanel, panel_2d]

if (part == "panel_2d") {
    makerpanel_2d(horizontalPitch, verticalUnits);
} else {
    makerpanel(horizontalPitch, verticalUnits, panelThickness);
}

Open the file in OpenSCAD, adjust the values in the Customizer, and render the selected part.

Mounting part and assembly preview

Mounting examples expose the exact selector value makerpanel for the panel used for mounting and measuring. Select it to check the HP/U footprint and mounting-hole placement. The measurement gauge uses makerpanel for its panel gauge; helper-only examples such as the Cherry MX keyboard library do not represent a mounting panel and need not expose this selector.

Where available, assembly previews the complete design, including attached components. Keep makerpanel and assembly in shared coordinates so the mounting panel occupies the same position in both views. Assembly overhang is not the mounting fit: a screen, keyboard, or other component may extend beyond the mounting panel. Measure mounting fit from makerpanel, and check assembly clearances separately.

The gallery catalog derives its scadParts array from the primary SCAD file's part dropdown (or a literal part/parts string array). Keep the selector values in that source, not duplicated in README metadata. No mountingPart metadata is needed because makerpanel is the convention.

Export files

  • Select makerpanel, render with F6, then use File → Export → Export as STL for 3D printing.
  • Select panel_2d, render with F6, then export as SVG or DXF for laser cutting or import into another CAD package.

Add controls and cutouts

Use difference() to subtract component openings from the standard panel body. Keep component dimensions in named variables so the design remains easy to adapt and verify.

include <makerpanel/panel.scad>

module control_panel() {
    difference() {
        makerpanel(12, 1, 3);
        translate([0, 0, -1])
            cylinder(h=5, d=7, $fn=48);
    }
}

control_panel();

Library modules

File Purpose
makerpanel/common.scad HP/U conversions and shared dimensions
makerpanel/panel.scad Standard 2D and 3D MakerPanel bodies
makerpanel/rails.scad MakerRail profiles and extrusions
makerpanel/rack.scad 10-inch, 19-inch, and custom rack geometry

Browse the repository's examples/ directory for complete designs with Customizer controls and part selectors.

Verify your design

Before manufacturing, check the design against the MakerPanel specification, especially:

  • HP and U dimensions
  • mounting-hole placement
  • panel thickness and component depth
  • T-slot rail and fastener compatibility