Advertisement
Guest User

Ring object in STL file

a guest
Jun 12th, 2017
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.42 KB | None | 0 0
  1.  
  2. import math
  3.  
  4. out = "ring.stl"
  5.  
  6. f = open(out, 'w')
  7.  
  8. n = 10
  9. m = 20
  10.  
  11. r1 = 5.0
  12. r2 = 1.0
  13.  
  14. dtheta = 2.0 * math.pi / m
  15. dphi = 1.0 * math.pi / n
  16.  
  17. f.write("solid Something (Meshed)\n")
  18. for i in range(0, m):
  19.     theta = 2.0 * math.pi * i * 1.0 / m
  20.     ct = math.cos(theta)
  21.     st = math.sin(theta)
  22.     ct1 = math.cos(theta + dtheta)
  23.     st1 = math.sin(theta + dtheta)
  24.     for j in range(0, n):
  25.         phi = math.pi * j * 2.0 / n
  26.         cp = math.cos(phi)
  27.         sp = math.sin(phi)
  28.         cp1 = math.cos(phi + dphi)
  29.         sp1 = math.sin(phi + dphi)
  30.         f.write("\tfacet normal %.6f %.6f %.6f\n" % (ct * cp, st * cp, sp))
  31.         f.write("\t\touter loop\n")
  32.         f.write("\t\t\tvertex %.6f %.6f %.6f\n" % ((r1 + r2*cp) * ct, (r1 + r2*cp) * st, r2*sp))
  33.         f.write("\t\t\tvertex %.6f %.6f %.6f\n" % ((r1 + r2*cp1) * ct, (r1 + r2*cp1) * st, r2*sp1))
  34.         f.write("\t\t\tvertex %.6f %.6f %.6f\n" % ((r1 + r2*cp) * ct1, (r1 + r2*cp) * st1, r2*sp))
  35.         f.write("\t\tendloop\n")
  36.         f.write("\tendfacet\n")
  37.         f.write("\tfacet normal %.6f %.6f %.6f\n" % (ct * cp, st * cp, sp))
  38.         f.write("\t\touter loop\n")
  39.         f.write("\t\t\tvertex %.6f %.6f %.6f\n" % ((r1 + r2*cp1) * ct1, (r1 + r2*cp1) * st1, r2*sp1))
  40.         f.write("\t\t\tvertex %.6f %.6f %.6f\n" % ((r1 + r2*cp1) * ct, (r1 + r2*cp1) * st, r2*sp1))
  41.         f.write("\t\t\tvertex %.6f %.6f %.6f\n" % ((r1 + r2*cp) * ct1, (r1 + r2*cp) * st1, r2*sp))
  42.         f.write("\t\tendloop\n")
  43.         f.write("\tendfacet\n")
  44.    
  45. f.write("endsolid Mesh\n")
  46.  
  47. f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement