Created
February 15, 2017 23:02
-
-
Save saljam/1e8d4860c3a212db0fc1813685d3d9a6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "nodes": [ | |
| { | |
| "datums": [ | |
| { | |
| "expr": "\u0011[__3.__5]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "3.55", | |
| "name": "radius", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "wrapped", | |
| "type": "_fabtypes.Shape", | |
| "uid": 2 | |
| } | |
| ], | |
| "inspector": [ | |
| -101.70471662523107, | |
| 291.02376659465301 | |
| ], | |
| "name": "c1", | |
| "script": [ | |
| "import fab", | |
| "", | |
| "title('Cylinder Wrap (Y-axis)')", | |
| "input('shape', fab.types.Shape)", | |
| "input('radius', float)", | |
| "", | |
| "output(\"wrapped\", fab.shapes.cylinder_y_wrap(shape, radius))", | |
| "" | |
| ], | |
| "uid": 1 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "-60", | |
| "name": "xmin", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "60", | |
| "name": "xmax", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "1.2", | |
| "name": "y", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "0.5", | |
| "name": "r", | |
| "type": "float", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-60.000000'),float('0.700000'),float('-0.500000'),float('60.000000'),float('1.700000'),float('0.500000'))", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| -161.92321494284789, | |
| -91.109566416752898 | |
| ], | |
| "name": "c0", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Cylinder (X)')", | |
| "", | |
| "input('xmin', float)", | |
| "input('xmax', float)", | |
| "input('y', float)", | |
| "input('z', float)", | |
| "input('r', float)", | |
| "", | |
| "output('shape', fab.shapes.cylinder_x(xmin, xmax, y, z, r))", | |
| "", | |
| "# UI", | |
| "sb.ui.wireframe([(xmin, y, z), (xmax, y, z)])", | |
| "sb.ui.wireframe([(xmin, y, z), (xmin, y, z + r)])", | |
| "", | |
| "sb.ui.wireframe([", | |
| " (xmin, math.cos(i/36. * 2*math.pi) * r + y,", | |
| " math.sin(i/36. * 2*math.pi) * r + z)", | |
| " for i in range(36)], close=True)", | |
| "", | |
| "sb.ui.wireframe([", | |
| " (xmax, math.cos(i/36. * 2*math.pi) * r + y,", | |
| " math.sin(i/36. * 2*math.pi) * r + z)", | |
| " for i in range(36)], close=True)", | |
| "", | |
| "sb.ui.point(xmin, y, z)", | |
| "sb.ui.point(xmax, y, z)", | |
| "sb.ui.point(xmin, y, z + r, drag=(None, None, r))", | |
| "" | |
| ], | |
| "uid": 0 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0", | |
| "name": "y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "32", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__0.__5]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-51.783741'),float('-31.201508'),float('-0.500000'),float('50.511932'),float('33.236824'),float('0.500000'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 169.62319458104534, | |
| -54.020713735914057 | |
| ], | |
| "name": "r1", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Z)')", | |
| "", | |
| "input('x', float)", | |
| "input('y', float)", | |
| "input('_z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_z(shape, a, x, y))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), y + math.sin(rad), _z),", | |
| " (x, y, _z),", | |
| " (x + 1, y, _z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3,", | |
| " y + math.sin(math.radians(a_)) * 0.3, _z)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, y, _z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(y - this.y, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), y + math.sin(rad), _z,", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 3 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "90", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__1.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1ZY+*f-1X*f6.12323e-17Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 314.97591637196433, | |
| 506.33057668497872 | |
| ], | |
| "name": "r0", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 2 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "0", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__1.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f1X*f0ZY+*f-0X*f1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 298.34249343367634, | |
| 407.80731395029449 | |
| ], | |
| "name": "r2", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 4 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "180", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__1.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16ZY+*f-1.22465e-16X*f-1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 338.07707345320841, | |
| 559.7916219196062 | |
| ], | |
| "name": "r3", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 5 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "-90", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__1.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f-1ZY+*f1X*f6.12323e-17Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 353.86145696265976, | |
| 673.20241912589722 | |
| ], | |
| "name": "r4", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 6 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "\u0011[__3.__5]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "-3.55", | |
| "name": "radius", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "wrapped", | |
| "type": "_fabtypes.Shape", | |
| "uid": 2 | |
| } | |
| ], | |
| "inspector": [ | |
| -134.3345265460033, | |
| 469.19454566897912 | |
| ], | |
| "name": "c2", | |
| "script": [ | |
| "import fab", | |
| "", | |
| "title('Cylinder Wrap (Y-axis)')", | |
| "input('shape', fab.types.Shape)", | |
| "input('radius', float)", | |
| "", | |
| "output(\"wrapped\", fab.shapes.cylinder_y_wrap(shape, radius))", | |
| "" | |
| ], | |
| "uid": 7 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "0", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__7.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f1X*f0ZY+*f-0X*f1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 257.25879443523576, | |
| 1258.02273280589 | |
| ], | |
| "name": "r5", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 8 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "45", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__7.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107ZY+*f-0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-5.727567'),float('-31.201508'),float('-5.727567'),float('5.727567'),float('33.236824'),float('5.727567'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 268.8514057009956, | |
| 1452.1721174769752 | |
| ], | |
| "name": "r6", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 9 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "45*2", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__7.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1ZY+*f-1X*f6.12323e-17Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 265.76984134741218, | |
| 1646.3106717527221 | |
| ], | |
| "name": "r7", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 10 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "45*3", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__7.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107ZY+*f-0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-5.727567'),float('-31.201508'),float('-5.727567'),float('5.727567'),float('33.236824'),float('5.727567'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 247.22470820020169, | |
| 1836.6453276698733 | |
| ], | |
| "name": "r8", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 11 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0", | |
| "name": "x0", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0", | |
| "name": "y0", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "5.758196", | |
| "name": "width", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "0.4", | |
| "name": "height", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('aa-f-2.8791X-Xf2.8791a-f-0.2Y-Yf0.2',float('-2.879098'),float('-0.200000'),float('-inf'),float('2.879098'),float('0.200000'),float('inf'))", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| } | |
| ], | |
| "inspector": [ | |
| 804.51085194612165, | |
| 143.34920634676348 | |
| ], | |
| "name": "r9", | |
| "script": [ | |
| "# Neil Gershenfeld 1/24/15", | |
| "# Matt Keeter 6/11/15", | |
| "", | |
| "import fab", | |
| "", | |
| "title('Rectangle (center)')", | |
| "", | |
| "input('x0', float)", | |
| "input('y0', float)", | |
| "input('width', float)", | |
| "input('height', float)", | |
| "", | |
| "xmin, xmax = x0 - width/2, x0 + width/2", | |
| "ymin, ymax = y0 - height/2, y0 + height/2", | |
| "", | |
| "output('shape', fab.shapes.rectangle(xmin, xmax, ymin, ymax))", | |
| "", | |
| "def drag_hw(this, x, y, z):", | |
| " this.width = abs(2 * (x - this.x0))", | |
| " this.height = abs(2 * (y - this.y0))", | |
| "", | |
| "# UI", | |
| "sb.ui.wireframe(", | |
| " [(xmin, ymin, 0), (xmax, ymin, 0), (xmax, ymax, 0), (xmin, ymax, 0)],", | |
| " close=True)", | |
| "sb.ui.point(x0, y0)", | |
| "sb.ui.point(xmax, ymax, drag=drag_hw, relative=False)", | |
| "" | |
| ], | |
| "uid": 12 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "3", | |
| "name": "x0", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "3.5", | |
| "name": "y0", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.5", | |
| "name": "width", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "8", | |
| "name": "height", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('aa-f2.75X-Xf3.25a-f-0.5Y-Yf7.5',float('2.750000'),float('-0.500000'),float('-inf'),float('3.250000'),float('7.500000'),float('inf'))", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| } | |
| ], | |
| "inspector": [ | |
| 749.54413244842635, | |
| 352.95362504834941 | |
| ], | |
| "name": "r10", | |
| "script": [ | |
| "# Neil Gershenfeld 1/24/15", | |
| "# Matt Keeter 6/11/15", | |
| "", | |
| "import fab", | |
| "", | |
| "title('Rectangle (center)')", | |
| "", | |
| "input('x0', float)", | |
| "input('y0', float)", | |
| "input('width', float)", | |
| "input('height', float)", | |
| "", | |
| "xmin, xmax = x0 - width/2, x0 + width/2", | |
| "ymin, ymax = y0 - height/2, y0 + height/2", | |
| "", | |
| "output('shape', fab.shapes.rectangle(xmin, xmax, ymin, ymax))", | |
| "", | |
| "def drag_hw(this, x, y, z):", | |
| " this.width = abs(2 * (x - this.x0))", | |
| " this.height = abs(2 * (y - this.y0))", | |
| "", | |
| "# UI", | |
| "sb.ui.wireframe(", | |
| " [(xmin, ymin, 0), (xmax, ymin, 0), (xmax, ymax, 0), (xmin, ymax, 0)],", | |
| " close=True)", | |
| "sb.ui.point(x0, y0)", | |
| "sb.ui.point(xmax, ymax, drag=drag_hw, relative=False)", | |
| "" | |
| ], | |
| "uid": 13 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "\u0011[__12.__4,__25.__2]", | |
| "name": "a", | |
| "type": "_fabtypes.Shape", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0imr+qXqZ__m-Xf-0-Yf0-Zf0iaa-f-2.8791X-Xf2.8791a-f-0.2Y-Yf0.2aaa-f2.75X-Xf3.25a-f-0.5Y-Yf7.5nini-*f-3.02015-Xf4.18355*f-0.891279-Yf6.51344i-*f6.21824-Xf3.29227*f-0.378029-Yf3.4933-*f-3.19809-Xf2.91424*f1.26931-Yf9.71154ni-*f-5.58839-Xf3.43948*f0.16482-Yf5.04931i-*f-0.526394-Xf3.6043*f-0.546044-Yf-0.539081-*f6.11478-Xf3.05825*f0.381224-Yf-1.06547mnr+qXqZ__m-Xf-0-Yf0-Zf0iaa-f-2.8791X-Xf2.8791a-f-0.2Y-Yf0.2aaa-f2.75X-Xf3.25a-f-0.5Y-Yf7.5nini-*f-3.02015-Xf4.18355*f-0.891279-Yf6.51344i-*f6.21824-Xf3.29227*f-0.378029-Yf3.4933-*f-3.19809-Xf2.91424*f1.26931-Yf9.71154ni-*f-5.58839-Xf3.43948*f0.16482-Yf5.04931i-*f-0.526394-Xf3.6043*f-0.546044-Yf-0.539081-*f6.11478-Xf3.05825*f0.381224-Yf-1.06547',float('-3.250000'),float('-0.500000'),float('-3.250000'),float('3.250000'),float('7.500000'),float('3.250000'))", | |
| "name": "out", | |
| "type": "_fabtypes.Shape", | |
| "uid": 2 | |
| } | |
| ], | |
| "inspector": [ | |
| 1187.7505668731831, | |
| 321.80434077844865 | |
| ], | |
| "name": "r11", | |
| "script": [ | |
| "# Neil Gershenfeld 2/1/15", | |
| "# Matt Keeter 6/13/15", | |
| "", | |
| "import fab", | |
| "", | |
| "title('Revolve (Y)')", | |
| "", | |
| "input('a', fab.types.Shape)", | |
| "input('x', float)", | |
| "", | |
| "output('out', fab.shapes.revolve_xy_y(a, x))", | |
| "", | |
| "" | |
| ], | |
| "uid": 14 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "\u0011[__14.__2]", | |
| "name": "a", | |
| "type": "_fabtypes.Shape", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "\u0011[__4.__5,__2.__5,__5.__5,__6.__5,__8.__5,__9.__5,__10.__5,__11.__5,__17.__5,__18.__5,__19.__5,__20.__5,__21.__5,__22.__5,__23.__5,__24.__5]", | |
| "name": "b", | |
| "type": "_fabtypes.Shape", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('am-Xf0-Yf0-Zf0imr+qXqZ__m-Xf-0-Yf0-Zf0iaa-f-2.8791X-Xf2.8791a-f-0.2Y-Yf0.2aaa-f2.75X-Xf3.25a-f-0.5Y-Yf7.5nini-*f-3.02015-Xf4.18355*f-0.891279-Yf6.51344i-*f6.21824-Xf3.29227*f-0.378029-Yf3.4933-*f-3.19809-Xf2.91424*f1.26931-Yf9.71154ni-*f-5.58839-Xf3.43948*f0.16482-Yf5.04931i-*f-0.526394-Xf3.6043*f-0.546044-Yf-0.539081-*f6.11478-Xf3.05825*f0.381224-Yf-1.06547mnr+qXqZ__m-Xf-0-Yf0-Zf0iaa-f-2.8791X-Xf2.8791a-f-0.2Y-Yf0.2aaa-f2.75X-Xf3.25a-f-0.5Y-Yf7.5nini-*f-3.02015-Xf4.18355*f-0.891279-Yf6.51344i-*f6.21824-Xf3.29227*f-0.378029-Yf3.4933-*f-3.19809-Xf2.91424*f1.26931-Yf9.71154ni-*f-5.58839-Xf3.43948*f0.16482-Yf5.04931i-*f-0.526394-Xf3.6043*f-0.546044-Yf-0.539081-*f6.11478-Xf3.05825*f0.381224-Yf-1.06547niiiiiiiiiiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0ZY+*f-0X*f1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1ZY+*f-1X*f6.12323e-17Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16ZY+*f-1.22465e-16X*f-1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f-1ZY+*f1X*f6.12323e-17Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f1X*f0ZY+*f-0X*f1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107ZY+*f-0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1ZY+*f-1X*f6.12323e-17Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107ZY+*f-0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107ZY+*f0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107ZY+*f0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107ZY+*f-0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107ZY+*f-0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16ZY+*f-1.22465e-16X*f-1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107ZY+*f0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1ZY+*f1X*f-1.83697e-16Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107ZY+*f0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-3.250000'),float('-0.500000'),float('-3.250000'),float('3.250000'),float('7.500000'),float('3.250000'))", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 2 | |
| } | |
| ], | |
| "inspector": [ | |
| 838.57230061291511, | |
| 2091.419650478771 | |
| ], | |
| "name": "d0", | |
| "script": [ | |
| "import fab.types", | |
| "", | |
| "title('Difference')", | |
| "input('a', fab.types.Shape)", | |
| "input('b', fab.types.Shape)", | |
| "", | |
| "output('shape', a & ~b)", | |
| "" | |
| ], | |
| "uid": 15 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "\u0011[__15.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('am-Xf0-Yf0-Zf0imr+qXqZ__m-Xf-0-Yf0-Zf0iaa-f-2.8791X-Xf2.8791a-f-0.2Y-Yf0.2aaa-f2.75X-Xf3.25a-f-0.5Y-Yf7.5nini-*f-3.02015-Xf4.18355*f-0.891279-Yf6.51344i-*f6.21824-Xf3.29227*f-0.378029-Yf3.4933-*f-3.19809-Xf2.91424*f1.26931-Yf9.71154ni-*f-5.58839-Xf3.43948*f0.16482-Yf5.04931i-*f-0.526394-Xf3.6043*f-0.546044-Yf-0.539081-*f6.11478-Xf3.05825*f0.381224-Yf-1.06547mnr+qXqZ__m-Xf-0-Yf0-Zf0iaa-f-2.8791X-Xf2.8791a-f-0.2Y-Yf0.2aaa-f2.75X-Xf3.25a-f-0.5Y-Yf7.5nini-*f-3.02015-Xf4.18355*f-0.891279-Yf6.51344i-*f6.21824-Xf3.29227*f-0.378029-Yf3.4933-*f-3.19809-Xf2.91424*f1.26931-Yf9.71154ni-*f-5.58839-Xf3.43948*f0.16482-Yf5.04931i-*f-0.526394-Xf3.6043*f-0.546044-Yf-0.539081-*f6.11478-Xf3.05825*f0.381224-Yf-1.06547niiiiiiiiiiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0ZY+*f-0X*f1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1ZY+*f-1X*f6.12323e-17Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16ZY+*f-1.22465e-16X*f-1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f-1ZY+*f1X*f6.12323e-17Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f1X*f0ZY+*f-0X*f1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107ZY+*f-0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1ZY+*f-1X*f6.12323e-17Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107ZY+*f-0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107ZY+*f0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107ZY+*f0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107ZY+*f-0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107ZY+*f-0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16ZY+*f-1.22465e-16X*f-1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107ZY+*f0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1ZY+*f1X*f-1.83697e-16Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107ZY+*f0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-3.250000'),float('-0.500000'),float('-3.250000'),float('3.250000'),float('7.500000'),float('3.250000'))", | |
| "name": "out", | |
| "type": "_fabtypes.Shape", | |
| "uid": 1 | |
| } | |
| ], | |
| "inspector": [ | |
| 1229.2487702847425, | |
| 2270.5147753131241 | |
| ], | |
| "name": "m0", | |
| "script": [ | |
| "import fab", | |
| "", | |
| "title('Mesh (.stl)')", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('out', shape)", | |
| "", | |
| "sb.export.stl(shape)", | |
| "" | |
| ], | |
| "uid": 16 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "-45", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__1.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107ZY+*f0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-5.727567'),float('-31.201508'),float('-5.727567'),float('5.727567'),float('33.236824'),float('5.727567'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 344.58578402796513, | |
| 931.64442583973903 | |
| ], | |
| "name": "r12", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 17 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "-45*3", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__1.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107ZY+*f0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-5.727567'),float('-31.201508'),float('-5.727567'),float('5.727567'),float('33.236824'),float('5.727567'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 354.58578402796519, | |
| 986.6209960206927 | |
| ], | |
| "name": "r13", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 18 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "-45*5", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__1.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107ZY+*f-0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-5.727567'),float('-31.201508'),float('-5.727567'),float('5.727567'),float('33.236824'),float('5.727567'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 341.73533540483538, | |
| 1029.4558247644588 | |
| ], | |
| "name": "r14", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 19 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "-45*7", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__1.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107ZY+*f-0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / 3.550000), (Z / 3.550000) )) * 3.550000;_=((sqrt( ((X / 3.550000))**2 + ((Z / 3.550000))**2 )) - 1) * 3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-5.727567'),float('-31.201508'),float('-5.727567'),float('5.727567'),float('33.236824'),float('5.727567'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 373.8614569626597, | |
| 855.97476835220721 | |
| ], | |
| "name": "r15", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 20 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "45*4", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__7.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16ZY+*f-1.22465e-16X*f-1Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 227.24032807956559, | |
| 2043.6855398911964 | |
| ], | |
| "name": "r16", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 21 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "45*5", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__7.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107ZY+*f0.707107X*f-0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-5.727567'),float('-31.201508'),float('-5.727567'),float('5.727567'),float('33.236824'),float('5.727567'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 201.67722522067129, | |
| 2171.4405245465005 | |
| ], | |
| "name": "r17", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 22 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "45*6", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__7.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1ZY+*f1X*f-1.83697e-16Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-4.050000'),float('-31.201508'),float('-4.050000'),float('4.050000'),float('33.236824'),float('4.050000'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 232.7855234568184, | |
| 2280.5512871545834 | |
| ], | |
| "name": "r18", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 23 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "0.0", | |
| "name": "x", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "_y", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "0.0", | |
| "name": "z", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "45*7", | |
| "name": "a", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "\u0011[__7.__2]", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107ZY+*f0.707107X*f0.707107Zm-Xf-0-Yf0-Zf-0m=(atan2( (X / -3.550000), (Z / -3.550000) )) * -3.550000;_=((sqrt( ((X / -3.550000))**2 + ((Z / -3.550000))**2 )) - 1) * -3.550000;m-Xf0-Yf0-Zf0m+*f0.848048X*f0.529919Y+*f-0.529919X*f0.848048Y_m-Xf-0-Yf-0-Zf0a-r+q-Yf1.2q-Zf0f0.5a-f-60X-Xf60',float('-5.727567'),float('-31.201508'),float('-5.727567'),float('5.727567'),float('33.236824'),float('5.727567'))", | |
| "name": "rotated", | |
| "type": "_fabtypes.Shape", | |
| "uid": 5 | |
| } | |
| ], | |
| "inspector": [ | |
| 207.25594795892943, | |
| 2424.2068085247711 | |
| ], | |
| "name": "r19", | |
| "script": [ | |
| "import fab", | |
| "import math", | |
| "", | |
| "title('Rotate (Y)')", | |
| "", | |
| "input('x', float)", | |
| "input('_y', float)", | |
| "input('z', float)", | |
| "input('a', float)", | |
| "", | |
| "input('shape', fab.types.Shape)", | |
| "output('rotated', fab.shapes.rotate_y(shape, a, x, z))", | |
| "", | |
| "# UI", | |
| "rad = math.radians(a)", | |
| "sb.ui.wireframe([(x + math.cos(rad), _y, z + math.sin(rad)),", | |
| " (x, _y, z),", | |
| " (x + 1, _y, z)], color=sb.color.teal)", | |
| "", | |
| "# Draw a semi-circular arc showing the rotation", | |
| "if int(a) % 360 != 0:", | |
| " sb.ui.wireframe([", | |
| " (x + math.cos(math.radians(a_)) * 0.3, _y,", | |
| " z + math.sin(math.radians(a_)) * 0.3)", | |
| " for a_ in range(int(a) % 360)], color=sb.color.teal)", | |
| "", | |
| "sb.ui.point(x, _y, z, color=sb.color.teal)", | |
| "", | |
| "def drag_pt(this, x, y, z):", | |
| " this.a = math.degrees(math.atan2(z - this.z, x - this.x))", | |
| "sb.ui.point(x + math.cos(rad), _y, z + math.sin(rad),", | |
| " color=sb.color.teal, drag=drag_pt, relative=False)", | |
| "", | |
| "" | |
| ], | |
| "uid": 24 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "3.2922675609588623", | |
| "name": "x0", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "3.493297815322876", | |
| "name": "y0", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "4.183546662330627", | |
| "name": "x1", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "6.513443470001221", | |
| "name": "y1", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "2.914238691329956", | |
| "name": "x2", | |
| "type": "float", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "9.711536407470703", | |
| "name": "y2", | |
| "type": "float", | |
| "uid": 5 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('ni-*f-3.02015-Xf4.18355*f-0.891279-Yf6.51344i-*f6.21824-Xf3.29227*f-0.378029-Yf3.4933-*f-3.19809-Xf2.91424*f1.26931-Yf9.71154',float('2.914239'),float('3.493298'),float('-inf'),float('4.183547'),float('9.711536'),float('inf'))", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 6 | |
| } | |
| ], | |
| "inspector": [ | |
| 747.85349920446652, | |
| 559.87585654728593 | |
| ], | |
| "name": "t0", | |
| "script": [ | |
| "import fab", | |
| "", | |
| "title('Triangle')", | |
| "", | |
| "input('x0', float)", | |
| "input('y0', float)", | |
| "input('x1', float)", | |
| "input('y1', float)", | |
| "input('x2', float)", | |
| "input('y2', float)", | |
| "", | |
| "output('shape', fab.shapes.triangle(x0, y0, x1, y1, x2, y2))", | |
| "", | |
| "# UI", | |
| "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0), (x2, y2, 0)], close=True)", | |
| "sb.ui.point(x0, y0, 0)", | |
| "sb.ui.point(x1, y1, 0)", | |
| "sb.ui.point(x2, y2, 0)", | |
| "" | |
| ], | |
| "uid": 26 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "\u0011[__13.__4]", | |
| "name": "a", | |
| "type": "_fabtypes.Shape", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "\u0011[__26.__6,__27.__6]", | |
| "name": "b", | |
| "type": "_fabtypes.Shape", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('aaa-f2.75X-Xf3.25a-f-0.5Y-Yf7.5nini-*f-3.02015-Xf4.18355*f-0.891279-Yf6.51344i-*f6.21824-Xf3.29227*f-0.378029-Yf3.4933-*f-3.19809-Xf2.91424*f1.26931-Yf9.71154ni-*f-5.58839-Xf3.43948*f0.16482-Yf5.04931i-*f-0.526394-Xf3.6043*f-0.546044-Yf-0.539081-*f6.11478-Xf3.05825*f0.381224-Yf-1.06547',float('2.750000'),float('-0.500000'),float('-inf'),float('3.250000'),float('7.500000'),float('inf'))", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 2 | |
| } | |
| ], | |
| "inspector": [ | |
| 1148.1512130643619, | |
| 511.19099945621764 | |
| ], | |
| "name": "d1", | |
| "script": [ | |
| "import fab.types", | |
| "", | |
| "title('Difference')", | |
| "input('a', fab.types.Shape)", | |
| "input('b', fab.types.Shape)", | |
| "", | |
| "output('shape', a & ~b)", | |
| "" | |
| ], | |
| "uid": 25 | |
| }, | |
| { | |
| "datums": [ | |
| { | |
| "expr": "3.604296922683716", | |
| "name": "x0", | |
| "type": "float", | |
| "uid": 0 | |
| }, | |
| { | |
| "expr": "-0.5390806198120117", | |
| "name": "y0", | |
| "type": "float", | |
| "uid": 1 | |
| }, | |
| { | |
| "expr": "3.4394770860671997", | |
| "name": "x1", | |
| "type": "float", | |
| "uid": 2 | |
| }, | |
| { | |
| "expr": "5.04930579662323", | |
| "name": "y1", | |
| "type": "float", | |
| "uid": 3 | |
| }, | |
| { | |
| "expr": "3.058253049850464", | |
| "name": "x2", | |
| "type": "float", | |
| "uid": 4 | |
| }, | |
| { | |
| "expr": "-1.0654749870300293", | |
| "name": "y2", | |
| "type": "float", | |
| "uid": 5 | |
| }, | |
| { | |
| "expr": "\u0012fab.types.Shape('ni-*f-5.58839-Xf3.43948*f0.16482-Yf5.04931i-*f-0.526394-Xf3.6043*f-0.546044-Yf-0.539081-*f6.11478-Xf3.05825*f0.381224-Yf-1.06547',float('3.058253'),float('-1.065475'),float('-inf'),float('3.604297'),float('5.049306'),float('inf'))", | |
| "name": "shape", | |
| "type": "_fabtypes.Shape", | |
| "uid": 6 | |
| } | |
| ], | |
| "inspector": [ | |
| 779.49121346716367, | |
| 628.02721362828436 | |
| ], | |
| "name": "t1", | |
| "script": [ | |
| "import fab", | |
| "", | |
| "title('Triangle')", | |
| "", | |
| "input('x0', float)", | |
| "input('y0', float)", | |
| "input('x1', float)", | |
| "input('y1', float)", | |
| "input('x2', float)", | |
| "input('y2', float)", | |
| "", | |
| "output('shape', fab.shapes.triangle(x0, y0, x1, y1, x2, y2))", | |
| "", | |
| "# UI", | |
| "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0), (x2, y2, 0)], close=True)", | |
| "sb.ui.point(x0, y0, 0)", | |
| "sb.ui.point(x1, y1, 0)", | |
| "sb.ui.point(x2, y2, 0)", | |
| "" | |
| ], | |
| "uid": 27 | |
| } | |
| ], | |
| "protocol": 6, | |
| "type": "sb" | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment