Sign in with STEVE

steve/fan-guard

Wire form fan guards for 30 to 120 mm fans, from Qualtek's 08 series drawings: concentric wire rings, four ribs and mounting eyes on the fan's hole pattern.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 76 lines · Python · STEVE runtime · checked
Download
1"""Wire form fan guard: concentric wire rings held by four ribs that end in mounting eyes, Qualtek's 08 series, for 30 to 120 mm fans.
2The guard lies on the XY plane, centred on the origin: the eyes at the corners of the fan's square mounting pattern sit on the XY plane,
3and the rings are raised to the guard's thickness (+Z). Dimensions from Qualtek's drawings, listed in the README."""
4import math
5
6from steve import Model
7
8fan = "120mm" # Fan size
9finish = "nickel-chrome" # Finish
10
11# Each entry: (Qualtek part, mounting hole centres (square), eye hole diameter, outside ring diameter (over the wire), inside diameter of
12# the centre ring, number of rings, ring wire diameter, rib wire diameter, thickness (overall)), mm.
13# Qualtek Electronics Corp., FAN-S Division, drawings "WIRE FORM FAN GUARD", unit mm, from qualtekusa.com
14# (www.qualtekusa.com/Catalog/Fan_Accessories/PDFDrawings/<part>.pdf; 08346 and 08174 under www.qualtekusa.com/images/Fan%20Accessories/PDFDrawings/):
15# 08346 (30mm) rev. A: 4-24, Ø3.2 +0.3/0, Ø21.8, Ø9, ring and rib Ø1.6, 4.8 REF.
16# 08149 (40mm) rev. B: 32, Ø4.0 ±0.2, Ø29.53, Ø14.2 ±0.5, ring and rib Ø1.6, 4.8 REF.
17# 08148 (50mm) rev. B: 4-42, 4-Ø4.2 ±0.2, Ø41.1, Ø14.2, ring and rib Ø1.6, 4.8.
18# 08147 (60mm) rev. C: Ø50 (the hole circle's square, 50 apart), Ø4.57 +0.3/-0.1, Ø53, Ø14.2 ±0.5, ring and rib Ø1.6, 5.2 REF.
19# 08172 (80mm) rev. A: 71.37, Ø4.57 +0.3/-0.1, Ø76.2, Ø14.2 ±0.5, ring and rib Ø1.6, 4.95 REF.
20# 08174 (92mm) rev. C: 82.42, 4.57 ±0.2, Ø89.8 ±1.2, Ø14.2 ±0.5, ring and rib Ø1.6, 5.0 REF.
21# 08170 (120mm) rev. B: Ø104.78 ±0.5, Ø4.57 +0.3/-0.1, Ø115.6, Ø14.2 ±0.5, ring and rib Ø1.8, 5.66 REF.
22# The number of rings is counted on each drawing's front view (not dimensioned); the drawings, to scale, space them evenly (README).
23GUARDS = {
24 "30mm": ("08346", 24.0, 3.2, 21.8, 9.0, 2, 1.6, 1.6, 4.8),
25 "40mm": ("08149", 32.0, 4.0, 29.53, 14.2, 2, 1.6, 1.6, 4.8),
26 "50mm": ("08148", 42.0, 4.2, 41.1, 14.2, 3, 1.6, 1.6, 4.8),
27 "60mm": ("08147", 50.0, 4.57, 53.0, 14.2, 4, 1.6, 1.6, 5.2),
28 "80mm": ("08172", 71.37, 4.57, 76.2, 14.2, 5, 1.6, 1.6, 4.95),
29 "92mm": ("08174", 82.42, 4.57, 89.8, 14.2, 6, 1.6, 1.6, 5.0),
30 "120mm": ("08170", 104.78, 4.57, 115.6, 14.2, 8, 1.8, 1.8, 5.66),
31}
32# Finish: the drawings' note 2 (bright nickel chrome plating); the catalogue page (Qualtek "Wire Form Fan Guards - 08 Series", p. 67)
33# adds black (-02) and stainless steel (-SS). Colours are for looks only.
34FINISHES = {"nickel-chrome": "#d9dcdf", "black": "#222325", "stainless": "#c4c7ca"}
35
36if fan not in GUARDS:
37 raise ValueError(f"no fan size {fan!r}: {', '.join(GUARDS)}")
38if finish not in FINISHES:
39 raise ValueError(f"no finish {finish!r}: {', '.join(FINISHES)}")
40_, pitch, hole, od, id_, rings, d_ring, d_rib, thickness = GUARDS[fan]
41z_eye = 1.06 * d_rib / 2 # the eyes and the ribs' outer ends on the XY plane (their weld spheres touch it)
42z_ring = thickness - d_ring / 2 # the rings' top at the guard's thickness
43r_out = (od - d_ring) / 2 # ring centrelines: the outside ring and the centre ring
44r_in = (id_ + d_ring) / 2
45r_eye = (hole + d_rib) / 2 # the eye's wire loop around the mounting hole
46s_eye = pitch / math.sqrt(2) # eye centre from the guard's centre, on the diagonals
47# Proportion, for looks: each rib is straight along its diagonal, in the rings' plane from the centre ring to the outside ring, then down
48# at 45 degrees to the eyes' plane and on to its eye. The drawings' ribs curve round the centre ring (4.57 REF apart at the centre on
49# 08170) and their jog isn't dimensioned.
50# The ribs run just under the rings, overlapping them by 30 % of the wires' radii so that each weld is a solid joint.
51z_rib = z_ring - 0.7 * (d_ring + d_rib) / 2
52s_jog = r_out + (z_rib - z_eye)
53
54model = Model()
55for k in range(rings):
56 r = r_in + k * (r_out - r_in) / (rings - 1)
57 model.torus(f"ring_{k + 1}", r, d_ring / 2, at=(0, 0, z_ring), op="new" if k == 0 else "join", body="guard", name=f"Ring {k + 1}")
58for k in range(4):
59 a = math.radians(45 + 90 * k)
60 ux, uy = math.cos(a), math.sin(a)
61 model.torus(f"eye_{k + 1}", r_eye, d_rib / 2, at=(s_eye * ux, s_eye * uy, z_eye), op="join", body="guard", name=f"Eye {k + 1}")
62 # Straight parts from point to point, with a weld sphere at each joint (the eye, both bends and the inner end). The spheres are 6 %
63 # larger than the wire so that the straight parts end inside them: equal radii meeting make the welds fail.
64 points = [(s_eye - r_eye, z_eye), (s_jog, z_eye), (r_out, z_rib), (r_in, z_rib)]
65 for j, ((s0, z0), (s1, z1)) in enumerate(zip(points, points[1:])):
66 length = math.hypot(s1 - s0, z1 - z0)
67 model.cylinder(f"rib_{k + 1}_{j + 1}", d_rib / 2, length, at=(s0 * ux, s0 * uy, z0),
68 direction=((s1 - s0) * ux / length, (s1 - s0) * uy / length, (z1 - z0) / length), op="join", body="guard",
69 name=f"Rib {k + 1}")
70 for j, (s0, z0) in enumerate(points):
71 model.sphere(f"rib_{k + 1}_weld_{j + 1}", 1.06 * d_rib / 2, at=(s0 * ux, s0 * uy, z0), op="join", body="guard",
72 name=f"Rib {k + 1} joint")
73# Material: C1008 bright basic wire (note 1), modelled as steel-c10 (EN C10, the nearest plain low-carbon steel in the list), plated.
74model.material("steel-c10", bodies=["guard"], color=FINISHES[finish])
75result = model.result()
76

Wire form fan (finger) guard: concentric steel wire rings held by four ribs that end in mounting eyes at the fan's square mounting-hole pattern, from Qualtek Electronics' drawings: 08346 (30 mm fans), 08149 (40), 08148 (50), 08147 (60), 08172 (80), 08174 (92) and 08170 (120), e.g. 104.78 hole centres and a 115.6 outside ring for 120 mm fans. Bright nickel chrome, black or stainless finish. Lies on the XY plane, eyes down, rings up. See the README.

Wire form fan guard

A wire form fan guard, also called a finger guard. It has concentric steel wire rings, held by four ribs that end in mounting eyes. The eyes sit at the corners of the fan's square mounting-hole pattern. The guard lies on the XY plane, centred on the origin. The eyes are on the XY plane (down), and the rings are raised to the guard's thickness (+Z).

fan is the fan size. finish is the plating: bright nickel chrome, black or stainless. The finish changes only the colour.

Fan Qualtek part Hole centres Eye hole Outside ring Ø Centre ring inside Ø Rings Ring wire Rib wire Thickness
30mm 08346 rev. A 24 Ø3.2 +0.3/0 21.8 9 2 1.6 1.6 4.8 REF
40mm 08149 rev. B 32 Ø4.0 ±0.2 29.53 14.2 ±0.5 2 1.6 1.6 4.8 REF
50mm 08148 rev. B 42 Ø4.2 ±0.2 41.1 14.2 3 1.6 1.6 4.8
60mm 08147 rev. C 50 Ø4.57 +0.3/-0.1 53 14.2 ±0.5 4 1.6 1.6 5.2 REF
80mm 08172 rev. A 71.37 Ø4.57 +0.3/-0.1 76.2 14.2 ±0.5 5 1.6 1.6 4.95 REF
92mm 08174 rev. C 82.42 Ø4.57 ±0.2 89.8 ±1.2 14.2 ±0.5 6 1.6 1.6 5.0 REF
120mm 08170 rev. B 104.78 ±0.5 Ø4.57 +0.3/-0.1 115.6 14.2 ±0.5 8 1.8 1.8 5.66 REF

All values are in millimetres. The wire diameters are ±0.1.

Source

The source is Qualtek Electronics Corp., FAN-S Division, drawings WIRE FORM FAN GUARD (<size>), unit mm, from Qualtek's own site:

  • www.qualtekusa.com/Catalog/Fan_Accessories/PDFDrawings/<part>.pdf for 08149, 08148, 08147, 08172 and 08170.
  • www.qualtekusa.com/images/Fan%20Accessories/PDFDrawings/<part>.pdf for 08346 and 08174.

Each drawing gives:

  • The front view: the hole centres, the eye's hole, the outside ring's diameter over the wire and the centre ring's inside diameter.
  • The side view: the thickness.
  • Note 1, the material: C1008 bright basic wire.
  • Note 2, the finish: bright nickel chrome plating.
  • Note 4, the ring and rib wire diameters.

The 25 mm drawing, 08245 rev. A, is the same kind, and it says OD for the outside ring and ID for the centre ring. The other drawings' Ø over the outside ring and Ø14.2 at the centre ring are read the same way, and their scale agrees.

Qualtek's catalogue page Wire Form Fan Guards - 08 Series (page 67, a copy hosted by Bossard at https://americas.bossard.com/content/ProductSpecSheets/QUATEKE00001_67_70_71.pdf) has the same hole centres, wires, outside rings and thicknesses in its table. It also lists the black (-02) and stainless (-SS) versions. Its DC fan accessories guide (page 71) names these guards for Qualtek's 30 to 120 mm fans.

Read from the drawings, not dimensioned.

  • The number of rings is counted on each front view.
  • The rings between the centre ring and the outside ring aren't dimensioned. The drawings are to scale, and measured on them the rings are evenly spaced (on 08170: 15.8, 29.8, 43.8 … 113.8 between centrelines, 14.0 apart), so the rings here are evenly spaced.

Proportions, for looks only.

  • Each rib is straight along its diagonal. The drawings' ribs curve round the centre ring: 4.57 REF apart at the centre on 08170, and 4.0 REF on 08149 and 08147.
  • Each rib runs just under the rings, overlapping them by 30 % of the two wires' radii, so that each weld is solid.
  • Each rib then goes down at 45° to the eyes' plane and on to its eye. The jog isn't dimensioned.
  • The eyes are closed wire loops around the hole. Qualtek's eyes are open hooks.
  • The welds are spheres 6 % larger than the wire.
  • On 08148 the eyes are drawn on the axes, which is the same guard turned 45°. Here every size has its eyes on the diagonals.

The material is C1008 wire, modelled as steel-c10 (EN C10, the nearest plain low-carbon steel in the material list) in the finish's colour. The drawings give no weight, so there is no mass check.

Catalogue models

The old catalogue's circular fan guard 30mm, 40mm, 50mm, 60mm, 80mm, 92mm and 120mm map to these guards. Their reference models are placeholders. Measured on 2026-11-06, the 120 mm guard model is a 120 x 120 x 2 plate with one Ø86.4 hole. It has no rings and no mounting holes, and it is identical to the same size's grille, duct, plenum, cutter, filter-frame and mounting-pattern models. The name names the standard part, a wire guard for that fan size, so it maps to Qualtek's guard:

120 mm Outline Thickness Mounting holes Guard
old model 120 x 120 plate 2 none one Ø86.4 hole
Qualtek 08170 Ø115.6 rings, eyes at 104.78 5.66 REF 4 x Ø4.57 8 wire rings, 4 ribs

These models are not mapped:

  • 25 mm, "no table read yet": Qualtek's 08245 is two slotted eyes on one bar, and the drawing doesn't place the slots.
  • 140 mm, "no table read yet": the 08 series has no guard for 140 mm fans.
  • The square grilles, "no table read yet": a square grille is a moulded guard, another part.
  • The ducts, plenum adapters, cutters, filter frames and mounting-pattern references are placeholders, and their names name no maker's part.
  1. 1.0.0 Latest
More #fan-guard
STEVEMIT

steve/hex-head-screw

Hexagon head screw, fully threaded, ISO 4017 / DIN 933, M1.6 to M36, any length, with catalogue sizes as presets.

21 86 sizes 0 12 hours ago v2.4.2
STEVEMIT

steve/button-head-screw

Hexagon socket button head screw, ISO 7380-1, M3 to M16, any length, with catalogue sizes as presets.

12 66 sizes 0 12 hours ago v2.2.2
STEVEMIT

steve/hex-nut

Hex nut, ISO 4032, M2 to M12.

10 9 variants 0 5 days ago v1.1.0
STEVEMIT

steve/plate

Rectangular plate blank, any width, length and thickness, in common plate and sheet materials.

7 45 sizes 0 1 day ago v1.1.0