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