From f3169f62152a4aec01d6e8611ecef73bbe38f23e Mon Sep 17 00:00:00 2001 From: numzero Date: Tue, 20 Oct 2026 02:40:31 +0300 Subject: [PATCH] increase shape precision --- src/bevel_gear.rs | 2 +- src/lib.rs | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/bevel_gear.rs b/src/bevel_gear.rs index d109e12..78d4b0e 100644 --- a/src/bevel_gear.rs +++ b/src/bevel_gear.rs @@ -58,7 +58,7 @@ impl BevelGearShape { pub fn cut(&mut self, cutter_tfm: Affine3A) { let cutter = self.desc.cutter(); let z_proj = self.desc.pitch_distance(); - let cutting_line = cutter.to_shape(0.375..0.625, 200); + let cutting_line = cutter.to_shape(0.375..0.625, self.points.len()); let cutting_line: Vec<_> = cutting_line .into_iter() .map(|pt| { diff --git a/src/lib.rs b/src/lib.rs index ef6b81f..7284762 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -117,17 +117,19 @@ impl Core { teeth: args.tooth, cone_halfangle: args.cone_halfangle, }; - let bevel_gear_shape = bevel_gear::BevelGearShape::new_blank(&bevel_gear_desc, 600); + let bevel_gear_shape = + bevel_gear::BevelGearShape::new_blank(&bevel_gear_desc, 16 * args.tooth as usize); let crown_gear_desc = bevel_gear_desc.cutter(); let crown_gear_mesh = crown_gear::make_mesh_simple( &crown_gear_desc, &crown_gear::CrownGearVisual { inner_radius: crown_gear_desc.pitch_radius / 2., - outer_radius: crown_gear_desc.pitch_radius, + outer_radius: crown_gear_desc.pitch_radius + + 2. * bevel_gear_desc.cone_halfangle.tan(), base_thickness: 2.0, }, - 600, + (16. * crown_gear_desc.teeth()).floor() as usize, ) .to_mesh() .to_standard_mesh()