Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- def h(x, y, xmin, xmax, ymin, ymax, hmin, hmax):
- x1 = (x - xmin) / (xmax - xmin) * 2.0 - 1.0
- y1 = (y - ymin) / (ymax - ymin) * 2.0 - 1.0
- return ((x1 * x1 - y1 * y1) + 1)* (hmax - hmin) * 0.5 + hmin
- out = "hall2.stl"
- f = open(out, 'w')
- n = 20
- m = 20
- xmin, xmax = -20.0, 20.0
- ymin, ymax = -15.0, 15.0
- hmin, hmax = 10.0, 20.0
- dx = 1.0 * (xmax - xmin) / m
- dy = 1.0 * (ymax - ymin) / n
- xmin -= dx
- xmax += dx
- ymin -= dy
- ymax += dy
- f.write("solid Hall (Meshed)\n")
- for i in range(0, m+2):
- for j in range(0, n+2):
- x = xmin + i * dx
- y = ymin + j * dy
- x1 = x + dx
- y1 = y + dy
- ha = h(x, y, xmin, xmax, ymin, ymax, hmin, hmax)
- hb = h(x1, y, xmin, xmax, ymin, ymax, hmin, hmax)
- hc = h(x1, y1, xmin, xmax, ymin, ymax, hmin, hmax)
- hd = h(x, y1, xmin, xmax, ymin, ymax, hmin, hmax)
- f.write("\tfacet normal %.6f %.6f %.6f\n" % (0.0, 0.0, 1.0))
- f.write("\t\touter loop\n")
- f.write("\t\t\tvertex %.6f %.6f %.6f\n" % (1000.0*x, 1000.0*y, 1000.0*ha))
- f.write("\t\t\tvertex %.6f %.6f %.6f\n" % (1000.0*x1, 1000.0*y, 1000.0*hb))
- f.write("\t\t\tvertex %.6f %.6f %.6f\n" % (1000.0*x1, 1000.0*y1, 1000.0*hc))
- f.write("\t\tendloop\n")
- f.write("\tendfacet\n")
- f.write("\tfacet normal %.6f %.6f %.6f\n" % (0.0, 0.0, 1.0))
- f.write("\t\touter loop\n")
- f.write("\t\t\tvertex %.6f %.6f %.6f\n" % (1000.0*x1, 1000.0*y1, 1000.0*hc))
- f.write("\t\t\tvertex %.6f %.6f %.6f\n" % (1000.0*x, 1000.0*y1, 1000.0*hd))
- f.write("\t\t\tvertex %.6f %.6f %.6f\n" % (1000.0*x, 1000.0*y, 1000.0*ha))
- 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