<< All versions
Skill v1.0.0
currentAutomated scan100/100ghbalf/freecad-ai/lattice
──Details
PublishedJuly 4, 2026 at 11:07 PM
Content Hashsha256:9332eaac2bd45f5e...
Git SHA8542eae4ac1a
──Files
Files (1 file, 1.9 KB)
SKILL.md1.9 KBactive
SKILL.md · 53 lines · 1.9 KB
version: "1.0.0" name: lattice description: "Generate a 3D lattice or infill pattern inside a bounding region. Useful for lightweight structural parts."
Lattice / Infill Pattern
Generate a 3D lattice or infill pattern inside a bounding region. Useful for lightweight structural parts.
Pattern types
- Grid: rectangular grid of holes or beams
- Honeycomb: hexagonal pattern (strongest weight-to-strength ratio)
- Diagonal: 45-degree crosshatch
- Gyroid (advanced): triply periodic minimal surface
Parameters to ask (if not provided)
- Pattern type: grid / honeycomb / diagonal
- Region: existing object to fill, or bounding box dimensions
- Cell size: distance between pattern centers (default 10mm)
- Wall thickness: thickness of lattice walls/beams (default 1.5mm)
- Height/depth: extrusion height of the pattern
Construction approach
Grid pattern
- Create a sketch with a rectangular array of circles or squares
- Use spacing = cell_size, hole diameter = cell_size - wall_thickness
- Pad to height, then boolean-intersect with the bounding shape
Honeycomb
- Create hexagonal cells: 6 line segments per cell
- Hex radius = cell_size / 2
- Offset rows by cell_size 0.75 horizontally and cell_size sqrt(3)/2 vertically
- Pad and intersect with bounding shape
Diagonal crosshatch
- Create parallel lines at 45 degrees, spaced by cell_size
- Create second set at -45 degrees
- Lines have width = wall_thickness
- Pad and intersect
Important
- Always create the lattice larger than the target region, then use boolean intersection to trim
- Label clearly: "Lattice Grid 10mm" etc.
- For 3D printing, ensure wall_thickness >= 2x nozzle diameter (typically >= 0.8mm)
- After construction, hide all sketches for a clean viewport:
python
for obj in App.ActiveDocument.Objects:if obj.TypeId == "Sketcher::SketchObject":obj.Visibility = False