Rylynn's D&D character.
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,174 @@
|
|||||||
|
// use </home/elijah/Applications/OpenSCAD Libraries/OpenSCAD-Pattern-Filling-master/pattern.scad>
|
||||||
|
|
||||||
|
wallLength=127;
|
||||||
|
largeWallHeight=228.6;
|
||||||
|
//full size is 228.6mm
|
||||||
|
wallWidth=10;
|
||||||
|
sinkHoleDiameter=19.05;
|
||||||
|
sinkPadding=1;
|
||||||
|
|
||||||
|
circleRadius=3.175;
|
||||||
|
|
||||||
|
module CutOutCircles(r)
|
||||||
|
{
|
||||||
|
color("blue")
|
||||||
|
cylinder(h=15, r=r, center=false);
|
||||||
|
translate([0, 0, 29])
|
||||||
|
sphere(r*5.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
module DrawAllCircles(startPoint, endPoint, distanceBetween, xPoint, zPoint) {
|
||||||
|
for(i = [startPoint : distanceBetween : endPoint])
|
||||||
|
{
|
||||||
|
translate([xPoint, i, zPoint])
|
||||||
|
CutOutCircles(circleRadius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module mainBody() {
|
||||||
|
translate([0, 0, wallWidth])
|
||||||
|
difference(){
|
||||||
|
|
||||||
|
union(){
|
||||||
|
//Longer Wall
|
||||||
|
color("cyan")
|
||||||
|
cube([wallLength, wallWidth, largeWallHeight]);
|
||||||
|
color("cyan")
|
||||||
|
translate([0, -117, 0])
|
||||||
|
cube([wallLength, wallWidth, largeWallHeight]);
|
||||||
|
|
||||||
|
//Shorter Wall
|
||||||
|
color("yellow")
|
||||||
|
translate([0,0,-10])
|
||||||
|
rotate([0, 0, -90])
|
||||||
|
cube([wallLength - (wallWidth*2), wallWidth, largeWallHeight + 10]);
|
||||||
|
|
||||||
|
color("yellow")
|
||||||
|
translate([117, 0, -10])
|
||||||
|
rotate([0, 0, -90])
|
||||||
|
cube([wallLength - (wallWidth*2), wallWidth, largeWallHeight + 10]);
|
||||||
|
|
||||||
|
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
color("green")
|
||||||
|
rotate([90,0,0])
|
||||||
|
translate([0, -10, -10])
|
||||||
|
cube([wallLength, wallWidth, wallLength]);
|
||||||
|
|
||||||
|
DrawAllCircles(-72, -27.5, circleRadius*4, 15, -20);
|
||||||
|
DrawAllCircles(-91, -10, circleRadius*4, 27.5, -20);
|
||||||
|
DrawAllCircles(-91, -10, circleRadius*4, 40, -20);
|
||||||
|
DrawAllCircles(-91, -10, circleRadius*4, 52.5, -20);
|
||||||
|
DrawAllCircles(-91, -10, circleRadius*4, 65, -20);
|
||||||
|
DrawAllCircles(-91, -10, circleRadius*4, 77.5, -20);
|
||||||
|
DrawAllCircles(-91, -10, circleRadius*4, 90, -20);
|
||||||
|
DrawAllCircles(-91, -10, circleRadius*4, 102.5, -20);
|
||||||
|
DrawAllCircles(-72, -27.5, circleRadius*4, 113, -20);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Holes in the bottom
|
||||||
|
|
||||||
|
// translate([15, -30, -20])
|
||||||
|
// CutOutCircles(circleRadius);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Triangular cutouts in the corners
|
||||||
|
union(){
|
||||||
|
color("blue")
|
||||||
|
translate([0, 10, -30])
|
||||||
|
rotate([45, 0, 45])
|
||||||
|
|
||||||
|
cube([70,70,70], center=true);
|
||||||
|
|
||||||
|
color("blue")
|
||||||
|
translate([0, -117, -30])
|
||||||
|
rotate([45, 0, -45])
|
||||||
|
cube([70,70,70], center=true);
|
||||||
|
|
||||||
|
color("blue")
|
||||||
|
translate([wallLength, 10, -30])
|
||||||
|
rotate([-45, 0, -45])
|
||||||
|
cube([70,70,70], center=true);
|
||||||
|
|
||||||
|
color("blue")
|
||||||
|
translate([127, -117, -30])
|
||||||
|
rotate([-45, 0, 45])
|
||||||
|
cube([70,70,70], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grip Mechanism
|
||||||
|
module grip() {
|
||||||
|
translate([0, 0, wallWidth])
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
union()
|
||||||
|
{
|
||||||
|
//Base
|
||||||
|
translate([63.5, 30, 162.3])
|
||||||
|
cube([90.8,47.4,76.2], center=true);
|
||||||
|
|
||||||
|
//Rounded far edge
|
||||||
|
translate([63.5, 46.6625, 125])
|
||||||
|
rotate([0,90,0])
|
||||||
|
cylinder(h = 90.8, r = 6.0375, center=true);
|
||||||
|
|
||||||
|
//Rounded near edge
|
||||||
|
translate([63.5, 15.6875, 125])
|
||||||
|
rotate([0,90,0])
|
||||||
|
cylinder(h = 90.8, r = 6.0375, center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Opening for grip
|
||||||
|
union()
|
||||||
|
{
|
||||||
|
//Cylinders for hole
|
||||||
|
translate([63.5, 31, 170])
|
||||||
|
rotate([0,90,0])
|
||||||
|
cylinder(h = 91, r = sinkHoleDiameter/2 + (sinkPadding * 2), center=true);
|
||||||
|
|
||||||
|
translate([63.5, 31, 138.7])
|
||||||
|
cube([91, sinkHoleDiameter + (sinkPadding * 2), 60], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
rotate([0, -45, 0])
|
||||||
|
union() {
|
||||||
|
mainBody();
|
||||||
|
grip();
|
||||||
|
|
||||||
|
for(i = [1,2]) {
|
||||||
|
translate([-wallLength * 2 - 0.1, -wallLength*i/3 + wallWidth, 0])
|
||||||
|
cube([wallLength*2, 1.2, largeWallHeight]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for(i = [-1, 1]) {
|
||||||
|
translate([-wallLength*2 + 63.5 - (90.8/2) - 0.1, 30 + 16*i, 0])
|
||||||
|
cube([wallLength*2, 1.2, largeWallHeight]);
|
||||||
|
translate([0, -50-50*i, -80.1]) cube([80, 1.2, 80]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([-140, -74, 0]) cube([1.2, 121, 100]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([-400, -400, -400]) cube([800, 800, 400]);
|
||||||
|
translate([-980, -200, -1]) cube([800, 400, 400]);
|
||||||
|
translate([90, -200, -1]) cube([800, 400, 400]);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user