Skip to content

Instantly share code, notes, and snippets.

@pschatzmann
Created March 2, 2020 09:28
Show Gist options
  • Save pschatzmann/6d0f64079f8dc89b402c0714aace7843 to your computer and use it in GitHub Desktop.
Save pschatzmann/6d0f64079f8dc89b402c0714aace7843 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{"cells":[{"metadata":{},"cell_type":"markdown","source":"# An OpenSCAD Quadrotor in Juypterlab\nThis is workbook demonstrates how to use the [OpenSCAD kernel](https://github.com/pschatzmann/IOpenSCAD) in Jupyterlab to build a Quadrotor Model directly using the OpenSCAD syntax.\n\nIf serves as a proof of concept to identify the strengths and weaknesses of the current design.\n\n## Setup\nWe start with an initial setup of the environment. \nThis way we will get some consistent results if we decided to run all cells"},{"metadata":{"trusted":true},"cell_type":"code","source":"%clear\n%lsmagic\n%command\n%mime","execution_count":18,"outputs":[{"output_type":"stream","text":"SCAD code buffer has been cleared\nAvailable Commands: %clear %display %displayCode %%display %%displayCode %mime %command %lsmagic %include %use %saveAs\nThe display command is 'xvfb-run --auto-servernum --server-num=99 openscad'\nThe display mime type is 'image/png'","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"## Variables\nWe can define some varibles that we want to use in our design"},{"metadata":{"trusted":true},"cell_type":"code","source":"$fn = 80;\nheightMotor = 6;\nmotorDiameter = 8.6;\nouterRingDiameter = 75;\npinHeight = 10;\nquadHeight = 3;\nquadWidth = 1;\n","execution_count":2,"outputs":[{"name":"stdout","output_type":"stream","text":"Number of lines of OpenSCAD code: 10\n"}]},{"metadata":{},"cell_type":"markdown","source":"## Constructing a Motor Section\nWe start to define a ring in the expected size of our propellers. This is just the difference between 2 cylinders"},{"metadata":{"trusted":true},"cell_type":"code","source":"module motorRing() { \n difference() {\n cylinder(h=quadHeight,d=outerRingDiameter,center=true); \n cylinder(h=quadHeight*2,d=outerRingDiameter-(quadWidth*2),center=true); \n } \n}\n\n%display motorRing();","execution_count":3,"outputs":[{"name":"stdout","output_type":"stream","text":"Compiling design (CSG Products normalization)...\nNormalized 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":"kernel"}]},{"metadata":{},"cell_type":"markdown","source":"The motor will be mounted on an inner cylider"},{"metadata":{"trusted":true},"cell_type":"code","source":"module motorInnerRing() {\n translate([0,0,-(quadHeight/2)]) cylinder(h=heightMotor,d=motorDiameter,center=true); \n}\n\n%display motorInnerRing(); motorRing();","execution_count":4,"outputs":[{"name":"stdout","output_type":"stream","text":"Compiling design (CSG Products normalization)...\nNormalized CSG tree has 3 elements\n"},{"data":{"image/png":"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"},"metadata":{"image/png":{"height":400,"width":600}},"output_type":"display_data","source":"kernel"}]},{"metadata":{},"cell_type":"markdown","source":"We add some spokes by rotating a cube:"},{"metadata":{"trusted":true},"cell_type":"code","source":"module motorBase() {\n union() {\n motorRing();\n motorInnerRing();\n cube([outerRingDiameter,quadWidth,quadHeight],center=true); \n rotate(a=[0,0,45]) cube([outerRingDiameter,quadWidth,quadHeight],center=true); \n cube([quadWidth,outerRingDiameter,quadHeight],center=true); \n rotate(a=[0,0,45]) cube([quadWidth,outerRingDiameter,quadHeight],center=true); \n } \n}\n\n%display motorBase();","execution_count":5,"outputs":[{"name":"stdout","output_type":"stream","text":"Compiling design (CSG Products normalization)...\nNormalized CSG tree has 7 elements\n"},{"data":{"image/png":"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"},"metadata":{"image/png":{"height":400,"width":600}},"output_type":"display_data","source":"kernel"}]},{"metadata":{},"cell_type":"markdown","source":"Finally we just need to cut a hole in the center so that we can fit our planned motor holder"},{"metadata":{"trusted":true},"cell_type":"code","source":"module motor() {\n difference() {\n motorBase();\n cylinder(h=heightMotor*3,d=motorDiameter-(quadWidth*3),center=true); \n } \n}\n\n%display motor();","execution_count":6,"outputs":[{"name":"stdout","output_type":"stream","text":"Compiling design (CSG Products normalization)...\nNormalized CSG tree has 13 elements\n"},{"data":{"image/png":"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"},"metadata":{"image/png":{"height":400,"width":600}},"output_type":"display_data","source":"kernel"}]},{"metadata":{},"cell_type":"markdown","source":"## Constructing the Quad\nOur quad consists just of the 4 motors displced into the 4 corners"},{"metadata":{"trusted":true},"cell_type":"code","source":"module quad() {\n motorDistance = outerRingDiameter/2;\n translate([motorDistance,motorDistance,0]) motor();\n translate([-motorDistance,-motorDistance,0]) motor();\n translate([motorDistance,-motorDistance,0]) motor();\n translate([-motorDistance,motorDistance,0]) motor();\n}\n\n%display quad();","execution_count":7,"outputs":[{"name":"stdout","output_type":"stream","text":"Compiling design (CSG Products normalization)...\nNormalized CSG tree has 52 elements\n"},{"data":{"image/png":"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"},"metadata":{"image/png":{"height":400,"width":600}},"output_type":"display_data","source":"kernel"}]},{"metadata":{},"cell_type":"markdown","source":"## Construction of the Motor Holder\n\nWe are constructing our motor holder with the help of hollow cylinders"},{"metadata":{"trusted":true},"cell_type":"code","source":"cutWidth = 1;\nmotorHodlerHeight = 15;\nmotorDiameter = 8.6;\npinWidth = 5.75;\nwidth = 1;\n\nmodule motorHolder() {\n cylinder(h=pinHeight,d=pinWidth); \n translate([0.0,0.0,pinHeight]) \n difference() {\n cylinder(h=motorHodlerHeight,d=motorDiameter+(width*2)); \n translate([0.0,0.0,3.0]) cylinder(h=motorHodlerHeight,d=motorDiameter); \n } \n}\n\n%display motorHolder();","execution_count":8,"outputs":[{"name":"stdout","output_type":"stream","text":"Compiling design (CSG Products normalization)...\nNormalized CSG tree has 3 elements\n"},{"data":{"image/png":"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"},"metadata":{"image/png":{"height":400,"width":600}},"output_type":"display_data","source":"kernel"}]},{"metadata":{},"cell_type":"markdown","source":"And we cut out a small section on the side"},{"metadata":{"trusted":true},"cell_type":"code","source":"module motorHolderWithCut() {\n \n difference() {\n motorHolder();\n translate([0,motorDiameter/2-1,0]) cube([cutWidth,motorDiameter,1000],center=true); \n } \n}\n\n%display motorHolderWithCut();","execution_count":9,"outputs":[{"name":"stdout","output_type":"stream","text":"Compiling design (CSG Products normalization)...\nNormalized CSG tree has 5 elements\n"},{"data":{"image/png":"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ANqo163SE2DxCQA0ZFh73WgXTyR5S0vpBVAkAYBG1XWVngBbBACgUAIAUCgBACiUAAAUSgAACiUAAIUSADKOHF+d+t85qqvG9i+PpvbuPPnKhcZmw04CALMyGnq/aDUPKG3RXaom116vSg+BUggAMUePr6Yn5D392sX0BMolAACFEgCSjq2spifE1INq5eR6egVFEwCAQgkAYY88u5aekLFycj09gdIJAHkFNuClty+lJ4AAAJRKAGiFR59bS09ozol3v09PgA0CQFsU0gBff9pDAGiRx1/8Lj1htt54/3J6AtwkALTLAjfA15+2EQBa54mXL6Qn7DKsp/CanPrwx/TvgFt10wNgD5sN+ObTo+khU3D645/SE2BvnfQAuK2nTlwc9Kv0ikPx9afNuukB8H8mDZhcvzx7JD1kH5aHG9E689nP6SFwB530ALizZ15fT0/YH19/5kI3PQDuygtvXZpcz330cHrIrZaHnZ1//OTcL+lFcLcEgHmymYGJzz94KL1lly++/i09AfatGo//Tm+AAzr73oOT67Xr/964c/X6eOtwbcfN7fOVHTevXL15/mf7vOfNYd25cfPe0dZ5efvw1fnf0/8NcEACwCI4884Dm4fGAnD+2z/SPxoOSwBYKKffvH/zMKMArF3+M/0TYWoEgEV26tX77jlcAH749a/0j4BZOWgA/muvDkoAgKEohsH8i56Mx6eJgt4KwHFvHQDAhgEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQJQBAEQZAECUAQBEGQBAlAEARBkAQNQHqXSNzhD+9tEAAAAASUVORK5CYII="},"metadata":{"image/png":{"height":400,"width":600}},"output_type":"display_data","source":"kernel"}]},{"metadata":{},"cell_type":"markdown","source":"# Mounting the Flight Controller \nWe will use a Raspberry PI Case as enclosure for the flight controller which will be put in the center of our Quad.\nThe related SCAD code can be loaded with the help of a %include command. \n\nWe redefine the numberOfPis parameter which is used to potentially generate multiple stacked case sections:"},{"metadata":{"trusted":true},"cell_type":"code","source":"%include https://raw.githubusercontent.com/pschatzmann/openscad-models/master/SimpleStackablePi-Zero-Case.scad\nnumberOfPis=1;\n\n%display","execution_count":10,"outputs":[{"name":"stdout","output_type":"stream","text":"Included number of statements: 71Compiling design (CSG Products normalization)...\nNormalized CSG tree has 22 elements\n"},{"data":{"image/png":"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AAB5wJu+PGhbAphlCdGhngEAckiTEjTqdvxPl3vUE2nEph4AAPKJN/3orEkMYIolRId6BgAoig2XoFG343+63KN+AHqxqQcAgALhTV8eNlwCSGQJ0aGeAQCKK9MSNOp2dHa5R/1dtWNTDwAAhcabvjxkWgJIZAnRoZ4BAOACVTFo1G15cLlH/Z10ZFMPAAAwjTd9eVBVAkhkCdGhngEAYInLlaBRt8PfLveox9eUfcn/+7u9OrhJKAigKBrML4FQHFVMERTHgjaoYzQxMUZcIDEO8Z6zesu3uwB/aJwu7+OxEvCt3ZzX1R8AfuyeEhz223GcVz99XtvqAwCPGKfLx74nBtzazXld/QHgd3wpwedIcEsAgH/orQSH/XYc59VHnpoAAES9rD4AwBoCABAlAABRAgAQJQAAUQIAECUAAFECABAlAABRAgAQJQAAUQIAECUAAFECABAlAABRAgAQJQAAUQIAECUAAFECABAlAABRAgAQJQAAUQIAECUAAFECABAlAABRAgAQJQAAUQIAECUAAFECABAlAABRAgAQJQAAUQIAECUAAFECABAlAABRAgAQJQAAUQIAECUAAFECABAlAABRAgAQJQAAUQIAECUAAFECABAlAABRAgAQJQAAUQIAECUAAFECABAlAABRAgAQ9QpkZdz+Vc5eMgAAAABJRU5ErkJggg=="},"metadata":{"image/png":{"height":400,"width":600}},"output_type":"display_data","source":"kernel"}]},{"metadata":{},"cell_type":"markdown","source":"## Putting All Components Together\nFinally we just need to add the case, the motor holders and the quad and move it so that the PI is ending up in the center"},{"metadata":{"trusted":true},"cell_type":"code","source":"module finalDesign() {\n piCaseBottom();\n translate([widthOfPi/2,depthOfPi/2,0]) quad();\n translate([-outerRingDiameter,-20,0]) motorHolder();\n translate([-outerRingDiameter,0,0]) motorHolder();\n translate([-outerRingDiameter,20,0]) motorHolder();\n translate([-outerRingDiameter,40,0]) motorHolder();\n}\n\nfinalDesign();\n\n%%display","execution_count":11,"outputs":[{"name":"stdout","output_type":"stream","text":"Compiling design (CSG Products normalization)...\nNormalized CSG tree has 99 elements\n"},{"data":{"image/png":"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"},"metadata":{"image/png":{"height":400,"width":600}},"output_type":"display_data","source":"kernel"}]},{"metadata":{},"cell_type":"markdown","source":"## Conclusion\n### Weaknesses\n- The major issue I was running into was the following. I was executing some Markdown as Code, which resulted as invalid OpenScad Source Code. So I extended the parsing logic to issue an error message in this case\n- Currently there is no possiblity to exchange information with other kernels to provide some polyglot functionality using different programming languages. However it is unclear if this would give any added value.\n\n### Strengths\n- The possibility to **build the model in steps** and to display the different steps is very powerful \n- It proved to be helpfull to be able to define the **rendering command**: So xvfb could be included into the processing w/o the need for any code changes \n- The possiblity to **use external** models by integrating them with an URL is very helpfull and avoids the need to copy files around. \n- The programming is in OpenSCAD and the final result is valid OpenSCAD code that can be shared.\n\n\nI think I will start to build my future models with the help of this Kernel.\n\nLast but not least here is the complete OpenSCAD code:"},{"metadata":{"trusted":true},"cell_type":"code","source":"%displayCode","execution_count":12,"outputs":[{"name":"stdout","output_type":"stream","text":"\n// %command xvfb-run --auto-servernum --server-num=99 openscad\n$fn = 80;\nheightMotor = 6;\nmotorDiameter = 8.6;\nouterRingDiameter = 75;\npinHeight = 10;\nquadHeight = 3;\nquadWidth = 1;\nmodule motorRing() { \n difference() {\n cylinder(h=quadHeight,d=outerRingDiameter,center=true); \n cylinder(h=quadHeight*2,d=outerRingDiameter-(quadWidth*2),center=true); \n } \n}\n\nmodule motorInnerRing() {\n translate([0,0,-(quadHeight/2)]) cylinder(h=heightMotor,d=motorDiameter,center=true); \n}\n\nmodule motorBase() {\n union() {\n motorRing();\n motorInnerRing();\n cube([outerRingDiameter,quadWidth,quadHeight],center=true); \n rotate(a=[0,0,45]) cube([outerRingDiameter,quadWidth,quadHeight],center=true); \n cube([quadWidth,outerRingDiameter,quadHeight],center=true); \n rotate(a=[0,0,45]) cube([quadWidth,outerRingDiameter,quadHeight],center=true); \n } \n}\n\nmodule motor() {\n difference() {\n motorBase();\n cylinder(h=heightMotor*3,d=motorDiameter-(quadWidth*3),center=true); \n } \n}\n\nmodule quad() {\n motorDistance = outerRingDiameter/2;\n translate([motorDistance,motorDistance,0]) motor();\n translate([-motorDistance,-motorDistance,0]) motor();\n translate([motorDistance,-motorDistance,0]) motor();\n translate([-motorDistance,motorDistance,0]) motor();\n}\n\ncutWidth = 1;\nmotorHodlerHeight = 15;\npinWidth = 5.75;\nwidth = 1;\n\nmodule motorHolder() {\n cylinder(h=pinHeight,d=pinWidth); \n translate([0.0,0.0,pinHeight]) \n difference() {\n cylinder(h=motorHodlerHeight,d=motorDiameter+(width*2)); \n translate([0.0,0.0,3.0]) cylinder(h=motorHodlerHeight,d=motorDiameter); \n } \n}\n\nmodule motorHolderWithCut() {\n \n difference() {\n motorHolder();\n translate([0,motorDiameter/2-1,0]) cube([cutWidth,motorDiameter,1000],center=true); \n } \n}\n\n/**\n A simple stackable Rasperry PI Zero case. In the parameter you can indicate the number of levels. \n \n*/\n\nnumberOfPis=1;\n\n // number of PIs to be stacked\nwidthOfPi=63.5; // x width of a rawspberry pi\ndepthOfPi=28.7; // y depth of a rawspberry pi\nroundedCornersDiam=0; // minkowski on cover\ncoverHeight=1.5; // height of cover\nholePos=3; // x,y position of right hole\npinDiameter=2.4; // diameter of pin & hole\nholeDiameterOffset=0.7; // make hole bigger then pin\nconnectorHeight=9; // height of the connector pin\nspacerBottomHeight=5; // height of the bottom spacer\nspacerTopHeight=7; // height of the top spacer\npartOffset=30; // we draw the parts by 3cm separated\nholeWidthPos=widthOfPi-holePos;// x position of left hole\n\n// the base of the top and bottom\nmodule base() {\n minkowski() {\n cube([widthOfPi,depthOfPi,coverHeight]);\n sphere(roundedCornersDiam,$fn=20);\n }\n}\n\n// print a single connector pin\nmodule connector(height) {\n cylinder(height, d=pinDiameter, $fn=100);\n}\n\n// print a connector pin\nmodule connectors(connectorHeight) {\n translate([holePos,holePos,0]) \n connector(connectorHeight);\n translate([holePos,depthOfPi-holePos,0]) \n connector(connectorHeight);\n translate([holeWidthPos,depthOfPi-holePos,0]) \n connector(connectorHeight);\n translate([holeWidthPos,holePos,0]) \n connector(connectorHeight);\n}\n\n// prints a single spacer (with a hole)\nmodule spacer(height) {\n difference() {\n size = holePos*2;\n cube([size, size, height]);\n \n translate([holePos,holePos,0]) \n cylinder(height, d=pinDiameter+holeDiameterOffset,$fn=100);\n }\n}\n\n// prints all spacers\nmodule spacers(height, offset) {\n size = holePos*2;\n translate([0,0,offset]) \n spacer(height);\n translate([0,depthOfPi-size,offset]) \n spacer(height);\n translate([holeWidthPos-holePos,depthOfPi-size,offset]) \n spacer(height);\n translate([holeWidthPos-holePos,0,offset]) \n spacer(height);\n}\n\n// bommtom of a case\nmodule piCaseBottom() {\n union() {\n base(); \n spacers(spacerBottomHeight,0);\n connectors(connectorHeight);\n }\n}\n\n// top of a pi case with an optional ornament pattern\nmodule piCaseTop() {\n union() {\n base();\n spacers(spacerTopHeight,-spacerTopHeight);\n }\n}\n\n\n// center of a stackable pi with top and buttom spacers\nmodule piCaseCenter() {\n union() {\n piCaseBottom();\n piCaseTop();\n }\n}\n\n// print of a final case with n (parts) pi's\nmodule piStackedCase(parts=1){\n piCaseBottom();\n if (parts>1) {\n for (i = [2 : parts]) {\n translate([0, 0,partOffset*(i-1)]) \n piCaseCenter(); \n }\n }\n translate([0, 0, partOffset*parts]) \n piCaseTop();\n}\n\n\n// print of a final single case\nmodule piCase() {\n piStackedCase(1);\n}\n\n\n// test print to make sure that the spacer and connector fit\nmodule testSpacerAndPin() {\n spacer(5,5);\n\n translate([10,0,0]) {\n union() {\n spacer(5,5);\n translate([holePos,holePos,0]) \n connector(connectorHeight);\n }\n }\n }\n \n // test print to check the location of the holes in the pi\n module testDimensions() {\n spacers(1,0);\n connectors(4);\n }\n\n\n//piCaseBottom(); \n// piCaseTop();\n// testDimensions();\n// testSpacerAndPin();\npiStackedCase(numberOfPis);module finalDesign() {\n piCaseBottom();\n translate([widthOfPi/2,depthOfPi/2,0]) quad();\n translate([-outerRingDiameter,-20,0]) motorHolder();\n translate([-outerRingDiameter,0,0]) motorHolder();\n translate([-outerRingDiameter,20,0]) motorHolder();\n translate([-outerRingDiameter,40,0]) motorHolder();\n}\n\nfinalDesign();\n\n\n"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"name":"openscad","display_name":"OpenSCAD","language":"application-xopenscad"},"language_info":{"name":"OpenSCAD","mimetype":"application/x-openscad","extension":".scad"},"toc":{"nav_menu":{},"number_sections":false,"sideBar":false,"skip_h1_title":false,"base_numbering":1,"title_cell":"Table of Contents","title_sidebar":"Contents","toc_cell":false,"toc_position":{},"toc_section_display":false,"toc_window_display":false},"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