Sign in with STEVE

steve/bridge-rectifier

Single-phase bridge rectifiers in Vishay's through-hole cases: GBL, GBU, KBL and KBU in-line, KBPC1 and KBPC6 square, from Vishay's data sheets.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 160 lines · Python · STEVE runtime · checked
Download
1"""Single-phase bridge rectifier in a through-hole case, from Vishay's package drawings: the in-line cases GBL, GBU, KBL and KBU, and the
2square cases KBPC1 and KBPC6 (Vishay outline D-72). In-line: the body stands on the board with its four leads in a row along X, centred on
3the origin, the leads' centre line at y = 0 and the face with the polarity marks towards -Y; the + lead is at the body's chamfered end (GBL
4and KBL: -X, GBU and KBU: +X, as each sheet's front view draws it). Square: the body sits on the board centred on the origin, the leads at
5the corners of a square, + at -X +Y beside the chamfered corner. The board is the XY plane and the leads go down through it. Dimensions
6from Vishay's data sheets, listed in the README."""
7from steve import Model
8
9case = "GBU" # GBL, GBU, KBL, KBU, KBPC1 or KBPC6
10detail = "full" # full: body and leads; simple: the body only
11
12IN = 25.4
13# In-line cases, (min, max) in inches as the sheets give them (millimetres in brackets on the sheets); the model uses the middle.
14# L body length, T body thickness, H body height (top to the body's underside), F feet or shoulders below the body, w lead width (flat
15# leads) or d lead diameter (round leads), t flat lead thickness, s shoulder width (GBU: outer leads, then inner leads), e pitch,
16# P lead length below the body's underside (KBU: below the feet), Plus the + lead's extra length, y lead centre line from the front
17# face, C top-corner chamfer at the + end, slot: (width, centre spacing, centre from the top (GBU) or lower centre above the bottom (KBU)).
18# Vishay General Semiconductor, "GBL005, GBL01, ... GBL10", document 89300, revision 22-Aug-2023, page 3, "PACKAGE OUTLINE
19# DIMENSIONS ... Case Type GBL".
20# Vishay General Semiconductor, "GBU4A, GBU4B, ... GBU4M", document 88614, revision 13-Jul-2020, page 3, "Case Type GBU".
21# Vishay General Semiconductor, "KBL005 thru KBL10", document 88655, revision 07-Jun-06, page 3, "Case Style KBL" (copy hosted by
22# static.datasheets.com; vishay.com no longer serves 88655).
23# Vishay General Semiconductor, "KBU4A, KBU4B, ... KBU4M", document 98731, revision 24-Jan-2025, page 3, "Case Style KBU".
24INLINE = {
25 "GBL": dict(L=(0.815, 0.825), T=(0.128, 0.140), H=(0.411, 0.421), F=(0.060, 0.080), w=(0.040, 0.050), t=(0.018, 0.022),
26 s=(0.080, 0.095), e=(0.190, 0.210), P=(0.682, 0.718), y=(0.030, 0.040), C=(0.125, 0.125), plus=-1),
27 "GBU": dict(L=(0.860, 0.880), T=(0.130, 0.140), H=(0.720, 0.740), F=(0.060, 0.080), w=(0.040, 0.050), t=(0.020, 0.026),
28 s=(0.085, 0.100), s2=(0.065, 0.080), e=(0.190, 0.210), P=(0.690, 0.710), y=(0.075, 0.085), C=(0.125, 0.125),
29 slot=((0.140, 0.160), (0.065, 0.085), (0.290, 0.310)), plus=1),
30 # KBL: 0.640/0.600 overall at the feet, 0.591/0.567 to the body's underside; + lead 1.1 min below the feet, the others 1.0 min below
31 # the body's underside (the only values given, so the model uses them).
32 "KBL": dict(L=(0.726, 0.768), T=(0.236, 0.256), H=(0.567, 0.591), total=(0.600, 0.640), d=(0.048, 0.052), e=(0.190, 0.210),
33 P=(1.0, 1.0), Pplus=(1.1, 1.1), y=(0.077, 0.091), plus=-1),
34 # KBU: 0.700/0.660 to the body's underside, 0.760 max overall (the only value); leads 1.0 min below the feet, the + lead 0.240/0.200
35 # longer; lead row 0.205/0.185 from the back face.
36 "KBU": dict(L=(0.895, 0.935), T=(0.260, 0.280), H=(0.660, 0.700), total=(0.760, 0.760), d=(0.048, 0.052), e=(0.180, 0.220),
37 P=(1.0, 1.0), extra=(0.200, 0.240), back=(0.185, 0.205), C=(0.165, 0.185),
38 slot=((0.140, 0.160), (0.065, 0.085), (0.405, 0.455)), plus=1),
39}
40# Square cases, (min, max) in millimetres: Vishay Semiconductors, "D-72" Outline Dimensions, document 95250, revision 06-Feb-2024,
41# "DIMENSIONS in millimeters (inches): KBPC6, KBPC8" and "...: KBPC1" (also page 4 of VS-KBPC1/KBPC6 series, document 93585).
42# S side, H height, d lead diameter, c lead spacing (both ways), P lead length (min), hole the mounting hole diameter.
43SQUARE = {
44 "KBPC1": dict(S=(15.7, 16.7), H=(5.5, 6.5), d=(0.7, 0.9), c=(10.0, 11.0), P=(22.0, 22.0), hole=(3.8, 4.2)),
45 "KBPC6": dict(S=(14.75, 15.75), H=(4.33, 5.33), d=(0.90, 1.10), c=(10.0, 10.8), P=(25.4, 25.4), hole=(3.60, 4.00)),
46}
47# Proportions, for looks (the drawings show these but don't dimension them): an undimensioned chamfer (KBL's top corner, the KBPC's
48# + corner) is 0.12 x the body's length or side; KBL's and KBU's feet are 0.06 x the length wide at each end; the GBU's corner radii and
49# draft angles and the KBPC's top rim aren't modelled; the leads end square.
50CHAMFER = 0.12
51FOOT = 0.06
52
53if case not in INLINE and case not in SQUARE:
54 raise ValueError(f"no case {case!r}: {', '.join([*INLINE, *SQUARE])}")
55
56
57def mid(v, scale=1.0):
58 if isinstance(v, tuple) and isinstance(v[0], tuple):
59 return tuple(mid(x, scale) for x in v)
60 if isinstance(v, tuple):
61 return (v[0] + v[1]) / 2 * scale
62 return v
63
64
65model = Model()
66
67
68def xz_prism(fid, points, y0, depth, body, op, name):
69 """A prism of the (x, z) outline from the plane y = y0 back along -Y by depth (an XZ plane extrudes along -Y)."""
70 model.plane(f"{fid}_plane", on="XZ", offset=-y0, name=name)
71 with model.sketch(f"{fid}_sketch", on=f"{fid}_plane", name=name) as sk:
72 if len(points) == 3 and not isinstance(points[0], tuple):
73 sk.circle(f"{fid}_circle", (points[0], points[1]), points[2])
74 else:
75 sk.polyline(f"{fid}_outline", points, closed=True)
76 model.extrude(fid, f"{fid}_sketch", distance=depth, op=op, body=body, name=name)
77
78
79def xy_prism(fid, shape, z0, height, body, op, name):
80 model.plane(f"{fid}_plane", on="XY", offset=z0, name=name)
81 with model.sketch(f"{fid}_sketch", on=f"{fid}_plane", name=name) as sk:
82 if len(shape) == 3 and not isinstance(shape[0], tuple):
83 sk.circle(f"{fid}_circle", (shape[0], shape[1]), shape[2])
84 else:
85 sk.polyline(f"{fid}_outline", shape, closed=True)
86 model.extrude(fid, f"{fid}_sketch", distance=height, op=op, body=body, name=name)
87
88
89leads = []
90if case in INLINE:
91 t = {k: mid(v, IN) for k, v in INLINE[case].items() if k != "plus"}
92 plus = INLINE[case]["plus"]
93 L, T, H = t["L"], t["T"], t["H"]
94 if case in ("GBL", "GBU"):
95 F = t["F"] # the leads' shoulders hold the body this far above the board
96 yf = t["y"]
97 else:
98 F = t["total"] - H # feet at both ends
99 yf = t["y"] if case == "KBL" else T - t["back"]
100 C = t["C"] if "C" in t else CHAMFER * L
101 top = F + H
102 # Body outline seen from the front (x, z), the chamfer on the top corner at the + end; KBL and KBU stand on feet at both ends.
103 xp, xm = plus * L / 2, -plus * L / 2
104 if F and case in ("KBL", "KBU"):
105 f = FOOT * L
106 outline = [(xm, 0.0), (xm + plus * f, 0.0), (xm + plus * f, F), (xp - plus * f, F), (xp - plus * f, 0.0), (xp, 0.0),
107 (xp, top - C), (xp - plus * C, top), (xm, top)]
108 else:
109 outline = [(xm, F), (xp, F), (xp, top - C), (xp - plus * C, top), (xm, top)]
110 xz_prism("body", outline, T - yf, T, "body_body", "new", "Body")
111 if "slot" in t:
112 sw, sp, sz = t["slot"]
113 # GBU: the upper centre sz below the top; KBU: the lower centre sz above the bottom of the feet.
114 z_hi = top - sz if case == "GBU" else sz + sp
115 z_lo = z_hi - sp
116 for i, z in enumerate((z_hi, z_lo)):
117 xz_prism(f"slot_{i}", (0.0, z, sw / 2), T - yf + 1, T + 2, "body_body", "cut", "Mounting slot")
118 xz_prism("slot_mid", [(-sw / 2, z_lo), (sw / 2, z_lo), (sw / 2, z_hi), (-sw / 2, z_hi)], T - yf + 1, T + 2, "body_body", "cut",
119 "Mounting slot")
120 if detail == "full":
121 e = t["e"]
122 xs = [(i - 1.5) * e for i in range(4)]
123 # Lead order from -X: + ~ ~ - (GBL, KBL) or - ~ ~ + (GBU, KBU).
124 for i, x in enumerate(xs):
125 is_plus = i == (0 if plus < 0 else 3)
126 outer = i in (0, 3)
127 if case in ("GBL", "GBU"):
128 w, th = t["w"], t["t"]
129 tip = F - t["P"]
130 xz_prism(f"lead_{i + 1}", [(x - w / 2, tip), (x + w / 2, tip), (x + w / 2, F), (x - w / 2, F)], th / 2, th,
131 f"lead_{i + 1}_body", "new", f"Lead {i + 1}")
132 s = t["s"] if (outer or case == "GBL") else t["s2"]
133 xz_prism(f"shoulder_{i + 1}", [(x - s / 2, 0.0), (x + s / 2, 0.0), (x + s / 2, F), (x - s / 2, F)], th / 2, th,
134 f"lead_{i + 1}_body", "join", f"Lead {i + 1} shoulder")
135 else:
136 if case == "KBL":
137 tip = -t["Pplus"] if is_plus else F - t["P"]
138 else:
139 tip = -t["P"] - (t["extra"] if is_plus else 0.0)
140 xy_prism(f"lead_{i + 1}", (x, 0.0, t["d"] / 2), tip, F - tip, f"lead_{i + 1}_body", "new", f"Lead {i + 1}")
141 leads.append(f"lead_{i + 1}_body")
142else:
143 t = {k: mid(v) for k, v in SQUARE[case].items()}
144 S, H, c = t["S"], t["H"], t["c"]
145 k = CHAMFER * S
146 xy_prism("body", [(-S / 2, -S / 2), (S / 2, -S / 2), (S / 2, S / 2), (-S / 2 + k, S / 2), (-S / 2, S / 2 - k)], 0.0, H, "body_body",
147 "new", "Body")
148 xy_prism("hole", (0.0, 0.0, t["hole"] / 2), -1.0, H + 2, "body_body", "cut", "Mounting hole")
149 if detail == "full":
150 # + at -X +Y, ~ at +X +Y and -X -Y, - at +X -Y (the top view on D-72).
151 for i, (sx, sy) in enumerate(((-1, 1), (1, 1), (-1, -1), (1, -1))):
152 xy_prism(f"lead_{i + 1}", (sx * c / 2, sy * c / 2, t["d"] / 2), -t["P"], t["P"], f"lead_{i + 1}_body", "new", f"Lead {i + 1}")
153 leads.append(f"lead_{i + 1}_body")
154# Materials, for looks and a rough mass: the body is epoxy moulding compound, mostly silica filler (density about 1.9 to 2.0), and ptfe (2.2)
155# is the nearest in the material list; the leads are tin-plated copper.
156model.material("ptfe", bodies=["body_body"], color="#2b2c2e")
157if leads:
158 model.material("copper", bodies=leads, color="#c9ccd1")
159result = model.result()
160

A single-phase bridge rectifier in a through-hole case, from Vishay's package drawings. In-line cases standing on the board with four leads in a row at 5.08: GBL and GBU (flat leads on shoulders; GBU with its mounting slot) and KBL and KBU (round leads, the body on feet; KBU with its mounting slot). Square cases sitting on the board with four round leads at the corners and a centre mounting hole: KBPC1 and KBPC6 (Vishay outline D-72). The + lead is at the chamfered corner. See the README.

Bridge rectifier

A single-phase bridge rectifier in one of Vishay's through-hole cases, built from Vishay's package drawings.

  • In-line cases (GBL, GBU, KBL, KBU). The body stands on the board with its four leads in a row along X, 5.08 apart and centred on the origin. The leads' centre line is at y = 0 and the face with the polarity marks faces -Y. From -X the leads are + ~ ~ - on GBL and KBL, and - ~ ~ + on GBU and KBU, as each sheet's front view draws them. The + lead is at the end with the chamfered top corner. GBL and GBU stand on the leads' shoulders. KBL and KBU stand on feet at both ends of the body. GBU and KBU have a mounting slot through the body.
  • Square cases (KBPC1, KBPC6). The body sits on the board, centred on the origin, with a mounting hole through its centre. The four round leads are at the corners of a square: + at -X +Y beside the chamfered corner, ~ at +X +Y and -X -Y, and - at +X -Y.

The board is the XY plane, and the leads go down through it.

Case Body length x thickness Height above the board Leads Lead length Sheet
GBL 0.815–0.825 x 0.128–0.140 in (20.7–20.9 x 3.25–3.56) body 0.411–0.421 (10.4–10.7) on shoulders 0.060–0.080 (1.50–2.03) flat 0.040–0.050 x 0.018–0.022 (1.02–1.27 x 0.46–0.56), shoulders 0.080–0.095 (2.03–2.41) wide 0.682–0.718 (17.3–18.2) below the body GBL005
GBU 0.860–0.880 x 0.130–0.140 (21.8–22.3 x 3.30–3.56) body 0.720–0.740 (18.3–18.8) on shoulders 0.060–0.080 (1.52–2.03) flat 0.040–0.050 x 0.020–0.026 (1.02–1.27 x 0.51–0.66), shoulders 0.085–0.100 (2.16–2.54) outer, 0.065–0.080 (1.65–2.03) inner 0.690–0.710 (17.5–18.0) below the body GBU4A
KBL 0.726–0.768 x 0.236–0.256 (18.5–19.5 x 6.0–6.5) 0.600–0.640 (15.2–16.3) overall, 0.567–0.591 (14.4–15.0) to the body's underside round Ø 0.048–0.052 (1.2–1.3) + 1.1 (27.9) min below the feet, the others 1.0 (25.4) min below the body KBL005
KBU 0.895–0.935 x 0.260–0.280 (22.7–23.7 x 6.6–7.1) 0.760 (19.3) max overall, 0.660–0.700 (16.8–17.8) to the body's underside round Ø 0.048–0.052 (1.2–1.3) 1.0 (25.4) min below the feet, + 0.200–0.240 (5.08–6.09) longer KBU4A
KBPC1 15.7–16.7 square 5.5–6.5 round Ø 0.7–0.9, 10–11 apart 22 min D-72
KBPC6 14.75–15.75 square 4.33–5.33 round Ø 0.90–1.10, 10.0–10.8 apart 25.4 min D-72

More, from the same drawings. The lead pitch is 0.190–0.210 (4.8–5.3) on every in-line case. GBL's leads are 0.030–0.040 (0.76–1.02) behind the front face, GBU's 0.075–0.085 (1.90–2.16), KBL's 0.077–0.091 (1.95–2.30), and KBU's 0.185–0.205 (4.7–5.2) in front of the back face. The chamfer at the + end is 0.125 (3.17) x 45° on GBL and GBU, and 0.165–0.185 (4.2–4.7) on KBU. GBU's mounting slot is 0.140–0.160 (3.5–4.1) wide, with its end centres 0.065–0.085 (1.65–2.16) apart, the upper one 0.290–0.310 (7.4–7.9) below the top. KBU's slot has the same width and spacing, with its lower centre 0.405–0.455 (10.3–11.3) above the bottom of the feet. The KBPC1 hole is Ø 3.8–4.2 and the KBPC6 hole Ø 3.60–4.00.

The part uses the middle of each range, taken in inches where the sheet is in inches, so the pitch is 0.200 in, 5.08. Where the sheet gives only a minimum or a maximum (KBL's and KBU's lead lengths, KBU's overall height, the KBPC lead lengths), it uses that value.

Source

Vishay data sheets and outline drawings, from vishay.com except the KBL sheet:

  • Vishay General Semiconductor, GBL005, GBL01, GBL02, GBL04, GBL06, GBL08, GBL10, document 89300, revision 22-Aug-2023, page 3, "PACKAGE OUTLINE DIMENSIONS in inches (millimeters): Case Type GBL". The sheet is marked end of life, with GBL...E parts as the alternative.
  • Vishay General Semiconductor, GBU4A thru GBU4M, document 88614, revision 13-Jul-2020, page 3, "Case Type GBU".
  • Vishay General Semiconductor, KBL005 thru KBL10, document 88655, revision 07-Jun-06, page 3, "Case Style KBL". vishay.com no longer serves document 88655, so this is the copy hosted by static.datasheets.com (https://static.datasheets.com/doc/28404154-vishay-kbl04-ds.pdf).
  • Vishay General Semiconductor, KBU4A thru KBU4M, document 98731, revision 24-Jan-2025, page 3, "Case Style KBU".
  • Vishay Semiconductors, D-72 outline dimensions, document 95250, revision 06-Feb-2024, "DIMENSIONS in millimeters (inches): KBPC6, KBPC8" and "KBPC1". The VS-KBPC1 and KBPC6 series sheet, document 93585, revision 18-May-2018, refers to it.

Each sheet says "Polarity shown on front side of case, positive lead by beveled corner".

Proportions, for looks only. The drawings show these but don't dimension them:

  • KBL's top-corner chamfer and the KBPC's chamfered + corner are 0.12 x the body's length or side.
  • KBL's and KBU's feet are 0.06 x the body's length wide at each end. They run the body's full thickness.
  • The slots are centred along the body's length, as drawn.
  • Not modelled: GBU's 0.020 in corner radii and its 9° and 5° drafts, the KBPC's top rim, the leads' pointed or rounded tips, and the polarity marks.
  • Materials are for looks and a rough mass. The body is epoxy moulding compound, mostly silica filler (density about 1.9 to 2.0), and ptfe (2.2) is the nearest in the material list. The leads are tin-plated copper, so copper.

Catalogue models

The catalogue's Diode_Bridge_Vishay_<case> models name a Vishay case, and six of them map: GBL, GBU, KBL, KBU, KBPC1 and KBPC6.

Measured on the reference models:

Model Measured Vishay's drawing
GBL body 20.9 x 3.56, 10.6 high on shoulders 2.0 high and 2.4 wide; leads 1.27 x 0.50 at 5.08, 1.02 behind the front 20.7–20.9 x 3.25–3.56, 10.4–10.7, 1.50–2.03, 2.03–2.41; 1.02–1.27 x 0.46–0.56, 0.76–1.02
GBU body 22.1 x 3.4, 18.5 high on shoulders 1.9 high, 2.0 wide inner and 2.5 outer; leads 1.0 x 0.5 at 5.08 21.8–22.3 x 3.30–3.56, 18.3–18.8, 1.52–2.03, 1.65–2.03 and 2.16–2.54; 1.02–1.27 x 0.51–0.66
KBL body 19.5 x 6.5, 15.05 high overall on feet about 1.0 high; leads 1.3 square at 5.08, 2.3 behind the front 18.5–19.5 x 6.0–6.5, 15.2–16.3; Ø 1.2–1.3, 1.95–2.30
KBU body 23.2 x 7.1, 19.35 high overall on feet about 1.5 high; leads 1.1 square at 5.08, 5.2 from the back 22.7–23.7 x 6.6–7.1, 19.3 max; Ø 1.2–1.3, 4.7–5.2
KBPC1 body 16.2 square, 6.4 high; leads Ø 0.9, 10.5 apart 15.7–16.7, 5.5–6.5; Ø 0.7–0.9, 10–11
KBPC6 body 15.25 square, 6.4 high; leads Ø 1.1, 10.4 apart 14.75–15.75, 4.33–5.33; Ø 0.90–1.10, 10.0–10.8

GBL, GBU and KBPC1 are within Vishay's drawings. Three models are not:

  • The KBL model is 15.05 high, 0.15 under the drawing's 15.2 minimum.
  • The KBU model is 19.35 high, 0.05 over the 19.3 maximum, and its leads are 1.1 square where the drawing has round leads Ø 1.2–1.3.
  • The KBPC6 model is 6.4 high, 1.07 over the drawing's 5.33 maximum.

The names name Vishay's case, so they map to Vishay's drawing of that case, with the pitch, lead order and lead spacing as the models have them.

Diode_Bridge_Vishay_KBPM is left as "no table read yet": Vishay's KBPM sheets (KBP005M and 3KBP005M, documents 88888 and 89308) are no longer on vishay.com. The other bridge rectifier models in the family name no maker, or another maker, and keep axial-diode's reason.

  1. 1.0.0 Latest
STEVEMIT

steve/axial-diode

Axial leaded diodes in Vishay's DO-35, DO-41, DO-15, DO-201AD and P600 packages, with the cathode band, horizontal or vertical.

0 30 sizes 0 2 hours ago v1.0.0
STEVEMIT

steve/leaded-inductor

Axial leaded inductor, Fastron fixed choke coils (MICC, SMCC, MECC, HCCC, LACC, HBCC, VHBCC, XHBCC) and suppression coils (MISC, MESC, 77A), Vishay Dale molded IM-1 to IM-10, horizontal or vertical.

0 63 sizes 0 3 hours ago v1.1.0
STEVEMIT

steve/tht-led

Through-hole round LEDs from Vishay's drawings: 5 mm (T-1 3/4, TLHx5400) and 3 mm (T-1, TLHx4400), red, yellow or green.

0 6 sizes 0 1 minute ago v1.0.1
STEVEMIT

steve/axial-resistor

Axial leaded metal film resistor, Vishay Beyschlag MBA/SMA 0204, MBB/SMA 0207 and MBE/SMA 0414, with colour rings, horizontal or vertical.

0 9 sizes 0 3 hours ago v1.0.0