{ "nodes": [ { "datums": [ { "expr": ".167", "name": "thick", "type": "float", "uid": 0 }, { "expr": "1.5", "name": "width", "type": "float", "uid": 2 }, { "expr": ".2", "name": "length", "type": "float", "uid": 1 }, { "expr": "-.01", "name": "clear", "type": "float", "uid": 3 }, { "expr": "0.04", "name": "flex", "type": "float", "uid": 4 }, { "expr": "0.5", "name": "mouthGain", "type": "float", "uid": 5 }, { "expr": "4", "name": "numSides", "type": "int", "uid": 7 }, { "expr": "\u00120.7500000000000001", "name": "radiusToEdge", "type": "float", "uid": 8 }, { "expr": "\u00121.0606601717798214", "name": "radiusToCorner", "type": "float", "uid": 6 }, { "expr": "\u00122.6516504294495533", "name": "gridSizeX", "type": "float", "uid": 9 }, { "expr": "\u00124.242640687119286", "name": "gridSizeY", "type": "float", "uid": 11 } ], "inspector": [ -377.01971004637915, -852.10054306036727 ], "name": "var", "script": [ "import fab", "import math", "", "title('variables')", "input('thick', float)", "input('width', float)", "input('length', float)", "input('clear', float)", "input('flex', float)", "input('mouthGain', float)", "input('numSides', int)", "", "radiusToEdge = width / (2 * math.tan(math.pi / numSides))", "radiusToCorner = width / (2 * math.sin(math.pi / numSides))", "", "output('radiusToEdge', radiusToEdge)", "output('radiusToCorner', radiusToCorner)", "output('gridSizeX', radiusToCorner * 2.5)", "output('gridSizeY', radiusToCorner * 4.0)" ], "uid": 1 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge+var.length/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "var.length", "name": "width", "type": "float", "uid": 2 }, { "expr": "var.thick+2*var.clear", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.073500'),float('-inf'),float('-0.550000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1073.0435109631076, 121.16491654372203 ], "name": "slot0", "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": 2 }, { "datums": [ { "expr": "0", "name": "x", "type": "float", "uid": 0 }, { "expr": "0", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ -375.95796404253821, -358.56005437348301 ], "name": "p0", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 3 }, { "datums": [ { "expr": "var.gridSizeX", "name": "x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 24.938824522137566, -362.88416922817578 ], "name": "p1", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 11 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__13.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf2.65165-Yf0-Zf0m-Xf0-Yf0-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735a-f-0.0835Z-Zf0.0835',float('1.901650'),float('-0.750000'),float('-0.083500'),float('3.401650'),float('0.750000'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 27.259850071838741, 61.175943759550591 ], "name": "pressfit3", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 12 }, { "datums": [ { "expr": "pressfit2.out", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "p0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "p0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "p1.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "p1.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0m-Xf0-Yf0-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735',float('1.901650'),float('-0.750000'),float('-inf'),float('3.401650'),float('0.750000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 27.01517011801036, -224.47180604440109 ], "name": "s1", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "" ], "uid": 13 }, { "datums": [ { "expr": "var.gridSizeX", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 31.197871343062843, 1049.9732729248253 ], "name": "q1", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 25 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__37.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf2.65165-Yf0-Zf0m-Xf0-Yf-4.24264-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('1.901650'),float('-4.992640'),float('-0.083500'),float('3.401650'),float('-3.492640'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 33.518896892764133, 1474.0333859125512 ], "name": "chamfer3", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 29 }, { "datums": [ { "expr": "0", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ -369.69891722161287, 1054.297387779518 ], "name": "q0", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 35 }, { "datums": [ { "expr": "chamfer2.out", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "q0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "q0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "q1.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "q1.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0m-Xf0-Yf-4.24264-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('1.901650'),float('-4.992640'),float('-inf'),float('3.401650'),float('-3.492640'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 31.65853008974409, 1188.3856361086 ], "name": "s5", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "" ], "uid": 37 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge+var.thick / 2 * (1 + var.mouthGain)", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y-var.thick / 2 * (1 + var.mouthGain)", "name": "y1", "type": "float", "uid": 3 }, { "expr": "a0.x-var.radiusToEdge", "name": "x2", "type": "float", "uid": 4 }, { "expr": "a0.y+var.thick / 2 * (1 + var.mouthGain)", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.125250'),float('-inf'),float('-0.624750'),float('0.125250'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -1431.14959964422, 574.52491984806784 ], "name": "slotMouth0", "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": 41 }, { "datums": [ { "expr": "slot0.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__41.__6]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.125250'),float('-inf'),float('-0.550000'),float('0.125250'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1076.4802135272885, 572.14322611830812 ], "name": "slot1", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 42 }, { "datums": [ { "expr": "bistable2.out", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "n0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "n0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "n1.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "n1.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0m-Xf0-Yf-8.48528-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735',float('1.901650'),float('-9.235280'),float('-inf'),float('3.401650'),float('-7.735280'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 45.876190122452726, 2552.2545066080811 ], "name": "s8", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "" ], "uid": 43 }, { "datums": [ { "expr": "slot0.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "a0.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "a0.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.073500'),float('-inf'),float('-0.550000'),float('0.073500'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ -1722.8961639643103, 1011.932609644176 ], "name": "s9", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "" ], "uid": 46 }, { "datums": [ { "expr": "var.gridSizeX", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 2", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 45.415531375771479, 2413.8421434243064 ], "name": "n1", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 48 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__43.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf2.65165-Yf0-Zf0m-Xf0-Yf-8.48528-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735a-f-0.0835Z-Zf0.0835',float('1.901650'),float('-9.235280'),float('-0.083500'),float('3.401650'),float('-7.735280'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 47.736556925472769, 2837.9022564120323 ], "name": "bistable3", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 50 }, { "datums": [ { "expr": "\u0011[__66.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__65.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.073500'),float('-inf'),float('-0.350000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1085.1456108121183, 1331.9766636486393 ], "name": "slot2", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 56 }, { "datums": [ { "expr": "0.0", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 2", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ -347.9203686587673, 2397.1895557850148 ], "name": "n0", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 52 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge+2*var.length-var.thick", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y-var.thick/2-var.clear", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+2*var.length", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735',float('-0.517000'),float('-0.073500'),float('-inf'),float('-0.350000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1403.2122360633198, 1403.8808668844488 ], "name": "r15", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('shape', fab.shapes.rectangle(x0, x1, y0, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y0, 0),", " (x1, y1, 0), (x0, y1, 0)], close=True)", "sb.ui.point(x0, y0)", "sb.ui.point(x1, y1)", "", "" ], "uid": 65 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y+var.thick/4", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+var.thick", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735',float('-0.750000'),float('0.041750'),float('-inf'),float('-0.583000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -2093.3231348569625, 1012.5069883479323 ], "name": "r16", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('shape', fab.shapes.rectangle(x0, x1, y0, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y0, 0),", " (x1, y1, 0), (x0, y1, 0)], close=True)", "sb.ui.point(x0, y0)", "sb.ui.point(x1, y1)", "", "" ], "uid": 61 }, { "datums": [ { "expr": "\u0011[__46.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__71.__2]", "name": "b1", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0011[__67.__4]", "name": "b2", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175',float('-0.750000'),float('-0.073500'),float('-inf'),float('-0.550000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1406.5945238099027, 1220.4726659607531 ], "name": "d9", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b1', fab.types.Shape)", "input('b2', fab.types.Shape)", "", "output('shape', a & ~b1 & ~b2)", "" ], "uid": 66 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_z", "type": "float", "uid": 2 }, { "expr": "\u0011[__71.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175',float('-0.750000'),float('-0.073500'),float('-inf'),float('-0.583000'),float('-0.041750'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1726.2363024700942, 1431.1487861239477 ], "name": "r17", "script": [ "import fab", "", "title('Reflect (Y)')", "", "input('_x', float)", "input('y0', float)", "input('_z', float)", "", "input('shape', fab.types.Shape)", "output('reflected', fab.shapes.reflect_y(shape, y0))", "", "# UI", "", "sb.ui.point(_x, y0, _z, color=sb.color.teal)", "", "" ], "uid": 67 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y+var.thick/4", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear", "name": "y1", "type": "float", "uid": 3 }, { "expr": "a0.x-var.radiusToEdge+var.thick/4", "name": "x2", "type": "float", "uid": 4 }, { "expr": "a0.y+var.thick/4", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175',float('-0.750000'),float('0.041750'),float('-inf'),float('-0.708250'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -2091.0480545887476, 1264.2866766744878 ], "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": 69 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge+var.thick", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y+var.thick/4", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+var.thick", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear", "name": "y1", "type": "float", "uid": 3 }, { "expr": "a0.x-var.radiusToEdge+.75*var.thick", "name": "x2", "type": "float", "uid": 4 }, { "expr": "a0.y+var.thick/4", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175',float('-0.624750'),float('0.041750'),float('-inf'),float('-0.583000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -2092.1754838376082, 1560.8005691249559 ], "name": "t2", "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": 70 }, { "datums": [ { "expr": "\u0011[__61.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__69.__6]", "name": "b1", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0011[__70.__6]", "name": "b2", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175',float('-0.750000'),float('0.041750'),float('-inf'),float('-0.583000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1725.7609779577533, 1249.6300964392935 ], "name": "d11", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b1', fab.types.Shape)", "input('b2', fab.types.Shape)", "", "output('shape', a & ~b1 & ~b2)", "" ], "uid": 71 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_z", "type": "float", "uid": 2 }, { "expr": "\u0011[__74.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175',float('-0.750000'),float('-0.073500'),float('-inf'),float('-0.583000'),float('-0.041750'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1725.4942535013281, 2537.396874088593 ], "name": "r18", "script": [ "import fab", "", "title('Reflect (Y)')", "", "input('_x', float)", "input('y0', float)", "input('_z', float)", "", "input('shape', fab.types.Shape)", "output('reflected', fab.shapes.reflect_y(shape, y0))", "", "# UI", "", "sb.ui.point(_x, y0, _z, color=sb.color.teal)", "", "" ], "uid": 73 }, { "datums": [ { "expr": "\u0011[__83.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__76.__6]", "name": "b1", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0011[__95.__6]", "name": "b2", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175',float('-0.750000'),float('0.041750'),float('-inf'),float('-0.583000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1723.838856388526, 2355.5033462735428 ], "name": "d13", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b1', fab.types.Shape)", "input('b2', fab.types.Shape)", "", "output('shape', a & ~b1 & ~b2)", "" ], "uid": 74 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y+var.thick/4", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear", "name": "y1", "type": "float", "uid": 3 }, { "expr": "a0.x-var.radiusToEdge+var.thick/4", "name": "x2", "type": "float", "uid": 4 }, { "expr": "a0.y+var.thick/4", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175',float('-0.750000'),float('0.041750'),float('-inf'),float('-0.708250'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -2089.1259330195198, 2370.1599265087352 ], "name": "t3", "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": 76 }, { "datums": [ { "expr": "0.0", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 3", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ -331.28411510608771, 3731.1221395445982 ], "name": "m0", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 77 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y+var.thick/4", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+var.thick", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735',float('-0.750000'),float('0.041750'),float('-inf'),float('-0.583000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -2091.4010132877347, 2118.3802381821815 ], "name": "r21", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('shape', fab.shapes.rectangle(x0, x1, y0, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y0, 0),", " (x1, y1, 0), (x0, y1, 0)], close=True)", "sb.ui.point(x0, y0)", "sb.ui.point(x1, y1)", "", "" ], "uid": 83 }, { "datums": [ { "expr": "\u0011[__92.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__100.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0011[__105.__2]", "name": "c", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('iiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('-0.750000'),float('-0.193500'),float('-inf'),float('-0.350000'),float('0.193500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1118.4869946220938, 2684.6944511373108 ], "name": "slot3", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "input('c', fab.types.Shape)", "", "output('shape', a | b | c)", "" ], "uid": 84 }, { "datums": [ { "expr": "flexure2.out", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "m0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "m0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "m1.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "m1.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0m-Xf0-Yf-12.7279-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('1.901650'),float('-13.477900'),float('-inf'),float('3.401650'),float('-11.977900'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 62.512443675132317, 3886.1870903676654 ], "name": "s14", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "" ], "uid": 87 }, { "datums": [ { "expr": "slot0.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "p0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "p0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "a0.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "a0.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.073500'),float('-inf'),float('-0.550000'),float('0.073500'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ -1720.974042395083, 2117.8058594784261 ], "name": "s15", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "" ], "uid": 88 }, { "datums": [ { "expr": "var.gridSizeX", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 3", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 62.05178492845107, 3747.7747271838898 ], "name": "m1", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 89 }, { "datums": [ { "expr": "\u0011[__88.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__74.__2]", "name": "b1", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0011[__73.__4]", "name": "b2", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175',float('-0.750000'),float('-0.073500'),float('-inf'),float('-0.550000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1420.3727417619859, 2389.2234219763081 ], "name": "d18", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b1', fab.types.Shape)", "input('b2', fab.types.Shape)", "", "output('shape', a & ~b1 & ~b2)", "" ], "uid": 92 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge+var.thick", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y+var.thick/4", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+var.thick", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear", "name": "y1", "type": "float", "uid": 3 }, { "expr": "a0.x-var.radiusToEdge+.75*var.thick", "name": "x2", "type": "float", "uid": 4 }, { "expr": "a0.y+var.thick/4", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175',float('-0.624750'),float('0.041750'),float('-inf'),float('-0.583000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -2090.2533622683804, 2666.6738189592033 ], "name": "t4", "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": 95 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__87.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf2.65165-Yf0-Zf0m-Xf0-Yf-12.7279-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135a-f-0.0835Z-Zf0.0835',float('1.901650'),float('-13.477900'),float('-0.083500'),float('3.401650'),float('-11.977900'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 64.37281047815236, 4171.8348401716166 ], "name": "flexure3", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 97 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge+2*var.length-var.thick", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y-var.thick/2-var.clear", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+2*var.length", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735',float('-0.517000'),float('-0.073500'),float('-inf'),float('-0.350000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1421.1391017070741, 2672.7365967660253 ], "name": "r24", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('shape', fab.shapes.rectangle(x0, x1, y0, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y0, 0),", " (x1, y1, 0), (x0, y1, 0)], close=True)", "sb.ui.point(x0, y0)", "sb.ui.point(x1, y1)", "", "" ], "uid": 100 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y+var.thick/2+var.clear+var.flex", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+var.length", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear+3*var.flex", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935',float('-0.750000'),float('0.113500'),float('-inf'),float('-0.550000'),float('0.193500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -2092.8073493624106, 2998.878478001528 ], "name": "r26", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('shape', fab.shapes.rectangle(x0, x1, y0, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y0, 0),", " (x1, y1, 0), (x0, y1, 0)], close=True)", "sb.ui.point(x0, y0)", "sb.ui.point(x1, y1)", "", "" ], "uid": 103 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_z", "type": "float", "uid": 2 }, { "expr": "\u0011[__108.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('-0.750000'),float('-0.193500'),float('-inf'),float('-0.550000'),float('-0.113500'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1725.6263062136409, 3146.9007185009818 ], "name": "r27", "script": [ "import fab", "", "title('Reflect (Y)')", "", "input('_x', float)", "input('y0', float)", "input('_z', float)", "", "input('shape', fab.types.Shape)", "output('reflected', fab.shapes.reflect_y(shape, y0))", "", "# UI", "", "sb.ui.point(_x, y0, _z, color=sb.color.teal)", "", "" ], "uid": 104 }, { "datums": [ { "expr": "\u0011[__108.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__104.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('-0.750000'),float('-0.193500'),float('-inf'),float('-0.550000'),float('0.193500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1419.2501158829266, 3023.3325447780153 ], "name": "u11", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 105 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge+var.length", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y+var.thick/2+var.clear+var.flex", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+var.length", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2+var.clear+2*var.flex", "name": "y1", "type": "float", "uid": 3 }, { "expr": "a0.x-var.radiusToEdge+var.length-var.flex", "name": "x2", "type": "float", "uid": 4 }, { "expr": "a0.y+var.thick/2+var.clear+var.flex", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('-0.590000'),float('0.113500'),float('-inf'),float('-0.550000'),float('0.153500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -2092.3420713172627, 3249.6005138351793 ], "name": "t5", "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": 107 }, { "datums": [ { "expr": "\u0011[__103.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__107.__6]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('-0.750000'),float('0.113500'),float('-inf'),float('-0.550000'),float('0.193500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1725.5873225353332, 3009.7103131190402 ], "name": "d20", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 108 }, { "datums": [ { "expr": "pin2.out", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "l0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "l0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "l1.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "l1.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0m-Xf0-Yf-16.9706-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('1.901650'),float('-17.720600'),float('-inf'),float('3.401650'),float('-16.220600'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 67.220734653194199, 5227.8801451555128 ], "name": "s18", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "" ], "uid": 110 }, { "datums": [ { "expr": "0", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 4", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ -332.30784282021671, 5093.7918968264303 ], "name": "l0", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 115 }, { "datums": [ { "expr": "var.gridSizeX", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 4", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 66.76007590651318, 5089.4677819717372 ], "name": "l1", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 117 }, { "datums": [ { "expr": "slot1.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__128.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0011[__131.__4]", "name": "c", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0011[__133.__4]", "name": "d", "type": "_fabtypes.Shape", "uid": 5 }, { "expr": "\u0012fab.types.Shape('iiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('-0.750000'),float('-0.208750'),float('-inf'),float('-0.216500'),float('0.208750'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -1368.6603570599968, 4199.3953593564802 ], "name": "slot4", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "input('c', fab.types.Shape)", "input('d', fab.types.Shape)", "", "output('shape', a | b | c | d)", "" ], "uid": 119 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__110.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf2.65165-Yf0-Zf0m-Xf0-Yf-16.9706-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875a-f-0.0835Z-Zf0.0835',float('1.901650'),float('-17.720600'),float('-0.083500'),float('3.401650'),float('-16.220600'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 69.081101456214242, 5513.5278949594658 ], "name": "pin3", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 123 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge+var.length*.75-var.thick/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y-1.25*var.thick", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+var.length*.75+var.thick/2", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+1.25*var.thick", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875',float('-0.683500'),float('-0.208750'),float('-inf'),float('-0.516500'),float('0.208750'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1679.591339089144, 4197.4413601598726 ], "name": "r33", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('shape', fab.shapes.rectangle(x0, x1, y0, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y0, 0),", " (x1, y1, 0), (x0, y1, 0)], close=True)", "sb.ui.point(x0, y0)", "sb.ui.point(x1, y1)", "", "" ], "uid": 131 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y-var.thick/2", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+var.length*1.5", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+var.thick/2", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835',float('-0.750000'),float('-0.083500'),float('-inf'),float('-0.450000'),float('0.083500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1682.549633537089, 3975.1921186651562 ], "name": "r35", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('shape', fab.shapes.rectangle(x0, x1, y0, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y0, 0),", " (x1, y1, 0), (x0, y1, 0)], close=True)", "sb.ui.point(x0, y0)", "sb.ui.point(x1, y1)", "", "" ], "uid": 128 }, { "datums": [ { "expr": "a0.x-var.radiusToEdge+var.length*2.25-var.thick/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y-1.25*var.thick", "name": "y0", "type": "float", "uid": 1 }, { "expr": "a0.x-var.radiusToEdge+var.length*2.25+var.thick/2", "name": "x1", "type": "float", "uid": 2 }, { "expr": "a0.y+1.25*var.thick", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('-0.383500'),float('-0.208750'),float('-inf'),float('-0.216500'),float('0.208750'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1678.6475270196138, 4467.7792564067222 ], "name": "r34", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('shape', fab.shapes.rectangle(x0, x1, y0, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y0, 0),", " (x1, y1, 0), (x0, y1, 0)], close=True)", "sb.ui.point(x0, y0)", "sb.ui.point(x1, y1)", "", "" ], "uid": 133 }, { "datums": [ { "expr": "0", "name": "x", "type": "float", "uid": 0 }, { "expr": "0", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ -1071.5945851496776, -354.52475802927529 ], "name": "a0", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 16 }, { "datums": [ { "expr": "slot0.shape", "name": "shape0", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "slot1.shape", "name": "shape1", "type": "_fabtypes.Shape", "uid": 2 }, { "expr": "slot2.shape", "name": "shape2", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "slot3.shape", "name": "shape3", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "slot4.shape", "name": "shape4", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ -1075.1409559679787, -214.90151816261641 ], "name": "slots", "script": [ "import fab", "", "title('Shape List')", "input('shape0', fab.types.Shape)", "input('shape1', fab.types.Shape)", "input('shape2', fab.types.Shape)", "input('shape3', fab.types.Shape)", "input('shape4', fab.types.Shape)", "" ], "uid": 17 }, { "datums": [ { "expr": "var.gridSizeX * 2", "name": "x", "type": "float", "uid": 0 }, { "expr": "0", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 629.71829479930716, -360.39953786632032 ], "name": "p2", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 30 }, { "datums": [ { "expr": "p2.x - var0.width/4", "name": "x0", "type": "float", "uid": 0 }, { "expr": "p2.y - var0.width", "name": "y0", "type": "float", "uid": 1 }, { "expr": "var0.width/2", "name": "width", "type": "float", "uid": 2 }, { "expr": "var0.width * 3", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f4.5533X-Xf5.3033a-f-3.75Y-Yf0.75',float('4.553301'),float('-3.750000'),float('-inf'),float('5.303301'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 632.39300399805813, 1034.4895784360158 ], "name": "tile0", "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": 24 }, { "datums": [ { "expr": "slots.shape0", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "p2.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "p2.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf5.3033-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735',float('4.553300'),float('-0.073500'),float('-inf'),float('4.753300'),float('0.073500'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 630.12730343450619, -208.50230436572329 ], "name": "sl5", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 31 }, { "datums": [ { "expr": "slots.shape1", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "p2.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "p2.y - 0.5 * var0.width", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf5.3033-Yf-0.75-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('4.553300'),float('-0.875250'),float('-inf'),float('4.753300'),float('-0.624750'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 630.58779172180073, 33.769180123806649 ], "name": "s0", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 21 }, { "datums": [ { "expr": "a0.x-var0.width/2+var0.length/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "var0.length", "name": "width", "type": "float", "uid": 2 }, { "expr": "var0.thick+2*var0.clear", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.55a-f-0.0635Y-Yf0.0635',float('-0.750000'),float('-0.063500'),float('-inf'),float('-0.550000'),float('0.063500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 626.34394678433955, -696.7164895225601 ], "name": "v0slot", "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": 38 }, { "datums": [ { "expr": ".167", "name": "thick", "type": "float", "uid": 0 }, { "expr": "1.5", "name": "width", "type": "float", "uid": 2 }, { "expr": ".2", "name": "length", "type": "float", "uid": 1 }, { "expr": "-.02", "name": "clear", "type": "float", "uid": 3 }, { "expr": "0.02", "name": "flex", "type": "float", "uid": 4 } ], "inspector": [ 625.73825303049534, -925.46755673420785 ], "name": "var0", "script": [ "import fab", "", "title('variables')", "input('thick', float)", "input('width', float)", "input('length', float)", "input('clear', float)", "input('flex', float)" ], "uid": 40 }, { "datums": [ { "expr": "a0.x-var1.width/2+var1.length/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "var1.length", "name": "width", "type": "float", "uid": 2 }, { "expr": "var1.thick+2*var1.clear", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.073500'),float('-inf'),float('-0.550000'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 906.97132489098794, -695.54129533038531 ], "name": "v1slot", "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": 49 }, { "datums": [ { "expr": ".167", "name": "thick", "type": "float", "uid": 0 }, { "expr": "1.5", "name": "width", "type": "float", "uid": 2 }, { "expr": ".2", "name": "length", "type": "float", "uid": 1 }, { "expr": "-.01", "name": "clear", "type": "float", "uid": 3 }, { "expr": "0.02", "name": "flex", "type": "float", "uid": 4 } ], "inspector": [ 904.89483016917211, -922.8215615740628 ], "name": "var1", "script": [ "import fab", "", "title('variables')", "input('thick', float)", "input('width', float)", "input('length', float)", "input('clear', float)", "input('flex', float)" ], "uid": 51 }, { "datums": [ { "expr": ".167", "name": "thick", "type": "float", "uid": 0 }, { "expr": "1.5", "name": "width", "type": "float", "uid": 2 }, { "expr": ".2", "name": "length", "type": "float", "uid": 1 }, { "expr": ".00", "name": "clear", "type": "float", "uid": 3 }, { "expr": "0.02", "name": "flex", "type": "float", "uid": 4 } ], "inspector": [ 1178.4638102117628, -918.40915867015019 ], "name": "var2", "script": [ "import fab", "", "title('variables')", "input('thick', float)", "input('width', float)", "input('length', float)", "input('clear', float)", "input('flex', float)" ], "uid": 53 }, { "datums": [ { "expr": ".167", "name": "thick", "type": "float", "uid": 0 }, { "expr": "1.5", "name": "width", "type": "float", "uid": 2 }, { "expr": ".2", "name": "length", "type": "float", "uid": 1 }, { "expr": ".01", "name": "clear", "type": "float", "uid": 3 }, { "expr": "0.02", "name": "flex", "type": "float", "uid": 4 } ], "inspector": [ 1452.0327902543518, -915.46755673420785 ], "name": "var3", "script": [ "import fab", "", "title('variables')", "input('thick', float)", "input('width', float)", "input('length', float)", "input('clear', float)", "input('flex', float)" ], "uid": 55 }, { "datums": [ { "expr": ".167", "name": "thick", "type": "float", "uid": 0 }, { "expr": "1.5", "name": "width", "type": "float", "uid": 2 }, { "expr": ".2", "name": "length", "type": "float", "uid": 1 }, { "expr": ".02", "name": "clear", "type": "float", "uid": 3 }, { "expr": "0.02", "name": "flex", "type": "float", "uid": 4 } ], "inspector": [ 1721.1893673930294, -915.46755673420785 ], "name": "var4", "script": [ "import fab", "", "title('variables')", "input('thick', float)", "input('width', float)", "input('length', float)", "input('clear', float)", "input('flex', float)" ], "uid": 57 }, { "datums": [ { "expr": "a0.x-var2.width/2+var2.length/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "var2.length", "name": "width", "type": "float", "uid": 2 }, { "expr": "var2.thick+2*var2.clear", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.55a-f-0.0835Y-Yf0.0835',float('-0.750000'),float('-0.083500'),float('-inf'),float('-0.550000'),float('0.083500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 1183.7638645308584, -695.60893833566388 ], "name": "v2slot", "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": 60 }, { "datums": [ { "expr": "a0.x-var3.width/2+var0.length/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "var3.length", "name": "width", "type": "float", "uid": 2 }, { "expr": "var3.thick+2*var3.clear", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.55a-f-0.0935Y-Yf0.0935',float('-0.750000'),float('-0.093500'),float('-inf'),float('-0.550000'),float('0.093500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 1460.5564041707289, -696.93503671660164 ], "name": "v3slot", "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": 62 }, { "datums": [ { "expr": "a0.x-var4.width/2+var4.length/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "var4.length", "name": "width", "type": "float", "uid": 2 }, { "expr": "var4.thick+2*var4.clear", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf-0.55a-f-0.1035Y-Yf0.1035',float('-0.750000'),float('-0.103500'),float('-inf'),float('-0.550000'),float('0.103500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 1736.0904884349397, -699.51959047319951 ], "name": "v4slot", "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": 78 }, { "datums": [ { "expr": "slots.shape2", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "p2.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "p2.y - 1.0 * var0.width", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf5.3033-Yf-1.5-Zf0iaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735',float('4.553300'),float('-1.573500'),float('-inf'),float('4.953300'),float('-1.426500'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 636.81242559482132, 279.10033537218311 ], "name": "s2", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 81 }, { "datums": [ { "expr": "slots.shape3", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "p2.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "p2.y - 1.5 * var0.width", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf5.3033-Yf-2.25-Zf0iiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('4.553300'),float('-2.443500'),float('-inf'),float('4.953300'),float('-2.056500'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 640.52014871652261, 525.68994599621931 ], "name": "s3", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 86 }, { "datums": [ { "expr": "slots.shape4", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "p2.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "p2.y - 2.0 * var0.width", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf5.3033-Yf-3-Zf0iiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('4.553300'),float('-3.208750'),float('-inf'),float('5.086800'),float('-2.791250'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 640.4525057112445, 767.24573511761639 ], "name": "s4", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 91 }, { "datums": [ { "expr": "\u0011[__24.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__198.__2]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f4.5533X-Xf5.3033a-f-3.75Y-Yf0.75niiiim-Xf5.3033-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-0.75-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf5.3033-Yf-1.5-Zf0iaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-2.25-Zf0iiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf5.3033-Yf-3-Zf0iiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('4.553301'),float('-3.750000'),float('-inf'),float('5.303301'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 938.06915075663562, 1034.8453099734361 ], "name": "fiveSlots", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 99 }, { "datums": [ { "expr": "fiveSlots.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "p2.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "p2.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "p3.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "p3.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0aaa-f4.5533X-Xf5.3033a-f-3.75Y-Yf0.75niiiim-Xf5.3033-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-0.75-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf5.3033-Yf-1.5-Zf0iaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-2.25-Zf0iiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf5.3033-Yf-3-Zf0iiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('7.204951'),float('-3.750000'),float('-inf'),float('7.954951'),float('0.750000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1311.2747399289515, -244.2316643389272 ], "name": "s7", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "" ], "uid": 111 }, { "datums": [ { "expr": "var.gridSizeX * 3", "name": "x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 1316.147155719118, -356.32157237889805 ], "name": "p3", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 112 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__111.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf2.65165-Yf0-Zf0aaa-f4.5533X-Xf5.3033a-f-3.75Y-Yf0.75niiiim-Xf5.3033-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-0.75-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf5.3033-Yf-1.5-Zf0iaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-2.25-Zf0iiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf5.3033-Yf-3-Zf0iiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875a-f-0.0835Z-Zf0.0835',float('7.204951'),float('-3.750000'),float('-0.083500'),float('7.954951'),float('0.750000'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1311.5194198827799, 41.416085465024935 ], "name": "pressfit0", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 113 }, { "datums": [ { "expr": "\u0011[__113.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf2.65165-Yf0-Zf0aaa-f4.5533X-Xf5.3033a-f-3.75Y-Yf0.75niiiim-Xf5.3033-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-0.75-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf5.3033-Yf-1.5-Zf0iaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-2.25-Zf0iiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf5.3033-Yf-3-Zf0iiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875a-f-0.0835Z-Zf0.0835',float('7.204951'),float('-3.750000'),float('-0.083500'),float('7.954951'),float('0.750000'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1609.3545986918821, 72.882672171951981 ], "name": "h0", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 116 }, { "datums": [ { "expr": "\u0011[__120.__6]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "slots.shape1", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -370.42458163648382, 1466.9593860101736 ], "name": "d28", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 122 }, { "datums": [ { "expr": "0.0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "-var.radiusToEdge", "name": "x1", "type": "float", "uid": 2 }, { "expr": "-var.width/2", "name": "y1", "type": "float", "uid": 3 }, { "expr": "-var.radiusToEdge", "name": "x2", "type": "float", "uid": 4 }, { "expr": "var.width/2", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -371.22562466346824, 1191.8230737763802 ], "name": "t6", "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": 120 }, { "datums": [ { "expr": "\u0011[__122.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y", "type": "float", "uid": 2 }, { "expr": "var.numSides", "name": "n", "type": "int", "uid": 3 }, { "expr": "\u0012fab.types.Shape('iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -369.51994359048274, 1641.3473581688127 ], "name": "a1", "script": [ "import fab", "import math", "", "title('Array (polar)')", "", "input('shape', fab.types.Shape)", "input('x', float)", "input('y', float)", "input('n', int)", "", "output('array', fab.shapes.iterate_polar(shape, x, y, n))", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * 0.3 + x,", " math.sin(i/36. * 2*math.pi) * 0.3 + y, 0)", " for i in range(36)], close=True, color=sb.color.teal)", "", "sb.ui.point(x, y, 0, color=sb.color.teal)", "" ], "uid": 135 }, { "datums": [ { "expr": "\u0011[__135.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "q0.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "q0.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf-4.24264-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-4.992640'),float('-inf'),float('0.750000'),float('-3.492640'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ -364.82989363780541, 1855.132932684701 ], "name": "chamfer2", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 129 }, { "datums": [ { "expr": "0.0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "-var.radiusToEdge", "name": "x1", "type": "float", "uid": 2 }, { "expr": "-var.width/2", "name": "y1", "type": "float", "uid": 3 }, { "expr": "-var.radiusToEdge", "name": "x2", "type": "float", "uid": 4 }, { "expr": "var.width/2", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -376.0870201225394, -231.52436263836563 ], "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": 19 }, { "datums": [ { "expr": "\u0011[__19.__6]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "slots.shape0", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -372.50167271551828, 39.16936659172228 ], "name": "d3", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 20 }, { "datums": [ { "expr": "\u0011[__20.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y", "type": "float", "uid": 2 }, { "expr": "var.numSides", "name": "n", "type": "int", "uid": 3 }, { "expr": "\u0012fab.types.Shape('iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -372.50167271551828, 207.68069472171095 ], "name": "a2", "script": [ "import fab", "import math", "", "title('Array (polar)')", "", "input('shape', fab.types.Shape)", "input('x', float)", "input('y', float)", "input('n', int)", "", "output('array', fab.shapes.iterate_polar(shape, x, y, n))", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * 0.3 + x,", " math.sin(i/36. * 2*math.pi) * 0.3 + y, 0)", " for i in range(36)], close=True, color=sb.color.teal)", "", "sb.ui.point(x, y, 0, color=sb.color.teal)", "" ], "uid": 22 }, { "datums": [ { "expr": "\u0011[__22.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "p0.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "p0.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75naa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ -372.50167271551828, 426.38688654999385 ], "name": "pressfit2", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 23 }, { "datums": [ { "expr": "0.0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "-var.radiusToEdge", "name": "x1", "type": "float", "uid": 2 }, { "expr": "-var.width/2", "name": "y1", "type": "float", "uid": 3 }, { "expr": "-var.radiusToEdge", "name": "x2", "type": "float", "uid": 4 }, { "expr": "var.width/2", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -347.42585784827293, 2525.4482860950266 ], "name": "t7", "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": 0 }, { "datums": [ { "expr": "\u0011[__0.__6]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "slots.shape2", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -345.97549447991241, 2802.4676894518525 ], "name": "d0", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 4 }, { "datums": [ { "expr": "\u0011[__4.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y", "type": "float", "uid": 2 }, { "expr": "var.numSides", "name": "n", "type": "int", "uid": 3 }, { "expr": "\u0012fab.types.Shape('iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -345.97549447991241, 2970.7098401816511 ], "name": "a3", "script": [ "import fab", "import math", "", "title('Array (polar)')", "", "input('shape', fab.types.Shape)", "input('x', float)", "input('y', float)", "input('n', int)", "", "output('array', fab.shapes.iterate_polar(shape, x, y, n))", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * 0.3 + x,", " math.sin(i/36. * 2*math.pi) * 0.3 + y, 0)", " for i in range(36)], close=True, color=sb.color.teal)", "", "sb.ui.point(x, y, 0, color=sb.color.teal)", "" ], "uid": 5 }, { "datums": [ { "expr": "\u0011[__5.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "n0.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "n0.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf-8.48528-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735',float('-0.750000'),float('-9.235280'),float('-inf'),float('0.750000'),float('-7.735280'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ -344.90606910572563, 3192.6154355407848 ], "name": "bistable2", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 6 }, { "datums": [ { "expr": "0.0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "-var.radiusToEdge", "name": "x1", "type": "float", "uid": 2 }, { "expr": "-var.width/2", "name": "y1", "type": "float", "uid": 3 }, { "expr": "-var.radiusToEdge", "name": "x2", "type": "float", "uid": 4 }, { "expr": "var.width/2", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -330.50581028379997, 3863.9454460021348 ], "name": "t8", "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": 7 }, { "datums": [ { "expr": "\u0011[__7.__6]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "slots.shape3", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -329.05544691543969, 4140.9648493589611 ], "name": "d1", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 8 }, { "datums": [ { "expr": "\u0011[__8.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y", "type": "float", "uid": 2 }, { "expr": "var.numSides", "name": "n", "type": "int", "uid": 3 }, { "expr": "\u0012fab.types.Shape('iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -329.05544691543969, 4309.2070000887597 ], "name": "a4", "script": [ "import fab", "import math", "", "title('Array (polar)')", "", "input('shape', fab.types.Shape)", "input('x', float)", "input('y', float)", "input('n', int)", "", "output('array', fab.shapes.iterate_polar(shape, x, y, n))", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * 0.3 + x,", " math.sin(i/36. * 2*math.pi) * 0.3 + y, 0)", " for i in range(36)], close=True, color=sb.color.teal)", "", "sb.ui.point(x, y, 0, color=sb.color.teal)", "" ], "uid": 9 }, { "datums": [ { "expr": "\u0011[__9.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "m0.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "m0.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf-12.7279-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135',float('-0.750000'),float('-13.477900'),float('-inf'),float('0.750000'),float('-11.977900'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ -326.36996122190862, 4531.1125954478921 ], "name": "flexure2", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 10 }, { "datums": [ { "expr": "0.0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "-var.radiusToEdge", "name": "x1", "type": "float", "uid": 2 }, { "expr": "-var.width/2", "name": "y1", "type": "float", "uid": 3 }, { "expr": "-var.radiusToEdge", "name": "x2", "type": "float", "uid": 4 }, { "expr": "var.width/2", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -333.0715375646248, 5219.3737484804087 ], "name": "t9", "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": 15 }, { "datums": [ { "expr": "\u0011[__15.__6]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "slots.shape4", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -327.94544099367408, 5496.1829633117641 ], "name": "d2", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 26 }, { "datums": [ { "expr": "\u0011[__26.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y", "type": "float", "uid": 2 }, { "expr": "var.numSides", "name": "n", "type": "int", "uid": 3 }, { "expr": "\u0012fab.types.Shape('iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -327.94544099367408, 5670.4702467240977 ], "name": "a5", "script": [ "import fab", "import math", "", "title('Array (polar)')", "", "input('shape', fab.types.Shape)", "input('x', float)", "input('y', float)", "input('n', int)", "", "output('array', fab.shapes.iterate_polar(shape, x, y, n))", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * 0.3 + x,", " math.sin(i/36. * 2*math.pi) * 0.3 + y, 0)", " for i in range(36)], close=True, color=sb.color.teal)", "", "sb.ui.point(x, y, 0, color=sb.color.teal)", "" ], "uid": 28 }, { "datums": [ { "expr": "\u0011[__28.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "l0.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "l0.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf-16.9706-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('-0.750000'),float('-17.720600'),float('-inf'),float('0.750000'),float('-16.220600'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ -326.23674213669005, 5889.1837004180061 ], "name": "pin2", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 32 }, { "datums": [ { "expr": "\u0011[__119.__2]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ -1362.6436382068525, 4398.1758232411667 ], "name": "s6", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 14 }, { "datums": [ { "expr": "\u0011[__84.__2]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ -1115.8244344401701, 2849.4957226529446 ], "name": "s10", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 18 }, { "datums": [ { "expr": "\u0011[__56.__2]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ -1080.9019336873107, 1464.2886193244376 ], "name": "s11", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 27 }, { "datums": [ { "expr": "\u0011[__42.__2]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ -1073.5797489934957, 703.48762075881768 ], "name": "s12", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 36 }, { "datums": [ { "expr": "\u0011[__2.__4]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ -1067.7686792805416, 323.97450990447032 ], "name": "s13", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 39 }, { "datums": [ { "expr": "\u0011[__38.__4]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 628.51801872182341, -488.80001137805175 ], "name": "s16", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 44 }, { "datums": [ { "expr": "\u0011[__49.__4]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 910.8206088447223, -488.6660472520698 ], "name": "s17", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 45 }, { "datums": [ { "expr": "\u0011[__60.__4]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1185.0964061424243, -490.63925442687355 ], "name": "s19", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 47 }, { "datums": [ { "expr": "\u0011[__62.__4]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1465.2918249645375, -494.58566877648082 ], "name": "s20", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 54 }, { "datums": [ { "expr": "\u0011[__78.__4]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1741.5408294370441, -494.39085823728215 ], "name": "s21", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 58 }, { "datums": [ { "expr": "\u0011[__29.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf2.65165-Yf0-Zf0m-Xf0-Yf-4.24264-Zf0iiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0ani-*f-0.75-Xf0*f-0.75-Yf0i-*f1.5-Xf-0.75*f0-Yf-0.75-*f-0.75-Xf-0.75*f0.75-Yf0.75niaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('1.901650'),float('-4.992640'),float('-0.083500'),float('3.401650'),float('-3.492640'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 327.37729304435925, 1612.8342559369048 ], "name": "h1", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 59 }, { "datums": [ { "expr": "var.gridSizeX * 2", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 2", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 651.83869867770136, 2403.4320673819716 ], "name": "n2", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 63 }, { "datums": [ { "expr": "var.width", "name": "height", "type": "float", "uid": 2 }, { "expr": "0.06", "name": "beamWidth", "type": "float", "uid": 1 }, { "expr": "0.01", "name": "gapWidth", "type": "float", "uid": 6 }, { "expr": "3", "name": "numYCycles", "type": "int", "uid": 4 }, { "expr": "10", "name": "numXCycles", "type": "int", "uid": 3 }, { "expr": "\u00120.44", "name": "gapBaseHeight", "type": "float", "uid": 0 }, { "expr": "\u00121", "name": "numDoubleGapsA", "type": "int", "uid": 7 }, { "expr": "\u00121", "name": "numDoubleGapsB", "type": "int", "uid": 8 } ], "inspector": [ 650.44612134098907, 2092.9189996829941 ], "name": "varF", "script": [ "import fab", "import math", "", "title('variables')", "input('height', float)", "input('beamWidth', float)", "input('gapWidth', float)", "input('numYCycles', int)", "input('numXCycles', int)", "", "if (numYCycles < 3):", " numYCycles = 3", "", "gapBaseHeight = height / numYCycles - beamWidth", "", "output('gapBaseHeight', gapBaseHeight)", "output('numDoubleGapsA', math.floor(numYCycles / 2))", "output('numDoubleGapsB', math.floor((numYCycles - 1) / 2))" ], "uid": 64 }, { "datums": [ { "expr": "\u0011[__90.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "gapStrips.shape", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('0.000000'),float('-inf'),float('0.140000'),float('1.500000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1658.8232242324318, 3069.7100592462671 ], "name": "flexureCycle", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 85 }, { "datums": [ { "expr": "a0.x", "name": "x", "type": "float", "uid": 5 }, { "expr": "a0.y", "name": "y", "type": "float", "uid": 6 }, { "expr": "(varF.beamWidth + varF.gapWidth) * 2", "name": "width", "type": "float", "uid": 2 }, { "expr": "varF.height", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f0X-Xf0.14a-f0Y-Yf1.5',float('0.000000'),float('0.000000'),float('-inf'),float('0.140000'),float('1.500000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 1659.505545238964, 2846.8769050802571 ], "name": "r2", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (x,y,w,h)')", "", "input('x', float)", "input('y', float)", "input('width', float)", "input('height', float)", "", "xmin, xmax = x, x + width", "ymin, ymax = y, y + height", "", "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(x, y)", "sb.ui.point(xmax, ymax, drag=drag_hw, relative=False)", "" ], "uid": 90 }, { "datums": [ { "expr": "a0.x", "name": "x", "type": "float", "uid": 5 }, { "expr": "a0.y", "name": "y", "type": "float", "uid": 6 }, { "expr": "varF.gapWidth", "name": "width", "type": "float", "uid": 2 }, { "expr": "varF.gapBaseHeight * 2 + varF.beamWidth", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('0.000000'),float('-inf'),float('0.010000'),float('0.940000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 657.12408074444511, 2866.9595004917815 ], "name": "doubleGap", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (x,y,w,h)')", "", "input('x', float)", "input('y', float)", "input('width', float)", "input('height', float)", "", "xmin, xmax = x, x + width", "ymin, ymax = y, y + height", "", "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(x, y)", "sb.ui.point(xmax, ymax, drag=drag_hw, relative=False)", "" ], "uid": 94 }, { "datums": [ { "expr": "a0.x", "name": "x", "type": "float", "uid": 5 }, { "expr": "a0.y", "name": "y", "type": "float", "uid": 6 }, { "expr": "varF.gapWidth", "name": "width", "type": "float", "uid": 2 }, { "expr": "varF.gapBaseHeight", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f0X-Xf0.01a-f0Y-Yf0.44',float('0.000000'),float('0.000000'),float('-inf'),float('0.010000'),float('0.440000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 654.56735644760147, 2537.7394850969617 ], "name": "singleGap", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (x,y,w,h)')", "", "input('x', float)", "input('y', float)", "input('width', float)", "input('height', float)", "", "xmin, xmax = x, x + width", "ymin, ymax = y, y + height", "", "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(x, y)", "sb.ui.point(xmax, ymax, drag=drag_hw, relative=False)", "" ], "uid": 79 }, { "datums": [ { "expr": "\u0011[__94.__4]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 656.793564820548, 3101.9453822252221 ], "name": "s23", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 101 }, { "datums": [ { "expr": "\u0011[__79.__4]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 655.48251822330849, 2757.9602453629964 ], "name": "s24", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 102 }, { "datums": [ { "expr": "doubleGap.shape", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0.0", "name": "_x", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 2 }, { "expr": "1", "name": "i", "type": "int", "uid": 3 }, { "expr": "varF.numDoubleGapsA", "name": "j", "type": "int", "uid": 4 }, { "expr": "1", "name": "dx", "type": "float", "uid": 5 }, { "expr": "(varF.gapBaseHeight + varF.beamWidth) * 2", "name": "dy", "type": "float", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('0.000000'),float('-inf'),float('0.010000'),float('0.940000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 973.00193500444607, 2538.0975741930793 ], "name": "a6", "script": [ "import fab", "", "title('Array (2D)')", "", "input('shape', fab.types.Shape)", "input('_x', float)", "input('_y', float)", "input('i', int)", "input('j', int)", "input('dx', float)", "input('dy', float)", "", "output('array', fab.shapes.iterate2d(shape, i, j, dx, dy))", "", "# UI", "sb.ui.wireframe([", " (_x + dx, _y, 0), (_x, _y, 0), (_x, _y + dy, 0)], color=sb.color.teal)", "sb.ui.wireframe([", " (_x + dx, _y - 0.3, 0), (_x + dx, _y + 0.3, 0)], color=sb.color.teal)", "sb.ui.wireframe([", " (_x + 0.3, _y + dy, 0), (_x - 0.3, _y + dy, 0)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, 0, color=sb.color.teal)", "sb.ui.point(_x + dx, _y, 0, color=sb.color.teal, drag=(dx, None, None))", "sb.ui.point(_x, _y + dy, 0, color=sb.color.teal, drag=(None, dy, None))", "" ], "uid": 109 }, { "datums": [ { "expr": "\u0011[__118.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0", "name": "x0", "type": "float", "uid": 1 }, { "expr": "0", "name": "y0", "type": "float", "uid": 2 }, { "expr": "0", "name": "x1", "type": "float", "uid": 3 }, { "expr": "varF.beamWidth", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44',float('0.000000'),float('0.060000'),float('-inf'),float('0.010000'),float('1.500000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1282.1579960652714, 2850.1994666213345 ], "name": "gapStripA", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 114 }, { "datums": [ { "expr": "singleGap.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0", "name": "x0", "type": "float", "uid": 1 }, { "expr": "0", "name": "y0", "type": "float", "uid": 2 }, { "expr": "0", "name": "x1", "type": "float", "uid": 3 }, { "expr": "(varF.gapBaseHeight + varF.beamWidth) * 2 * varF.numDoubleGapsA", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44',float('0.000000'),float('1.000000'),float('-inf'),float('0.010000'),float('1.440000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 975.75848743890742, 2782.6859526077801 ], "name": "s26", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 121 }, { "datums": [ { "expr": "\u0011[__109.__7]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "varF.numYCycles - varF.numDoubleGapsA * 2", "name": "addB", "type": "bool", "uid": 6 }, { "expr": "\u0011[__121.__5]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44',float('0.000000'),float('0.000000'),float('-inf'),float('0.010000'),float('1.440000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1279.751316832667, 2631.4382887222159 ], "name": "u0", "script": [ "import fab.types", "", "title('Conditional union')", "input('a', fab.types.Shape)", "input('addB', bool)", "input('b', fab.types.Shape)", "", "if addB:", " shape = a | b", "else:", " shape = a", "", "output('shape', shape)", "" ], "uid": 118 }, { "datums": [ { "expr": "\u0011[__136.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "varF.numYCycles - (varF.numDoubleGapsB * 2 + 1)", "name": "addB", "type": "bool", "uid": 6 }, { "expr": "\u0011[__125.__5]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('-0.500000'),float('-inf'),float('0.010000'),float('0.940000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1279.1535626055231, 3412.5778730168936 ], "name": "u1", "script": [ "import fab.types", "", "title('Conditional union')", "input('a', fab.types.Shape)", "input('addB', bool)", "input('b', fab.types.Shape)", "", "if addB:", " shape = a | b", "else:", " shape = a", "", "output('shape', shape)", "" ], "uid": 124 }, { "datums": [ { "expr": "singleGap.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0", "name": "x0", "type": "float", "uid": 1 }, { "expr": "0", "name": "y0", "type": "float", "uid": 2 }, { "expr": "0", "name": "x1", "type": "float", "uid": 3 }, { "expr": "(varF.gapBaseHeight + varF.beamWidth) * 2 * varF.numDoubleGapsB", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44',float('0.000000'),float('1.000000'),float('-inf'),float('0.010000'),float('1.440000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 975.16073321176395, 3666.4416827742857 ], "name": "s27", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 125 }, { "datums": [ { "expr": "doubleGap.shape", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0.0", "name": "_x", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 2 }, { "expr": "1", "name": "i", "type": "int", "uid": 3 }, { "expr": "varF.numDoubleGapsB", "name": "j", "type": "int", "uid": 4 }, { "expr": "1", "name": "dx", "type": "float", "uid": 5 }, { "expr": "(varF.gapBaseHeight + varF.beamWidth) * 2", "name": "dy", "type": "float", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('0.000000'),float('-inf'),float('0.010000'),float('0.940000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 972.40418077730214, 3421.853304359583 ], "name": "a7", "script": [ "import fab", "", "title('Array (2D)')", "", "input('shape', fab.types.Shape)", "input('_x', float)", "input('_y', float)", "input('i', int)", "input('j', int)", "input('dx', float)", "input('dy', float)", "", "output('array', fab.shapes.iterate2d(shape, i, j, dx, dy))", "", "# UI", "sb.ui.wireframe([", " (_x + dx, _y, 0), (_x, _y, 0), (_x, _y + dy, 0)], color=sb.color.teal)", "sb.ui.wireframe([", " (_x + dx, _y - 0.3, 0), (_x + dx, _y + 0.3, 0)], color=sb.color.teal)", "sb.ui.wireframe([", " (_x + 0.3, _y + dy, 0), (_x - 0.3, _y + dy, 0)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, 0, color=sb.color.teal)", "sb.ui.point(_x + dx, _y, 0, color=sb.color.teal, drag=(dx, None, None))", "sb.ui.point(_x, _y + dy, 0, color=sb.color.teal, drag=(None, dy, None))", "" ], "uid": 126 }, { "datums": [ { "expr": "\u0011[__124.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0", "name": "x0", "type": "float", "uid": 1 }, { "expr": "0", "name": "y0", "type": "float", "uid": 2 }, { "expr": "varF.beamWidth + varF.gapWidth", "name": "x1", "type": "float", "uid": 3 }, { "expr": "varF.gapBaseHeight + varF.beamWidth", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.070000'),float('0.000000'),float('-inf'),float('0.080000'),float('1.440000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1281.5602418381284, 3625.2423275450642 ], "name": "gapStripB", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 127 }, { "datums": [ { "expr": "singleGap.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0", "name": "x0", "type": "float", "uid": 1 }, { "expr": "0", "name": "y0", "type": "float", "uid": 2 }, { "expr": "0", "name": "x1", "type": "float", "uid": 3 }, { "expr": "-(varF.gapBaseHeight + varF.beamWidth)", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44',float('0.000000'),float('-0.500000'),float('-inf'),float('0.010000'),float('-0.060000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 976.39972828443229, 3170.5646749004441 ], "name": "s29", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 130 }, { "datums": [ { "expr": "\u0011[__130.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__126.__7]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('-0.500000'),float('-inf'),float('0.010000'),float('0.940000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1278.430806225799, 3267.8434936564795 ], "name": "u2", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 136 }, { "datums": [ { "expr": "\u0011[__114.__5]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1281.4444314196014, 3086.1794525416567 ], "name": "s25", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 137 }, { "datums": [ { "expr": "\u0011[__127.__5]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1279.6410548398296, 3894.1103876702314 ], "name": "s28", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 138 }, { "datums": [ { "expr": "gapStripA.out", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "gapStripB.out", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('im-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('0.000000'),float('-inf'),float('0.080000'),float('1.500000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1653.6745749588224, 2538.1632013146377 ], "name": "gapStrips", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 139 }, { "datums": [ { "expr": "\u0011[__139.__2]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1656.7028333322794, 2690.0431714204592 ], "name": "s30", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 140 }, { "datums": [ { "expr": "\u0011[__85.__2]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1658.7307202199815, 3220.2235519978444 ], "name": "s31", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 96 }, { "datums": [ { "expr": "flexureCycle.shape", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0.0", "name": "_x", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 2 }, { "expr": "varF.numXCycles", "name": "i", "type": "int", "uid": 3 }, { "expr": "1", "name": "j", "type": "int", "uid": 4 }, { "expr": "(varF.beamWidth + varF.gapWidth) * 2", "name": "dx", "type": "float", "uid": 5 }, { "expr": "1", "name": "dy", "type": "float", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('0.000000'),float('-inf'),float('1.400000'),float('1.500000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 2013.1064596559797, 2538.8732395810425 ], "name": "flexureRibbon0", "script": [ "import fab", "", "title('Array (2D)')", "", "input('shape', fab.types.Shape)", "input('_x', float)", "input('_y', float)", "input('i', int)", "input('j', int)", "input('dx', float)", "input('dy', float)", "", "output('array', fab.shapes.iterate2d(shape, i, j, dx, dy))", "", "# UI", "sb.ui.wireframe([", " (_x + dx, _y, 0), (_x, _y, 0), (_x, _y + dy, 0)], color=sb.color.teal)", "sb.ui.wireframe([", " (_x + dx, _y - 0.3, 0), (_x + dx, _y + 0.3, 0)], color=sb.color.teal)", "sb.ui.wireframe([", " (_x + 0.3, _y + dy, 0), (_x - 0.3, _y + dy, 0)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, 0, color=sb.color.teal)", "sb.ui.point(_x + dx, _y, 0, color=sb.color.teal, drag=(dx, None, None))", "sb.ui.point(_x, _y + dy, 0, color=sb.color.teal, drag=(None, dy, None))", "" ], "uid": 141 }, { "datums": [ { "expr": "flexureRibbon0.array", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "n2.x - var.width/2", "name": "x1", "type": "float", "uid": 3 }, { "expr": "n2.y - var.width/2", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf4.5533-Yf-9.23528-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('4.553300'),float('-9.235280'),float('-inf'),float('5.953300'),float('-7.735280'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 2021.0308324338048, 2908.0174827399333 ], "name": "s22", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 142 }, { "datums": [ { "expr": "\u0011[__141.__7]", "name": "plug", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 2016.651677961898, 2785.7203023470215 ], "name": "s32", "script": [ "import fab", "", "title('Plug output')", "input('plug', fab.types.Shape)" ], "uid": 82 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick / 2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick / 2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "s22.out", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf4.5533-Yf-9.23528-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94a-f-0.0835Z-Zf0.0835',float('4.553300'),float('-9.235280'),float('-0.083500'),float('5.953300'),float('-7.735280'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 2018.8441306805871, 3160.5477773674038 ], "name": "e0", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 143 }, { "datums": [ { "expr": "\u0011[__143.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0", "name": "x0", "type": "float", "uid": 1 }, { "expr": "0", "name": "y0", "type": "float", "uid": 2 }, { "expr": "var.gridSizeX", "name": "x1", "type": "float", "uid": 3 }, { "expr": "0", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0am__f1m-Xf4.5533-Yf-9.23528-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94a-f-0.0835Z-Zf0.0835',float('7.204950'),float('-9.235280'),float('-0.083500'),float('8.604950'),float('-7.735280'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 2322.9727620890326, 3157.5177940411786 ], "name": "s33", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 144 }, { "datums": [ { "expr": "\u0011[__144.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0am__f1m-Xf4.5533-Yf-9.23528-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94a-f-0.0835Z-Zf0.0835',float('7.204950'),float('-9.235280'),float('-0.083500'),float('8.604950'),float('-7.735280'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 2618.220913019949, 3305.0157542902261 ], "name": "h2", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 145 }, { "datums": [ { "expr": "a0.x - varF.height/2", "name": "x", "type": "float", "uid": 5 }, { "expr": "a0.y - varF.height/2", "name": "y", "type": "float", "uid": 6 }, { "expr": "varF.height/2", "name": "width", "type": "float", "uid": 2 }, { "expr": "varF.height", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-0.75X-Xf0a-f-0.75Y-Yf0.75',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 667.28919977278838, 4413.7532492763894 ], "name": "r0", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (x,y,w,h)')", "", "input('x', float)", "input('y', float)", "input('width', float)", "input('height', float)", "", "xmin, xmax = x, x + width", "ymin, ymax = y, y + height", "", "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(x, y)", "sb.ui.point(xmax, ymax, drag=drag_hw, relative=False)", "" ], "uid": 146 }, { "datums": [ { "expr": "\u0011[__146.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__159.__7]", "name": "b1", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0011[__150.__7]", "name": "b2", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0011[__160.__7]", "name": "b3", "type": "_fabtypes.Shape", "uid": 5 }, { "expr": "\u0012fab.types.Shape('aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.000000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 974.83327731681629, 4610.0727966351596 ], "name": "endEffectorRect", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b1', fab.types.Shape)", "input('b2', fab.types.Shape)", "input('b3', fab.types.Shape)", "", "output('shape', a & ~(b1 | b2 | b3))", "" ], "uid": 147 }, { "datums": [ { "expr": "\u0011[__147.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "m2.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "m2.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf5.3033-Yf-12.7279-Zf0aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('4.553300'),float('-13.477900'),float('-inf'),float('5.303300'),float('-11.977900'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 975.75606350542444, 4806.5760744202153 ], "name": "s34", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 148 }, { "datums": [ { "expr": "var.gridSizeX * 2", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 3", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 668.02958784247403, 4277.4343981513084 ], "name": "m2", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 149 }, { "datums": [ { "expr": "a0.x", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "varF.height/2", "name": "r", "type": "float", "uid": 2 }, { "expr": "0", "name": "_a", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+qXqYf0.75',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 680.82263529736019, 5646.847838802486 ], "name": "c0", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (center)')", "", "input('x0',float)", "input('y0',float)", "input('r',float)", "input('_a',float)", "", "output('shape', fab.shapes.circle(x0, y0, r))", "", "def drag_r(this,x,y,z):", " dx = x - this.x0", " dy = y - this.y0", " this.r = math.sqrt(dx**2 + dy**2)", " this._a = math.atan2(dy, dx)", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * r + x0,", " math.sin(i/36. * 2*math.pi) * r + y0, 0)", " for i in range(36)], close=True)", "sb.ui.point(x0,y0)", "sb.ui.point(x0 + r*math.cos(_a),", " y0 + r*math.sin(_a),", " drag=drag_r, relative=False)", "", "" ], "uid": 151 }, { "datums": [ { "expr": "a0.x", "name": "x", "type": "float", "uid": 5 }, { "expr": "a0.y - varF.height/2", "name": "y", "type": "float", "uid": 6 }, { "expr": "varF.height/2*varC.extension", "name": "width", "type": "float", "uid": 2 }, { "expr": "varF.height", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f0X-Xf0.3a-f-0.75Y-Yf0.75',float('0.000000'),float('-0.750000'),float('-inf'),float('0.300000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 683.21211921717668, 6025.4834519604565 ], "name": "r3", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (x,y,w,h)')", "", "input('x', float)", "input('y', float)", "input('width', float)", "input('height', float)", "", "xmin, xmax = x, x + width", "ymin, ymax = y, y + height", "", "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(x, y)", "sb.ui.point(xmax, ymax, drag=drag_hw, relative=False)", "" ], "uid": 152 }, { "datums": [ { "expr": "\u0011[__154.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__152.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('ia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 989.42135267211825, 5979.674514047344 ], "name": "u3", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 153 }, { "datums": [ { "expr": "\u0011[__151.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__155.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('a-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 978.63894522171222, 5713.7021426539768 ], "name": "d5", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 154 }, { "datums": [ { "expr": "a0.x + varF.height/2", "name": "x", "type": "float", "uid": 5 }, { "expr": "a0.y - varF.height", "name": "y", "type": "float", "uid": 6 }, { "expr": "-varF.height/2", "name": "width", "type": "float", "uid": 2 }, { "expr": "varF.height*2", "name": "height", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f0X-Xf0.75a-f-1.5Y-Yf1.5',float('0.000000'),float('-1.500000'),float('-inf'),float('0.750000'),float('1.500000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 678.24587338458196, 5822.0327750505394 ], "name": "r4", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (x,y,w,h)')", "", "input('x', float)", "input('y', float)", "input('width', float)", "input('height', float)", "", "xmin, xmax = x, x + width", "ymin, ymax = y, y + height", "", "xmin, xmax = min(xmin,xmax), max(xmin, xmax)", "ymin, ymax = min(ymin,ymax), max(ymin, ymax)", "", "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(x, y)", "sb.ui.point(xmax, ymax, drag=drag_hw, relative=False)", "" ], "uid": 155 }, { "datums": [ { "expr": "var.gridSizeX * 2", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 4", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 679.81157625272931, 5386.8615407951856 ], "name": "l2", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 156 }, { "datums": [ { "expr": "\u0011[__162.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "l2.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "l2.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf5.3033-Yf-16.9706-Zf0aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('4.553300'),float('-17.720600'),float('-inf'),float('6.053300'),float('-16.220600'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 996.06069713196689, 6298.9260772208891 ], "name": "s35", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 157 }, { "datums": [ { "expr": "0.4", "name": "extension", "type": "float", "uid": 0 }, { "expr": "8", "name": "numSlots", "type": "int", "uid": 2 }, { "expr": "slots.shape1", "name": "slot", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 679.46529682797131, 5501.990515552041 ], "name": "varC", "script": [ "import fab", "", "title('variables')", "input('extension', float)", "input('numSlots', int)", "input('slot', fab.types.Shape)" ], "uid": 158 }, { "datums": [ { "expr": "0", "name": "a", "type": "float", "uid": 8 }, { "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": "dx", "type": "float", "uid": 3 }, { "expr": "0", "name": "dy", "type": "float", "uid": 4 }, { "expr": "0", "name": "dz", "type": "float", "uid": 5 }, { "expr": "slots.shape1", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.125250'),float('-inf'),float('-0.550000'),float('0.125250'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 671.81222332449988, 4613.571275010816 ], "name": "t10", "script": [ "import fab", "", "title('Rotate (Z), Translate')", "", "input('a', float)", "input('_x', float)", "input('_y', float)", "input('_z', float)", "input('dx', float)", "input('dy', float)", "input('dz', float)", "", "input('shape', fab.types.Shape)", "", "rotated = fab.shapes.rotate_z(shape, a, 0, 0)", "", "output('out', fab.shapes.translate(rotated, dx, dy, dz))", "", "# UI", "sb.ui.wireframe([(_x, _y, _z),", " (_x + dx, _y + dy, _z + dz)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y - 0.3, _z),", " (_x, _y + 0.3, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x - 0.3, _y, _z),", " (_x + 0.3, _y, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y, _z - 0.3),", " (_x, _y, _z + 0.3)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, _z, color=sb.color.teal)", "sb.ui.point(_x + dx, _y + dy, _z + dz, color=sb.color.teal, drag=(dx, dy, dz))", "" ], "uid": 159 }, { "datums": [ { "expr": "90", "name": "a", "type": "float", "uid": 8 }, { "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": "-varF.height/4", "name": "dx", "type": "float", "uid": 3 }, { "expr": "0", "name": "dy", "type": "float", "uid": 4 }, { "expr": "0", "name": "dz", "type": "float", "uid": 5 }, { "expr": "slots.shape1", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.500250'),float('-0.750000'),float('-inf'),float('-0.249750'),float('-0.550000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 672.66410134765079, 4838.5521414667674 ], "name": "t11", "script": [ "import fab", "", "title('Rotate (Z), Translate')", "", "input('a', float)", "input('_x', float)", "input('_y', float)", "input('_z', float)", "input('dx', float)", "input('dy', float)", "input('dz', float)", "", "input('shape', fab.types.Shape)", "", "rotated = fab.shapes.rotate_z(shape, a, 0, 0)", "", "output('out', fab.shapes.translate(rotated, dx, dy, dz))", "", "# UI", "sb.ui.wireframe([(_x, _y, _z),", " (_x + dx, _y + dy, _z + dz)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y - 0.3, _z),", " (_x, _y + 0.3, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x - 0.3, _y, _z),", " (_x + 0.3, _y, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y, _z - 0.3),", " (_x, _y, _z + 0.3)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, _z, color=sb.color.teal)", "sb.ui.point(_x + dx, _y + dy, _z + dz, color=sb.color.teal, drag=(dx, dy, dz))", "" ], "uid": 150 }, { "datums": [ { "expr": "270", "name": "a", "type": "float", "uid": 8 }, { "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": "-varF.height/4", "name": "dx", "type": "float", "uid": 3 }, { "expr": "0", "name": "dy", "type": "float", "uid": 4 }, { "expr": "0", "name": "dz", "type": "float", "uid": 5 }, { "expr": "slots.shape1", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.500250'),float('0.550000'),float('-inf'),float('-0.249750'),float('0.750000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 675.04066636694347, 5060.4836339304347 ], "name": "t12", "script": [ "import fab", "", "title('Rotate (Z), Translate')", "", "input('a', float)", "input('_x', float)", "input('_y', float)", "input('_z', float)", "input('dx', float)", "input('dy', float)", "input('dz', float)", "", "input('shape', fab.types.Shape)", "", "rotated = fab.shapes.rotate_z(shape, a, 0, 0)", "", "output('out', fab.shapes.translate(rotated, dx, dy, dz))", "", "# UI", "sb.ui.wireframe([(_x, _y, _z),", " (_x + dx, _y + dy, _z + dz)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y - 0.3, _z),", " (_x, _y + 0.3, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x - 0.3, _y, _z),", " (_x + 0.3, _y, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y, _z - 0.3),", " (_x, _y, _z + 0.3)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, _z, color=sb.color.teal)", "sb.ui.point(_x + dx, _y + dy, _z + dz, color=sb.color.teal, drag=(dx, dy, dz))", "" ], "uid": 160 }, { "datums": [ { "expr": "varC.slot", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0.0", "name": "x", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "y", "type": "float", "uid": 2 }, { "expr": "varC.numSlots", "name": "n", "type": "int", "uid": 3 }, { "expr": "\u0012fab.types.Shape('iiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 686.58303190972083, 6276.0715502558023 ], "name": "a8", "script": [ "import fab", "import math", "", "title('Array (polar)')", "", "input('shape', fab.types.Shape)", "input('x', float)", "input('y', float)", "input('n', int)", "", "output('array', fab.shapes.iterate_polar(shape, x, y, n))", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * 0.3 + x,", " math.sin(i/36. * 2*math.pi) * 0.3 + y, 0)", " for i in range(36)], close=True, color=sb.color.teal)", "", "sb.ui.point(x, y, 0, color=sb.color.teal)", "" ], "uid": 161 }, { "datums": [ { "expr": "\u0011[__153.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__161.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 992.18378795262333, 6149.7565710913996 ], "name": "endEffectorCirc", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 162 }, { "datums": [ { "expr": "a0.x", "name": "x0", "type": "float", "uid": 0 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "varF.height/2", "name": "r", "type": "float", "uid": 2 }, { "expr": "0", "name": "_a", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+qXqYf0.75',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 688.45687809324966, 6843.3789938333102 ], "name": "c1", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (center)')", "", "input('x0',float)", "input('y0',float)", "input('r',float)", "input('_a',float)", "", "output('shape', fab.shapes.circle(x0, y0, r))", "", "def drag_r(this,x,y,z):", " dx = x - this.x0", " dy = y - this.y0", " this.r = math.sqrt(dx**2 + dy**2)", " this._a = math.atan2(dy, dx)", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * r + x0,", " math.sin(i/36. * 2*math.pi) * r + y0, 0)", " for i in range(36)], close=True)", "sb.ui.point(x0,y0)", "sb.ui.point(x0 + r*math.cos(_a),", " y0 + r*math.sin(_a),", " drag=drag_r, relative=False)", "", "" ], "uid": 163 }, { "datums": [ { "expr": "varC.slot", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0.0", "name": "x", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "y", "type": "float", "uid": 2 }, { "expr": "varC.numSlots", "name": "n", "type": "int", "uid": 3 }, { "expr": "\u0012fab.types.Shape('iiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 689.60194441273745, 7020.8522431980291 ], "name": "a9", "script": [ "import fab", "import math", "", "title('Array (polar)')", "", "input('shape', fab.types.Shape)", "input('x', float)", "input('y', float)", "input('n', int)", "", "output('array', fab.shapes.iterate_polar(shape, x, y, n))", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * 0.3 + x,", " math.sin(i/36. * 2*math.pi) * 0.3 + y, 0)", " for i in range(36)], close=True, color=sb.color.teal)", "", "sb.ui.point(x, y, 0, color=sb.color.teal)", "" ], "uid": 164 }, { "datums": [ { "expr": "\u0011[__163.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__164.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('a-r+qXqYf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('0.750000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 988.55191756921351, 6947.0607941277594 ], "name": "d7", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 165 }, { "datums": [ { "expr": "0", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 5", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 690.3203803772027, 6728.3262261770251 ], "name": "k0", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 166 }, { "datums": [ { "expr": "\u0011[__165.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "k0.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "k0.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf-21.2132-Zf0a-r+qXqYf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-21.963200'),float('-inf'),float('0.750000'),float('-20.463200'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 992.98935245585903, 7090.9123100235865 ], "name": "slottedCircle", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 167 }, { "datums": [ { "expr": "var.gridSizeX", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 5", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 1348.9573232744031, 6732.0658233411668 ], "name": "k1", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 168 }, { "datums": [ { "expr": "\u0011[__170.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "k0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "k0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "k1.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "k1.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0am__f1m-Xf0-Yf-21.2132-Zf0a-r+qXqYf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('1.901650'),float('-21.963200'),float('-0.083500'),float('3.401650'),float('-20.463200'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1348.0734106546468, 7122.2516262605395 ], "name": "s37", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 169 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "slottedCircle.out", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1m-Xf0-Yf-21.2132-Zf0a-r+qXqYf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('-0.750000'),float('-21.963200'),float('-0.083500'),float('0.750000'),float('-20.463200'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1348.0734106546463, 6944.8735459112431 ], "name": "e1", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 170 }, { "datums": [ { "expr": "\u0011[__169.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('m-Xf2.65165-Yf0-Zf0am__f1m-Xf0-Yf-21.2132-Zf0a-r+qXqYf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('1.901650'),float('-21.963200'),float('-0.083500'),float('3.401650'),float('-20.463200'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1631.8783392135194, 7203.6368631266878 ], "name": "h3", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 171 }, { "datums": [ { "expr": "var.gridSizeX * 3", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 4", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 1333.9770592112145, 5382.5184554047955 ], "name": "l3", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 172 }, { "datums": [ { "expr": "endEffectorCirc.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__174.__7]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('-0.750000'),float('-0.750000'),float('-inf'),float('1.700000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1334.4217770195028, 5716.2139664483711 ], "name": "u4", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 173 }, { "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": "varF.height/2*varC.extension", "name": "dx", "type": "float", "uid": 3 }, { "expr": "-var.width/2", "name": "dy", "type": "float", "uid": 4 }, { "expr": "0", "name": "dz", "type": "float", "uid": 5 }, { "expr": "flexureRibbon0.array", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.300000'),float('-0.750000'),float('-inf'),float('1.700000'),float('0.750000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 1335.0572830025258, 5500.4420535344561 ], "name": "t13", "script": [ "import fab", "", "title('Translate')", "", "input('_x', float)", "input('_y', float)", "input('_z', float)", "input('dx', float)", "input('dy', float)", "input('dz', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.translate(shape, dx, dy, dz))", "", "# UI", "sb.ui.wireframe([(_x, _y, _z),", " (_x + dx, _y + dy, _z + dz)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y - 0.3, _z),", " (_x, _y + 0.3, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x - 0.3, _y, _z),", " (_x + 0.3, _y, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y, _z - 0.3),", " (_x, _y, _z + 0.3)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, _z, color=sb.color.teal)", "sb.ui.point(_x + dx, _y + dy, _z + dz, color=sb.color.teal, drag=(dx, dy, dz))", "" ], "uid": 174 }, { "datums": [ { "expr": "\u0011[__176.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "l3.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "l3.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf7.95495-Yf-16.9706-Zf0am__f1iaia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94a-f-0.0835Z-Zf0.0835',float('7.204950'),float('-17.720600'),float('-0.083500'),float('9.654950'),float('-16.220600'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1650.1965507066886, 5705.4640567693777 ], "name": "s36", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 175 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__173.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1iaia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94a-f-0.0835Z-Zf0.0835',float('-0.750000'),float('-0.750000'),float('-0.083500'),float('1.700000'),float('0.750000'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1339.2425571012259, 5865.5495065975756 ], "name": "e2", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 176 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__180.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1iaaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94a-f-0.0835Z-Zf0.0835',float('-0.750000'),float('-0.750000'),float('-0.083500'),float('1.400000'),float('0.750000'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1328.0691914981917, 4757.1299145536668 ], "name": "e3", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 177 }, { "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": "dx", "type": "float", "uid": 3 }, { "expr": "-var.width/2", "name": "dy", "type": "float", "uid": 4 }, { "expr": "0", "name": "dz", "type": "float", "uid": 5 }, { "expr": "flexureRibbon0.array", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('-0.750000'),float('-inf'),float('1.400000'),float('0.750000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 1323.883917399492, 4392.0224614905474 ], "name": "t14", "script": [ "import fab", "", "title('Translate')", "", "input('_x', float)", "input('_y', float)", "input('_z', float)", "input('dx', float)", "input('dy', float)", "input('dz', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.translate(shape, dx, dy, dz))", "", "# UI", "sb.ui.wireframe([(_x, _y, _z),", " (_x + dx, _y + dy, _z + dz)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y - 0.3, _z),", " (_x, _y + 0.3, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x - 0.3, _y, _z),", " (_x + 0.3, _y, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y, _z - 0.3),", " (_x, _y, _z + 0.3)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, _z, color=sb.color.teal)", "sb.ui.point(_x + dx, _y + dy, _z + dz, color=sb.color.teal, drag=(dx, dy, dz))", "" ], "uid": 178 }, { "datums": [ { "expr": "\u0011[__177.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "m3.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "m3.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf7.95495-Yf-12.7279-Zf0am__f1iaaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94a-f-0.0835Z-Zf0.0835',float('7.204950'),float('-13.477900'),float('-0.083500'),float('9.354950'),float('-11.977900'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 1634.834564867235, 4595.5144009749129 ], "name": "s38", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 179 }, { "datums": [ { "expr": "endEffectorRect.shape", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__178.__7]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('-0.750000'),float('-0.750000'),float('-inf'),float('1.400000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1323.248411416469, 4607.7943744044624 ], "name": "u5", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 180 }, { "datums": [ { "expr": "var.gridSizeX * 3", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 3", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 1322.8036936081808, 4274.0988633608886 ], "name": "m3", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 181 }, { "datums": [ { "expr": "var.gridSizeX * 4", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 3", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 1951.0010711223013, 4276.6207422680927 ], "name": "m4", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 182 }, { "datums": [ { "expr": "\u0011[__184.__7]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "endEffectorRect.shape", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('im-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('1.400000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2259.9414262914693, 4467.07038730571 ], "name": "u6", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 183 }, { "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": "dx", "type": "float", "uid": 3 }, { "expr": "-var.width/2", "name": "dy", "type": "float", "uid": 4 }, { "expr": "0", "name": "dz", "type": "float", "uid": 5 }, { "expr": "flexureRibbon0.array", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.000000'),float('-0.750000'),float('-inf'),float('1.400000'),float('0.750000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 1952.0812949136125, 4394.5443403977515 ], "name": "t15", "script": [ "import fab", "", "title('Translate')", "", "input('_x', float)", "input('_y', float)", "input('_z', float)", "input('dx', float)", "input('dy', float)", "input('dz', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.translate(shape, dx, dy, dz))", "", "# UI", "sb.ui.wireframe([(_x, _y, _z),", " (_x + dx, _y + dy, _z + dz)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y - 0.3, _z),", " (_x, _y + 0.3, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x - 0.3, _y, _z),", " (_x + 0.3, _y, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y, _z - 0.3),", " (_x, _y, _z + 0.3)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, _z, color=sb.color.teal)", "sb.ui.point(_x + dx, _y + dy, _z + dz, color=sb.color.teal, drag=(dx, dy, dz))", "" ], "uid": 184 }, { "datums": [ { "expr": "\u0011[__185.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "m4.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "m4.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf10.6066-Yf-12.7279-Zf0am__f1iim-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-*f2f0.7X__aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('9.856600'),float('-13.477900'),float('-0.083500'),float('12.756599'),float('-11.977900'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 2559.1089421688216, 4626.0751474665221 ], "name": "s39", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 186 }, { "datums": [ { "expr": "\u0011[__183.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__188.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iim-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-*f2f0.7X__aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('2.150000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2265.2645731274592, 4609.1204942531094 ], "name": "u7", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 187 }, { "datums": [ { "expr": "(varF.beamWidth + varF.gapWidth) * varF.numXCycles", "name": "x0", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_z", "type": "float", "uid": 2 }, { "expr": "endEffectorRect.shape", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m-*f2f0.7X__aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('1.400000'),float('-0.750000'),float('-inf'),float('2.150000'),float('0.750000'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 1954.3631061389174, 4607.0171695910867 ], "name": "r5", "script": [ "import fab", "", "title('Reflect (X)')", "", "input('x0', float)", "input('_y', float)", "input('_z', float)", "", "input('shape', fab.types.Shape)", "output('reflected', fab.shapes.reflect_x(shape, x0))", "", "# UI", "sb.ui.wireframe([", " (x0, _y - 1, _z + 1),", " (x0, _y + 1, _z + 1),", " (x0, _y + 1, _z - 1),", " (x0, _y - 1, _z - 1)], color=sb.color.teal, close=True)", "", "sb.ui.point(x0, _y, _z, color=sb.color.teal)", "" ], "uid": 188 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__187.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1iim-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-*f2f0.7X__aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('-0.750000'),float('-0.750000'),float('-0.083500'),float('2.150000'),float('0.750000'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 2268.1041819824945, 4756.8077319953909 ], "name": "e4", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 185 }, { "datums": [ { "expr": "\u0011[__194.__7]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "endEffectorCirc.shape", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('im-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('1.700000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2272.6692342318479, 5575.1582517289899 ], "name": "u8", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 189 }, { "datums": [ { "expr": "var.width/2 * varC.extension + (varF.beamWidth + varF.gapWidth) * varF.numXCycles", "name": "x0", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_z", "type": "float", "uid": 2 }, { "expr": "endEffectorCirc.shape", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m-*f2f1X__aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('1.250000'),float('-0.750000'),float('-inf'),float('2.750000'),float('0.750000'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 1967.090914079296, 5715.1050340143665 ], "name": "r1", "script": [ "import fab", "", "title('Reflect (X)')", "", "input('x0', float)", "input('_y', float)", "input('_z', float)", "", "input('shape', fab.types.Shape)", "output('reflected', fab.shapes.reflect_x(shape, x0))", "", "# UI", "sb.ui.wireframe([", " (x0, _y - 1, _z + 1),", " (x0, _y + 1, _z + 1),", " (x0, _y + 1, _z - 1),", " (x0, _y - 1, _z - 1)], color=sb.color.teal, close=True)", "", "sb.ui.point(x0, _y, _z, color=sb.color.teal)", "" ], "uid": 190 }, { "datums": [ { "expr": "\u0011[__195.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "a0.x", "name": "x0", "type": "float", "uid": 1 }, { "expr": "a0.y", "name": "y0", "type": "float", "uid": 2 }, { "expr": "l4.x", "name": "x1", "type": "float", "uid": 3 }, { "expr": "l4.y", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf10.6066-Yf-16.9706-Zf0am__f1iim-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-*f2f1X__aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('9.856600'),float('-17.720600'),float('-0.083500'),float('13.356600'),float('-16.220600'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 2571.8367501092002, 5734.1630118898029 ], "name": "s40", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 191 }, { "datums": [ { "expr": "var.gridSizeX * 4", "name": "x", "type": "float", "uid": 0 }, { "expr": "-var.gridSizeY * 4", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 1963.7288790626794, 5384.7086066913726 ], "name": "l4", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 192 }, { "datums": [ { "expr": "\u0011[__189.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__190.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iim-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-*f2f1X__aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525',float('-0.750000'),float('-0.750000'),float('-inf'),float('2.750000'),float('0.750000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2277.9923810678379, 5717.2083586763874 ], "name": "u9", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 193 }, { "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": "var.width/2 * varC.extension", "name": "dx", "type": "float", "uid": 3 }, { "expr": "-var.width/2", "name": "dy", "type": "float", "uid": 4 }, { "expr": "0", "name": "dz", "type": "float", "uid": 5 }, { "expr": "flexureRibbon0.array", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94',float('0.300000'),float('-0.750000'),float('-inf'),float('1.700000'),float('0.750000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 1964.8091028539916, 5502.6322048210313 ], "name": "t16", "script": [ "import fab", "", "title('Translate')", "", "input('_x', float)", "input('_y', float)", "input('_z', float)", "input('dx', float)", "input('dy', float)", "input('dz', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.translate(shape, dx, dy, dz))", "", "# UI", "sb.ui.wireframe([(_x, _y, _z),", " (_x + dx, _y + dy, _z + dz)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y - 0.3, _z),", " (_x, _y + 0.3, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x - 0.3, _y, _z),", " (_x + 0.3, _y, _z)], color=sb.color.teal)", "sb.ui.wireframe([(_x, _y, _z - 0.3),", " (_x, _y, _z + 0.3)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, _z, color=sb.color.teal)", "sb.ui.point(_x + dx, _y + dy, _z + dz, color=sb.color.teal, drag=(dx, dy, dz))", "" ], "uid": 194 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 1 }, { "expr": "-var.thick/2", "name": "zmin", "type": "float", "uid": 2 }, { "expr": "var.thick/2", "name": "zmax", "type": "float", "uid": 3 }, { "expr": "\u0011[__193.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('am__f1iim-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-*f2f1X__aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('-0.750000'),float('-0.750000'),float('-0.083500'),float('2.750000'),float('0.750000'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 2280.8319899228732, 5864.8955964186716 ], "name": "e5", "script": [ "import fab", "", "title('Extrude')", "", "input('_x', float)", "input('_y', float)", "input('zmin', float)", "input('zmax', float)", "", "input('shape', fab.types.Shape)", "output('out', fab.shapes.extrude_z(shape, zmin, zmax))", "", "# UI", "sb.ui.wireframe([(_x, _y, zmin), (_x, _y, zmax)], color=sb.color.green)", "sb.ui.point(_x, _y, zmin, color=sb.color.green)", "sb.ui.point(_x, _y, zmax, color=sb.color.green)", "", "" ], "uid": 195 }, { "datums": [ { "expr": "\u0011[__191.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('m-Xf10.6066-Yf-16.9706-Zf0am__f1iim-Xf0.3-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-*f2f1X__aia-r+qXqYf0.75naa-f0X-Xf0.75a-f-1.5Y-Yf1.5aa-f0X-Xf0.3a-f-0.75Y-Yf0.75niiiiiiim-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f0.707107Y+*f-0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f0.707107Y+*f-0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-0.707107X*f-0.707107Y+*f0.707107X*f-0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf0-Yf0-Zf0m+*f0.707107X*f-0.707107Y+*f0.707107X*f0.707107Y_m-Xf-0-Yf-0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('9.856600'),float('-17.720600'),float('-0.083500'),float('13.356600'),float('-16.220600'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 2860.2444475607404, 5827.4932895373531 ], "name": "h4", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 196 }, { "datums": [ { "expr": "\u0011[__186.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('m-Xf10.6066-Yf-12.7279-Zf0am__f1iim-Xf0-Yf-0.75-Zf0m-Xf0-Yf0-Zf0iiiiiiiiim-Xf0-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.14-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.28-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.42-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.56-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.7-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.84-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0.98-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.12-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf1.26-Yf0-Zf0aaa-f0X-Xf0.14a-f0Y-Yf1.5nim-Xf0-Yf0.06-Zf0im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94m-Xf0-Yf1-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0.07-Yf0.5-Zf0im-Xf0-Yf-0.5-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.44m-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0aa-f0X-Xf0.01a-f0Y-Yf0.94aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-*f2f0.7X__aaa-f-0.75X-Xf0a-f-0.75Y-Yf0.75niim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf-0.375-Yf0-Zf0m-Xf0-Yf0-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf0-Yf0-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525a-f-0.0835Z-Zf0.0835',float('9.856600'),float('-13.477900'),float('-0.083500'),float('12.756599'),float('-11.977900'),float('0.083500'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 2829.3665463715388, 4735.9604348808243 ], "name": "h5", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 197 }, { "datums": [ { "expr": "\u0011[__31.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__21.__5]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0011[__81.__5]", "name": "c", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0011[__86.__5]", "name": "d", "type": "_fabtypes.Shape", "uid": 5 }, { "expr": "\u0011[__91.__5]", "name": "e", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('iiiim-Xf5.3033-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-0.75-Zf0iaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525m-Xf5.3033-Yf-1.5-Zf0iaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735m-Xf5.3033-Yf-2.25-Zf0iiaam-Xf0-Yf0-Zf0aa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735naaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175nm_-*f2f0Y_aaaa-f-0.75X-Xf-0.583a-f0.04175Y-Yf0.0735nni-*f0.03175-Xf-0.75*f0-Yf0.04175i-*f-0.03175-Xf-0.75*f0.04175-Yf0.0735-*f0-Xf-0.70825*f-0.04175-Yf0.04175nni-*f-0.03175-Xf-0.583*f0-Yf0.0735i-*f0-Xf-0.583*f-0.04175-Yf0.04175-*f0.03175-Xf-0.62475*f0.04175-Yf0.04175aa-f-0.517X-Xf-0.35a-f-0.0735Y-Yf0.0735iaaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m_-*f2f0Y_aaa-f-0.75X-Xf-0.55a-f0.1135Y-Yf0.1935nni-*f-0.04-Xf-0.55*f0-Yf0.1535i-*f0-Xf-0.55*f-0.04-Yf0.1135-*f0.04-Xf-0.59*f0.04-Yf0.1135m-Xf5.3033-Yf-3-Zf0iiiiaa-f-0.75X-Xf-0.55a-f-0.0735Y-Yf0.0735ni-*f-0.12525-Xf-0.62475*f-0.12525-Yf0i-*f0.2505-Xf-0.75*f0-Yf-0.12525-*f-0.12525-Xf-0.75*f0.12525-Yf0.12525aa-f-0.75X-Xf-0.45a-f-0.0835Y-Yf0.0835aa-f-0.6835X-Xf-0.5165a-f-0.20875Y-Yf0.20875aa-f-0.3835X-Xf-0.2165a-f-0.20875Y-Yf0.20875',float('4.553300'),float('-3.208750'),float('-inf'),float('5.086800'),float('0.073500'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 932.6916912198875, 565.4822314499678 ], "name": "u10", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "input('c', fab.types.Shape)", "input('d', fab.types.Shape)", "input('e', fab.types.Shape)", "", "output('shape', a | b | c | d | e)", "" ], "uid": 198 } ], "protocol": 6, "type": "sb" }