from dataclasses import dataclass, field import cadquery as Cq from nhf.build import Model, TargetKind, target, assembly, submodel import nhf.touhou.shiki_eiki.rod as MR import nhf.touhou.shiki_eiki.crown as MC import nhf.touhou.shiki_eiki.epaulette as ME import nhf.utils @dataclass class Parameters(Model): rod: MR.Rod = field(default_factory=lambda: MR.Rod()) crown: MC.Crown = field(default_factory=lambda: MC.Crown()) epaulette_ze: ME.Epaulette = field(default_factory=lambda: ME.Epaulette(side="ze")) epaulette_hi: ME.Epaulette = field(default_factory=lambda: ME.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)