Advertisement
Guest User

Moebiu ring in STL file

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