POV-Ray : Newsgroups : povray.general : Standard machine screw threads, via f_helix1 isosurface : Standard machine screw threads, via f_helix1 isosurface Server Time
25 Apr 2024 17:44:53 EDT (-0400)
  Standard machine screw threads, via f_helix1 isosurface  
From: Robert Munyer
Date: 7 Jun 2019 19:06:48
Message: <875zph8073.fsf@munyer.com>
I figured out how to get f_helix1 to produce the "basic profile" shape
used by standard machine screw threads, both American and metric.

Getting a specific desired shape from f_helix1 is not straightforward,
so I'm posting my code here for the benefit of anyone else who may
want to model this shape.

The scene file below will produce 1/4 inch of #4-40 thread, aligned
with the Y axis, in a scene measured in millimeters.  For a scene
measured in some other unit, change the number 25.4 everywhere it
appears.  For M3-0.5 thread instead of #4-40, change D_maj to 3 and
change Density to 2 (the "0.5" means 2 turns per millimeter).

#version 3.7;
#include "colors.inc"
#include "functions.inc"
#include "textures.inc"
global_settings { assumed_gamma 1 }
object {



#local D_maj = (4 * 13/1000 + 3/50) * 25.4;
#local Density = 40 / 25.4;
#local Y_min = 0 * 25.4;
#local Y_max = 1/4 * 25.4;
#local Max_gradient = 3;

intersection {
  union {
    isosurface {
      function {
        f_helix1 (x, y, - z, 1, Density * 2 * pi, sqrt (3/4) / Density,
                  D_maj / 2 - sqrt (147/256) / Density, sqrt (1/3), 2, 0)
      }
      contained_by {
        box { <- D_maj / 2, Y_min, - D_maj / 2>, <D_maj / 2, Y_max, D_maj / 2> }
      }
      max_gradient Max_gradient
      all_intersections
    }
    cylinder { Y_min * y, Y_max * y, D_maj / 2 - sqrt (75/256) / Density }
  }
  cylinder { Y_min * y, Y_max * y, D_maj / 2 }
}



  texture { Aluminum }
}
plane { y, 0 pigment { color Green } }
light_source { <2, 4, -3> * 25.4 color White }
camera { location <0, 1/8, -3/8> * 25.4 look_at <0, 1/8, 0> * 25.4 }


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.