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()