Skip to content

Instantly share code, notes, and snippets.

@unixbigot
Last active December 16, 2020 15:17
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save unixbigot/32475a5ada5caaae9a1af324a70ce66a to your computer and use it in GitHub Desktop.
Save unixbigot/32475a5ada5caaae9a1af324a70ce66a to your computer and use it in GitHub Desktop.
Design files for a breadboard sled to hold the WeMos D1 Mini IoT module. The .gcode file is suitable for use with bCNC. The .scad file is for OpenSCAD and can be exported to DXF or whatever your CNC needs.
(Block-name: block outline)
(Block-expand: 1)
(Block-enable: 0)
G0 X0 Y0 Z5
G1 Z0
g1 x60 y0
g1 x60 y40
g1 x0 y40
g1 x0 y0
g0 z5
(Block-name: block outline [out,cut])
(Block-expand: 0)
(Block-enable: 1)
(Block-tab: -1 25.7854 5 5 -2)
(Block-tab: 35.7854 41 5 5 -2)
(Block-tab: 61 14.2146 5 5 -2)
(Block-tab: 24.2146 -1 5 5 -2)
g0 x-1 y0
g1 z0 f300
g3 x0 y-1 i1 j0 f650
g1 x20.714602 y-1
g1 x27.714602 y-1
g1 z0 f300
g1 x60 y-1 f650
g3 x61 y0 i0 j1
g1 x61 y10.714602
g1 x61 y17.714602
g1 z0 f300
g1 x61 y40 f650
g3 x60 y41 i-1 j0
g1 x39.285398 y41
g1 x32.285398 y41
g1 z0 f300
g1 x0 y41 f650
g3 x-1 y40 i0 j-1
g1 x-1 y29.285398
g1 x-1 y22.285398
g1 z0 f300
g1 x-1 y0 f650
g1 z-0.5 f300
g3 x0 y-1 i1 j0 f650
g1 x20.714602 y-1
g1 x27.714602 y-1
g1 z-0.5 f300
g1 x60 y-1 f650
g3 x61 y0 i0 j1
g1 x61 y10.714602
g1 x61 y17.714602
g1 z-0.5 f300
g1 x61 y40 f650
g3 x60 y41 i-1 j0
g1 x39.285398 y41
g1 x32.285398 y41
g1 z-0.5 f300
g1 x0 y41 f650
g3 x-1 y40 i0 j-1
g1 x-1 y29.285398
g1 x-1 y22.285398
g1 z-0.5 f300
g1 x-1 y0 f650
g1 z-1 f300
g3 x0 y-1 i1 j0 f650
g1 x20.714602 y-1
g1 x27.714602 y-1
g1 z-1 f300
g1 x60 y-1 f650
g3 x61 y0 i0 j1
g1 x61 y10.714602
g1 x61 y17.714602
g1 z-1 f300
g1 x61 y40 f650
g3 x60 y41 i-1 j0
g1 x39.285398 y41
g1 x32.285398 y41
g1 z-1 f300
g1 x0 y41 f650
g3 x-1 y40 i0 j-1
g1 x-1 y29.285398
g1 x-1 y22.285398
g1 z-1 f300
g1 x-1 y0 f650
g1 z-1.5 f300
g3 x0 y-1 i1 j0 f650
g1 x20.714602 y-1
g1 x27.714602 y-1
g1 z-1.5 f300
g1 x60 y-1 f650
g3 x61 y0 i0 j1
g1 x61 y10.714602
g1 x61 y17.714602
g1 z-1.5 f300
g1 x61 y40 f650
g3 x60 y41 i-1 j0
g1 x39.285398 y41
g1 x32.285398 y41
g1 z-1.5 f300
g1 x0 y41 f650
g3 x-1 y40 i0 j-1
g1 x-1 y29.285398
g1 x-1 y22.285398
g1 z-1.5 f300
g1 x-1 y0 f650
g1 z-2 f300
g3 x0 y-1 i1 j0 f650
g1 x20.714602 y-1
g1 x27.714602 y-1
g1 z-2 f300
g1 x60 y-1 f650
g3 x61 y0 i0 j1
g1 x61 y10.714602
g1 x61 y17.714602
g1 z-2 f300
g1 x61 y40 f650
g3 x60 y41 i-1 j0
g1 x39.285398 y41
g1 x32.285398 y41
g1 z-2 f300
g1 x0 y41 f650
g3 x-1 y40 i0 j-1
g1 x-1 y29.285398
g1 x-1 y22.285398
g1 z-2 f300
g1 x-1 y0 f650
g1 z-2.5 f300
g3 x0 y-1 i1 j0 f650
g1 x20.714602 y-1
g0 z-2
g1 x27.714602 y-1 f650
g1 z-2.5 f300
g1 x60 y-1 f650
g3 x61 y0 i0 j1
g1 x61 y10.714602
g0 z-2
g1 x61 y17.714602 f650
g1 z-2.5 f300
g1 x61 y40 f650
g3 x60 y41 i-1 j0
g1 x39.285398 y41
g0 z-2
g1 x32.285398 y41 f650
g1 z-2.5 f300
g1 x0 y41 f650
g3 x-1 y40 i0 j-1
g1 x-1 y29.285398
g0 z-2
g1 x-1 y22.285398 f650
g1 z-2.5 f300
g1 x-1 y0 f650
g1 z-3 f300
g3 x0 y-1 i1 j0 f650
g1 x20.714602 y-1
g0 z-2
g1 x27.714602 y-1 f650
g1 z-3 f300
g1 x60 y-1 f650
g3 x61 y0 i0 j1
g1 x61 y10.714602
g0 z-2
g1 x61 y17.714602 f650
g1 z-3 f300
g1 x61 y40 f650
g3 x60 y41 i-1 j0
g1 x39.285398 y41
g0 z-2
g1 x32.285398 y41 f650
g1 z-3 f300
g1 x0 y41 f650
g3 x-1 y40 i0 j-1
g1 x-1 y29.285398
g0 z-2
g1 x-1 y22.285398 f650
g1 z-3 f300
g1 x-1 y0 f650
g0 z5
(Block-name: block drills [drill])
(Block-expand: 1)
(Block-enable: 0)
M06
g0 z5
g0 x13.75 y15
g1 z-5 f300
g0 z5
g0 x13.75 y25
g1 z-5 f300
g0 z5
g0 x46.25 y25
g1 z-5 f300
g0 z5
g0 x46.25 y15
g1 z-5 f300
g0 z5
(Block-name: block mounting holes)
(Block-expand: 1)
(Block-enable: 0)
M06
g0 z5
g0 x3 y3
g1 z-5 f300
g0 z5
g0 x3 y37
g1 z-5 f300
g0 z5
g0 x57 y37
g1 z-5 f300
g0 z5
g0 x57 y3
g1 z-5 f300
g0 z5
(Block-name: block)
(Block-expand: 1)
(Block-enable: 1)
g0 z5
G0 X0 Y0
g0 z20
/*
http://codeviewer.org/view/code:1b36
Copyright (C) 2011 Sergio Vilches
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Contact: s.vilches.e@gmail.com
-----------------------------------------------------------
Round Corners Cube (Extruded)
roundCornersCube(x,y,z,r) Where:
- x = Xdir width
- y = Ydir width
- z = Height of the cube
- r = Rounding radious
Example: roundCornerCube(10,10,2,1);
*Some times it's needed to use F6 to see good results!
-----------------------------------------------------------
*/
// Test it!
// roundCornersCube(10,5,2,1);
module createMeniscus(h,radius) // This module creates the shape that needs to be substracted from a cube to make its corners rounded.
difference(){ //This shape is basicly the difference between a quarter of cylinder and a cube
translate([radius/2+0.1,radius/2+0.1,0]){
cube([radius+0.2,radius+0.1,h+0.2],center=true); // All that 0.x numbers are to avoid "ghost boundaries" when substracting
}
cylinder(h=h+0.2,r=radius,$fn = 50,center=true);
}
module roundCornersCube(x,y,z,r) // Now we just substract the shape we have created in the four corners
difference(){
cube([x,y,z], center=true);
translate([x/2-r,y/2-r]){ // We move to the first corner (x,y)
rotate(0){
createMeniscus(z,r); // And substract the meniscus
}
}
translate([-x/2+r,y/2-r]){ // To the second corner (-x,y)
rotate(90){
createMeniscus(z,r); // But this time we have to rotate the meniscus 90 deg
}
}
translate([-x/2+r,-y/2+r]){ // ...
rotate(180){
createMeniscus(z,r);
}
}
translate([x/2-r,-y/2+r]){
rotate(270){
createMeniscus(z,r);
}
}
}
projection(){
translate([30,20,0]){
difference() {
roundCornersCube(60,40,3,2);
translate([-16.25,5,0]){
cylinder(h=4,r=2,center=true,$fn=50);
}
translate([-16.25,-5,0]){
cylinder(h=4,r=2,center=true,$fn=50);
}
translate([16.25,5,0]){
cylinder(h=4,r=2,center=true,$fn=50);
}
translate([16.25,-5,0]){
cylinder(h=4,r=2,center=true,$fn=50);
}
translate([-27,17,0]){
cylinder(h=4,r=1.5,center=true,$fn=50);
}
translate([-27,-17,0]){
cylinder(h=4,r=1.5,center=true,$fn=50);
}
translate([27,17,0]){
cylinder(h=4,r=1.5,center=true,$fn=50);
}
translate([27,-17,0]){
cylinder(h=4,r=1.5,center=true,$fn=50);
}
}
}
}
@unixbigot
Copy link
Author

unixbigot commented Oct 19, 2016

This is the gcode to cut the baseboard in this article: http://blog.unixbigot.id.au/2016/10/making-custom-breadboard-for-wemos-d1.html

See also my IoT for Beginners article: http://blog.unixbigot.id.au/2016/09/iot-for-absolute-beginners.html

@unixbigot
Copy link
Author

This presumes you are using 2mm end-mill to cut the board outline, 4mm drill for the breadboard location holes, and 3mm drill for the corner mounting holes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment