Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- out = "moebius.stl"
- f = open(out, 'w')
- n = 20
- m = 40
- r1 = 5.0
- r2 = 1.0
- r3 = 2.0
- dtheta = 2.0 * math.pi / m
- dphi = 2.0 * math.pi / n
- f.write("solid Something (Meshed)\n")
- for i in range(0, m):
- theta = 2.0 * math.pi * i * 1.0 / m
- ct = math.cos(theta)
- st = math.sin(theta)
- ct1 = math.cos(theta + dtheta)
- st1 = math.sin(theta + dtheta)
- ct3 = math.cos(3*theta)
- st3 = math.sin(3*theta)
- ct31 = math.cos(3*theta + dtheta)
- st31 = math.sin(3*theta + dtheta)
- for j in range(0, n):
- phi = math.pi * j * 2.0 / n
- cp = math.cos(phi)
- sp = math.sin(phi)
- cp1 = math.cos(phi + dphi)
- sp1 = math.sin(phi + dphi)
- f.write("\tfacet normal %.6f %.6f %.6f\n" % (ct * cp, st * cp, sp))
- f.write("\t\touter loop\n")
- 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))
- 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))
- 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))
- f.write("\t\tendloop\n")
- f.write("\tendfacet\n")
- f.write("\tfacet normal %.6f %.6f %.6f\n" % (ct * cp, st * cp, sp))
- f.write("\t\touter loop\n")
- 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))
- 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))
- 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))
- f.write("\t\tendloop\n")
- f.write("\tendfacet\n")
- f.write("endsolid Mesh\n")
- f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement