Initial commit

This commit is contained in:
2024-06-19 11:12:27 +03:00
commit 665c35c865
3 changed files with 138352 additions and 0 deletions

168
laptop-tscreen.scad Normal file
View File

@@ -0,0 +1,168 @@
$fn=45;
width = 244 + 15;
height = 168;
radius = 7.0;
radius2 = 3.0;
radius3 = 5.5;
radius4 = 9.0;
PART = "all";
/*
cube([10, 10, 10]);
%sphere(10);
cylinder(10, 5, 5);
#translate([10, 0, 0]) cube([10, 10, 10]);
rotate(a = 90, v= [1, 0, 0]) cylinder(20, 5, 5);
for (i = [10:10:100]) {
translate([15, i, 0]) cylinder(20, 5, 1);
}
*/
module snapfit()
{
difference() {
union() {
translate([-5, 1.5, -2.5]) cube([14, 3, 5]);
translate([5, -1, -2.5]) cube([4, 3, 5]);
translate([17, 0.5, -2.5]) rotate(15, [0, 0, 1]) cube([2, 1.5, 5]);
translate([18.41, 1.05, -2.5]) cube([1.5, 1.4, 5]);
}
union() {
translate([3.0, -5.0, -3]) rotate(28, [0, 0, 1]) cube([12, 4, 6]);
translate([-0.5, -0.3, -3.0]) cube([3, 3, 8]);
}
}
}
module snapfit_neg()
{
w = 12.0;
sw = 2.0;
translate([20, -w / 2.0 - sw, -2.5]) cube([1.5, w, 5]);
}
module snapfits()
{
translate([0, -height / 2.0, 5]) snapfit();
translate([0, -height / 2.0, 12]) snapfit();
translate([0, height / 2.0, 5]) rotate(180, [1, 0, 0]) snapfit();
translate([0, height / 2.0, 12]) rotate(180, [1, 0, 0])snapfit();
}
module snapfits_neg()
{
translate([0, -height / 2.0, 5]) snapfit_neg();
translate([0, -height / 2.0, 12]) snapfit_neg();
translate([0, height / 2.0, 5]) rotate(180, [1, 0, 0]) snapfit_neg();
translate([0, height / 2.0, 12]) rotate(180, [1, 0, 0])snapfit_neg();
}
module cutout(h, r, r1, r2)
{
hull() {
translate([width / 2.0 - r, -height / 2.0 + r, 0]) cylinder(h, r1, r2);
translate([-width / 2.0 + r, -height / 2.0 + r, 0]) cylinder(h, r1, r2);
translate([width / 2.0 - r, height / 2.0 - r, 0]) cylinder(h, r1, r2);
translate([-width / 2.0 + r, height / 2.0 - r, 0]) cylinder(h, r1, r2);
}
}
module support(sw, sz, w, h, t)
{
union() {
difference() {
translate([0, 0, 0])
cube([sw, h, sz]);
translate([t / 2.0, - 2.0, t / 2.0])
cube([sw - t, h + 4, sz - t]);
}
}
translate([0, 0, 0]) cube([sw, 30.0, sz]);
difference() {
hull() {
translate([0, 0.0, sz + 20.0]) rotate(90, [0, 1, 0]) cylinder(sw, 6.0, 6.0);
translate([0, 0.0, sz - 16.0]) rotate(90, [0, 1, 0]) cylinder(sw, 6.0, 6.0);
}
translate([-4.0, 0.0, sz + 20.0]) rotate(90, [0, 1, 0]) cylinder(sw + 8.0, 3.15, 3.15);
}
}
module vents()
{
w = width + 60.0;
hull() {
translate([-w / 2.0, 0, 4.0]) rotate(90, [0, 1, 0]) cylinder(w, 1.8, 1.8);
translate([-w / 2.0, 0, 16.0]) rotate(90, [0, 1, 0]) cylinder(w, 1.8, 1.8);
}
}
module main_shell()
{
color([0, 0.6, 0.5])
translate([0, 0, 0])
hull() {
translate([width / 2.0 - radius + 4, -height / 2.0 + radius - 4, radius4 / 1.5]) sphere(radius4);
translate([-width / 2.0 + radius - 4, -height / 2.0 + radius - 4, radius4 / 1.5]) sphere(radius4);
translate([width / 2.0 - radius + 4, height / 2.0 - radius + 4, radius4 / 1.5]) sphere(radius4);
translate([-width / 2.0 + radius - 4, , height / 2.0 - radius + 4, radius4 / 1.5]) sphere(radius4);
translate([width / 2.0 - radius + 4, -height / 2.0 + radius - 4, 22.0 - radius4 / 1.5]) sphere(radius4);
translate([-width / 2.0 + radius - 4, -height / 2.0 + radius - 4, 22.0 - radius4 / 1.5]) sphere(radius4);
translate([width / 2.0 - radius + 4, height / 2.0 - radius + 4, 22.0 - radius4 / 1.5]) sphere(radius4);
translate([-width / 2.0 + radius - 4 , height / 2.0 - radius + 4, 22.0 - radius4 / 1.5]) sphere(radius4);
}
}
module main_cutout()
{
translate([0, 0, 0])
cutout(20.1, radius, radius3, radius3);
translate([0, 0, 20])
cutout(2.1, radius, radius, radius);
translate([0, 0, 22.0])
cutout(6.5, radius, radius2, radius);
translate([0, -100, -50]) cube([15, 200, 100]);
}
module main_model()
{
union() {
difference() {
union() {
main_shell();
translate([-width / 2.0 - 20.0 - radius2, -height / 2.0 - radius4 / 1.5, 0]) support(20.0, 22.0, width, height, 5.0);
translate([width / 2.0 + radius2, -height / 2.0 - radius4 / 1.5, 0]) support(20.0, 22.0, width, height, 5.0);
}
union() {
main_cutout();
snapfits_neg();
for (i = [0: 3.6 + 3.0: 130.0]) {
translate([0, -height / 2.0 + i + 30.0, 0])
vents();
echo(i);
}
translate([-65, -50, -5]) cube([130, 100, 20]);
translate([-80, -45, -10]) cube([160, 90, 20]);
translate([-60, -60, -10]) cube([120, 120, 20]);
}
}
difference() {
translate([-70, -55, 0]) cube([140, 110, 15]);
union() {
translate([-65, -50, -5]) cube([130, 100, 15]);
translate([0, -100, -50]) cube([15, 200, 100]);
translate([-80, -45, -10]) cube([160, 90, 20]);
translate([-60, -60, -10]) cube([120, 120, 20]);
}
}
snapfits();
}
}
if (PART == "all") {
main_model();
} else if (PART == "left") {
intersection() {
main_model();
translate([-210, -110, -200]) cube([220, 220, 400]);
}
} else if (PART == "right") {
intersection() {
main_model();
translate([10, -110, -200]) cube([220, 220, 400]);
}
}

68770
left.stl Normal file

File diff suppressed because it is too large Load Diff

69414
right.stl Normal file

File diff suppressed because it is too large Load Diff