first models

This commit is contained in:
Jan Seidl 2022-04-09 17:10:19 +02:00
commit bdbf85c9bb
No known key found for this signature in database
GPG Key ID: A1625BAB3CAEE1F3
3 changed files with 61 additions and 0 deletions

13
README.md Normal file
View File

@ -0,0 +1,13 @@
# lampshades models
My lampshade on the Ikea lamp is similar to [HEKTOGRAM](https://www.ikea.com/cz/cs/p/hektogram-stojaci-cteci-lampa-stribrna-bila-80477710/) was broken. I thought about buying a new light, but I wouldn't say I like the latest version of the lamp, and I'm a happy owner of a 3D printer.
I have two versions of lampshades; both are made in amazing [OpenSCAD](https://openscad.org) and are fully customizable.
The first model which I made is `lampshade_conical.scad`. That was the easier one. But I wanted to have the lampshade more curved, so I did the second model, `lampshade_curved.scad`.
Configuration of the `lampshade_conical` is pretty simple, and the second is more complex - you need to play with `curved_factor` to find a proper design and height.
And btw. I lost the nut for the lampshade. That is the reason why my models contain nuts. If you don't want nut—comment `nut` line.
I wish you a lot of fun with modeling (and printing).

18
lampshade_conical.scad Normal file
View File

@ -0,0 +1,18 @@
use <threadlib/threadlib.scad>
height = 110;
bottom_d = 70;
top_d = 170;
facets = 40;
bottom_r=bottom_d/2;
top_r=top_d/2;
thickness=2;
difference() {
cylinder(height, bottom_r, top_r, $fn=facets);
translate([0,0,-0.01])
cylinder(height+0.02, bottom_r-thickness, top_r-thickness, $fn=facets);
}
nut("M42x3", turns=2, Douter=bottom_d);

30
lampshade_curved.scad Normal file
View File

@ -0,0 +1,30 @@
use <threadlib/threadlib.scad>
x = 250;
thickness = 2;
top_d = 170;
bottom_d = 70;
difference() {
rotate_extrude($fn=100)
difference() {
polygon(bowl(top_d,x));
offset(-thickness) polygon(bowl(top_d+thickness,x));
};
cylinder(top_d, bottom_d/2, bottom_d/2);
}
nut("M42x3", turns=2, Douter=bottom_d);
function point(i, R) = [
i,
i*i/R
];
function bowl(height, x_factor) = (
concat(
[ for (i = [0:1:height]) point(i, x) ],
[[0,height*height/x]]
)
);