Created
February 26, 2020 10:21
-
-
Save pschatzmann/d3d043161f255be90f22dc4d19969f09 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# An OpenSCAD Kernel in Jupyter\n", | |
"\n", | |
"I was missing a Jupyter Kernel for OpenSCAD. So I took up the challenge and here is the result. \n", | |
"\n", | |
"Any code in a regular a cell is added to the overall SCAD code. This allows you to build up a OpenSCAD model in multiple steps using Jupyter cells and document your design process along the way.\n", | |
"\n", | |
"## Magic Commands\n", | |
"\n", | |
"The kernel supports the following \"magic\" commands:\n", | |
"- __%lsmagic__: Lists all magic commands\n", | |
"- __%clear__: Clears the Scad Code in the current memory\n", | |
"- __%command <command>__: Defines the converter which translates the scad code to the diplay format. The default value is openscad\n", | |
"- __%display <scad code>__: Adds some display code which is relevant for the cell only. One line only\n", | |
"- __%%display <scad code>__: Adds multple lines of scad code which is relevant for the current cell only.\n", | |
"- __%mime <mime>__: Defines the mime code which is used to render the content\n", | |
"- __%include <url>__: Adds the SCAD code from a URL\n", | |
"- __%saveAs <fileName>__: Converts the the SCAD into a output format and saves the result in a file.\n", | |
" \n", | |
"%lsmagic provides an overview of all supported magic commands" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Available Commands: %clear %display %%display %mime %command %lsmagic %include %saveAs" | |
] | |
} | |
], | |
"source": [ | |
"%lsmagic " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The %clear command is resetting the internal OpenSCAD code. We recommend that you start your workspace with it so that you start from an empty state if you call 'Run All Cells'." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"SCAD code buffer has been cleared" | |
] | |
} | |
], | |
"source": [ | |
"%clear" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We use a command line command to convert the scad code to 2d or 3d output. By default this is openscad" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The display command is 'openjscad'" | |
] | |
} | |
], | |
"source": [ | |
"%command " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If you have openjcad installed you can use this instead" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The display command is 'openjscad'" | |
] | |
} | |
], | |
"source": [ | |
"%command openjscad" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"...but we want to keep openscad so we switch back to it" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The display command is 'openscad'" | |
] | |
} | |
], | |
"source": [ | |
"%command openscad" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"SCAD code buffer has been cleared" | |
] | |
} | |
], | |
"source": [ | |
"%clear" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Display\n", | |
"You might want to display some SCAD code only temporarily e.g. to demonstrate some failed approaches. This can be be achieved with thel help of the %%display command at the beginning of the section. \n", | |
"\n", | |
"All code which comes after the %%display command is only relevant for the current cell and will be discarded by the other cells.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [] | |
}, | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Compiling design (CSG Products normalization)...\n", | |
"Normalized CSG tree has 2 elements\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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" | |
}, | |
"metadata": { | |
"image/png": { | |
"height": 400, | |
"width": 600 | |
} | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"%%display\n", | |
"\n", | |
"union() {\n", | |
" cube(size = [2,1,1], center = true);\n", | |
" cube(size = [1,1,2], center = true);\n", | |
"} \n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"When you just add some code - it is added to the memory which is available in all cells." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Number of lines of OpenSCAD code: 4" | |
] | |
} | |
], | |
"source": [ | |
"module test() {\n", | |
" cube([1,2,3], center = true);\n", | |
"}\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If you want to render the content you can do this by calling %diplay \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [] | |
}, | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Compiling design (CSG Products normalization)...\n", | |
"Normalized CSG tree has 2 elements\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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" | |
}, | |
"metadata": { | |
"image/png": { | |
"height": 400, | |
"width": 600 | |
} | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"module test1() {\n", | |
" union() {\n", | |
" cube([3,2,1], center = true);\n", | |
" test();\n", | |
" }\n", | |
"}\n", | |
"\n", | |
"%display test1();" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Mime\n", | |
"You can also define the output mime type which whill be used to render the content. The most important ones are\n", | |
"- text/plain\n", | |
"- image/png\n", | |
"- model/stl\n", | |
"\n", | |
"The default setting is image/png" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The display mime type is 'image/png'" | |
] | |
} | |
], | |
"source": [ | |
"%mime" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If you want to display your Scad Code which has been defined in the current buffer (and not an image or 3D model) - you can set the mime to text/plain" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The display mime type is 'text/plain'" | |
] | |
} | |
], | |
"source": [ | |
"%mime text/plain\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"module test() {\n", | |
" cube([1,2,3], center = true);\n", | |
"}\n", | |
"module test1() {\n", | |
" union() {\n", | |
" cube([3,2,1], center = true);\n", | |
" test();\n", | |
" }\n", | |
"}" | |
] | |
}, | |
"metadata": { | |
"text/plain": { | |
"height": 400, | |
"width": 600 | |
} | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"%display" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Include\n", | |
"You can also include some SCAD code with the help of an URL" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The display mime type is 'image/png'\n", | |
"Included number of lines: 111" | |
] | |
}, | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Compiling design (CSG Products normalization)...\n", | |
"Normalized CSG tree has 26 elements\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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" | |
}, | |
"metadata": { | |
"image/png": { | |
"height": 400, | |
"width": 600 | |
} | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"%mime image/png\n", | |
"%include https://raw.githubusercontent.com/pschatzmann/openscad-models/master/Pig.scad\n", | |
"\n", | |
"%display" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## SaveAs\n", | |
"Finally you can save your result in a file. The file extension is used to determine the file type automaticlly. [The supported file types can be found in the OpenSCAD documentation](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/STL_Export)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"File 'pig.stl' created" | |
] | |
} | |
], | |
"source": [ | |
"%saveAs pig.stl" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "OpenSCAD", | |
"language": "python", | |
"name": "iopenscad" | |
}, | |
"language_info": { | |
"extension": ".scad", | |
"mimetype": "application/x-openscad", | |
"name": "OpenSCAD" | |
}, | |
"widgets": { | |
"application/vnd.jupyter.widget-state+json": { | |
"state": {}, | |
"version_major": 2, | |
"version_minor": 0 | |
} | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment