Brackets and mounts
Vertical Garden Wall Planter 4×5
- Bounding box
- 1844.0 × 1334.0 × 1280.0 mm
- Engine
- Precision B-rep
- Parameters
- 15
- Published
- November 2, 2026
Download
Free to download and use. See the terms.
The prompt
# Vertical Garden - 4 Rows x 5 Columns # Each module: 300mm x 300mm x 150mm (depth) import FreeCAD import Part from FreeCAD import Base doc = App.newDocument("VerticalGarden") # Parameters cols = 5 rows = 4 module_w = 300 module_h = 300 module_d = 150 gap = 10 # between modules spacing_x = module_w + gap spacing_y = module_h + gap # Frame dimensions frame_w = cols * spacing_x + 100 # 50mm margin each side frame_h = rows * spacing_y + 100 frame_d = 50 # Create frame (back panel) frame = Part.makeBox(frame_w, frame_h, frame_d) frame.translate(Base.Vector(-50, -50, 0)) frame_obj = doc.addObject("Part::Feature", "Frame") frame_obj.Shape = frame frame_obj.ViewObject.ShapeColor = (0.8, 0.2, 0.2) # Red # Create modules (pockets) for row in range(rows): for col in range(cols): x = col * spacing_x y = row * spacing_y z = 0 # Main pocket box pocket = Part.makeBox(module_w, module_h, module_d) pocket.translate(Base.Vector(x, y, z)) # Hollow interior (subtract smaller box) inner = Part.makeBox(module_w - 20, module_h - 20, module_d - 10) inner.translate(Base.Vector(x + 10, y + 10, z + 5)) pocket = pocket.cut(inner) obj = doc.addObject("Part::Feature", f"Module_R{row+1}_C{col+1}") obj.Shape = pocket obj.ViewObject.ShapeColor = (0.2, 0.7, 0.2) # Green # Drip irrigation lines (top of each row) for row in range(rows): y = row * spacing_y + module_h - 10 line = Part.makeLine( Base.Vector(-30, y, module_d + 10), Base.Vector(frame_w + 30, y, module_d + 10) ) line_obj = doc.addObject("Part::Feature", f"DripLine_R{row+1}") line_obj.Shape = line line_obj.ViewObject.ShapeColor = (0.0, 0.8, 0.8) # Cyan # Drainage channel (bottom front) drain = Part.makeBox(frame_w + 60, 30, 20) drain.translate(Base.Vector(-30, -30, -20)) drain_obj = doc.addObject("Part::Feature", "Drainage") drain_obj.Shape = drain drain_obj.ViewObject.ShapeColor = (1.0, 0.8, 0.0) # Yellow # Mounting holes (4 corners) hole_radius = 15 hole_depth = 30 for x, y in [(-20, -20), (frame_w - 20, -20), (-20, frame_h - 20), (frame_w - 20, frame_h - 20)]: hole = Part.makeCylinder(hole_radius, hole_depth) hole.translate(Base.Vector(x, y, -hole_depth)) hole_obj = doc.addObject("Part::Feature", f"Hole_X{x}_Y{y}") hole_obj.Shape = hole hole_obj.ViewObject.ShapeColor = (0.2, 0.4, 0.8) # Blue doc.recompute() Gui.SendMsgToActiveView("ViewFit") App.Console.PrintMessage("✅ Vertical garden generated!\n")
Parameters
| Name | Value | Range |
|---|---|---|
| Columns | 5 | 1 – 10 |
| Rows | 4 | 1 – 8 |
| Module Width | 300 mm | 100 – 600 |
| Module Height | 300 mm | 100 – 600 |
| Module Depth | 150 mm | 50 – 300 |
| Wall Thickness | 10 mm | 3 – 30 |
| Floor Thickness | 5 mm | 2 – 20 |
| Gap Between Modules | 10 mm | 0 – 50 |
| Frame Depth | 50 mm | 20 – 100 |
| Frame Margin | 50 mm | 10 – 100 |
| Corner Hole Radius | 15 mm | 5 – 30 |
| Corner Hole Depth | 30 mm | 10 – 60 |
| Drip Tube Diameter | 8 mm | 4 – 20 |
| Drainage Channel Height | 20 mm | 10 – 50 |
| Drainage Channel Width | 30 mm | 15 – 80 |
Every value above is a live dimension. Open a model like this in the editor and each one becomes a slider you can drag before exporting.
More models
Browse the full gallery →Trumpet Lyre Mount Main Body
A single 3D mechanical CAD part for a trumpet music lyre mount (Main Body with Paddle). Geometry details: 1. A 18mm-wide semi-cylindrical clamp arc for a 28mm diameter cylinder, w
UAV Ogive Nose Cone
Design a watertight, 3D-printable aerodynamic nose cone module for a fixed-wing tactical UAV, optimized for printing in Carbon Fiber Filled PETG (PETG-CF). The base of the nose con
Flat-Strap Reel Spool
Create a 3D model of a custom flat-strap reel spool for a home plate housing cavity. Geometry: - A reel spool consisting of two parallel circular outer flanges connected by a cent
PET Recycling Kiosk Frame
Design a production-ready welded steel frame for an outdoor PET bottle recycling and animal feeding kiosk. Create ONLY the steel frame. Do not create covers, motors, tanks, electr
Kugoo G2 Pro Rear Swingarm for KuKirin G4
Create a detailed 1:1 CAD drawing of custom rear swingarms for the Kugoo G2 Pro 2020 electric scooter. The swingarms must be designed to fit a KuKirin G4 hub motor instead of the o
Humanoid Robot Exploded Assembly
Design a 3D CAD model of a fully autonomous humanoid biped robot for the Robofest AI HOMO BOT competition. Dimensions Height: 800 mm (80 cm) Maximum weight: 20 kg Lightweight modu
