littletechbird/dirac-belt
Dirac belt (belt trick): a cube tied to anchor pads by ribbons, posed at any moment of a 720 degree untangle.
Primary injection test pins (tulips) for molded case circuit breakers: hex lug end, tulip neck, all rounded-square body, seven sizes.
| 1 | """Primary injection test pin ("tulip") for testing molded case circuit breakers. |
| 2 | |
| 3 | One end is a milled hex that slides through the breaker's terminal cover into the set-screw box lug. A short |
| 4 | round neck flows into a tangent "tulip" turned straight onto the square bar, so there is no sharp shoulder where |
| 5 | the pin levers against the lug mouth. Everything behind the tulip is one solid rounded-square section (no round |
| 6 | body, no holes) that the test cable's lug is clamped to with vise-grips. Each pin is made from one square bar of |
| 7 | C18150 or C18200 copper alloy, TH04 temper, left bare. |
| 8 | |
| 9 | `size` picks one of seven sizes: the Ampteks traditional hex set (3/16, 7/32, 1/4, 5/16, 3/8, 1/2 in across |
| 10 | flats) plus 5/8 for large frames. Hex lengths clear deep terminal covers. `hex_length` and `overall_length` can |
| 11 | be overridden. Pin axis along +x, hex tip at the origin, a hex corner pointing +z. Dimensions are set in inches; |
| 12 | the model is built in mm. |
| 13 | """ |
| 14 | import math |
| 15 | |
| 16 | import cadquery as cq |
| 17 | from steve import Model |
| 18 | |
| 19 | size = "5" # Size |
| 20 | hex_length = 0 # in Hex length override (0 = size default) |
| 21 | overall_length = 0 # in Overall length override (0 = size default) |
| 22 | |
| 23 | IN = 25.4 |
| 24 | LN = 0.25 # neck length |
| 25 | SIZES = { |
| 26 | # hex across flats, hex length, square width, corner radius, tulip length, overall length |
| 27 | "1": dict(AF=3 / 16, Lh=2.00, sq=0.50, rc=0.06, Lf=0.50, L=8.0), |
| 28 | "2": dict(AF=7 / 32, Lh=2.25, sq=0.50, rc=0.06, Lf=0.50, L=8.0), |
| 29 | "3": dict(AF=1 / 4, Lh=2.25, sq=0.50, rc=0.06, Lf=0.50, L=8.0), |
| 30 | "4": dict(AF=5 / 16, Lh=2.50, sq=0.625, rc=0.075, Lf=0.50, L=8.0), |
| 31 | "5": dict(AF=3 / 8, Lh=3.25, sq=0.75, rc=0.09, Lf=0.50, L=8.5), |
| 32 | "6": dict(AF=1 / 2, Lh=3.75, sq=1.00, rc=0.125, Lf=0.625, L=9.0), |
| 33 | "7": dict(AF=5 / 8, Lh=4.00, sq=1.00, rc=0.125, Lf=0.625, L=9.5), |
| 34 | } |
| 35 | s = dict(SIZES[str(size)]) |
| 36 | if hex_length: |
| 37 | if not 1.0 <= hex_length <= 8.0: |
| 38 | raise ValueError("hex_length must be 0 (size default) or between 1 and 8 in.") |
| 39 | s["Lh"] = float(hex_length) |
| 40 | if overall_length: |
| 41 | s["L"] = float(overall_length) |
| 42 | if s["L"] - s["Lh"] - LN - s["Lf"] < 2.0: |
| 43 | raise ValueError("overall_length must leave at least 2 in of full square behind the tulip.") |
| 44 | if s["L"] > 24.0: |
| 45 | raise ValueError("overall_length must be at most 24 in.") |
| 46 | |
| 47 | AF, Lh, L = s["AF"], s["Lh"], s["L"] |
| 48 | AC = AF / math.cos(math.radians(30)) # across corners |
| 49 | Dn = math.ceil((AC + 0.01) * 200) / 200 # neck just over across-corners |
| 50 | h = s["sq"] / 2 |
| 51 | Rc = (h - s["rc"]) * math.sqrt(2) + s["rc"] # radial reach of the rounded corners |
| 52 | x_neck, x_flare = Lh, Lh + LN |
| 53 | x_full = x_flare + s["Lf"] |
| 54 | |
| 55 | |
| 56 | def u(v): |
| 57 | return v * IN |
| 58 | |
| 59 | |
| 60 | # hex prism along +x with a 30 degree chamfered tip |
| 61 | hexp = cq.Workplane("YZ").polygon(6, u(AC)).extrude(u(Lh + 0.02)) |
| 62 | r0 = 0.45 * AF |
| 63 | r1 = AC / 2 + 0.02 |
| 64 | dx = (r1 - r0) * math.tan(math.radians(30)) |
| 65 | lim = (cq.Workplane("XY").polyline([(0, 0), (0, u(r0)), (u(dx), u(r1)), (u(Lh + 0.02), u(r1)), (u(Lh + 0.02), 0)]) |
| 66 | .close().revolve(360, (0, 0, 0), (1, 0, 0))) |
| 67 | hexp = hexp.intersect(lim) |
| 68 | |
| 69 | # short round neck |
| 70 | rn = Dn / 2 |
| 71 | neck = (cq.Workplane("XY").moveTo(u(x_neck), 0).lineTo(u(x_neck), u(rn)).lineTo(u(x_flare + 0.01), u(rn)) |
| 72 | .lineTo(u(x_flare + 0.01), 0).close().revolve(360, (0, 0, 0), (1, 0, 0))) |
| 73 | |
| 74 | # tulip turned onto the square bar: a revolved envelope intersected with the rounded-square prism |
| 75 | Rt = Rc + 0.002 |
| 76 | env = (cq.Workplane("XY").moveTo(u(x_flare), 0).lineTo(u(x_flare), u(rn)) |
| 77 | .spline([(u(x_full), u(Rt))], tangents=[(1, 0), (1, 0)], includeCurrent=True) |
| 78 | .lineTo(u(L), u(Rt)).lineTo(u(L), 0).close().revolve(360, (0, 0, 0), (1, 0, 0))) |
| 79 | sqb = (cq.Workplane("YZ").workplane(offset=u(x_flare)).rect(u(s["sq"]), u(s["sq"])).extrude(u(L - x_flare)) |
| 80 | .edges("|X").fillet(u(s["rc"]))) |
| 81 | sqb = sqb.faces(">X").edges().chamfer(u(0.03)) |
| 82 | body = sqb.intersect(env) |
| 83 | |
| 84 | pin = hexp.union(neck).union(body) |
| 85 | try: |
| 86 | pin = pin.faces("<X").edges().chamfer(u(0.01)) |
| 87 | except Exception: |
| 88 | pass |
| 89 | |
| 90 | model = Model() |
| 91 | model.add("pin", pin.val(), op="new", name=f"Test pin size {size}") |
| 92 | model.material("copper-c15000", bodies=["pin"], finish="machined", color="#c9774e") |
| 93 | result = model.result() |
| 94 |
| 1 | name = "littletechbird/breaker-test-pins" |
| 2 | version = "1.1.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Primary injection test pins (tulips) for molded case circuit breakers: hex lug end, tulip neck, all rounded-square body, seven sizes." |
| 6 | description = """Copper alloy test pins for primary injection testing of molded case circuit breakers. The hex end goes \ |
| 7 | through the breaker's plastic terminal cover into the set-screw box lug. Behind a short neck, a tangent tulip is turned \ |
| 8 | straight onto the square bar, and the rest of the pin is one solid rounded-square section (no round body, no holes) \ |
| 9 | that the test cable's lug is clamped to with vise-grips. |
| 10 | |
| 11 | `size` picks one of seven sizes covering 15 A to 1200 A frames: the Ampteks traditional hex set (3/16, 7/32, 1/4, \ |
| 12 | 5/16, 3/8, 1/2 in across flats) plus 5/8 in. Material C18150 or C18200, TH04 temper, bare finish. Pin axis +x, hex tip \ |
| 13 | at the origin. Dimensions are set in inches; the model is in mm.""" |
| 14 | tags = ["electrical", "test-equipment", "circuit-breaker", "primary-injection", "copper", "busbar", "tooling", "machining"] |
| 15 | changes = "Seven sizes matching the Ampteks traditional hex set plus 5/8. The round body is gone: the whole pin behind the tulip is one rounded-square section." |
| 16 | |
| 17 | [parameters.size] |
| 18 | type = "choice" |
| 19 | default = "5" |
| 20 | choices = ["1", "2", "3", "4", "5", "6", "7"] |
| 21 | label = "Size" |
| 22 | description = "1: 15-30 A, 3/16 hex, 1/2 sq. 2: 40-60 A, 7/32 hex, 1/2 sq. 3: 70-100 A, 1/4 hex, 1/2 sq. 4: 100-125 A, 5/16 hex, 5/8 sq. 5: 150-225 A, 3/8 hex, 3/4 sq. 6: 250-400 A, 1/2 hex, 1 in sq. 7: 400-1200 A, 5/8 hex, 1 in sq." |
| 23 | |
| 24 | [parameters.hex_length] |
| 25 | type = "number" |
| 26 | default = 0 |
| 27 | min = 0 |
| 28 | max = 8 |
| 29 | step = 0.05 |
| 30 | unit = "in" |
| 31 | label = "Hex length override" |
| 32 | description = "0 uses the size default. Otherwise 1 to 8 in: lug depth plus terminal cover depth plus about 0.25 in." |
| 33 | |
| 34 | [parameters.overall_length] |
| 35 | type = "number" |
| 36 | default = 0 |
| 37 | min = 0 |
| 38 | max = 24 |
| 39 | step = 0.25 |
| 40 | unit = "in" |
| 41 | label = "Overall length override" |
| 42 | description = "0 uses the size default (8 to 9.5 in). Must leave at least 2 in of full square behind the tulip." |
| 43 |
These are copper alloy pins for primary injection testing of molded case circuit breakers. A test set pushes a high current through each pole of the breaker to check its trip times, and the pin connects the test set's heavy output cable to the breaker's terminal without stripping a real conductor into the lug.
The hex end slides through the hole in the breaker's plastic terminal cover and into the set-screw box lug, where the lug screw clamps on a flat. Behind the hex is a short round neck, then a smooth tangent "tulip" turned straight onto the square bar, so there is no sharp shoulder at the point where a pin levers against the lug mouth and where soft pins bend and crack. Everything behind the tulip is one solid rounded-square section with no holes and no round body. The cable's lug pad lies flat on it and is clamped with vise-grips, which is quick to put on and take off.
There are now seven sizes. The first six follow the Ampteks traditional six-piece set of hex sizes (3/16, 7/32, 1/4, 5/16, 3/8 and 1/2 inch across flats), and size 7 keeps a 5/8 inch hex for large frames. The round body section from 1.0.0 is gone, and the whole pin behind the tulip is now a longer rounded-square section.
Use C18150 (chromium zirconium copper) or C18200 (chromium copper), precipitation hardened and cold worked to TH04 temper or equivalent. These alloys keep about 80 percent of pure copper's conductivity but are several times stronger than C110, so the hex holds its shape under the lug screw and doesn't bend at the lug mouth. Annealed chromium copper is barely better than plain copper, so the temper matters. Leave the finish bare, degreased and clean, with no plating. Make each pin from one standard square bar (1/2, 5/8, 3/4 or 1 inch), ideally bar that already has radiused corners, so the square is left as stock and only the hex, neck and tulip are machined.
The site's material library has no chromium copper, so the model uses zirconium copper C15000, which has nearly the same density, to show colour and weight.
| Size | Frames | Hex across flats | Hex length | Neck dia | Square (corner radius) | Full square length | Overall |
|---|---|---|---|---|---|---|---|
| 1 | 15 to 30 A, lugs up to #8 or #6 | 3/16 | 2.00 | 0.230 | 1/2 (0.06) | 5.25 | 8.0 |
| 2 | 40 to 60 A, lugs up to #4 or #3 | 7/32 | 2.25 | 0.265 | 1/2 (0.06) | 5.00 | 8.0 |
| 3 | 70 to 100 A, lugs up to #1 | 1/4 | 2.25 | 0.300 | 1/2 (0.06) | 5.00 | 8.0 |
| 4 | 100 to 125 A, lugs up to 1/0 or 2/0 | 5/16 | 2.50 | 0.375 | 5/8 (0.075) | 4.75 | 8.0 |
| 5 | 150 to 225 A, lugs up to 3/0 or 4/0 | 3/8 | 3.25 | 0.445 | 3/4 (0.09) | 4.50 | 8.5 |
| 6 | 250 to 400 A, lugs up to 350 kcmil | 1/2 | 3.75 | 0.590 | 1 (0.125) | 4.375 | 9.0 |
| 7 | 400 to 1200 A, lug barrels up to 500 or 600 kcmil | 5/8 | 4.00 | 0.735 | 1 (0.125) | 4.625 | 9.5 |
The tulip is 0.50 inch long on sizes 1 to 5 and 0.625 inch on sizes 6 and 7, and the neck is 0.25 inch. The hex tip has a 30 degree chamfer.
Each hex's across-corners size fits the largest wire its frame range takes, with a little clearance, so small hexes go with small frames. The hex length is the lug depth, plus the terminal cover depth, plus about a quarter inch, so the tulip stays outside the cover. Lug depths for the larger frames come from published Square D strip lengths (0.65 in on 150 A H-frames, 1.0 in on 250 A J-frames, 1.2 in on 400/600 A L-frames, 1.0 in on 800 to 1200 A frames), while the small-frame engagement of about half an inch is an estimate. Cover depths are partly estimated. The deepest published covers found were ABB Tmax XT high terminal covers, about 2.0 in on XT1/XT2 and 2.4 in on XT3/XT4, and most makers don't publish cover hole depths at all. If your covers are deeper, use the hex length override.
The bending check is made at the lug mouth, using the hex's weakest bending direction, a design yield of 45 ksi and a safety factor of 3, with the load at the middle of the last 4 inches. The allowable load is about 2, 3, 4, 9, 15, 33 and 61 lbf for sizes 1 to 7. The square's section is 3 to 8 times the hex's, so it never limits strength or heating. At 300 percent of the frame rating, the hex warms at well under 1 degree C per second on sizes 1 to 6 and about 1.7 on size 7 at 3,600 A, and instantaneous tests are too short to matter.
Sizes 1 to 4 are for small frames and light test leads. Support the cable so it never hangs off the pin, because the small hexes can only carry a few pounds.
On 1200 A frames with multi-barrel lugs, use one pin per lug barrel, with one cable on each pin, so each pin carries only its share of the test current.
size picks the size (1 to 7). hex_length overrides the hex length in inches (0 keeps the size default). overall_length overrides the overall length in inches (0 keeps the size default). The pin axis runs along +x with the hex tip at the origin. Dimensions are set in inches, and the model is built in mm.
| 1 | # Breaker test pins (primary injection tulips) |
| 2 | |
| 3 | These are copper alloy pins for primary injection testing of molded case circuit breakers. A test set pushes a high current through each pole of the breaker to check its trip times, and the pin connects the test set's heavy output cable to the breaker's terminal without stripping a real conductor into the lug. |
| 4 | |
| 5 | The hex end slides through the hole in the breaker's plastic terminal cover and into the set-screw box lug, where the lug screw clamps on a flat. Behind the hex is a short round neck, then a smooth tangent "tulip" turned straight onto the square bar, so there is no sharp shoulder at the point where a pin levers against the lug mouth and where soft pins bend and crack. Everything behind the tulip is one solid rounded-square section with no holes and no round body. The cable's lug pad lies flat on it and is clamped with vise-grips, which is quick to put on and take off. |
| 6 | |
| 7 | ## What changed in 1.1.0 |
| 8 | |
| 9 | There are now seven sizes. The first six follow the Ampteks traditional six-piece set of hex sizes (3/16, 7/32, 1/4, 5/16, 3/8 and 1/2 inch across flats), and size 7 keeps a 5/8 inch hex for large frames. The round body section from 1.0.0 is gone, and the whole pin behind the tulip is now a longer rounded-square section. |
| 10 | |
| 11 | ## Material and finish |
| 12 | |
| 13 | Use C18150 (chromium zirconium copper) or C18200 (chromium copper), precipitation hardened and cold worked to TH04 temper or equivalent. These alloys keep about 80 percent of pure copper's conductivity but are several times stronger than C110, so the hex holds its shape under the lug screw and doesn't bend at the lug mouth. Annealed chromium copper is barely better than plain copper, so the temper matters. Leave the finish bare, degreased and clean, with no plating. Make each pin from one standard square bar (1/2, 5/8, 3/4 or 1 inch), ideally bar that already has radiused corners, so the square is left as stock and only the hex, neck and tulip are machined. |
| 14 | |
| 15 | The site's material library has no chromium copper, so the model uses zirconium copper C15000, which has nearly the same density, to show colour and weight. |
| 16 | |
| 17 | ## Sizes (inches) |
| 18 | |
| 19 | | Size | Frames | Hex across flats | Hex length | Neck dia | Square (corner radius) | Full square length | Overall | |
| 20 | |---|---|---|---|---|---|---|---| |
| 21 | | 1 | 15 to 30 A, lugs up to #8 or #6 | 3/16 | 2.00 | 0.230 | 1/2 (0.06) | 5.25 | 8.0 | |
| 22 | | 2 | 40 to 60 A, lugs up to #4 or #3 | 7/32 | 2.25 | 0.265 | 1/2 (0.06) | 5.00 | 8.0 | |
| 23 | | 3 | 70 to 100 A, lugs up to #1 | 1/4 | 2.25 | 0.300 | 1/2 (0.06) | 5.00 | 8.0 | |
| 24 | | 4 | 100 to 125 A, lugs up to 1/0 or 2/0 | 5/16 | 2.50 | 0.375 | 5/8 (0.075) | 4.75 | 8.0 | |
| 25 | | 5 | 150 to 225 A, lugs up to 3/0 or 4/0 | 3/8 | 3.25 | 0.445 | 3/4 (0.09) | 4.50 | 8.5 | |
| 26 | | 6 | 250 to 400 A, lugs up to 350 kcmil | 1/2 | 3.75 | 0.590 | 1 (0.125) | 4.375 | 9.0 | |
| 27 | | 7 | 400 to 1200 A, lug barrels up to 500 or 600 kcmil | 5/8 | 4.00 | 0.735 | 1 (0.125) | 4.625 | 9.5 | |
| 28 | |
| 29 | The tulip is 0.50 inch long on sizes 1 to 5 and 0.625 inch on sizes 6 and 7, and the neck is 0.25 inch. The hex tip has a 30 degree chamfer. |
| 30 | |
| 31 | ## How the sizes were chosen |
| 32 | |
| 33 | Each hex's across-corners size fits the largest wire its frame range takes, with a little clearance, so small hexes go with small frames. The hex length is the lug depth, plus the terminal cover depth, plus about a quarter inch, so the tulip stays outside the cover. Lug depths for the larger frames come from published Square D strip lengths (0.65 in on 150 A H-frames, 1.0 in on 250 A J-frames, 1.2 in on 400/600 A L-frames, 1.0 in on 800 to 1200 A frames), while the small-frame engagement of about half an inch is an estimate. Cover depths are partly estimated. The deepest published covers found were ABB Tmax XT high terminal covers, about 2.0 in on XT1/XT2 and 2.4 in on XT3/XT4, and most makers don't publish cover hole depths at all. If your covers are deeper, use the hex length override. |
| 34 | |
| 35 | The bending check is made at the lug mouth, using the hex's weakest bending direction, a design yield of 45 ksi and a safety factor of 3, with the load at the middle of the last 4 inches. The allowable load is about 2, 3, 4, 9, 15, 33 and 61 lbf for sizes 1 to 7. The square's section is 3 to 8 times the hex's, so it never limits strength or heating. At 300 percent of the frame rating, the hex warms at well under 1 degree C per second on sizes 1 to 6 and about 1.7 on size 7 at 3,600 A, and instantaneous tests are too short to matter. |
| 36 | |
| 37 | ## Usage notes |
| 38 | |
| 39 | Sizes 1 to 4 are for small frames and light test leads. Support the cable so it never hangs off the pin, because the small hexes can only carry a few pounds. |
| 40 | |
| 41 | On 1200 A frames with multi-barrel lugs, use one pin per lug barrel, with one cable on each pin, so each pin carries only its share of the test current. |
| 42 | |
| 43 | ## Parameters |
| 44 | |
| 45 | `size` picks the size (1 to 7). `hex_length` overrides the hex length in inches (0 keeps the size default). `overall_length` overrides the overall length in inches (0 keeps the size default). The pin axis runs along +x with the hex tip at the origin. Dimensions are set in inches, and the model is built in mm. |
| 46 |
Copper alloy test pins for primary injection testing of molded case circuit breakers. The hex end goes through the breaker's plastic terminal cover into the set-screw box lug. Behind a short neck, a tangent tulip is turned straight onto the square bar, and the rest of the pin is one solid rounded-square section (no round body, no holes) that the test cable's lug is clamped to with vise-grips. `size` picks one of seven sizes covering 15 A to 1200 A frames: the Ampteks traditional hex set (3/16, 7/32, 1/4, 5/16, 3/8, 1/2 in across flats) plus 5/8 in. Material C18150 or C18200, TH04 temper, bare finish. Pin axis +x, hex tip at the origin. Dimensions are set in inches; the model is in mm.
These are copper alloy pins for primary injection testing of molded case circuit breakers. A test set pushes a high current through each pole of the breaker to check its trip times, and the pin connects the test set's heavy output cable to the breaker's terminal without stripping a real conductor into the lug.
The hex end slides through the hole in the breaker's plastic terminal cover and into the set-screw box lug, where the lug screw clamps on a flat. Behind the hex is a short round neck, then a smooth tangent "tulip" turned straight onto the square bar, so there is no sharp shoulder at the point where a pin levers against the lug mouth and where soft pins bend and crack. Everything behind the tulip is one solid rounded-square section with no holes and no round body. The cable's lug pad lies flat on it and is clamped with vise-grips, which is quick to put on and take off.
There are now seven sizes. The first six follow the Ampteks traditional six-piece set of hex sizes (3/16, 7/32, 1/4, 5/16, 3/8 and 1/2 inch across flats), and size 7 keeps a 5/8 inch hex for large frames. The round body section from 1.0.0 is gone, and the whole pin behind the tulip is now a longer rounded-square section.
Use C18150 (chromium zirconium copper) or C18200 (chromium copper), precipitation hardened and cold worked to TH04 temper or equivalent. These alloys keep about 80 percent of pure copper's conductivity but are several times stronger than C110, so the hex holds its shape under the lug screw and doesn't bend at the lug mouth. Annealed chromium copper is barely better than plain copper, so the temper matters. Leave the finish bare, degreased and clean, with no plating. Make each pin from one standard square bar (1/2, 5/8, 3/4 or 1 inch), ideally bar that already has radiused corners, so the square is left as stock and only the hex, neck and tulip are machined.
The site's material library has no chromium copper, so the model uses zirconium copper C15000, which has nearly the same density, to show colour and weight.
| Size | Frames | Hex across flats | Hex length | Neck dia | Square (corner radius) | Full square length | Overall |
|---|---|---|---|---|---|---|---|
| 1 | 15 to 30 A, lugs up to #8 or #6 | 3/16 | 2.00 | 0.230 | 1/2 (0.06) | 5.25 | 8.0 |
| 2 | 40 to 60 A, lugs up to #4 or #3 | 7/32 | 2.25 | 0.265 | 1/2 (0.06) | 5.00 | 8.0 |
| 3 | 70 to 100 A, lugs up to #1 | 1/4 | 2.25 | 0.300 | 1/2 (0.06) | 5.00 | 8.0 |
| 4 | 100 to 125 A, lugs up to 1/0 or 2/0 | 5/16 | 2.50 | 0.375 | 5/8 (0.075) | 4.75 | 8.0 |
| 5 | 150 to 225 A, lugs up to 3/0 or 4/0 | 3/8 | 3.25 | 0.445 | 3/4 (0.09) | 4.50 | 8.5 |
| 6 | 250 to 400 A, lugs up to 350 kcmil | 1/2 | 3.75 | 0.590 | 1 (0.125) | 4.375 | 9.0 |
| 7 | 400 to 1200 A, lug barrels up to 500 or 600 kcmil | 5/8 | 4.00 | 0.735 | 1 (0.125) | 4.625 | 9.5 |
The tulip is 0.50 inch long on sizes 1 to 5 and 0.625 inch on sizes 6 and 7, and the neck is 0.25 inch. The hex tip has a 30 degree chamfer.
Each hex's across-corners size fits the largest wire its frame range takes, with a little clearance, so small hexes go with small frames. The hex length is the lug depth, plus the terminal cover depth, plus about a quarter inch, so the tulip stays outside the cover. Lug depths for the larger frames come from published Square D strip lengths (0.65 in on 150 A H-frames, 1.0 in on 250 A J-frames, 1.2 in on 400/600 A L-frames, 1.0 in on 800 to 1200 A frames), while the small-frame engagement of about half an inch is an estimate. Cover depths are partly estimated. The deepest published covers found were ABB Tmax XT high terminal covers, about 2.0 in on XT1/XT2 and 2.4 in on XT3/XT4, and most makers don't publish cover hole depths at all. If your covers are deeper, use the hex length override.
The bending check is made at the lug mouth, using the hex's weakest bending direction, a design yield of 45 ksi and a safety factor of 3, with the load at the middle of the last 4 inches. The allowable load is about 2, 3, 4, 9, 15, 33 and 61 lbf for sizes 1 to 7. The square's section is 3 to 8 times the hex's, so it never limits strength or heating. At 300 percent of the frame rating, the hex warms at well under 1 degree C per second on sizes 1 to 6 and about 1.7 on size 7 at 3,600 A, and instantaneous tests are too short to matter.
Sizes 1 to 4 are for small frames and light test leads. Support the cable so it never hangs off the pin, because the small hexes can only carry a few pounds.
On 1200 A frames with multi-barrel lugs, use one pin per lug barrel, with one cable on each pin, so each pin carries only its share of the test current.
size picks the size (1 to 7). hex_length overrides the hex length in inches (0 keeps the size default). overall_length overrides the overall length in inches (0 keeps the size default). The pin axis runs along +x with the hex tip at the origin. Dimensions are set in inches, and the model is built in mm.
Seven sizes matching the Ampteks traditional hex set plus 5/8. The round body is gone: the whole pin behind the tulip is one rounded-square section.
Dirac belt (belt trick): a cube tied to anchor pads by ribbons, posed at any moment of a 720 degree untangle.