main
John Lauer R0 engineering checkpoint: checked schematic, sourcing, servo evidence and safety-policy code; PCB and qualification incomplete 10054d3 1h ago
"""Nominal Ohmite LVK12 body from manufacturer drawing p2; not vendor CAD."""
from pathlib import Path
import cadquery as cq,json
P=Path(__file__).resolve().parents[1];out=P/'kicad/3d';out.mkdir(exist_ok=True)
a=cq.Assembly(name='LVK12_nominal_datasheet_model')
a.add(cq.Workplane('XY').box(3.2,1.6,.4).translate((0,0,.3)),name='substrate',color=cq.Color(.75,.69,.55))
a.add(cq.Workplane('XY').box(2.1,1.6,.08).translate((0,0,.46)),name='resistive_coating',color=cq.Color(.15,.16,.17))
for n,x,y in [(1,-1.1,-.525),(2,-1.1,.525),(3,1.1,.525),(4,1.1,-.525)]:
 a.add(cq.Workplane('XY').box(1,.55,.1).translate((x,y,.05)),name=f'terminal_{n}',color=cq.Color(.78,.79,.8))
a.export(str(out/'LVK12.step'))
(out/'LVK12.provenance.json').write_text(json.dumps({'author':'Adom custom load generator','type':'AI-generated nominal package geometry','source':'https://www.ohmite.com/assets/files/Datasheets/lvk-series.pdf?r=false','drawing_page':2,'dimensions_mm':{'L':3.2,'W':1.6,'t':.5,'terminal_a':1,'terminal_b':.55},'limitations':['Simplified substrate/coating layers','No manufacturer CAD claim','No dimensional tolerance envelope in nominal STEP'],'pin_mapping':'project-defined: 1 I+ lower left, 2 V+ upper left, 3 V- upper right, 4 I- lower right in top view'},indent=2))
print(out/'LVK12.step')