mirror of
https://github.com/Theaninova/Brick-Monorail.git
synced 2025-12-12 20:46:22 +00:00
58 lines
1.4 KiB
Python
58 lines
1.4 KiB
Python
from dataclasses import dataclass, field
|
|
import math
|
|
import units as u
|
|
|
|
|
|
@dataclass
|
|
class Params:
|
|
radius: float
|
|
to: tuple
|
|
shell: bool
|
|
hollow_studs: bool
|
|
# 3D printing optimization that allows
|
|
# for the part to be printed flush to the
|
|
# bed, at the expense of having to glue
|
|
standoff_flush_cut: bool
|
|
# Instead of 3d printing the studs,
|
|
# a pin hole is left to insert a 4274
|
|
# technic pit with a stud.
|
|
standoff_uses_pins: bool
|
|
|
|
width: float = u.studs(4)
|
|
height = u.studs(1)
|
|
|
|
# Tolerance is also used in the injection moulded parts.
|
|
# The tolerance applies to each individual side,
|
|
# but is only subtracted once from the height.
|
|
tolerance = 0.1
|
|
|
|
start_joint = True
|
|
end_joint = True
|
|
joint_studs = 2
|
|
|
|
nail_slot = True
|
|
nail_slot_size = (u.studs(1), u.ldu(2), u.ldu(2))
|
|
|
|
connector = True
|
|
connector_position = u.ldu(4)
|
|
connector_size = (u.ldu(2), u.ldu(7))
|
|
|
|
# 3D printing optimization that makes
|
|
# functional inner corners sharper
|
|
corner_sharpening = True
|
|
corner_sharpening_amount = u.ldu(1)
|
|
|
|
shell_mid_thickness = u.stud(1)
|
|
shell_mid_cut_thickness = u.ldu(4)
|
|
shell_support = True
|
|
|
|
standoff_height = u.brick(1) + u.ldu(1)
|
|
standoff_padding = u.ldu(6)
|
|
standoff_studs = (1, 2)
|
|
|
|
teeth_height = u.ldu(8)
|
|
teeth_width = math.pi / 2 * 0.75
|
|
teeth_spacing = math.pi / 2 * 0.25
|
|
teeth_inner_width = u.ldu(9)
|
|
teeth_outer_width = u.ldu(15.5)
|