different indentation on github and local editor?
This commit is contained in:
parent
e46da241aa
commit
7999dc8c8a
174
2Dshapes.scad
174
2Dshapes.scad
|
@ -18,101 +18,101 @@
|
|||
// example2DShapes(); use <layouts.scad>;
|
||||
|
||||
module example2DShapes(){
|
||||
grid(105,105,true,4)
|
||||
{
|
||||
// ellipse
|
||||
ellipse(50,75);
|
||||
grid(105,105,true,4)
|
||||
{
|
||||
// ellipse
|
||||
ellipse(50,75);
|
||||
|
||||
// part of ellipse (a number of quarters)
|
||||
ellipsePart(50,75,3);
|
||||
ellipsePart(50,75,2);
|
||||
ellipsePart(50,75,1);
|
||||
// part of ellipse (a number of quarters)
|
||||
ellipsePart(50,75,3);
|
||||
ellipsePart(50,75,2);
|
||||
ellipsePart(50,75,1);
|
||||
|
||||
// complexRoundSquare examples
|
||||
complexRoundSquare([75,100],[20,10],[20,10],[20,10],[20,10]);
|
||||
complexRoundSquare([75,100],[0,0],[0,0],[30,50],[20,10]);
|
||||
complexRoundSquare([50,50],[10,20],[10,20],[10,20],[10,20],false);
|
||||
complexRoundSquare([100,100]);
|
||||
complexRoundSquare([100,100],rads1=[20,20],rads3=[20,20]);
|
||||
// complexRoundSquare examples
|
||||
complexRoundSquare([75,100],[20,10],[20,10],[20,10],[20,10]);
|
||||
complexRoundSquare([75,100],[0,0],[0,0],[30,50],[20,10]);
|
||||
complexRoundSquare([50,50],[10,20],[10,20],[10,20],[10,20],false);
|
||||
complexRoundSquare([100,100]);
|
||||
complexRoundSquare([100,100],rads1=[20,20],rads3=[20,20]);
|
||||
|
||||
// pie slice
|
||||
pieSlice(50,0,10);
|
||||
pieSlice(50,45,190);
|
||||
pieSlice([50,20],180,270);
|
||||
// pie slice
|
||||
pieSlice(50,0,10);
|
||||
pieSlice(50,45,190);
|
||||
pieSlice([50,20],180,270);
|
||||
|
||||
// donut slice
|
||||
donutSlice(20,50,0,350);
|
||||
donutSlice(30,50,190,270);
|
||||
donutSlice([40,22],[50,30],180,270);
|
||||
donutSlice([50,20],50,180,270);
|
||||
donutSlice([20,30],[50,40],0,270);
|
||||
}
|
||||
// donut slice
|
||||
donutSlice(20,50,0,350);
|
||||
donutSlice(30,50,190,270);
|
||||
donutSlice([40,22],[50,30],180,270);
|
||||
donutSlice([50,20],50,180,270);
|
||||
donutSlice([20,30],[50,40],0,270);
|
||||
}
|
||||
}
|
||||
// end examples ----------------------
|
||||
|
||||
module complexRoundSquare(
|
||||
size, // Size
|
||||
rads1=[0,0], // Top left radius
|
||||
rads2=[0,0], // Top right radius
|
||||
rads3=[0,0], // Bottom right radius
|
||||
rads4=[0,0], // Bottom left radius
|
||||
center=true // center
|
||||
size, // Size
|
||||
rads1=[0,0], // Top left radius
|
||||
rads2=[0,0], // Top right radius
|
||||
rads3=[0,0], // Bottom right radius
|
||||
rads4=[0,0], // Bottom left radius
|
||||
center=true // center
|
||||
) {
|
||||
width = size[0];
|
||||
height = size[1];
|
||||
// %square(size=[width, height],center=true);
|
||||
x1 = 0-width/2+rads1[0];
|
||||
y1 = 0-height/2+rads1[1];
|
||||
x2 = width/2-rads2[0];
|
||||
y2 = 0-height/2+rads2[1];
|
||||
x3 = width/2-rads3[0];
|
||||
y3 = height/2-rads3[1];
|
||||
x4 = 0-width/2+rads4[0];
|
||||
y4 = height/2-rads4[1];
|
||||
width = size[0];
|
||||
height = size[1];
|
||||
// %square(size=[width, height],center=true);
|
||||
x1 = 0-width/2+rads1[0];
|
||||
y1 = 0-height/2+rads1[1];
|
||||
x2 = width/2-rads2[0];
|
||||
y2 = 0-height/2+rads2[1];
|
||||
x3 = width/2-rads3[0];
|
||||
y3 = height/2-rads3[1];
|
||||
x4 = 0-width/2+rads4[0];
|
||||
y4 = height/2-rads4[1];
|
||||
|
||||
scs = 0.1; // straight corner size
|
||||
scs = 0.1; // straight corner size
|
||||
|
||||
x = (center)? 0: width/2;
|
||||
y = (center)? 0: height/2;
|
||||
x = (center)? 0: width/2;
|
||||
y = (center)? 0: height/2;
|
||||
|
||||
translate([x,y,0])
|
||||
hull()
|
||||
{
|
||||
// top left
|
||||
if(rads1[0] > 0 && rads1[1] > 0)
|
||||
translate([x1,y1])
|
||||
mirror([1,0])
|
||||
ellipsePart(rads1[0]*2,rads1[1]*2,1);
|
||||
else
|
||||
translate([x1,y1])
|
||||
square(size=[scs, scs]);
|
||||
translate([x,y,0])
|
||||
hull()
|
||||
{
|
||||
// top left
|
||||
if(rads1[0] > 0 && rads1[1] > 0)
|
||||
translate([x1,y1])
|
||||
mirror([1,0])
|
||||
ellipsePart(rads1[0]*2,rads1[1]*2,1);
|
||||
else
|
||||
translate([x1,y1])
|
||||
square(size=[scs, scs]);
|
||||
|
||||
// top right
|
||||
if(rads2[0] > 0 && rads2[1] > 0)
|
||||
translate([x2,y2])
|
||||
ellipsePart(rads2[0]*2,rads2[1]*2,1);
|
||||
else
|
||||
translate([width/2-scs,0-height/2])
|
||||
square(size=[scs, scs]);
|
||||
// top right
|
||||
if(rads2[0] > 0 && rads2[1] > 0)
|
||||
translate([x2,y2])
|
||||
ellipsePart(rads2[0]*2,rads2[1]*2,1);
|
||||
else
|
||||
translate([width/2-scs,0-height/2])
|
||||
square(size=[scs, scs]);
|
||||
|
||||
// bottom right
|
||||
if(rads3[0] > 0 && rads3[1] > 0)
|
||||
translate([x3,y3])
|
||||
mirror([0,1])
|
||||
ellipsePart(rads3[0]*2,rads3[1]*2,1);
|
||||
else
|
||||
translate([width/2-scs,height/2-scs])
|
||||
square(size=[scs, scs]);
|
||||
// bottom right
|
||||
if(rads3[0] > 0 && rads3[1] > 0)
|
||||
translate([x3,y3])
|
||||
mirror([0,1])
|
||||
ellipsePart(rads3[0]*2,rads3[1]*2,1);
|
||||
else
|
||||
translate([width/2-scs,height/2-scs])
|
||||
square(size=[scs, scs]);
|
||||
|
||||
// bottom left
|
||||
if(rads4[0] > 0 && rads4[1] > 0)
|
||||
translate([x4,y4])
|
||||
rotate([0,0,-180])
|
||||
ellipsePart(rads4[0]*2,rads4[1]*2,1);
|
||||
else
|
||||
#translate([x4,height/2-scs])
|
||||
square(size=[scs, scs]);
|
||||
}
|
||||
// bottom left
|
||||
if(rads4[0] > 0 && rads4[1] > 0)
|
||||
translate([x4,y4])
|
||||
rotate([0,0,-180])
|
||||
ellipsePart(rads4[0]*2,rads4[1]*2,1);
|
||||
else
|
||||
#translate([x4,height/2-scs])
|
||||
square(size=[scs, scs]);
|
||||
}
|
||||
}
|
||||
|
||||
module roundedSquare(pos=[10,10],r=2) {
|
||||
|
@ -120,8 +120,9 @@ module roundedSquare(pos=[10,10],r=2) {
|
|||
{
|
||||
square([pos[0]-r*2,pos[1]-r*2],center=true);
|
||||
|
||||
circle(r=r);
|
||||
}
|
||||
|
||||
circle(r=r);
|
||||
}
|
||||
}
|
||||
|
||||
// round shapes
|
||||
|
@ -130,11 +131,12 @@ module ngon(sides, radius, center=false) {
|
|||
rotate([0, 0, 360/sides/2])
|
||||
circle(r=radius, $fn=sides, center=center);
|
||||
}
|
||||
|
||||
module ellipsePart(width,height,numQuarters) {
|
||||
o = 1; //slight overlap to fix a bug
|
||||
difference()
|
||||
{
|
||||
ellipse(width,height);
|
||||
ellipse(width,height);
|
||||
|
||||
if(numQuarters <= 3)
|
||||
translate([0-width/2-o,0-height/2-o,0])
|
||||
|
@ -145,7 +147,7 @@ module ellipsePart(width,height,numQuarters) {
|
|||
if(numQuarters < 2)
|
||||
translate([-o,0,0])
|
||||
square([width/2+o*2,height/2+o]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module donutSlice(innerSize,outerSize, start_angle, end_angle) {
|
||||
|
@ -154,7 +156,7 @@ module donutSlice(innerSize,outerSize, start_angle, end_angle) {
|
|||
pieSlice(outerSize, start_angle, end_angle);
|
||||
|
||||
if(len(innerSize) > 1)
|
||||
ellipse(innerSize[0]*2,innerSize[1]*2);
|
||||
ellipse(innerSize[0]*2,innerSize[1]*2);
|
||||
else
|
||||
circle(innerSize);
|
||||
}
|
||||
|
@ -172,7 +174,7 @@ module pieSlice(size, start_angle, end_angle) { //size in radius(es)
|
|||
a4 = (0 * start_angle + 4 * end_angle) / 4;
|
||||
|
||||
if(end_angle > start_angle)
|
||||
intersection() {
|
||||
intersection() {
|
||||
if(len(size) > 1)
|
||||
ellipse(rx*2,ry*2);
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue