40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
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)
|