cosplay: Touhou/Shiki Eiki #7
|
@ -0,0 +1,26 @@
|
||||||
|
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.utils
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Parameters(Model):
|
||||||
|
|
||||||
|
rod: MR.Rod = field(default_factory=lambda: MR.Rod())
|
||||||
|
|
||||||
|
def __post_init__(self):
|
||||||
|
super().__init__(name="shiki-eiki")
|
||||||
|
|
||||||
|
@submodel(name="rod")
|
||||||
|
def submodel_rod(self) -> Model:
|
||||||
|
return self.rod
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import sys
|
||||||
|
|
||||||
|
p = Parameters()
|
||||||
|
if len(sys.argv) == 1:
|
||||||
|
p.build_all()
|
||||||
|
sys.exit(0)
|
|
@ -0,0 +1,29 @@
|
||||||
|
from dataclasses import dataclass, field
|
||||||
|
import cadquery as Cq
|
||||||
|
from nhf import Material, Role
|
||||||
|
from nhf.build import Model, target, assembly
|
||||||
|
import nhf.utils
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Rod(Model):
|
||||||
|
|
||||||
|
@target(name="surface")
|
||||||
|
def top_profile(self) -> Cq.Sketch:
|
||||||
|
w, h = 10, 20
|
||||||
|
sketch = (
|
||||||
|
Cq.Sketch()
|
||||||
|
.polygon([
|
||||||
|
(w, h),
|
||||||
|
(w, -h),
|
||||||
|
(-w, -h),
|
||||||
|
(-w, h),
|
||||||
|
])
|
||||||
|
)
|
||||||
|
return sketch
|
||||||
|
|
||||||
|
@assembly()
|
||||||
|
def assembly(self) -> Cq.Assembly:
|
||||||
|
a = (
|
||||||
|
Cq.Assembly()
|
||||||
|
)
|
||||||
|
return a
|
Loading…
Reference in New Issue