from dataclasses import dataclass, field import cadquery as Cq from nhf.build import Model, TargetKind, target, assembly, submodel from .rod import Rod from .crown import Crown from .epaulette import Epaulette import nhf.utils @dataclass class Parameters(Model): rod: Rod = field(default_factory=Rod) crown: Crown = field(default_factory=Crown) epaulette_ze: Epaulette = field(default_factory=lambda: Epaulette(side="ze")) epaulette_hi: Epaulette = field(default_factory=lambda: Epaulette(side="hi")) def __post_init__(self): super().__init__(name="shiki-eiki") @submodel(name="rod") def submodel_rod(self) -> Model: return self.rod @submodel(name="crown") def submodel_crown(self) -> Model: return self.crown @submodel(name="epaulette_ze") def submodel_epaulette_ze(self) -> Model: return self.epaulette_ze @submodel(name="epaulette_hi") def submodel_epaulette_hi(self) -> Model: return self.epaulette_hi if __name__ == '__main__': import sys p = Parameters() if len(sys.argv) == 1: p.build_all() sys.exit(0)