Advertisement
j0h

cipher wheel scad

j0h
May 17th, 2025 (edited)
698
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.25 KB | None | 0 0
  1. // Parameters
  2. ring_thickness = 10;    // Thickness of the ring (radial)
  3. ring_height = 5;       // Height of the ring
  4. letter_count = 26;
  5. angle_step = 360 / letter_count;
  6. font_size = 6;
  7. font_name = "Liberation Sans";  // Change if needed
  8. text_depth = 1.0;  // How deep the engraving goes
  9.  
  10. module ring_with_letters(ring_radius) {
  11.     difference() {
  12.         // Base ring
  13.         cylinder(h = ring_height, r = ring_radius + ring_thickness / 2, $fn = 200);
  14.         //r = ring_radius + ring_thickness / 2;
  15.         //echo ("outer ", r);
  16.         cylinder(h = ring_height + 1, r = ring_radius - ring_thickness / 2, $fn = 200);
  17.         //r = ring_radius - ring_thickness / 2;
  18.         //echo ("inner ", r);
  19.         // Engraved letters (subtracted)
  20.         for (i = [0 : letter_count - 1]) {
  21.             angle = i * angle_step;
  22.             letter = chr(65 + i);  // 65 = 'A'
  23.  
  24.             rotate([0, 0, angle])
  25.             translate([ring_radius, 0, ring_height - text_depth])  // Start near top
  26.             rotate([0, 0, 0])
  27.             linear_extrude(height = text_depth)
  28.                 text(letter, size = font_size, font = font_name, halign = "center", valign = "bottom");
  29.         }
  30.     }
  31. }
  32.  
  33. // Example usage
  34. ring_with_letters(50);
  35. ring_with_letters(39.9);
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement