Skip to content

Instantly share code, notes, and snippets.

@fullcontrol-xyz
Last active November 27, 2023 02:52
Show Gist options
  • Save fullcontrol-xyz/f46f4208a47c39b62e3948490f921e2e to your computer and use it in GitHub Desktop.
Save fullcontrol-xyz/f46f4208a47c39b62e3948490f921e2e to your computer and use it in GitHub Desktop.
electronic_circuit_demo.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/fullcontrol-xyz/f46f4208a47c39b62e3948490f921e2e/electronic_circuit_demo.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ac9_FmrCOwQL"
},
"source": [
"# FullControl design template\n",
"\n",
"press ctrl+F9 to run all cells in this notebook, or press shift+enter to run each cell sequentially \n",
"\n",
"if you change one of the code cells, make sure you run it and all subsequent cells again (in order)\n",
"\n",
"*this document is a jupyter notebook - if they're new to you, check out how they work: [link](https://www.google.com/search?q=ipynb+tutorial), [link](https://jupyter.org/try-jupyter/retro/notebooks/?path=notebooks/Intro.ipynb), [link](https://colab.research.google.com/)*"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XVYUcd_RO3BD"
},
"source": [
"### be patient :)\n",
"\n",
"the next code cell may take a while because running it causes several things to happen:\n",
"- connect to a google colab server -> download the fullcontrol code -> install the fullcontrol code\n",
"\n",
"check out [other tutorials](https://github.com/FullControlXYZ/fullcontrol/blob/master/docs/README.md) to understand the python code for the FullControl design"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "57XXnogSOvDx",
"outputId": "12b0d43a-f460-41c7-bf8f-fd65a6b86202",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
" Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
" Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
" Building wheel for fullcontrol (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n"
]
}
],
"source": [
"!pip install git+https://github.com/FullControlXYZ/fullcontrol --quiet\n",
"import fullcontrol as fc\n",
"from google.colab import files"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"id": "PJYyVhTPBkJW"
},
"outputs": [],
"source": [
"# printer/gcode parameters\n",
"\n",
"design_name = 'my_design'\n",
"nozzle_temp = 210\n",
"bed_temp = 40\n",
"print_speed = 1000\n",
"printer_name='prusa_i3' # generic / ultimaker2plus / prusa_i3 / ender_3 / cr_10 / bambulab_x1 / toolchanger_T0"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"id": "DeWKjlzbPC0u"
},
"outputs": [],
"source": [
"# design parameters\n",
"\n",
"EW = 0.4 # extrusion width\n",
"EH = 0.15 # extrusion height (and layer height)\n",
"initial_z = EH*0.6 # initial nozzle position is set to 0.6x the extrusion height to get a bit of 'squish' for good bed adhesion\n",
"start_x = 50\n",
"wave_size = 40"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"id": "kLPh7aTwQKrF",
"outputId": "858cb03c-f593-46a9-d1b9-0b787f1d5e7a",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
}
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-2.18.2.min.js\"></script> <div id=\"168b627d-b112-4273-94bc-c6f31dd59b3e\" class=\"plotly-graph-div\" style=\"height:500px; width:800px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"168b627d-b112-4273-94bc-c6f31dd59b3e\")) { Plotly.newPlot( \"168b627d-b112-4273-94bc-c6f31dd59b3e\", [{\"line\":{\"color\":[\"rgb(63.75, 0.00, 255.00)\",\"rgb(71.91, 1.02, 255.00)\",\"rgb(80.07, 4.33, 255.00)\",\"rgb(87.97, 9.69, 255.00)\",\"rgb(95.62, 16.83, 255.00)\",\"rgb(102.51, 26.01, 255.00)\",\"rgb(108.63, 36.97, 255.00)\",\"rgb(114.24, 49.47, 255.00)\",\"rgb(118.83, 63.24, 255.00)\",\"rgb(122.40, 78.03, 255.00)\",\"rgb(125.20, 93.84, 255.00)\",\"rgb(126.99, 110.16, 255.00)\",\"rgb(127.50, 126.73, 255.00)\",\"rgb(126.99, 143.31, 255.00)\",\"rgb(125.46, 159.63, 255.00)\",\"rgb(122.91, 175.44, 255.00)\",\"rgb(119.34, 190.23, 255.00)\",\"rgb(114.75, 204.26, 255.00)\",\"rgb(109.14, 216.75, 255.00)\",\"rgb(103.02, 227.97, 255.00)\",\"rgb(96.14, 237.15, 255.00)\",\"rgb(88.74, 244.80, 255.00)\",\"rgb(81.09, 250.16, 255.00)\",\"rgb(72.93, 253.72, 255.00)\",\"rgb(64.52, 255.00, 255.00)\",\"rgb(56.36, 254.23, 255.00)\",\"rgb(48.20, 251.17, 255.00)\",\"rgb(40.29, 246.07, 255.00)\",\"rgb(32.64, 238.94, 255.00)\",\"rgb(25.76, 229.75, 255.00)\",\"rgb(19.38, 219.04, 255.00)\",\"rgb(13.77, 206.81, 255.00)\",\"rgb(9.18, 193.03, 255.00)\",\"rgb(5.36, 178.50, 255.00)\",\"rgb(2.55, 162.69, 255.00)\",\"rgb(0.77, 146.62, 255.00)\",\"rgb(0.00, 130.05, 255.00)\",\"rgb(0.51, 113.48, 255.00)\",\"rgb(1.79, 97.16, 255.00)\",\"rgb(4.33, 81.09, 255.00)\",\"rgb(7.91, 66.05, 255.00)\",\"rgb(12.24, 52.27, 255.00)\",\"rgb(17.60, 39.52, 255.00)\",\"rgb(23.71, 28.30, 255.00)\",\"rgb(30.60, 18.61, 255.00)\",\"rgb(37.99, 10.96, 255.00)\",\"rgb(45.64, 5.10, 255.00)\",\"rgb(53.80, 1.53, 255.00)\",\"rgb(61.96, 0.00, 255.00)\",\"rgb(70.38, 0.77, 255.00)\",\"rgb(78.54, 3.57, 255.00)\",\"rgb(86.45, 8.42, 255.00)\",\"rgb(94.09, 15.30, 255.00)\",\"rgb(100.98, 24.23, 255.00)\",\"rgb(107.61, 34.68, 255.00)\",\"rgb(113.22, 46.92, 255.00)\",\"rgb(118.07, 60.43, 255.00)\",\"rgb(121.89, 74.97, 255.00)\",\"rgb(124.69, 90.52, 255.00)\",\"rgb(126.73, 106.84, 255.00)\",\"rgb(127.50, 123.42, 255.00)\",\"rgb(127.25, 140.00, 255.00)\",\"rgb(125.97, 156.31, 255.00)\",\"rgb(123.42, 172.12, 255.00)\",\"rgb(120.10, 187.42, 255.00)\",\"rgb(115.77, 201.45, 255.00)\",\"rgb(110.41, 214.45, 255.00)\",\"rgb(104.29, 225.68, 255.00)\",\"rgb(97.67, 235.37, 255.00)\",\"rgb(90.27, 243.27, 255.00)\",\"rgb(82.62, 249.39, 255.00)\",\"rgb(74.46, 253.22, 255.00)\",\"rgb(66.30, 255.00, 255.00)\",\"rgb(57.89, 254.49, 255.00)\",\"rgb(49.73, 251.94, 255.00)\",\"rgb(41.82, 247.09, 255.00)\",\"rgb(34.17, 240.46, 255.00)\",\"rgb(27.03, 231.80, 255.00)\",\"rgb(20.66, 221.34, 255.00)\",\"rgb(14.79, 209.35, 255.00)\",\"rgb(9.95, 196.09, 255.00)\",\"rgb(5.87, 181.30, 255.00)\",\"rgb(3.06, 166.00, 255.00)\",\"rgb(1.02, 149.94, 255.00)\",\"rgb(0.00, 133.37, 255.00)\",\"rgb(0.26, 116.79, 255.00)\",\"rgb(1.53, 100.22, 255.00)\",\"rgb(3.82, 84.41, 255.00)\",\"rgb(7.14, 69.11, 255.00)\",\"rgb(11.47, 54.82, 255.00)\",\"rgb(16.57, 41.82, 255.00)\",\"rgb(22.44, 30.34, 255.00)\",\"rgb(29.07, 20.40, 255.00)\",\"rgb(36.46, 12.24, 255.00)\",\"rgb(44.11, 6.12, 255.00)\",\"rgb(52.27, 2.04, 255.00)\",\"rgb(60.43, 0.26, 255.00)\",\"rgb(68.85, 0.51, 255.00)\",\"rgb(77.01, 2.80, 255.00)\",\"rgb(84.92, 7.14, 255.00)\",\"rgb(92.56, 13.77, 255.00)\",\"rgb(99.70, 22.18, 255.00)\",\"rgb(106.33, 32.38, 255.00)\",\"rgb(112.20, 44.37, 255.00)\",\"rgb(117.05, 57.63, 255.00)\",\"rgb(121.12, 72.16, 255.00)\",\"rgb(124.19, 87.47, 255.00)\",\"rgb(126.48, 103.53, 255.00)\",\"rgb(127.50, 120.10, 255.00)\",\"rgb(127.25, 136.68, 255.00)\",\"rgb(126.22, 153.00, 255.00)\",\"rgb(123.93, 169.06, 255.00)\",\"rgb(120.87, 184.36, 255.00)\",\"rgb(116.54, 198.65, 255.00)\",\"rgb(111.44, 211.91, 255.00)\",\"rgb(105.57, 223.63, 255.00)\",\"rgb(98.94, 233.58, 255.00)\",\"rgb(91.80, 241.99, 255.00)\",\"rgb(84.15, 248.37, 255.00)\",\"rgb(76.24, 252.45, 255.00)\",\"rgb(67.83, 254.75, 255.00)\",\"rgb(59.67, 254.75, 255.00)\",\"rgb(51.26, 252.45, 255.00)\",\"rgb(43.35, 248.37, 255.00)\",\"rgb(35.70, 241.99, 255.00)\",\"rgb(28.56, 233.58, 255.00)\",\"rgb(21.93, 223.63, 255.00)\",\"rgb(16.07, 211.91, 255.00)\",\"rgb(10.96, 198.65, 255.00)\",\"rgb(6.63, 184.36, 255.00)\",\"rgb(3.57, 169.06, 255.00)\",\"rgb(1.28, 153.00, 255.00)\",\"rgb(0.26, 136.68, 255.00)\",\"rgb(0.00, 120.10, 255.00)\",\"rgb(1.02, 103.53, 255.00)\",\"rgb(3.31, 87.47, 255.00)\",\"rgb(6.38, 72.16, 255.00)\",\"rgb(10.46, 57.63, 255.00)\",\"rgb(15.30, 44.37, 255.00)\",\"rgb(21.17, 32.38, 255.00)\",\"rgb(27.79, 22.18, 255.00)\",\"rgb(34.94, 13.77, 255.00)\",\"rgb(42.59, 7.14, 255.00)\",\"rgb(50.49, 2.80, 255.00)\",\"rgb(58.65, 0.51, 255.00)\",\"rgb(67.06, 0.26, 255.00)\",\"rgb(75.22, 2.04, 255.00)\",\"rgb(83.39, 6.12, 255.00)\",\"rgb(91.03, 12.24, 255.00)\",\"rgb(98.43, 20.40, 255.00)\",\"rgb(105.06, 30.34, 255.00)\",\"rgb(110.92, 41.82, 255.00)\",\"rgb(116.03, 54.82, 255.00)\",\"rgb(120.36, 69.11, 255.00)\",\"rgb(123.67, 84.41, 255.00)\",\"rgb(125.97, 100.22, 255.00)\",\"rgb(127.25, 116.79, 255.00)\",\"rgb(127.50, 133.37, 255.00)\",\"rgb(126.48, 149.94, 255.00)\",\"rgb(124.44, 166.00, 255.00)\",\"rgb(121.63, 181.30, 255.00)\",\"rgb(117.56, 196.09, 255.00)\",\"rgb(112.71, 209.35, 255.00)\",\"rgb(106.84, 221.34, 255.00)\",\"rgb(100.47, 231.80, 255.00)\",\"rgb(93.33, 240.46, 255.00)\",\"rgb(85.68, 247.09, 255.00)\",\"rgb(77.77, 251.94, 255.00)\",\"rgb(69.62, 254.49, 255.00)\",\"rgb(61.20, 255.00, 255.00)\",\"rgb(53.04, 253.22, 255.00)\",\"rgb(44.88, 249.39, 255.00)\",\"rgb(37.23, 243.27, 255.00)\",\"rgb(29.84, 235.37, 255.00)\",\"rgb(23.20, 225.68, 255.00)\",\"rgb(17.09, 214.45, 255.00)\",\"rgb(11.73, 201.45, 255.00)\",\"rgb(7.40, 187.42, 255.00)\",\"rgb(4.08, 172.12, 255.00)\",\"rgb(1.53, 156.31, 255.00)\",\"rgb(0.26, 140.00, 255.00)\",\"rgb(0.00, 123.42, 255.00)\",\"rgb(0.77, 106.84, 255.00)\",\"rgb(2.80, 90.52, 255.00)\",\"rgb(5.61, 74.97, 255.00)\",\"rgb(9.43, 60.43, 255.00)\",\"rgb(14.28, 46.92, 255.00)\",\"rgb(19.89, 34.68, 255.00)\",\"rgb(26.52, 24.23, 255.00)\",\"rgb(33.41, 15.30, 255.00)\",\"rgb(41.05, 8.42, 255.00)\",\"rgb(48.96, 3.57, 255.00)\",\"rgb(57.12, 0.77, 255.00)\",\"rgb(65.53, 0.00, 255.00)\",\"rgb(73.69, 1.53, 255.00)\",\"rgb(81.86, 5.10, 255.00)\",\"rgb(89.50, 10.96, 255.00)\",\"rgb(96.90, 18.61, 255.00)\",\"rgb(103.78, 28.30, 255.00)\",\"rgb(109.91, 39.52, 255.00)\",\"rgb(115.26, 52.27, 255.00)\",\"rgb(119.59, 66.05, 255.00)\",\"rgb(123.16, 81.09, 255.00)\",\"rgb(125.72, 97.16, 255.00)\",\"rgb(126.99, 113.48, 255.00)\",\"rgb(127.50, 130.05, 255.00)\",\"rgb(126.73, 146.62, 255.00)\",\"rgb(124.95, 162.69, 255.00)\",\"rgb(122.14, 178.50, 255.00)\",\"rgb(118.32, 193.03, 255.00)\",\"rgb(113.73, 206.81, 255.00)\",\"rgb(108.12, 219.04, 255.00)\",\"rgb(101.75, 229.75, 255.00)\",\"rgb(94.86, 238.94, 255.00)\",\"rgb(87.21, 246.07, 255.00)\",\"rgb(79.30, 251.17, 255.00)\",\"rgb(71.15, 254.23, 255.00)\",\"rgb(62.98, 255.00, 255.00)\",\"rgb(54.57, 253.72, 255.00)\",\"rgb(46.41, 250.16, 255.00)\",\"rgb(38.76, 244.80, 255.00)\",\"rgb(31.36, 237.15, 255.00)\",\"rgb(24.48, 227.97, 255.00)\",\"rgb(18.36, 216.75, 255.00)\",\"rgb(12.75, 204.26, 255.00)\",\"rgb(8.16, 190.23, 255.00)\",\"rgb(4.59, 175.44, 255.00)\",\"rgb(2.04, 159.63, 255.00)\",\"rgb(0.51, 143.31, 255.00)\",\"rgb(0.00, 126.73, 255.00)\",\"rgb(0.51, 110.16, 255.00)\",\"rgb(2.29, 93.84, 255.00)\",\"rgb(5.10, 78.03, 255.00)\",\"rgb(8.67, 63.24, 255.00)\",\"rgb(13.26, 49.47, 255.00)\",\"rgb(18.87, 36.97, 255.00)\"],\"width\":4},\"mode\":\"lines\",\"showlegend\":false,\"x\":[51.0,50.998,50.992,50.982,50.969,50.951,50.93,50.905,50.876,50.844,50.809,50.771,50.729,50.685,50.637,50.588,50.536,50.482,50.426,50.368,50.309,50.249,50.187,50.125,50.063,50.0,49.937,49.875,49.813,49.751,49.691,49.632,49.574,49.518,49.464,49.412,49.363,49.315,49.271,49.229,49.191,49.156,49.124,49.095,49.07,49.049,49.031,49.018,49.008,49.002,49.0,49.002,49.008,49.018,49.031,49.049,49.07,49.095,49.124,49.156,49.191,49.229,49.271,49.315,49.363,49.412,49.464,49.518,49.574,49.632,49.691,49.751,49.813,49.875,49.937,50.0,50.063,50.125,50.187,50.249,50.309,50.368,50.426,50.482,50.536,50.588,50.637,50.685,50.729,50.771,50.809,50.844,50.876,50.905,50.93,50.951,50.969,50.982,50.992,50.998,51.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,51.0,50.998,50.992,50.982,50.969,50.951,50.93,50.905,50.876,50.844,50.809,50.771,50.729,50.685,50.637,50.588,50.536,50.482,50.426,50.368,50.309,50.249,50.187,50.125,50.063,50.0,49.937,49.875,49.813,49.751,49.691,49.632,49.574,49.518,49.464,49.412,49.363,49.315,49.271,49.229,49.191,49.156,49.124,49.095,49.07,49.049,49.031,49.018,49.008,49.002,49.0,49.002,49.008,49.018,49.031,49.049,49.07,49.095,49.124,49.156,49.191,49.229,49.271,49.315,49.363,49.412,49.464,49.518,49.574,49.632,49.691,49.751,49.813,49.875,49.937,50.0,50.063,50.125,50.187,50.249,50.309,50.368,50.426,50.482,50.536,50.588,50.637,50.685,50.729,50.771,50.809,50.844,50.876,50.905,50.93,50.951,50.969,50.982,50.992,50.998,51.0],\"y\":[50.0,50.063,50.125,50.187,50.249,50.309,50.368,50.426,50.482,50.536,50.588,50.637,50.685,50.729,50.771,50.809,50.844,50.876,50.905,50.93,50.951,50.969,50.982,50.992,50.998,51.0,50.998,50.992,50.982,50.969,50.951,50.93,50.905,50.876,50.844,50.809,50.771,50.729,50.685,50.637,50.588,50.536,50.482,50.426,50.368,50.309,50.249,50.187,50.125,50.063,50.0,49.937,49.875,49.813,49.751,49.691,49.632,49.574,49.518,49.464,49.412,49.363,49.315,49.271,49.229,49.191,49.156,49.124,49.095,49.07,49.049,49.031,49.018,49.008,49.002,49.0,49.002,49.008,49.018,49.031,49.049,49.07,49.095,49.124,49.156,49.191,49.229,49.271,49.315,49.363,49.412,49.464,49.518,49.574,49.632,49.691,49.751,49.813,49.875,49.937,50.0,50.0,55.0,55.0,56.0,56.0,57.0,57.0,58.0,58.0,59.0,59.0,60.0,60.0,61.0,61.0,62.0,62.0,63.0,63.0,64.0,64.0,65.0,65.0,66.0,66.0,67.0,67.0,68.0,68.0,69.0,69.0,70.0,70.0,75.0,75.0,75.063,75.125,75.187,75.249,75.309,75.368,75.426,75.482,75.536,75.588,75.637,75.685,75.729,75.771,75.809,75.844,75.876,75.905,75.93,75.951,75.969,75.982,75.992,75.998,76.0,75.998,75.992,75.982,75.969,75.951,75.93,75.905,75.876,75.844,75.809,75.771,75.729,75.685,75.637,75.588,75.536,75.482,75.426,75.368,75.309,75.249,75.187,75.125,75.063,75.0,74.937,74.875,74.813,74.751,74.691,74.632,74.574,74.518,74.464,74.412,74.363,74.315,74.271,74.229,74.191,74.156,74.124,74.095,74.07,74.049,74.031,74.018,74.008,74.002,74.0,74.002,74.008,74.018,74.031,74.049,74.07,74.095,74.124,74.156,74.191,74.229,74.271,74.315,74.363,74.412,74.464,74.518,74.574,74.632,74.691,74.751,74.813,74.875,74.937,75.0],\"z\":[0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09],\"type\":\"scatter3d\"},{\"line\":{\"color\":[\"rgb(191.25, 127.50, 127.50)\",\"rgb(191.25, 127.50, 127.50)\"],\"width\":1.0},\"mode\":\"lines\",\"showlegend\":false,\"x\":[51.0,50.0],\"y\":[75.0,75.0],\"z\":[0.09,1.0],\"type\":\"scatter3d\"},{\"line\":{\"color\":[\"rgb(31.88, 16.83, 255.00)\",\"rgb(191.25, 127.50, 127.50)\"],\"width\":1.0},\"mode\":\"lines\",\"showlegend\":false,\"x\":[50.0,50.0],\"y\":[75.0,50.0],\"z\":[1.0,1.0],\"type\":\"scatter3d\"},{\"line\":{\"color\":[\"rgb(39.52, 9.69, 255.00)\",\"rgb(191.25, 127.50, 127.50)\"],\"width\":1.0},\"mode\":\"lines\",\"showlegend\":false,\"x\":[50.0,50.0],\"y\":[50.0,40.0],\"z\":[1.0,10.0],\"type\":\"scatter3d\"},{\"line\":{\"color\":[\"rgb(47.43, 4.33, 255.00)\"],\"width\":4},\"mode\":\"lines\",\"showlegend\":false,\"x\":[50.0],\"y\":[40.0],\"z\":[10.0],\"type\":\"scatter3d\"},{\"marker\":{\"color\":\"red\",\"size\":2},\"mode\":\"markers\",\"showlegend\":false,\"x\":[50.0,50.0],\"y\":[75.0,50.0],\"z\":[1.0,1.0],\"type\":\"scatter3d\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#f2f5fa\"},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"closest\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"rgb(17,17,17)\",\"plot_bgcolor\":\"rgb(17,17,17)\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2}}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[29.999,70.001]},\"yaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[37.998999999999995,78.001]},\"zaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[0,40.002]},\"camera\":{\"eye\":{\"x\":-0.5,\"y\":-1.0,\"z\":0.0},\"center\":{\"x\":0,\"y\":0,\"z\":-0.5}},\"aspectmode\":\"cube\",\"annotations\":[{\"showarrow\":false,\"text\":\"extrude 2 mm^3 and wait for 2 seconds\",\"x\":50.0,\"y\":75.0,\"yshift\":10,\"z\":1.0},{\"showarrow\":false,\"text\":\"extrude 2 mm^3 and wait for 2 seconds\",\"x\":50.0,\"y\":50.0,\"yshift\":10,\"z\":1.0}]},\"margin\":{\"l\":10,\"r\":10,\"b\":10,\"t\":10,\"pad\":4},\"paper_bgcolor\":\"black\",\"width\":800,\"height\":500}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('168b627d-b112-4273-94bc-c6f31dd59b3e');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
],
"source": [
"# generate the design (make sure you've run the above cells before running this cell)\n",
"\n",
"steps = []\n",
"steps.extend(fc.circleXY(fc.Point(x=start_x, y=50, z=initial_z), 1, 0))\n",
"steps.append(fc.Point(x=start_x+wave_size/2))\n",
"steps.append(fc.Point(y=55))\n",
"steps.extend(fc.squarewaveXY(fc.Point(x=start_x+wave_size/2, y=55), fc.Vector(y=1), wave_size, 1, 8))\n",
"steps.append(fc.Point(y=75))\n",
"steps.append(fc.Point(x=start_x+1))\n",
"steps.extend(fc.circleXY(fc.Point(x=start_x, y=75, z=initial_z), 1, 0))\n",
"steps.extend(fc.travel_to(fc.Point(x=start_x, y=75, z=1)))\n",
"steps.append(fc.StationaryExtrusion(volume=2, speed=50))\n",
"steps.append(fc.ManualGcode(text='G4 P2000 ; pause for 2 seconds'))\n",
"steps.append(fc.PlotAnnotation(label='extrude 2 mm^3 and wait for 2 seconds'))\n",
"steps.extend(fc.travel_to(fc.Point(x=start_x, y=50, z=1)))\n",
"steps.append(fc.StationaryExtrusion(volume=2, speed=50))\n",
"steps.append(fc.ManualGcode(text='G4 P2000 ; pause for 2 seconds'))\n",
"steps.append(fc.PlotAnnotation(label='extrude 2 mm^3 and wait for 2 seconds'))\n",
"steps.extend(fc.travel_to(fc.Point(x=start_x, y=40, z=10)))\n",
"\n",
"# for step in steps[-20:]:\n",
"# print(repr(step))\n",
"\n",
"fc.transform(steps, 'plot', fc.PlotControls(color_type='print_sequence_fluctuating'))\n",
"# print(fc.transform(steps, 'gcode'))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ZVdfnpt5RSUi",
"outputId": "f819f1ce-c995-4d15-a08e-9ef262b177c4",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
}
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-2.18.2.min.js\"></script> <div id=\"6737ee6f-60e4-4cf1-9a7e-84249de58f90\" class=\"plotly-graph-div\" style=\"height:500px; width:800px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"6737ee6f-60e4-4cf1-9a7e-84249de58f90\")) { Plotly.newPlot( \"6737ee6f-60e4-4cf1-9a7e-84249de58f90\", [{\"line\":{\"color\":[\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\",\"rgb(0.00, 0.00, 255.00)\"],\"width\":4},\"mode\":\"lines\",\"showlegend\":false,\"x\":[51.0,50.998,50.992,50.982,50.969,50.951,50.93,50.905,50.876,50.844,50.809,50.771,50.729,50.685,50.637,50.588,50.536,50.482,50.426,50.368,50.309,50.249,50.187,50.125,50.063,50.0,49.937,49.875,49.813,49.751,49.691,49.632,49.574,49.518,49.464,49.412,49.363,49.315,49.271,49.229,49.191,49.156,49.124,49.095,49.07,49.049,49.031,49.018,49.008,49.002,49.0,49.002,49.008,49.018,49.031,49.049,49.07,49.095,49.124,49.156,49.191,49.229,49.271,49.315,49.363,49.412,49.464,49.518,49.574,49.632,49.691,49.751,49.813,49.875,49.937,50.0,50.063,50.125,50.187,50.249,50.309,50.368,50.426,50.482,50.536,50.588,50.637,50.685,50.729,50.771,50.809,50.844,50.876,50.905,50.93,50.951,50.969,50.982,50.992,50.998,51.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,30.0,30.0,70.0,70.0,51.0,50.998,50.992,50.982,50.969,50.951,50.93,50.905,50.876,50.844,50.809,50.771,50.729,50.685,50.637,50.588,50.536,50.482,50.426,50.368,50.309,50.249,50.187,50.125,50.063,50.0,49.937,49.875,49.813,49.751,49.691,49.632,49.574,49.518,49.464,49.412,49.363,49.315,49.271,49.229,49.191,49.156,49.124,49.095,49.07,49.049,49.031,49.018,49.008,49.002,49.0,49.002,49.008,49.018,49.031,49.049,49.07,49.095,49.124,49.156,49.191,49.229,49.271,49.315,49.363,49.412,49.464,49.518,49.574,49.632,49.691,49.751,49.813,49.875,49.937,50.0,50.063,50.125,50.187,50.249,50.309,50.368,50.426,50.482,50.536,50.588,50.637,50.685,50.729,50.771,50.809,50.844,50.876,50.905,50.93,50.951,50.969,50.982,50.992,50.998,51.0],\"y\":[50.0,50.063,50.125,50.187,50.249,50.309,50.368,50.426,50.482,50.536,50.588,50.637,50.685,50.729,50.771,50.809,50.844,50.876,50.905,50.93,50.951,50.969,50.982,50.992,50.998,51.0,50.998,50.992,50.982,50.969,50.951,50.93,50.905,50.876,50.844,50.809,50.771,50.729,50.685,50.637,50.588,50.536,50.482,50.426,50.368,50.309,50.249,50.187,50.125,50.063,50.0,49.937,49.875,49.813,49.751,49.691,49.632,49.574,49.518,49.464,49.412,49.363,49.315,49.271,49.229,49.191,49.156,49.124,49.095,49.07,49.049,49.031,49.018,49.008,49.002,49.0,49.002,49.008,49.018,49.031,49.049,49.07,49.095,49.124,49.156,49.191,49.229,49.271,49.315,49.363,49.412,49.464,49.518,49.574,49.632,49.691,49.751,49.813,49.875,49.937,50.0,50.0,55.0,55.0,56.0,56.0,57.0,57.0,58.0,58.0,59.0,59.0,60.0,60.0,61.0,61.0,62.0,62.0,63.0,63.0,64.0,64.0,65.0,65.0,66.0,66.0,67.0,67.0,68.0,68.0,69.0,69.0,70.0,70.0,75.0,75.0,75.063,75.125,75.187,75.249,75.309,75.368,75.426,75.482,75.536,75.588,75.637,75.685,75.729,75.771,75.809,75.844,75.876,75.905,75.93,75.951,75.969,75.982,75.992,75.998,76.0,75.998,75.992,75.982,75.969,75.951,75.93,75.905,75.876,75.844,75.809,75.771,75.729,75.685,75.637,75.588,75.536,75.482,75.426,75.368,75.309,75.249,75.187,75.125,75.063,75.0,74.937,74.875,74.813,74.751,74.691,74.632,74.574,74.518,74.464,74.412,74.363,74.315,74.271,74.229,74.191,74.156,74.124,74.095,74.07,74.049,74.031,74.018,74.008,74.002,74.0,74.002,74.008,74.018,74.031,74.049,74.07,74.095,74.124,74.156,74.191,74.229,74.271,74.315,74.363,74.412,74.464,74.518,74.574,74.632,74.691,74.751,74.813,74.875,74.937,75.0],\"z\":[0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09],\"type\":\"scatter3d\"},{\"line\":{\"color\":[\"rgb(191.25, 127.50, 127.50)\",\"rgb(191.25, 127.50, 127.50)\"],\"width\":1.0},\"mode\":\"lines\",\"showlegend\":false,\"x\":[51.0,50.0],\"y\":[75.0,75.0],\"z\":[0.09,1.0],\"type\":\"scatter3d\"},{\"line\":{\"color\":[\"rgb(0.00, 23.46, 255.00)\",\"rgb(191.25, 127.50, 127.50)\"],\"width\":1.0},\"mode\":\"lines\",\"showlegend\":false,\"x\":[50.0,50.0],\"y\":[75.0,50.0],\"z\":[1.0,1.0],\"type\":\"scatter3d\"},{\"line\":{\"color\":[\"rgb(0.00, 23.46, 255.00)\",\"rgb(191.25, 127.50, 127.50)\"],\"width\":1.0},\"mode\":\"lines\",\"showlegend\":false,\"x\":[50.0,50.0],\"y\":[50.0,40.0],\"z\":[1.0,10.0],\"type\":\"scatter3d\"},{\"line\":{\"color\":[\"rgb(0.00, 255.00, 255.00)\"],\"width\":4},\"mode\":\"lines\",\"showlegend\":false,\"x\":[50.0],\"y\":[40.0],\"z\":[10.0],\"type\":\"scatter3d\"},{\"marker\":{\"color\":\"red\",\"size\":2},\"mode\":\"markers\",\"showlegend\":false,\"x\":[50.0,50.0],\"y\":[75.0,50.0],\"z\":[1.0,1.0],\"type\":\"scatter3d\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#f2f5fa\"},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"closest\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"rgb(17,17,17)\",\"plot_bgcolor\":\"rgb(17,17,17)\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2}}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[29.999,70.001]},\"yaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[37.998999999999995,78.001]},\"zaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[0,40.002]},\"camera\":{\"eye\":{\"x\":-0.5,\"y\":-1.0,\"z\":0.0},\"center\":{\"x\":0,\"y\":0,\"z\":-0.5}},\"aspectmode\":\"cube\",\"annotations\":[{\"showarrow\":false,\"text\":\"extrude 2 mm^3 and wait for 2 seconds\",\"x\":50.0,\"y\":75.0,\"yshift\":10,\"z\":1.0},{\"showarrow\":false,\"text\":\"extrude 2 mm^3 and wait for 2 seconds\",\"x\":50.0,\"y\":50.0,\"yshift\":10,\"z\":1.0}]},\"margin\":{\"l\":10,\"r\":10,\"b\":10,\"t\":10,\"pad\":4},\"paper_bgcolor\":\"black\",\"width\":800,\"height\":500}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('6737ee6f-60e4-4cf1-9a7e-84249de58f90');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
],
"source": [
"# preview the design\n",
"\n",
"fc.transform(steps, 'plot')\n",
"# uncomment the next line to create a neat preview (click the top-left button in the plot for a .png file) - post and tag @FullControlXYZ :)\n",
"# fc.transform(steps, 'plot', fc.PlotControls(neat_for_publishing=True)) "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 17
},
"id": "tggFoUeJReQR",
"outputId": "be53b40c-d47f-40ff-8255-a573483bdda3"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Javascript object>"
],
"application/javascript": [
"\n",
" async function download(id, filename, size) {\n",
" if (!google.colab.kernel.accessAllowed) {\n",
" return;\n",
" }\n",
" const div = document.createElement('div');\n",
" const label = document.createElement('label');\n",
" label.textContent = `Downloading \"${filename}\": `;\n",
" div.appendChild(label);\n",
" const progress = document.createElement('progress');\n",
" progress.max = size;\n",
" div.appendChild(progress);\n",
" document.body.appendChild(div);\n",
"\n",
" const buffers = [];\n",
" let downloaded = 0;\n",
"\n",
" const channel = await google.colab.kernel.comms.open(id);\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
"\n",
" for await (const message of channel.messages) {\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
" if (message.buffers) {\n",
" for (const buffer of message.buffers) {\n",
" buffers.push(buffer);\n",
" downloaded += buffer.byteLength;\n",
" progress.value = downloaded;\n",
" }\n",
" }\n",
" }\n",
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
" const a = document.createElement('a');\n",
" a.href = window.URL.createObjectURL(blob);\n",
" a.download = filename;\n",
" div.appendChild(a);\n",
" a.click();\n",
" div.remove();\n",
" }\n",
" "
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Javascript object>"
],
"application/javascript": [
"download(\"download_430ff2e0-eb32-400a-8ab4-1eef43d0e95d\", \"my_design.gcode\", 8577)"
]
},
"metadata": {}
}
],
"source": [
"# create and download gcode for the design\n",
"\n",
"gcode_controls = fc.GcodeControls(\n",
" printer_name = printer_name, \n",
" initialization_data={\n",
" 'primer': 'front_lines_then_y', \n",
" 'print_speed': print_speed,\n",
" \"nozzle_temp\": nozzle_temp,\n",
" \"bed_temp\": bed_temp,\n",
" \"extrusion_width\": EW,\n",
" \"extrusion_height\": EH})\n",
"gcode = fc.transform(steps, 'gcode', gcode_controls)\n",
"open(f'{design_name}.gcode', 'w').write(gcode)\n",
"files.download(f'{design_name}.gcode')"
]
}
],
"metadata": {
"colab": {
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment