Add template for marking bitting positions with a fine point marker
This commit is contained in:
parent
15e7f52071
commit
85c7dda27c
37
marker_template.py
Normal file
37
marker_template.py
Normal file
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import cadquery as cq
|
||||
from cadquery import exporters
|
||||
|
||||
import key_bittings
|
||||
from key_bittings import BittingSpecification
|
||||
|
||||
extra_key_thickness = 0.8
|
||||
extra_key_width = 0.2
|
||||
|
||||
marker_width = 1.25
|
||||
|
||||
|
||||
def marker_template(spec: BittingSpecification, thickness=1, fillet=0.4):
|
||||
return (
|
||||
cq.Workplane()
|
||||
.box(spec.TFC + spec.positions * spec.BCC,
|
||||
max(spec.depths.values()) + thickness * 2,
|
||||
spec.key_thickness + thickness)
|
||||
|
||||
.faces(">Z").vertices("<XY").workplane(centerOption="CenterOfMass")
|
||||
.center(spec.TFC, thickness + max(spec.depths.values())/2)
|
||||
.rarray(spec.BCC, 1, spec.positions, 1, center=False)
|
||||
.rect(marker_width, max(spec.depths.values())).cutThruAll()
|
||||
|
||||
.edges("not <Z").fillet(fillet)
|
||||
|
||||
.faces("<X").workplane(centerOption="CenterOfMass")
|
||||
.move(0, -thickness)
|
||||
.rect(max(spec.depths.values()) + extra_key_width,
|
||||
spec.key_thickness + extra_key_thickness).cutThruAll()
|
||||
)
|
||||
|
||||
|
||||
result = marker_template(key_bittings.national_disc_tumbler)
|
||||
exporters.export(result, "national_disc_tumbler_marker_template.stl")
|
Loading…
Reference in New Issue
Block a user