{ "nodes": [ { "datums": [ { "expr": "0.435", "name": "width_stock", "type": "float", "uid": 2 }, { "expr": "3/4", "name": "dist_to_screw_overhang", "type": "float", "uid": 3 }, { "expr": "9", "name": "sheet_x", "type": "float", "uid": 4 }, { "expr": "11.5", "name": "sheet_y", "type": "float", "uid": 5 }, { "expr": "3+1/8", "name": "diam_holes", "type": "float", "uid": 1 }, { "expr": "0.20", "name": "diam_threaded_rod", "type": "float", "uid": 6 }, { "expr": "0.26", "name": "diam_bit", "type": "float", "uid": 7 } ], "inspector": [ 306.90256937391592, -1920.1083827496279 ], "name": "param", "script": [ "import fab", "", "title('script')", "input('width_stock', float)", "input('dist_to_screw_overhang', float)", "input('sheet_x',float)", "input('sheet_y', float)", "input('diam_holes',float)", "input('diam_threaded_rod', float)", "input('diam_bit',float)", "" ], "uid": 0 }, { "datums": [ { "expr": "25", "name": "width_table", "type": "float", "uid": 5 }, { "expr": "25", "name": "height_table", "type": "float", "uid": 1 }, { "expr": "3", "name": "width_feet", "type": "float", "uid": 3 }, { "expr": "20", "name": "len_pendulum_under", "type": "float", "uid": 2 }, { "expr": "3", "name": "pen_hold_height", "type": "float", "uid": 6 }, { "expr": "1", "name": "buffer_table_leg_tab", "type": "float", "uid": 4 }, { "expr": "40", "name": "max_angle_middle_pendulum", "type": "float", "uid": 0 }, { "expr": "4", "name": "width_weight", "type": "float", "uid": 9 }, { "expr": "0.2", "name": "buffer_weight", "type": "float", "uid": 10 }, { "expr": "0.5", "name": "buffer_bottom_pend", "type": "float", "uid": 11 }, { "expr": "7", "name": "holes_pend", "type": "float", "uid": 12 }, { "expr": "1", "name": "width_holder", "type": "float", "uid": 13 }, { "expr": "1", "name": "buffer_holder_rod", "type": "float", "uid": 14 }, { "expr": "3", "name": "length_overlap_holfer", "type": "float", "uid": 15 } ], "inspector": [ 716.8089507523639, -1866.1958363514998 ], "name": "var", "script": [ "import fab", "", "title('variables')", "input('width_table', float)", "input('height_table', float)", "input('width_feet', float)", "input('len_pendulum_under', float)", "input('pen_hold_height', float)", "input('buffer_table_leg_tab',float)", "input('max_angle_middle_pendulum',float)", "input('width_weight',float)", "input('buffer_weight',float)", "input('buffer_bottom_pend',float)", "input('holes_pend',float)", "input('width_holder',float)", "input('buffer_holder_rod',float)", "input('length_overlap_holfer',float)", "", "", "" ], "uid": 1 }, { "datums": [ { "expr": "29.230010647326708", "name": "x", "type": "float", "uid": 0 }, { "expr": "27.505648232996464", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 22.54533773637587, -1240.2002251687102 ], "name": "offset", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 3 }, { "datums": [ { "expr": "\u0011[__3.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__3.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "var.width_table", "name": "width", "type": "float", "uid": 14 }, { "expr": "var.width_table", "name": "height", "type": "float", "uid": 25 }, { "expr": "\u0012fab.types.Shape('aa-f29.23X-Xf54.23a-f27.5056Y-Yf52.5056',float('29.230011'),float('27.505648'),float('-inf'),float('54.230011'),float('52.505650'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 351.22564689261287, -1253.8377932080373 ], "name": "table", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('width', float)", "input('height', float)", "", "output('shape', fab.shapes.rectangle(x0, x0+width, y0, y0+height))", "", "", "" ], "uid": 2 }, { "datums": [ { "expr": "offset.x + var.buffer_table_leg_tab", "name": "x0", "type": "float", "uid": 0 }, { "expr": "offset.y + var.buffer_table_leg_tab + 2* param.width_stock", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offset.x + var.buffer_table_leg_tab + param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offset.y + var.buffer_table_leg_tab + var.width_feet", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056',float('30.230011'),float('29.375648'),float('-inf'),float('30.665010'),float('31.505648'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -394.97840331310283, -911.74266475768616 ], "name": "r0", "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))", "", "" ], "uid": 4 }, { "datums": [ { "expr": "offset.x", "name": "x0", "type": "float", "uid": 0 }, { "expr": "offset.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "0", "name": "_z", "type": "float", "uid": 2 }, { "expr": "\u0011[__14.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13',float('31.100048'),float('28.375610'),float('-inf'),float('33.230049'),float('29.070591'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 328.67388111645357, -530.95408615031613 ], "name": "r3", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 5/31/15", "", "import fab", "", "title('Reflect (XY)')", "", "input('x0',float)", "input('y0',float)", "input('_z', float)", "", "input('shape', fab.types.Shape)", "output('reflected', fab.shapes.reflect_xy(shape, x0, y0))", "" ], "uid": 7 }, { "datums": [ { "expr": "\u0011[__14.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__7.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13',float('30.100010'),float('28.375610'),float('-inf'),float('33.230049'),float('31.505648'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 337.43331902342027, -677.54037949353608 ], "name": "u0", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 5 }, { "datums": [ { "expr": "\u0011[__5.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "offset.x + var.width_table/2", "name": "x", "type": "float", "uid": 1 }, { "expr": "offset.y + var.width_table/2", "name": "y", "type": "float", "uid": 2 }, { "expr": "4", "name": "n", "type": "int", "uid": 3 }, { "expr": "\u0012fab.types.Shape('iiim-Xf41.73-Yf40.0056-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13',float('30.100010'),float('28.375610'),float('-inf'),float('53.359989'),float('51.635590'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 344.03948342041951, -937.12122851135121 ], "name": "a0", "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))", "" ], "uid": 6 }, { "datums": [ { "expr": "\u0011[__2.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__6.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f29.23X-Xf54.23a-f27.5056Y-Yf52.5056niiim-Xf41.73-Yf40.0056-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13',float('29.230011'),float('27.505648'),float('-inf'),float('54.230011'),float('52.505650'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1137.1191663167101, -1011.4836075694109 ], "name": "d0", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 8 }, { "datums": [ { "expr": "r0.x0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "r0.y0+ param.diam_bit/2", "name": "y0", "type": "float", "uid": 1 }, { "expr": "param.diam_bit/2", "name": "r", "type": "float", "uid": 2 }, { "expr": "0", "name": "_a", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf30.23q-Yf29.5056f0.13',float('30.100010'),float('29.375648'),float('-inf'),float('30.360010'),float('29.635649'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1015.7149321044673, -697.52653923640844 ], "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)", "", "" ], "uid": 9 }, { "datums": [ { "expr": "(r0.x0+r0.x1)/2", "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": "\u0011[__9.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13',float('30.534990'),float('29.375648'),float('-inf'),float('30.794991'),float('29.635649'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -1030.5327100848513, -511.83143765054444 ], "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))", "", "" ], "uid": 10 }, { "datums": [ { "expr": "0.0", "name": "_x", "type": "float", "uid": 0 }, { "expr": "(r0.y0+r0.y1)/2", "name": "y0", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_z", "type": "float", "uid": 2 }, { "expr": "\u0011[__12.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13',float('30.100010'),float('31.245550'),float('-inf'),float('30.794991'),float('31.505550'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ -710.61692138022306, -669.96015045929505 ], "name": "r2", "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))", "", "", "" ], "uid": 11 }, { "datums": [ { "expr": "\u0011[__9.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__10.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13',float('30.100010'),float('29.375648'),float('-inf'),float('30.794991'),float('29.635649'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -705.07895268188702, -529.16108347445595 ], "name": "u1", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 12 }, { "datums": [ { "expr": "\u0011[__11.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__12.__2]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13',float('30.100010'),float('29.375648'),float('-inf'),float('30.794991'),float('31.505550'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -401.22842666530107, -539.09510859618956 ], "name": "u2", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 13 }, { "datums": [ { "expr": "\u0011[__4.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__13.__2]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13',float('30.100010'),float('29.375648'),float('-inf'),float('30.794991'),float('31.505648'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ -46.51886151400987, -667.44149121321016 ], "name": "u3", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 14 }, { "datums": [ { "expr": "offset.x+var.width_table/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "offset.y + var.buffer_table_leg_tab+param.width_stock", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offset.x+var.width_table/2", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offset.y + var.buffer_table_leg_tab+param.width_stock+param.diam_holes", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf41.73q-Yf30.5031f1.5625',float('40.167511'),float('28.940649'),float('-inf'),float('43.292511'),float('32.065647'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 763.6874062328377, -784.01382848198875 ], "name": "c1", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "", "", "" ], "uid": 15 }, { "datums": [ { "expr": "offset.x", "name": "x0", "type": "float", "uid": 0 }, { "expr": "offset.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "0", "name": "_z", "type": "float", "uid": 2 }, { "expr": "\u0011[__15.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m+f29.23-Yf27.5056+f27.5056-Xf29.23_-r+q-Xf41.73q-Yf30.5031f1.5625',float('30.665049'),float('38.443111'),float('-inf'),float('33.790047'),float('41.568111'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 760.49662224383042, -450.41036894949582 ], "name": "r4", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 5/31/15", "", "import fab", "", "title('Reflect (XY)')", "", "input('x0',float)", "input('y0',float)", "input('_z', float)", "", "input('shape', fab.types.Shape)", "output('reflected', fab.shapes.reflect_xy(shape, x0, y0))", "", "" ], "uid": 16 }, { "datums": [ { "expr": "offset.x + var.width_table/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 8 }, { "expr": "0.0", "name": "_z", "type": "float", "uid": 2 }, { "expr": "\u0011[__16.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 3 }, { "expr": "\u0012fab.types.Shape('m-*f2f41.73X__m+f29.23-Yf27.5056+f27.5056-Xf29.23_-r+q-Xf41.73q-Yf30.5031f1.5625',float('49.669952'),float('38.443111'),float('-inf'),float('52.794952'),float('41.568111'),float('inf'))", "name": "reflected", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 751.04855601506347, -273.28796924484425 ], "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))", "", "", "", "" ], "uid": 17 }, { "datums": [ { "expr": "\u0011[__15.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__16.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0011[__17.__4]", "name": "c", "type": "_fabtypes.Shape", "uid": 4 }, { "expr": "\u0012fab.types.Shape('ii-r+q-Xf41.73q-Yf30.5031f1.5625m+f29.23-Yf27.5056+f27.5056-Xf29.23_-r+q-Xf41.73q-Yf30.5031f1.5625m-*f2f41.73X__m+f29.23-Yf27.5056+f27.5056-Xf29.23_-r+q-Xf41.73q-Yf30.5031f1.5625',float('30.665049'),float('28.940649'),float('-inf'),float('52.794952'),float('41.568111'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1149.2292815162698, -413.86317943323581 ], "name": "u4", "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": 18 }, { "datums": [ { "expr": "\u0011[__8.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__18.__2]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaaa-f29.23X-Xf54.23a-f27.5056Y-Yf52.5056niiim-Xf41.73-Yf40.0056-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13nii-r+q-Xf41.73q-Yf30.5031f1.5625m+f29.23-Yf27.5056+f27.5056-Xf29.23_-r+q-Xf41.73q-Yf30.5031f1.5625m-*f2f41.73X__m+f29.23-Yf27.5056+f27.5056-Xf29.23_-r+q-Xf41.73q-Yf30.5031f1.5625',float('29.230011'),float('27.505648'),float('-inf'),float('54.230011'),float('52.505650'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1510.7873034226611, -678.48498018633973 ], "name": "d1", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 19 }, { "datums": [ { "expr": "\u0011[__19.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aaaa-f29.23X-Xf54.23a-f27.5056Y-Yf52.5056niiim-Xf41.73-Yf40.0056-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f6.12323e-17X*f1Y+*f-1X*f6.12323e-17Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m-Xf41.73-Yf40.0056-Zf0m+*f-1.83697e-16X*f-1Y+*f1X*f-1.83697e-16Y_m-Xf-41.73-Yf-40.0056-Zf0iiaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13m+f29.23-Yf27.5056+f27.5056-Xf29.23_iaa-f30.23X-Xf30.665a-f29.3756Y-Yf31.5056im_-*f2f30.4406Y_i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13i-r+q-Xf30.23q-Yf29.5056f0.13m-*f2f30.4475X__-r+q-Xf30.23q-Yf29.5056f0.13nii-r+q-Xf41.73q-Yf30.5031f1.5625m+f29.23-Yf27.5056+f27.5056-Xf29.23_-r+q-Xf41.73q-Yf30.5031f1.5625m-*f2f41.73X__m+f29.23-Yf27.5056+f27.5056-Xf29.23_-r+q-Xf41.73q-Yf30.5031f1.5625',float('29.230011'),float('27.505648'),float('-inf'),float('54.230011'),float('52.505650'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1985.7611290974669, -658.57642895968104 ], "name": "table_top", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 20 }, { "datums": [ { "expr": "\u0011[__22.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__22.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offsetleg1.x+var.width_feet", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offsetleg1.y+var.height_table", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999',float('22.256321'),float('23.899874'),float('-inf'),float('25.256321'),float('48.899872'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 1832.9600315718781, -1788.5120141110087 ], "name": "leg1", "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))", "", "", "" ], "uid": 21 }, { "datums": [ { "expr": "22.25632095336914", "name": "x", "type": "float", "uid": 0 }, { "expr": "23.899873733520508", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 1468.111264215351, -1790.0454605673954 ], "name": "offsetleg1", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 22 }, { "datums": [ { "expr": "17.5593980550766", "name": "x", "type": "float", "uid": 0 }, { "expr": "23.537967681884766", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 1462.3353286687388, -1675.1966536394302 ], "name": "offsetleg2", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 23 }, { "datums": [ { "expr": "leg1.x0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "leg1.y1", "name": "y0", "type": "float", "uid": 1 }, { "expr": "leg1.x0+var.width_feet-2*param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "leg1.y1+param.width_stock", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349',float('22.256321'),float('48.899872'),float('-inf'),float('24.386320'),float('49.334873'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 1831.3872584272515, -1530.5022777684901 ], "name": "toptab", "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))", "" ], "uid": 24 }, { "datums": [ { "expr": "\u0011[__21.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__24.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349',float('22.256321'),float('23.899874'),float('-inf'),float('25.256321'),float('49.334873'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2185.4091405323911, -1532.2206412272271 ], "name": "u5", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 25 }, { "datums": [ { "expr": "toptab.x1", "name": "x0", "type": "float", "uid": 0 }, { "expr": "toptab.y0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "toptab.x1+param.diam_bit", "name": "x1", "type": "float", "uid": 2 }, { "expr": "toptab.y0", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf24.5163q-Yf48.8999f0.13',float('24.386320'),float('48.769875'),float('-inf'),float('24.646320'),float('49.029873'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2189.2177480634209, -1397.8159568698038 ], "name": "c2", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "", "", "", "" ], "uid": 26 }, { "datums": [ { "expr": "\u0011[__25.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__26.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aiaa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349n-r+q-Xf24.5163q-Yf48.8999f0.13',float('22.256321'),float('23.899874'),float('-inf'),float('25.256321'),float('49.334873'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2518.7897340780314, -1547.0752083374634 ], "name": "d2", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 27 }, { "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": "offsetleg2.x-offsetleg1.x", "name": "dx", "type": "float", "uid": 3 }, { "expr": "offsetleg2.y-offsetleg1.y", "name": "dy", "type": "float", "uid": 4 }, { "expr": "0", "name": "dz", "type": "float", "uid": 5 }, { "expr": "\u0011[__27.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf-4.69692-Yf-0.361906-Zf0aiaa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349n-r+q-Xf24.5163q-Yf48.8999f0.13',float('17.559401'),float('23.537968'),float('-inf'),float('20.559401'),float('48.972969'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 2519.5695391845143, -1402.7813188485072 ], "name": "t0", "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))", "", "" ], "uid": 28 }, { "datums": [ { "expr": "offsetleg1.x+var.width_feet-param.width_stock", "name": "x0", "type": "float", "uid": 0 }, { "expr": "offsetleg1.y", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offsetleg1.x+var.width_feet", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offsetleg1.y+1/3*var.height_table", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332',float('24.821321'),float('23.899874'),float('-inf'),float('25.256321'),float('32.233208'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2527.5297170940185, -2119.000917878062 ], "name": "slot1", "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))", "", "", "" ], "uid": 29 }, { "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.height_table*2/3", "name": "dy", "type": "float", "uid": 4 }, { "expr": "0", "name": "dz", "type": "float", "uid": 5 }, { "expr": "\u0011[__29.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf16.6667-Zf0aa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332',float('24.821321'),float('40.566574'),float('-inf'),float('25.256321'),float('48.899910'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 2528.8847803020753, -1865.6040979711152 ], "name": "t1", "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))", "", "" ], "uid": 30 }, { "datums": [ { "expr": "\u0011[__29.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__30.__7]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332m-Xf0-Yf16.6667-Zf0aa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332',float('24.821321'),float('23.899874'),float('-inf'),float('25.256321'),float('48.899910'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2858.8758185755096, -1862.5839319766746 ], "name": "u6", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 31 }, { "datums": [ { "expr": "\u0011[__27.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__31.__2]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaiaa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349n-r+q-Xf24.5163q-Yf48.8999f0.13niaa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332m-Xf0-Yf16.6667-Zf0aa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332',float('22.256321'),float('23.899874'),float('-inf'),float('25.256321'),float('49.334873'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3201.8064342102043, -1767.3254276337041 ], "name": "d3", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 32 }, { "datums": [ { "expr": "slot1.x0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "slot1.y1-param.diam_bit", "name": "y0", "type": "float", "uid": 1 }, { "expr": "slot1.x0", "name": "x1", "type": "float", "uid": 2 }, { "expr": "slot1.y1", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf24.8213q-Yf32.1032f0.13',float('24.691320'),float('31.973207'),float('-inf'),float('24.951321'),float('32.233208'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2861.1171951482856, -2379.2212320014933 ], "name": "c3", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "", "" ], "uid": 33 }, { "datums": [ { "expr": "slot1.x0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "slot1.y1+var.height_table*1/3", "name": "y0", "type": "float", "uid": 1 }, { "expr": "slot1.x0", "name": "x1", "type": "float", "uid": 2 }, { "expr": "slot1.y1+var.height_table*1/3+param.diam_bit", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf24.8213q-Yf40.6965f0.13',float('24.691320'),float('40.566540'),float('-inf'),float('24.951321'),float('40.826542'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2858.7896239980178, -2164.13527559251 ], "name": "c4", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "", "" ], "uid": 34 }, { "datums": [ { "expr": "\u0011[__33.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__34.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('i-r+q-Xf24.8213q-Yf32.1032f0.13-r+q-Xf24.8213q-Yf40.6965f0.13',float('24.691320'),float('31.973207'),float('-inf'),float('24.951321'),float('40.826542'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3202.9271224965923, -2128.1870558506052 ], "name": "u7", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 35 }, { "datums": [ { "expr": "\u0011[__32.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__35.__2]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaaiaa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349n-r+q-Xf24.5163q-Yf48.8999f0.13niaa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332m-Xf0-Yf16.6667-Zf0aa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332ni-r+q-Xf24.8213q-Yf32.1032f0.13-r+q-Xf24.8213q-Yf40.6965f0.13',float('22.256321'),float('23.899874'),float('-inf'),float('25.256321'),float('49.334873'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3542.4956732721239, -1942.1528003102148 ], "name": "d4", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 36 }, { "datums": [ { "expr": "offsetleg2.x+var.width_feet-param.width_stock", "name": "x0", "type": "float", "uid": 0 }, { "expr": "offsetleg2.y+var.height_table*1/3", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offsetleg2.x+var.width_feet", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offsetleg2.y+2/3*var.height_table", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f20.1244X-Xf20.5594a-f31.8713Y-Yf40.2046',float('20.124397'),float('31.871302'),float('-inf'),float('20.559399'),float('40.204636'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2525.9218285052652, -1164.8023719506095 ], "name": "slot2", "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))", "", "", "" ], "uid": 37 }, { "datums": [ { "expr": "\u0011[__28.__7]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__37.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('am-Xf-4.69692-Yf-0.361906-Zf0aiaa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349n-r+q-Xf24.5163q-Yf48.8999f0.13naa-f20.1244X-Xf20.5594a-f31.8713Y-Yf40.2046',float('17.559401'),float('23.537968'),float('-inf'),float('20.559401'),float('48.972969'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2998.5127421891361, -1458.3402751826579 ], "name": "d5", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 38 }, { "datums": [ { "expr": "slot2.x0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "slot2.y0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "slot2.x0", "name": "x1", "type": "float", "uid": 2 }, { "expr": "slot2.y0+param.diam_bit", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf20.1244q-Yf32.0013f0.13',float('19.994398'),float('31.871302'),float('-inf'),float('20.254398'),float('32.131302'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 3005.4118028228568, -1294.9390764904131 ], "name": "c5", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "" ], "uid": 39 }, { "datums": [ { "expr": "slot2.x0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "slot2.y1", "name": "y0", "type": "float", "uid": 1 }, { "expr": "slot2.x0", "name": "x1", "type": "float", "uid": 2 }, { "expr": "slot2.y1-param.diam_bit", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf20.1244q-Yf40.0746f0.13',float('19.994398'),float('39.944633'),float('-inf'),float('20.254398'),float('40.204636'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 3005.2209081165838, -1084.5181472670436 ], "name": "c6", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "" ], "uid": 40 }, { "datums": [ { "expr": "\u0011[__39.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__40.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('i-r+q-Xf20.1244q-Yf32.0013f0.13-r+q-Xf20.1244q-Yf40.0746f0.13',float('19.994398'),float('31.871302'),float('-inf'),float('20.254398'),float('40.204636'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3325.5727559303828, -1124.0379501596758 ], "name": "u8", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 41 }, { "datums": [ { "expr": "\u0011[__38.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__41.__2]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aam-Xf-4.69692-Yf-0.361906-Zf0aiaa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349n-r+q-Xf24.5163q-Yf48.8999f0.13naa-f20.1244X-Xf20.5594a-f31.8713Y-Yf40.2046ni-r+q-Xf20.1244q-Yf32.0013f0.13-r+q-Xf20.1244q-Yf40.0746f0.13',float('17.559401'),float('23.537968'),float('-inf'),float('20.559401'),float('48.972969'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3531.0055362740695, -1504.0565121267225 ], "name": "d6", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 42 }, { "datums": [ { "expr": "\u0011[__36.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aaaiaa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349n-r+q-Xf24.5163q-Yf48.8999f0.13niaa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332m-Xf0-Yf16.6667-Zf0aa-f24.8213X-Xf25.2563a-f23.8999Y-Yf32.2332ni-r+q-Xf24.8213q-Yf32.1032f0.13-r+q-Xf24.8213q-Yf40.6965f0.13',float('22.256321'),float('23.899874'),float('-inf'),float('25.256321'),float('49.334873'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4428.4029588835438, -1751.897794117858 ], "name": "leg_one", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 43 }, { "datums": [ { "expr": "\u0011[__42.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aam-Xf-4.69692-Yf-0.361906-Zf0aiaa-f22.2563X-Xf25.2563a-f23.8999Y-Yf48.8999aa-f22.2563X-Xf24.3863a-f48.8999Y-Yf49.3349n-r+q-Xf24.5163q-Yf48.8999f0.13naa-f20.1244X-Xf20.5594a-f31.8713Y-Yf40.2046ni-r+q-Xf20.1244q-Yf32.0013f0.13-r+q-Xf20.1244q-Yf40.0746f0.13',float('17.559401'),float('23.537968'),float('-inf'),float('20.559401'),float('48.972969'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4425.3573423230664, -1610.1370668570346 ], "name": "leg_two", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 44 }, { "datums": [ { "expr": "\u0011[__0.__5]", "name": "sheet_y", "type": "float", "uid": 0 }, { "expr": "\u0011[__1.__0]", "name": "angle", "type": "float", "uid": 1 }, { "expr": "\u0011[__1.__5]", "name": "width_table", "type": "float", "uid": 3 }, { "expr": "\u0011[__0.__1]", "name": "diam_holes", "type": "float", "uid": 4 }, { "expr": "\u0011[__1.__4]", "name": "buffer_table_leg_tab", "type": "float", "uid": 5 }, { "expr": "\u0011[__0.__2]", "name": "width_stock", "type": "float", "uid": 6 }, { "expr": "\u0011[__1.__13]", "name": "width_holder", "type": "float", "uid": 8 }, { "expr": "\u0011[__1.__14]", "name": "buffer_holder_rod", "type": "float", "uid": 37 }, { "expr": "\u0011[__1.__15]", "name": "overlap", "type": "float", "uid": 9 }, { "expr": "\u0011[__0.__7]", "name": "diam_bit", "type": "float", "uid": 10 }, { "expr": "\u00124.824822879269361", "name": "len_pend_over_table", "type": "float", "uid": 2 }, { "expr": "\u001211.438564376450335", "name": "top_rod_len", "type": "float", "uid": 7 }, { "expr": "\u00124.935", "name": "len_connector_holder", "type": "float", "uid": 11 } ], "inspector": [ 1177.1652754683555, -2299.4662585273322 ], "name": "var_dep", "script": [ "import fab", "import math", "", "title('script')", "", "input('sheet_y',float)", "input('angle',float)", "input('width_table',float)", "input('diam_holes', float)", "input('buffer_table_leg_tab',float)", "input('width_stock',float)", "input('width_holder',float)", "input('buffer_holder_rod',float)", "input('overlap',float)", "input('diam_bit',float)", "", " ", "len = (sheet_y/2)/math.tan((90-angle)/360*2*math.pi)", "rod = math.sqrt(2)*(width_table/2-diam_holes/2-buffer_table_leg_tab-width_stock) -width_holder-buffer_holder_rod", "hinge = overlap+buffer_holder_rod+width_holder/2+width_stock", "", "output('len_pend_over_table',len)", "output('top_rod_len',rod)", "output('len_connector_holder',hinge)" ], "uid": 45 }, { "datums": [ { "expr": "\u0011[__47.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__47.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offsettable.x+param.sheet_x", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offsettable.y+param.sheet_y", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f8.01104X-Xf17.011a-f29.8812Y-Yf41.3812',float('8.011044'),float('29.881231'),float('-inf'),float('17.011044'),float('41.381233'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2803.5122804448265, -763.72256307433793 ], "name": "sheettable", "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))", "", "", "", "" ], "uid": 46 }, { "datums": [ { "expr": "8.011044025421143", "name": "x", "type": "float", "uid": 0 }, { "expr": "29.8812313079834", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 2472.3815596323702, -764.90730332434123 ], "name": "offsettable", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 47 }, { "datums": [ { "expr": "\u0011[__49.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__49.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offsettablesup.x+6*param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offsettablesup.y+6*param.width_stock", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f9.99356X-Xf12.6036a-f25.7545Y-Yf28.3645',float('9.993555'),float('25.754534'),float('-inf'),float('12.603556'),float('28.364534'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2804.1032118375751, -496.5885166562129 ], "name": "sheetsup", "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))", "", "" ], "uid": 48 }, { "datums": [ { "expr": "9.993555545806885", "name": "x", "type": "float", "uid": 0 }, { "expr": "25.754533767700195", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 2460.1407796077906, -652.39273547397352 ], "name": "offsettablesup", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 49 }, { "datums": [ { "expr": "sheetsup.x0+2*param.width_stock", "name": "x0", "type": "float", "uid": 0 }, { "expr": "sheetsup.y0+2*param.width_stock", "name": "y0", "type": "float", "uid": 1 }, { "expr": "sheetsup.x1-2*param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "sheetsup.y1-2*param.width_stock", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f10.8636X-Xf11.7336a-f26.6245Y-Yf27.4945',float('10.863556'),float('26.624535'),float('-inf'),float('11.733556'),float('27.494534'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2511.6480662803338, -324.05991924634918 ], "name": "hole", "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))", "", "" ], "uid": 50 }, { "datums": [ { "expr": "\u0011[__48.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__58.__2]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f9.99356X-Xf12.6036a-f25.7545Y-Yf28.3645niaa-f10.8636X-Xf11.7336a-f26.6245Y-Yf27.4945im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0.61-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0-Yf0.87-Zf0im-Xf0-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0.61-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13',float('9.993555'),float('25.754534'),float('-inf'),float('12.603556'),float('28.364534'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3129.9701326227978, -178.30515072158764 ], "name": "d7", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 51 }, { "datums": [ { "expr": "\u0011[__46.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aa-f8.01104X-Xf17.011a-f29.8812Y-Yf41.3812',float('8.011044'),float('29.881231'),float('-inf'),float('17.011044'),float('41.381233'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4405.914340420306, -260.76095811168966 ], "name": "sheet_table", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 52 }, { "datums": [ { "expr": "\u0011[__51.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aaa-f9.99356X-Xf12.6036a-f25.7545Y-Yf28.3645niaa-f10.8636X-Xf11.7336a-f26.6245Y-Yf27.4945im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0.61-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0-Yf0.87-Zf0im-Xf0-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0.61-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13',float('9.993555'),float('25.754534'),float('-inf'),float('12.603556'),float('28.364534'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4397.7201973413594, -115.19299399362251 ], "name": "sheet_support", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 53 }, { "datums": [ { "expr": "\u0011[__55.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__55.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offsetweight.x+var.width_weight", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offsetweight.y+var.width_weight", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f10.0615X-Xf14.0615a-f43.2833Y-Yf47.2833',float('10.061478'),float('43.283333'),float('-inf'),float('14.061478'),float('47.283333'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2841.971658477255, 398.11294337666078 ], "name": "weight", "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))", "", "" ], "uid": 54 }, { "datums": [ { "expr": "10.061477661132812", "name": "x", "type": "float", "uid": 0 }, { "expr": "43.28333282470703", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 2489.6078982924237, 414.27469379392898 ], "name": "offsetweight", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 55 }, { "datums": [ { "expr": "hole.x0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "hole.y0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "hole.x0+param.diam_bit", "name": "x1", "type": "float", "uid": 2 }, { "expr": "hole.y0", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf10.9936q-Yf26.6245f0.13',float('10.863556'),float('26.494534'),float('-inf'),float('11.123555'),float('26.754534'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2504.5990874676263, -59.785061380716492 ], "name": "c7", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "", "" ], "uid": 56 }, { "datums": [ { "expr": "\u0011[__56.__4]", "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": "2", "name": "i", "type": "int", "uid": 3 }, { "expr": "2", "name": "j", "type": "int", "uid": 4 }, { "expr": "2*param.width_stock-param.diam_bit", "name": "dx", "type": "float", "uid": 5 }, { "expr": "2*param.width_stock", "name": "dy", "type": "float", "uid": 6 }, { "expr": "\u0012fab.types.Shape('im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0.61-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0-Yf0.87-Zf0im-Xf0-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0.61-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13',float('10.863556'),float('26.494534'),float('-inf'),float('11.733555'),float('27.624535'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 2503.0966092596882, 143.56497968054231 ], "name": "a1", "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))", "", "", "" ], "uid": 57 }, { "datums": [ { "expr": "\u0011[__50.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__57.__7]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaa-f10.8636X-Xf11.7336a-f26.6245Y-Yf27.4945im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0.61-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0-Yf0.87-Zf0im-Xf0-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13m-Xf0.61-Yf0-Zf0-r+q-Xf10.9936q-Yf26.6245f0.13',float('10.863556'),float('26.494534'),float('-inf'),float('11.733556'),float('27.624535'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2828.1486843293769, 3.1193130308176045 ], "name": "u9", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 58 }, { "datums": [ { "expr": "(weight.x0+weight.x1)/2-param.width_stock-var.buffer_weight", "name": "x0", "type": "float", "uid": 0 }, { "expr": "(weight.y0+weight.y1)/2-param.width_stock-var.buffer_weight", "name": "y0", "type": "float", "uid": 1 }, { "expr": "(weight.x0+weight.x1)/2+param.width_stock+var.buffer_weight", "name": "x1", "type": "float", "uid": 2 }, { "expr": "(weight.y0+weight.y1)/2+param.width_stock+var.buffer_weight", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f11.4265X-Xf12.6965a-f44.6483Y-Yf45.9183',float('11.426477'),float('44.648335'),float('-inf'),float('12.696478'),float('45.918331'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2843.7656252902684, 656.65240238412832 ], "name": "hole2", "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))", "", "" ], "uid": 59 }, { "datums": [ { "expr": "\u0011[__54.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__59.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f10.0615X-Xf14.0615a-f43.2833Y-Yf47.2833naa-f11.4265X-Xf12.6965a-f44.6483Y-Yf45.9183',float('10.061478'),float('43.283333'),float('-inf'),float('14.061478'),float('47.283333'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3205.3697571567345, 661.933608975325 ], "name": "d8", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 60 }, { "datums": [ { "expr": "\u0011[__60.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aaa-f10.0615X-Xf14.0615a-f43.2833Y-Yf47.2833naa-f11.4265X-Xf12.6965a-f44.6483Y-Yf45.9183',float('10.061478'),float('43.283333'),float('-inf'),float('14.061478'),float('47.283333'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4393.5473247632126, 31.811440928455227 ], "name": "weights", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 61 }, { "datums": [ { "expr": "\u0011[__63.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__63.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offsetrod.x+ 2* param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offsetrod.y+var_dep.len_pend_over_table+var.len_pendulum_under", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f2.14966X-Xf3.01966a-f26.3045Y-Yf51.1293',float('2.149662'),float('26.304502'),float('-inf'),float('3.019662'),float('51.129326'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2866.8608158457278, -5116.648076563778 ], "name": "pend", "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))", "", "" ], "uid": 62 }, { "datums": [ { "expr": "2.1496620178222656", "name": "x", "type": "float", "uid": 0 }, { "expr": "26.304502487182617", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 2512.1019727403632, -5116.1472648206318 ], "name": "offsetrod", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 63 }, { "datums": [ { "expr": "pend.x0+1/2*param.width_stock", "name": "x0", "type": "float", "uid": 0 }, { "expr": "pend.y0 + var.buffer_bottom_pend", "name": "y0", "type": "float", "uid": 1 }, { "expr": "pend.x1-1/2*param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "pend.y0+param.width_stock++ var.buffer_bottom_pend", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395',float('2.367162'),float('26.804502'),float('-inf'),float('2.802162'),float('27.239502'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2497.4168258513105, -4985.9485205659194 ], "name": "hole1", "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))", "", "" ], "uid": 64 }, { "datums": [ { "expr": "\u0011[__64.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__66.__7]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13',float('2.367162'),float('26.674503'),float('-inf'),float('2.802162'),float('27.369501'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2872.0899564911738, -4766.1353271214948 ], "name": "u10", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 65 }, { "datums": [ { "expr": "\u0011[__67.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "4.3526692390441895", "name": "_x", "type": "float", "uid": 1 }, { "expr": "3.1411008834838867", "name": "_y", "type": "float", "uid": 2 }, { "expr": "2", "name": "i", "type": "int", "uid": 3 }, { "expr": "2", "name": "j", "type": "int", "uid": 4 }, { "expr": "param.width_stock-param.diam_bit", "name": "dx", "type": "float", "uid": 5 }, { "expr": "param.width_stock", "name": "dy", "type": "float", "uid": 6 }, { "expr": "\u0012fab.types.Shape('im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13',float('2.367162'),float('26.674503'),float('-inf'),float('2.802162'),float('27.369501'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 2492.7712597345158, -4444.8750124614917 ], "name": "a2", "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))", "", "" ], "uid": 66 }, { "datums": [ { "expr": "hole1.x0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "hole1.y0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "hole1.x0+param.diam_bit", "name": "x1", "type": "float", "uid": 2 }, { "expr": "hole1.y0", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf2.49716q-Yf26.8045f0.13',float('2.367162'),float('26.674503'),float('-inf'),float('2.627162'),float('26.934502'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2494.2737379424557, -4671.4911711831674 ], "name": "c8", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "", "" ], "uid": 67 }, { "datums": [ { "expr": "\u0011[__62.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__69.__7]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f2.14966X-Xf3.01966a-f26.3045Y-Yf51.1293niiiiiim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf2.65214-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf5.30429-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf7.95643-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf10.6086-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf13.2607-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf15.9129-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13',float('2.149662'),float('26.304502'),float('-inf'),float('3.019662'),float('51.129326'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3299.9031368425599, -4719.4286991347099 ], "name": "d9", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 68 }, { "datums": [ { "expr": "\u0011[__65.__2]", "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": "var.holes_pend", "name": "j", "type": "int", "uid": 4 }, { "expr": "0", "name": "dx", "type": "float", "uid": 5 }, { "expr": "(var.len_pendulum_under-2*var.buffer_bottom_pend-param.width_stock)/(var.holes_pend)", "name": "dy", "type": "float", "uid": 6 }, { "expr": "\u0012fab.types.Shape('iiiiiim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf2.65214-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf5.30429-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf7.95643-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf10.6086-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf13.2607-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf15.9129-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13',float('2.367162'),float('26.674503'),float('-inf'),float('2.802162'),float('43.282402'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 2875.7994105594912, -4603.605178298084 ], "name": "a3", "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))", "" ], "uid": 69 }, { "datums": [ { "expr": "\u0011[__68.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aaa-f2.14966X-Xf3.01966a-f26.3045Y-Yf51.1293niiiiiim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf2.65214-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf5.30429-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf7.95643-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf10.6086-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf13.2607-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf15.9129-Zf0m-Xf0-Yf0-Zf0iaa-f2.36716X-Xf2.80216a-f26.8045Y-Yf27.2395im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf2.49716q-Yf26.8045f0.13',float('2.149662'),float('26.304502'),float('-inf'),float('3.019662'),float('51.129326'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4384.3863105020755, -5286.8526021909083 ], "name": "pendulum_center", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 70 }, { "datums": [ { "expr": "4.907572269439697", "name": "x", "type": "float", "uid": 0 }, { "expr": "26.95855140686035", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 2510.527764221169, -5389.2156833254512 ], "name": "p0", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 71 }, { "datums": [ { "expr": "\u0011[__71.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__71.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "p0.x+param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "p0.y+var.width_weight", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f4.90757X-Xf5.34257a-f26.9586Y-Yf30.9586',float('4.907572'),float('26.958551'),float('-inf'),float('5.342572'),float('30.958551'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2864.4628739758459, -5382.751752209012 ], "name": "r6", "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))", "", "" ], "uid": 72 }, { "datums": [ { "expr": "\u0011[__72.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aa-f4.90757X-Xf5.34257a-f26.9586Y-Yf30.9586',float('4.907572'),float('26.958551'),float('-inf'),float('5.342572'),float('30.958551'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4383.2192908098332, -5431.9895949027077 ], "name": "weight_joint", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 73 }, { "datums": [ { "expr": "-1.2631454467773438", "name": "x", "type": "float", "uid": 0 }, { "expr": "27.218048095703125", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 2502.8043641714362, -5656.8822841046012 ], "name": "p1", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 74 }, { "datums": [ { "expr": "\u0011[__74.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__74.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "p1.x+param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "p1.y+var_dep.top_rod_len", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-1.26315X-Xf-0.828145a-f27.218Y-Yf38.6566',float('-1.263145'),float('27.218048'),float('-inf'),float('-0.828145'),float('38.656612'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2861.5537055516702, -5670.1024231423535 ], "name": "r7", "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))", "", "" ], "uid": 75 }, { "datums": [ { "expr": "\u0011[__75.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aa-f-1.26315X-Xf-0.828145a-f27.218Y-Yf38.6566',float('-1.263145'),float('27.218048'),float('-inf'),float('-0.828145'),float('38.656612'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4383.2996324741507, -5571.141769248642 ], "name": "top_rods", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 76 }, { "datums": [ { "expr": "-4.326148986816406", "name": "x", "type": "float", "uid": 0 }, { "expr": "26.695096015930176", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 2501.8287921025035, -6294.8866650777427 ], "name": "p2", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 77 }, { "datums": [ { "expr": "\u0011[__77.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__77.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "p2.x+param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "p2.y+var_dep.len_connector_holder", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-4.32615X-Xf-3.89115a-f26.6951Y-Yf31.6301',float('-4.326149'),float('26.695095'),float('-inf'),float('-3.891149'),float('31.630096'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2860.5781334827366, -6308.1068041154949 ], "name": "r8", "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))", "", "" ], "uid": 78 }, { "datums": [ { "expr": "(r8.x1+r8.x0)/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "r8.y1-(r8.x1-r8.x0)/2-param.diam_threaded_rod/2-0.02", "name": "y0", "type": "float", "uid": 1 }, { "expr": "(r8.x1+r8.x0)/2", "name": "x1", "type": "float", "uid": 2 }, { "expr": "r8.y1-(r8.x1-r8.x0)/2+param.diam_threaded_rod/2+0.02", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf-4.10865q-Yf31.4126f0.12',float('-4.228649'),float('31.292597'),float('-inf'),float('-3.988649'),float('31.532597'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2860.9374104726207, -6007.6648723494136 ], "name": "c9", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "", "", "", "" ], "uid": 79 }, { "datums": [ { "expr": "\u0011[__78.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__79.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f-4.32615X-Xf-3.89115a-f26.6951Y-Yf31.6301n-r+q-Xf-4.10865q-Yf31.4126f0.12',float('-4.326149'),float('26.695095'),float('-inf'),float('-3.891149'),float('31.630096'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3369.9658973621436, -5993.0788734187963 ], "name": "d10", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 80 }, { "datums": [ { "expr": "\u0011[__80.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aaa-f-4.32615X-Xf-3.89115a-f26.6951Y-Yf31.6301n-r+q-Xf-4.10865q-Yf31.4126f0.12',float('-4.326149'),float('26.695095'),float('-inf'),float('-3.891149'),float('31.630096'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4382.0166055464542, -5719.9975862007841 ], "name": "holder_connector", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 81 }, { "datums": [ { "expr": "\u0011[__84.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__84.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "p3.x+var.width_holder", "name": "x1", "type": "float", "uid": 2 }, { "expr": "p3.y+var.width_holder", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f-3.87715X-Xf-2.87715a-f32.2333Y-Yf33.2333',float('-3.877148'),float('32.233265'),float('-inf'),float('-2.877148'),float('33.233265'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2860.0717218094283, -6914.4829556163158 ], "name": "r9", "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))", "", "" ], "uid": 82 }, { "datums": [ { "expr": "\u0011[__82.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__85.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f-3.87715X-Xf-2.87715a-f32.2333Y-Yf33.2333n-r+q-Xf-3.37715q-Yf32.7333f0.1',float('-3.877148'),float('32.233265'),float('-inf'),float('-2.877148'),float('33.233265'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3277.764771921265, -6608.6244962963729 ], "name": "d11", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 83 }, { "datums": [ { "expr": "-3.877148151397705", "name": "x", "type": "float", "uid": 0 }, { "expr": "32.23326587677002", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 2501.3223804291952, -6901.2628165785636 ], "name": "p3", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 84 }, { "datums": [ { "expr": "r9.x0+var.width_holder/2", "name": "x0", "type": "float", "uid": 0 }, { "expr": "(r9.y0+r9.y1)/2-param.diam_threaded_rod/2", "name": "y0", "type": "float", "uid": 1 }, { "expr": "r9.x0+var.width_holder/2", "name": "x1", "type": "float", "uid": 2 }, { "expr": "(r9.y0+r9.y1)/2+param.diam_threaded_rod/2", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf-3.37715q-Yf32.7333f0.1',float('-3.477148'),float('32.633266'),float('-inf'),float('-3.277148'),float('32.833267'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2860.4309987993106, -6614.0410238502327 ], "name": "c10", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "", "", "", "" ], "uid": 85 }, { "datums": [ { "expr": "\u0011[__83.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aaa-f-3.87715X-Xf-2.87715a-f32.2333Y-Yf33.2333n-r+q-Xf-3.37715q-Yf32.7333f0.1',float('-3.877148'),float('32.233265'),float('-inf'),float('-2.877148'),float('33.233265'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4377.1898180742119, -5859.6345510627061 ], "name": "holder", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 86 }, { "datums": [ { "expr": "\u0011[__91.__2]", "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": "var.holes_pend", "name": "j", "type": "int", "uid": 4 }, { "expr": "0", "name": "dx", "type": "float", "uid": 5 }, { "expr": "(var.len_pendulum_under-2*var.buffer_bottom_pend-param.width_stock)/(var.holes_pend)", "name": "dy", "type": "float", "uid": 6 }, { "expr": "\u0012fab.types.Shape('iiiiiim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf2.65214-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf5.30429-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf7.95643-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf10.6086-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf13.2607-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf15.9129-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13',float('0.536903'),float('26.252136'),float('-inf'),float('0.971903'),float('42.860035'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 2878.263314495347, -3643.5276780500935 ], "name": "a4", "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))", "" ], "uid": 87 }, { "datums": [ { "expr": "\u0011[__90.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__87.__7]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aaa-f0.319403X-Xf1.1894a-f25.8821Y-Yf53.707niiiiiim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf2.65214-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf5.30429-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf7.95643-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf10.6086-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf13.2607-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf15.9129-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13',float('0.319403'),float('25.882135'),float('-inf'),float('1.189403'),float('53.706959'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 3302.3670407784166, -3759.3511988867194 ], "name": "d12", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 88 }, { "datums": [ { "expr": "hole0.x0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "hole0.y0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "hole0.x0+param.diam_bit", "name": "x1", "type": "float", "uid": 2 }, { "expr": "hole0.y0", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('-r+q-Xf0.666903q-Yf26.3821f0.13',float('0.536903'),float('26.252136'),float('-inf'),float('0.796903'),float('26.512135'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2496.7376418783115, -3711.4136709351769 ], "name": "c11", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/18", "", "import fab", "import math", "", "title('Circle (edge)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "x = (x0 + x1) / 2", "y = (y0 + y1) / 2", "r = math.sqrt((x - x0)**2 + (y - y0)**2)", "", "# We could use fab.shapes.circle_edge, but we have to work out x, y, and r", "# anyways for the UI wireframe (so might as well not duplicate effort).", "output('shape', fab.shapes.circle(x, y, r))", "", "" ], "uid": 89 }, { "datums": [ { "expr": "\u0011[__93.__0]", "name": "x0", "type": "float", "uid": 0 }, { "expr": "\u0011[__93.__1]", "name": "y0", "type": "float", "uid": 1 }, { "expr": "offsetrod0.x+ 2* param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "offsetrod0.y+var_dep.len_pend_over_table+var.len_pendulum_under+ var.pen_hold_height", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f0.319403X-Xf1.1894a-f25.8821Y-Yf53.707',float('0.319403'),float('25.882135'),float('-inf'),float('1.189403'),float('53.706959'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2869.3247197815836, -4156.5705763157875 ], "name": "pend0", "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))", "", "" ], "uid": 90 }, { "datums": [ { "expr": "\u0011[__94.__4]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__92.__7]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13',float('0.536903'),float('26.252136'),float('-inf'),float('0.971903'),float('26.947134'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 2874.5538604270296, -3806.0578268735044 ], "name": "u11", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 91 }, { "datums": [ { "expr": "\u0011[__89.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "4.3526692390441895", "name": "_x", "type": "float", "uid": 1 }, { "expr": "3.1411008834838867", "name": "_y", "type": "float", "uid": 2 }, { "expr": "2", "name": "i", "type": "int", "uid": 3 }, { "expr": "2", "name": "j", "type": "int", "uid": 4 }, { "expr": "param.width_stock-param.diam_bit", "name": "dx", "type": "float", "uid": 5 }, { "expr": "param.width_stock", "name": "dy", "type": "float", "uid": 6 }, { "expr": "\u0012fab.types.Shape('im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13',float('0.536903'),float('26.252136'),float('-inf'),float('0.971903'),float('26.947134'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 2495.2351636703715, -3484.7975122134994 ], "name": "a5", "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))", "", "" ], "uid": 92 }, { "datums": [ { "expr": "0.31940269470214844", "name": "x", "type": "float", "uid": 0 }, { "expr": "25.88213539123535", "name": "y", "type": "float", "uid": 1 } ], "inspector": [ 2514.5658766762181, -4156.0697645726414 ], "name": "offsetrod0", "script": [ "import fab", "", "title('Point (2D)')", "", "input('x', float)", "input('y', float)", "", "sb.ui.point(x, y, 0)", "" ], "uid": 93 }, { "datums": [ { "expr": "pend0.x0+1/2*param.width_stock", "name": "x0", "type": "float", "uid": 0 }, { "expr": "pend0.y0 + var.buffer_bottom_pend", "name": "y0", "type": "float", "uid": 1 }, { "expr": "pend0.x1-1/2*param.width_stock", "name": "x1", "type": "float", "uid": 2 }, { "expr": "pend0.y0+param.width_stock++ var.buffer_bottom_pend", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171',float('0.536903'),float('26.382135'),float('-inf'),float('0.971903'),float('26.817135'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 2499.8807297871663, -4025.8710203179289 ], "name": "hole0", "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))", "", "" ], "uid": 94 }, { "datums": [ { "expr": "\u0011[__88.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('aaa-f0.319403X-Xf1.1894a-f25.8821Y-Yf53.707niiiiiim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf2.65214-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf5.30429-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf7.95643-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf10.6086-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf13.2607-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf15.9129-Zf0m-Xf0-Yf0-Zf0iaa-f0.536903X-Xf0.971903a-f26.3821Y-Yf26.8171im-Xf0-Yf0-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0-Yf0.435-Zf0im-Xf0-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13m-Xf0.175-Yf0-Zf0-r+q-Xf0.666903q-Yf26.3821f0.13',float('0.319403'),float('25.882135'),float('-inf'),float('1.189403'),float('53.706959'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 4378.1768536626942, -5122.8627622167924 ], "name": "pendulum_sides", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 95 } ], "protocol": 6, "type": "sb" }