81 lines
3.1 KiB
OpenSCAD
81 lines
3.1 KiB
OpenSCAD
$fn=60;
|
|
|
|
include <BOSL2/std.scad>
|
|
|
|
diam=20;
|
|
|
|
module vent() {
|
|
difference() {
|
|
spheroid(d=diam, style="octa");
|
|
spheroid(d=diam-6, style="octa");
|
|
translate([0,0,-diam/4]) cuboid([diam,diam,diam/2]);
|
|
translate([0,-diam/4,0]) cuboid([diam,diam/2,diam]);
|
|
}
|
|
}
|
|
// part 1
|
|
*color ("blue") {
|
|
difference() {
|
|
union() {
|
|
linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in1.svg");
|
|
linear_extrude(height = 10, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_out1.svg");
|
|
}
|
|
linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_off.svg");
|
|
translate ([30,12,0]) zcyl(d=diam/3, l=10);
|
|
translate ([105,18,0]) zcyl(d=diam/3, l=10);
|
|
translate([135,18,0]) xcyl(d=3, l=50);
|
|
translate([135,28,0]) xcyl(d=3, l=50);
|
|
}
|
|
translate ([30,10,0]) vent();
|
|
translate ([105,16,0]) vent();
|
|
}
|
|
// part 2
|
|
*color ("red") {
|
|
difference() {
|
|
union() {
|
|
linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in2.svg");
|
|
linear_extrude(height = 10, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_out2.svg");
|
|
}
|
|
linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_off.svg");
|
|
translate ([180,20,0]) zcyl(d=diam/3, l=10);
|
|
translate ([250,20,0]) zcyl(d=diam/3, l=10);
|
|
translate([135,18,0]) xcyl(d=3, l=50);
|
|
translate([135,28,0]) xcyl(d=3, l=50);
|
|
translate([290,15,0]) xcyl(d=3, l=50);
|
|
translate([290,25,0]) xcyl(d=3, l=50);
|
|
}
|
|
|
|
translate ([180,18,0]) vent();
|
|
translate ([250,18,0]) vent();
|
|
}
|
|
// part 3
|
|
*color ("pink") {
|
|
difference() {
|
|
union() {
|
|
linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in3.svg");
|
|
linear_extrude(height = 10, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_out3.svg");
|
|
}
|
|
linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_off.svg");
|
|
translate ([330,17,0]) zcyl(d=diam/3, l=10);
|
|
translate ([400,10,0]) zcyl(d=diam/3, l=10);
|
|
translate([290,15,0]) xcyl(d=3, l=50);
|
|
translate([290,25,0]) xcyl(d=3, l=50);
|
|
}
|
|
|
|
translate ([330,15,0]) vent();
|
|
translate ([400,8,0]) vent();
|
|
}
|
|
// part 4
|
|
color ("cyan") {
|
|
difference() {
|
|
union() {
|
|
linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in4.svg");
|
|
linear_extrude(height = 10, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_out4.svg");
|
|
}
|
|
linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in3.svg");
|
|
linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_off2.svg");
|
|
translate ([330,17,0]) zcyl(d=diam/3, l=10);
|
|
translate ([400,10,0]) zcyl(d=diam/3, l=10);
|
|
translate([290,15,0]) xcyl(d=3, l=50);
|
|
translate([290,25,0]) xcyl(d=3, l=50);
|
|
}
|
|
} |