Enclosures and housings
Environmental Sensor Mast
- Bounding box
- 1700.0 × 788.6 × 1069.0 mm
- Engine
- Precision B-rep
- Parameters
- 30
- Published
- October 21, 2026
Download
Free to download and use. See the terms.
The prompt
import cadquery as cq P = { "L_HC": 1000, "H_wt": 300, "D_min": 2000, "D_max": 5000, "s": 300, "h_min": 0, "h_max": 10000, "Zp": 5300, "probe_r": 10, "probe_len": 200, "sleeve_od": 20, "sup": 600, "tube_D": 325, "tube_H": 450, "tube_t": 8, "cover_t": 8, "nylon": 150, "nylon_t": 15, "sign_L": 300, "sign_W": 200, "sign_t": 1.5, "pv_L": 1200, "pv_W": 800, "pv_t": 35, "pv_tilt": 12.5, "pv_x": 1800, "pv_z": 600, "pv_r": 40, "bat": (500, 400, 300, 1500, -500, 150), } def build(params=None): p = dict(P) if isinstance(params, dict): p.update({k: v for k, v in params.items() if v is not None}) if params is None or p.get("Zp") is None: p["Zp"] = p["D_max"] + max(p["s"], p["h_min"]) def box(x, y, z, l, w, h): return cq.Workplane("XY").box(l, w, h).translate((x, y, z)) def cyl(x, y, z0, h, r): return cq.Workplane("XY").center(x, y).circle(r).extrude(h).translate((0, 0, z0)) x, zb = p["L_HC"], p["sup"] zt = zb + p["tube_H"] ro = p["tube_D"] / 2 ri = ro - p["tube_t"] base = box(x, 0, zb / 2, p["sup"], p["sup"], p["sup"]) tube = cyl(x, 0, zb, p["tube_H"], ro).cut( cyl(x, 0, zb + p["tube_t"], p["tube_H"] - p["tube_t"] + 1, ri)) cover = cyl(x, 0, zt, p["cover_t"], ro) nylon = box(x, 0, zt + p["cover_t"] + p["nylon_t"] / 2, p["nylon"], p["nylon"], p["nylon_t"]) sign = box(x, -ro - p["sign_t"] / 2, zb + p["tube_H"] / 2, p["sign_L"], p["sign_t"], p["sign_W"]) pv = (cq.Workplane("XY").box(p["pv_L"], p["pv_W"], p["pv_t"]) .rotate((0, 0, 0), (1, 0, 0), p["pv_tilt"]) .translate((p["pv_x"], 0, p["pv_z"]))) pv_post = cyl(p["pv_x"], 0, 0, p["pv_z"], p["pv_r"]) bx, by, bz, bl, bw, bh = p["bat"] bat = box(bx, by, bz, bl, bw, bh) Zp = p["Zp"] sleeve_v = cyl(0, 0, -Zp, Zp, p["sleeve_od"] / 2) probe = cyl(0, 0, -Zp + 50, p["probe_len"], p["probe_r"]) sleeve_h = (cq.Workplane("YZ").circle(p["sleeve_od"] / 2) .extrude(x).translate((0, 0, p["H_wt"]))) out = base for q in (tube, cover, nylon, sign, pv, pv_post, bat, sleeve_v, probe, sleeve_h): out = out.union(q) return out
Parameters
| Name | Value | Range |
|---|---|---|
| Base X Position | 1000 mm | -5000 – 5000 |
| Base Cube Size | 600 mm | 100 – 2000 |
| Tube Outer Diameter | 325 mm | 50 – 1000 |
| Tube Height | 450 mm | 50 – 3000 |
| Tube Wall Thickness | 8 mm | 1 – 50 |
| Cover Thickness | 8 mm | 2 – 50 |
| Nylon Block Size | 150 mm | 20 – 1000 |
| Nylon Block Thickness | 15 mm | 2 – 100 |
| Sign Length | 300 mm | 20 – 2000 |
| Sign Width | 200 mm | 20 – 2000 |
| Sign Thickness | 1.5 mm | 0.5 – 20 |
| PV Panel Length | 1200 mm | 100 – 5000 |
| PV Panel Width | 800 mm | 100 – 5000 |
| PV Panel Thickness | 35 mm | 5 – 200 |
| PV Panel Tilt | 12.5 deg | 0 – 80 |
| PV Post X Position | 1800 mm | -5000 – 10000 |
| PV Panel Height | 600 mm | 50 – 5000 |
| PV Post Radius | 40 mm | 5 – 300 |
| PV Support Arm Thickness | 40 mm | 5 – 200 |
| Battery X Position | 1450 mm | -5000 – 10000 |
| Battery Y Position | 0 mm | -5000 – 5000 |
| Battery Z Position | 150 mm | 0 – 5000 |
| Battery Length | 500 mm | 50 – 3000 |
| Battery Width | 400 mm | 50 – 3000 |
| Battery Height | 300 mm | 50 – 3000 |
| Probe Radius | 10 mm | 2 – 100 |
| Probe Length | 200 mm | 20 – 2000 |
| Probe Height | 900 mm | 50 – 5000 |
| Sleeve Outer Diameter | 40 mm | 10 – 300 |
| Sleeve Length | 30 mm | 5 – 500 |
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 →Cylindrical Stainless Steel Basket with Folding Handles
Design a cylindrical 304 stainless steel basket with an outer diameter of 200 mm and height of 250 mm. The basket has solid side walls with no perforations. The bottom plate contai
Immersion Cooling Enclosure
Design a sealed high-pressure dielectric immersion cooling enclosure for cylindrical battery cells. Internal cavity dimensions: 540mm length, 360mm width, 160mm height with 6mm wal
Simple BWB with Propulsion Tube
Prompt: "A simple, solid Blended Wing Body (BWB) flying wing. Dimensions: wingspan 6.5 meters, center chord 1.53 meters, root thickness 35 centimeters, tapering to 15 centimeters a
Engranaje recto 50 dientes, módulo 2
Engranaje recto de 50 dientes, diámetro exterior 104 mm, diámetro de raíz 95 mm, espesor 10 mm y ángulo de presión 20°. Crear como sólido 3D con un agujero central de 8.2 mm de diá
G+1 Party Hall Structural Shell
G+1 Party Hall – AutoCAD Design Prompt Design a G+1 RCC-framed Party Hall in AutoCAD with detailed Ground Floor Plan, First Floor Plan, and all-side elevations (front, rear, left
Rope Winch Drum
Create a fully parametric CAD model of a rope winch drum for a construction hoist. Requirements: - Output format: STEP (.step or .stp) - Units: millimeters - Solid body only (no
