Cosplay/nhf/touhou/shiki_eiki/rod.py

35 lines
849 B
Python

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):
width: float = 120.0
length: float = 550.0
length_tip: float = 100.0
width_tail: float = 60.0
@target(name="surface")
def top_profile(self) -> Cq.Sketch:
sketch = (
Cq.Sketch()
.polygon([
(self.length, 0),
(self.length - self.length_tip, self.width/2),
(0, self.width_tail / 2),
(0, -self.width_tail / 2),
(self.length - self.length_tip, -self.width/2),
])
)
return sketch
@assembly()
def assembly(self) -> Cq.Assembly:
a = (
Cq.Assembly()
)
return a