Skip to content

franzjacke/CustomPalletTool

Repository files navigation

FreeCAD Pallet Tool

A fully parametric FreeCAD add-on (Workbench) for generating custom wooden pallets with optional side-wall crates.
All geometry is driven by internal-dimension parameters and updates automatically on recompute.


Features

  • Parametric pallet runners (count, width, height, spacing)
  • Auto-calculated top deck planks with gap control
  • Optional left/right and front/back side-wall frames
  • Vertical reinforcement posts at configurable spacing
  • Outer skin panel (single rectangular sheet per side)
  • Structured logging to FreeCAD Report View + rotating log file
  • Simple Task Panel UI for editing all parameters
  • Euro-pallet preset
  • BOM (Bill of Materials) export to CSV
  • TechDraw 2D drawing export (optional)

Coordinate Convention

X → Internal Width  (left–right)
Y → Internal Length (front–back)
Z → Height          (up)

Origin: bottom-left-front corner of the INTERNAL cavity

"Internal dimensions" refer to the clear space above the top deck surface and between the inner faces of side walls.
The pallet base (runners + deck) sits below Z = 0 of the internal cavity; side walls surround X and/or Y extents.


Installation

Manual (FreeCAD 0.21+)

  1. Clone or download this repository.
  2. Copy (or symlink) the src/PalletTool/ folder into your FreeCAD Mod directory:
    • Linux: ~/.local/share/FreeCAD/Mod/PalletTool
    • macOS: ~/Library/Application Support/FreeCAD/Mod/PalletTool
    • Windows: %APPDATA%\FreeCAD\Mod\PalletTool
  3. Restart FreeCAD.
  4. Switch to the Pallet Tool workbench from the workbench selector.

Via FreeCAD Addon Manager (future)

Not yet published. Follow manual steps above.


Quick Start

  1. Open FreeCAD, switch to Pallet Tool workbench.
  2. Click Create Pallet from the toolbar or menu.
  3. A Task Panel opens — enter your internal dimensions and toggle options.
  4. Click OK. A Pallet object appears in the model tree.
  5. To edit, double-click the Pallet object to reopen the Task Panel.

Parameters Reference

Parameter Type Default Description
InternalWidth Length 1000 mm Clear internal width (X)
InternalLength Length 1200 mm Clear internal length (Y)
InternalHeight Length 800 mm Clear internal height of side walls
RunnerWidth Length 100 mm Runner cross-section width (X)
RunnerHeight Length 50 mm Runner cross-section height (Z)
RunnerCount Integer 3 Number of runners
DeckPlankWidth Length 100 mm Plank width (X direction)
DeckPlankThickness Length 50 mm Plank thickness (Z)
DeckPlankGap Length 8 mm Gap between planks
EnableSideWalls Bool True Enable left/right walls
EnableEndWalls Bool False Enable front/back walls
FrameMemberWidth Length 50 mm Frame timber cross-section width
FrameMemberHeight Length 50 mm Frame timber cross-section height
ReinforcementSpacing Length 1200 mm Max c/c spacing of vertical posts
SidePanelThickness Length 15 mm Outer skin panel thickness

Repository Structure

freecad-pallet-tool/
├── src/
│   └── PalletTool/
│       ├── __init__.py          # Workbench registration
│       ├── PalletFeature.py     # FeaturePython object + ViewProvider
│       ├── PalletGeometry.py    # Pure geometry computation
│       ├── PalletTaskPanel.py   # Qt Task Panel UI
│       ├── PalletCommands.py    # FreeCAD commands (toolbar actions)
│       ├── PalletLogging.py     # Structured logging helper
│       ├── PalletBOM.py         # BOM export helper
│       └── PalletPresets.py     # Named presets (Euro pallet, etc.)
├── resources/
│   ├── icons/
│   │   └── PalletTool.svg
│   └── ui/
│       └── PalletPanel.ui       # Qt Designer file (optional, UI built in Python)
├── tests/
│   ├── test_geometry.py
│   ├── test_bom.py
│   └── generate_sample.py       # Headless FCStd generation script
├── docs/
│   └── architecture.md
├── .github/
│   └── workflows/
│       └── ci.yml
├── pyproject.toml
├── LICENSE
└── README.md

Development

# Lint
pip install ruff
ruff check src/

# Run geometry unit tests (no FreeCAD needed for pure math)
python -m pytest tests/ -v

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors