component
48393-0003
Public Made by Adomby adom
Molex 48393-0003 USB 3.0 (5 Gbps) Type-A receptacle, right angle, through-hole, 4.00 mm contact height. Not Recommended For New Design. KiCad symbol and footprint, AI-created 3D model.
main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
"""AI-created simplified 3D model of Molex 48393-0003 (USB 3.0 Type-A receptacle, right angle,
through-hole, 4.00 mm contact height), built from Molex sales drawing SD-48393-001 rev B
(body 13.80 x 14.25, shell 12.50 opening width, shell top 6.86 above the PCB, contact centre line
4.00, tails 1.1 +-0.15 below the PCB, 9 signal tails 0.50 x 0.30, shell legs 1.50 rear / 1.00 front
wide on a 12.80 pitch, PCB layout: pins 1-4 11.75 mm and pins 5-9 13.25 mm behind the front edge,
shell legs 4.00 and 12.50 mm behind the front edge).
Frame: Adom Z-up, millimetres, seating plane z = 0 (PCB top), origin = body centre (footprint origin).
Model y = -(KiCad y); the connector front (plug entry) is at model y = -7.125.
Simplifications: the shell is a plain rectangular tube with a closed rear, the blue housing is a base
block plus a tongue, contacts are flat strips on the tongue and straight tails; no latch dimples,
no EMI springs, no date code or logo.
Run: python 48393-0003_model.py <out.step>
"""
import sys
import cadquery as cq
DEPTH = 14.25
YF, YR = -DEPTH / 2, DEPTH / 2 # front, rear (model y)
SHELL_IN_W, SHELL_T = 12.50, 0.30
SHELL_OUT_W = SHELL_IN_W + 2 * SHELL_T # 13.10, side walls centred on the 12.80 leg pitch
CL = 4.00 # contact centre line height
IN_H = 5.12 # opening height (front view)
Z_TOP = 6.86
Z_IN_BOT = CL - IN_H / 2 # 1.44
Z_SHELL_BOT = Z_IN_BOT - SHELL_T # 1.14
TAIL = 1.10
def box(x0, x1, y0, y1, z0, z1):
return (cq.Workplane("XY").box(x1 - x0, y1 - y0, z1 - z0, centered=False)
.translate((x0, y0, z0)))
# shell: top, bottom plate, two side walls down to the PCB, closed rear wall, legs, side flanges
xo, xi = SHELL_OUT_W / 2, SHELL_IN_W / 2
shell = box(-xo, xo, YF, YR, Z_TOP - SHELL_T, Z_TOP)
shell = shell.union(box(-xo, xo, YF, YR, Z_SHELL_BOT, Z_IN_BOT))
for s in (-1, 1):
shell = shell.union(box(min(s * xi, s * xo), max(s * xi, s * xo), YF, YR, 0.0, Z_TOP))
shell = shell.union(box(-xo, xo, YR - SHELL_T, YR, 0.0, Z_TOP))
for s in (-1, 1):
x0, x1 = sorted((s * xi, s * xo))
shell = shell.union(box(x0, x1, 5.375 - 0.75, 5.375 + 0.75, -TAIL, 0.0)) # rear legs 1.50
shell = shell.union(box(x0, x1, -3.125 - 0.50, -3.125 + 0.50, -TAIL, 0.0)) # front legs 1.00
f0, f1 = sorted((s * xo, s * 6.90))
shell = shell.union(box(f0, f1, 0.5, 4.5, 3.2, 6.2)) # side flanges (13.80)
# housing: base block under the shell, rear block, tongue
housing = box(-xi + 0.2, xi - 0.2, YF + 0.6, YR - SHELL_T, Z_IN_BOT, Z_IN_BOT + 0.6)
housing = housing.union(box(-xi, xi, 4.0, YR - SHELL_T, Z_IN_BOT, Z_TOP - SHELL_T))
housing = housing.union(box(-5.55, 5.55, YF + 0.5, 4.0, 4.35, 6.15)) # tongue 11.10 wide
housing = housing.union(box(-xi + 0.6, xi - 0.6, -1.0, YR - SHELL_T, 0.0, Z_SHELL_BOT))
# contacts: USB 2.0 strips at the front of the tongue underside, SuperSpeed strips behind them,
# straight tails at the footprint hole positions (pins 1-4 y = +4.625, pins 5-9 y = +6.125)
contacts = None
usb2_x = {1: -3.5, 2: -1.0, 3: 1.0, 4: 3.5}
ss_x = {5: 4.0, 6: 2.0, 7: 0.0, 8: -2.0, 9: -4.0}
for n, x in usb2_x.items():
c = box(x - 0.5, x + 0.5, -6.2, -2.4, 4.25, 4.35)
c = c.union(box(x - 0.25, x + 0.25, 4.625 - 0.15, 4.625 + 0.15, -TAIL, 2.0))
contacts = c if contacts is None else contacts.union(c)
for n, x in ss_x.items():
c = box(x - 0.25, x + 0.25, -2.0, 2.5, 4.25, 4.35)
c = c.union(box(x - 0.25, x + 0.25, 6.125 - 0.15, 6.125 + 0.15, -TAIL, 2.0))
contacts = contacts.union(c)
asm = cq.Assembly(name="48393-0003")
asm.add(shell, name="shell", color=cq.Color(0.78, 0.79, 0.80))
asm.add(housing, name="housing", color=cq.Color(0.10, 0.32, 0.78))
asm.add(contacts, name="contacts", color=cq.Color(0.86, 0.70, 0.30))
asm.export(sys.argv[1])
print("OK", sys.argv[1])