Rylynn's D&D character.

This commit is contained in:
jdb
2026-08-04 18:24:56 -05:00
parent 7dbaf2fdb8
commit 7a046d5648
2 changed files with 174 additions and 0 deletions
+174
View File
@@ -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]);
}