FreeCAD Foray: From Brick To Shell
A practical, hands-on tour of turning a simple block into a robust, thin‑walled model you can manufacture or 3D print — inspired by the spirit of Hackaday’s how‑to features.
What “From Brick to Shell” Means
In CAD terms, a “brick” is just a solid block — think a padded sketch or a primitive box. A “shell” is that same form, hollowed to a specified wall thickness. Shelling is everywhere: electronics enclosures, ducts, housings, protective covers, and even architectural models. In FreeCAD, you can go from solid to shell with a few tools:
- Sketcher and Part Design’s Pad to create the initial block (“brick”).
- Part Design’s Thickness feature to hollow the solid.
- Optional: Fillet and Chamfer for strength and printability.
- Optional: Draft, Datum geometry, ShapeBinders, Patterns, and Booleans for complex designs.
The trick isn’t just finding the Thickness button — it’s learning how to make shelling robust, parametric, and manufacturable. This guide shows you how.
Quickstart: 10 Minutes from Block to Shell
- Create a new document and a new Part Design Body. Make sure the Body is active (bold in the tree).
- Start a sketch on the XY plane. Draw a rectangle, constrain it to 100 mm by 60 mm, and lock it to the origin with symmetric or coincident constraints.
- Pad the sketch to 30 mm. You now have a simple brick.
-
Select the top face of the brick in the 3D view, then click Part Design → Thickness. Set:
- Thickness: 2 mm
- Mode: make the thickness go “inside” so outer dimensions remain constant (use a negative value if needed).
- Remove the selected top face (so the shell is open like a box).
- Try Join type = Skin first; if it fails on sharp corners, try Pipe.
- Add fillets to external vertical edges (e.g., 2–4 mm) for strength and comfort. Add small internal fillets (e.g., 0.8–1.2 mm) to reduce stress concentrations and make shelling more reliable.
- Export for printing (File → Export → STL) or for manufacturing (STEP).
That’s the fastest route. If Thickness fails or the model acts up during edits, keep reading for robust practices and workarounds.
Make It Parametric with a Spreadsheet
Parametric shells pay off when you change print settings, adapt to a different PCB, or try alternative wall thicknesses.
-
Create a Spreadsheet (Spreadsheet workbench) and add rows:
- width = 100 mm
- depth = 60 mm
- height = 30 mm
- wall = 2 mm
-
Edit your base sketch constraints to use expressions:
- Rectangle width = Spreadsheet.width
- Rectangle depth = Spreadsheet.depth
- Edit the Pad length to Spreadsheet.height.
- Edit the Thickness value to Spreadsheet.wall (use a minus sign for inward shells if needed).
Now you can change dimensions in one place, and the model updates consistently. This also reduces the chance of shell failures from sudden geometry changes.
Good Practices for Reliable Shells
- Fillet after shelling for printability; fillet before shelling to help the algorithm. Try both orders if the Thickness step fails.
- Avoid very tight inside corners before shelling. Add small pre‑fillets (e.g., 0.5–1.0 mm) to reduce problematic concave intersections.
- Keep wall thickness below the smallest local radius when shelling inward. If the wall is thicker than the curvature can support, the shell may fail.
- Prefer Part Design for a single contiguous Body. Use Part workbench only when you need freeform Booleans or multi‑body tricks.
- Use Datum planes and ShapeBinders to avoid referencing “generated” geometry that can break when the model updates (this mitigates topological naming issues).
- Turn on Refine (set a feature’s Refine property to true) to remove residual edges after operations; it often helps further features compute cleanly.
Alternate Shelling Workflows
When the default Thickness feature doesn’t work, try these options:
-
Part → Offset (3D): Create an offset of the body by the wall thickness, then Boolean cut. For an inward shell:
- Make a copy of the solid.
- Offset one copy inward by the wall thickness (check “Make solid”).
- Cut the offset from the original to form the shell.
- Extrude selected faces and Boolean: Delete or cut away a face to open the part, then extrude surrounding faces inward and use Booleans to form walls. It’s more manual but very robust.
- Lofted shells: Offset two or more profiles and Loft between them, then close the ends. Useful for ducts and smoothly changing sections.
- Multi‑thickness “by design”: FreeCAD’s Thickness is uniform. For variable thickness, split the model into regions (Datum planes + pockets) and use separate shelling/offset operations or localized pads/pockets to thicken strategically.
Troubleshooting: Why Did Shelling Fail?
- Error on concave corners: Try Join type = Pipe, reduce wall thickness, or add small fillets to those corners before shelling.
- Self‑intersections: Your thickness exceeds local curvature limits. Reduce thickness or increase corner radii.
- Unpredictable edges after edits: Use Datum planes and ShapeBinders instead of referencing transient edges. Keep external references to primary sketches and planes.
- Model looks OK but next feature fails: Run Part → Check Geometry with BOPCheck enabled. Fix errors before adding more features.
- Visual artifacts after operations: Enable Refine for the problematic feature, then Recompute (right‑click the document → Recompute).
- “Inside vs outside” confusion: Thickness direction depends on the face normal. If the result grows the wrong way, flip the sign of the thickness or toggle the direction option.
Manufacturing and 3D Printing Notes
- Minimum wall thickness: For FDM, 1.2–2.0 mm is a good start. For SLA/DLP, you can go thinner, but verify resin specs. For sheet‑metal or injection molding, follow process guidelines.
- Fillets and chamfers: Round external edges to improve strength and feel; add small internal fillets to reduce stress risers and to help shelling succeed.
- Drain/vent holes: If you shell fully closed parts for molding or resin printing, plan for vents and drains.
- Bosses and ribs: After shelling, add bosses for screws and ribs for stiffness. Keep bosses connected with filleted pads to avoid weak junctions.
- Tolerances: For lids and snap fits, leave clearance. A 0.2–0.4 mm gap for FDM is a common starting point.
- Export: Use STEP for CAD/CAM handoff; use STL/3MF for slicing. For meshes, consider “Mesh → Create mesh from shape” with suitable tolerance to balance detail and file size.
Version Notes
FreeCAD evolves quickly. If possible, use FreeCAD 1.0 or newer to benefit from improvements in geometry robustness and reference stability. Some option names in Thickness and Offset can differ slightly across versions; if “Skin” vs “Pipe” isn’t visible, look for “Join type” or similar wording.
Worked Example: Small Electronics Enclosure
-
Spreadsheet with aliases:
- width = 110 mm
- depth = 70 mm
- height = 35 mm
- wall = 2.2 mm
- corner = 3 mm
- Base sketch: rectangle constrained to width × depth, centered on origin. Pad to height.
- Pre‑fillet vertical edges to corner (3 mm). This helps shelling in many cases.
- Thickness: select the top face to remove, set thickness = -Spreadsheet.wall for inward shell. If failure, try switching Join type or temporarily reducing corner.
- Add internal ribs: Sketch on a Datum plane offset from the bottom by 8 mm, Pad thin walls (e.g., 1.8 mm) intersecting the shell. Fillet rib‑shell junctions (0.8–1.2 mm).
- Screw bosses: Sketch circles at mounting points on the bottom interior, Pad to meet lid height, Pocket pilot holes. Add fillets at boss bases (1–2 mm).
- Lid: Create a new Body. Use a ShapeBinder of the enclosure’s top rim for reference, offset a profile outward by 0.3 mm clearance, Pad to 12 mm, then Thickness to hollow the lid inward. Add a lip that nests inside the base.
- Quality checks: Part → Check Geometry with BOPCheck. Set Refine = true for features that leave extra edges. Update Spreadsheet values to see if the model remains stable.
- Export: STEP for documentation and STL for printing. In the slicer, orient the open side up for better surfaces and fewer supports.
Small Tips That Pay Off
- Name your sketches, pads, and datum planes. Clear names make repairs faster when experimenting with shell parameters.
- Use the Model tree to drag features and reorder operations when shelling fails — sometimes moving a fillet after Thickness fixes issues.
- For visual clarity, hide outdated construction geometry and enable “Tip” on the final feature of each Body.
- Keep a backup copy before large parameter changes. If something breaks badly, you can diff the tree and identify the weak link.
Conclusion
Going from a solid brick to a thin‑walled shell in FreeCAD is straightforward once you understand Thickness, how to guide it with fillets and datum references, and what to do when it struggles with tricky corners. With a parametric spreadsheet, a few robust patterns, and the occasional alternate offset‑and‑cut workflow, you can design durable enclosures, ducts, and covers that are ready for printing or fabrication.
Whether you’re following along with community tutorials or experimenting on your own, the essence is the same: start simple, shell smart, and iterate confidently.










