this post was submitted on 24 Jun 2023
39 points (100.0% liked)

3DPrinting

15657 readers
137 users here now

3DPrinting is a place where makers of all skill levels and walks of life can learn about and discuss 3D printing and development of 3D printed parts and devices.

The r/functionalprint community is now located at: [email protected] or [email protected]

There are CAD communities available at: [email protected] or [email protected]

Rules

If you need an easy way to host pictures, https://catbox.moe may be an option. Be ethical about what you post and donate if you are able or use this a lot. It is just an individual hosting content, not a company. The image embedding syntax for Lemmy is ![](URL)

Moderation policy: Light, mostly invisible

founded 2 years ago
MODERATORS
39
submitted 1 year ago* (last edited 1 year ago) by seasick to c/3dprinting
 

I repurposed the lightning element of an Ikea Solvinden lantern to fit a custom lamp shade. The lamp was created with OpenScad with a ton of customization options :D Printed with yellow Prusament PETG

you are viewing a single comment's thread
view the rest of the comments
[–] p1mrx 3 points 1 year ago* (last edited 1 year ago)

I just printed this one 80mm tall. I need to fix the stringing:

$fn = 10;

// small
/*
radius = 15;
height = 40;
thickness = 1;
*/

// how much can I scale this before thickness=1 fails?
// this one is a bit wobbly, probably near the practical limit.
radius = 15*2;
height = 40*2;
thickness = 1;

num_lines = 12;
rotation_angle = 180/num_lines*9;

module draw_line(i, rotation_angle) {
    angle = 360 * i / num_lines;
    bottom_x = radius * cos(angle);
    bottom_y = radius * sin(angle);
    top_x = radius * cos(angle + rotation_angle);
    top_y = radius * sin(angle + rotation_angle);
    
    hull() {
        translate([bottom_x, bottom_y, 0])
            linear_extrude(0.1) circle(d=thickness);
        translate([top_x, top_y, height])
            sphere(d=thickness);
    }
}

for(i = [0 : num_lines - 1]) {
    draw_line(i, rotation_angle);
    draw_line(i, -rotation_angle);
}

linear_extrude(0.6)
difference() {
  $fn = 50;
  circle(radius * 1.1);
  circle(radius / 1.1);
}