From b1fe53874787c475ecc2274fcea5193b00e399f5 Mon Sep 17 00:00:00 2001 From: Leni Aniva Date: Tue, 20 May 2025 19:47:16 -0700 Subject: [PATCH] Use dihedral angle to calculate sanding block --- nhf/touhou/yasaka_kanako/onbashira.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nhf/touhou/yasaka_kanako/onbashira.py b/nhf/touhou/yasaka_kanako/onbashira.py index 05be21d..bea144b 100644 --- a/nhf/touhou/yasaka_kanako/onbashira.py +++ b/nhf/touhou/yasaka_kanako/onbashira.py @@ -149,13 +149,16 @@ class Onbashira(Model): dx = self.bearing_gap return math.sqrt(diag ** 2 - dx ** 2) - @target(name="sanding_block") + @target(name="sanding-block") def sanding_block(self) -> Cq.Workplane: + # Dihedral angle / 2 + angle = math.radians(180 / self.n_side) + r = math.sin(angle) x = 50.0 return ( Cq.Workplane() .sketch() - .polygon([(0,0), (0, x), (x, x/2), (x, 0)]) + .polygon([(0,0), (0, x), (x, (1-r) * x), (x, 0)]) .finalize() .extrude(self.side_width * 1.5) )