Gas station without pumps

2019 August 11

Star-of-stars, another large pendant

I’ve previously posted about my 3D-printed stage jewelry: the 3D slugs , the diamond, the chain of office, and large pendants printed on my Monoprice Delta Mini printer using CC3D Silk Gold PLA filament.

I designed another pendant yesterday, and printed it today—this one using stars instead of spheres as the main design element.

Once again, I had to clean up the stringing and blobbing using a riffler.

// Star of stars
// by Kevin Karplus
//  Creative Commons Attribution-ShareAlike  (CC BY-SA 3.0)
// 2019 Aug 10

use <BOSL2/std.scad>
// BOSL2 from https://github.com/revarbat/BOSL2/
// used for offset

function inner_radius(r_outer, n, k) =
    assert(k<n/2) assert(k>0)
    let(straight_ratio = cos(180/n) + sin(180/n)*tan(180*k/n))
    r_outer/ straight_ratio;
    
function star_points(r_outer=5, n=5, k=2)=
   // Points on circle centered at (0,0) with radius r_outer.
   // First point on positive x axis.
   // k determines how far out the inner points of the star are, 
   //   with k<1 making a convex polygon with 2n sides,
   //   k=1 making a regular n-gon
   //   k=2 making a star that connects alternate points
   //   k=3 making a star that connects every third point, ...
   // k need not be integer
   // You can get a nice, fat star with k=(n-2)/2
   let(r_inner = inner_radius(r_outer, n, k))
    [for (i=[0:2*n-1]) 
        (i%2==0? r_outer: r_inner)*[cos(i*180/n), sin(i*180/n)]];
    
    
module star(r_outer=5, n=5, k=2)
   // Make a polyhedral star with n points.
{   points = star_points(r_outer=r_outer,n=n,k=k);
    polygon(points=points, convexity=n);
}


module star_outline(n=5, r=50, line=2,k=undef)
{
    k_star = k==undef? (n-2)/2: k;
    points = star_points(r_outer=r,n=n,k=k_star);
    echo(points=points);
    inner = offset(points, delta=-line, closed=true);
    echo(inner=inner);
    difference()
    {   polygon(points);
        polygon(inner);
    }
    
}

module star_of_stars(n=5, r=50, line=2, k=undef)
{
    k_star = k==undef? (n-1)/2: k;
    r_sub = inner_radius(r, n, k_star);
    star_outline(n=n, r= 2*r_sub, line=line, k=k_star);
    for (i=[0:n-1])
    {
        rotate((2*i+1)*180/n)
            translate([2*cos(180/n)*r_sub,0])
                rotate(((n+1)%2)*180/n)
                    star_outline(n=n,r=r_sub+0.001, line=line, k=k_star);
    }
}



module solid_star(n=5, r=50, k=undef, height=undef)
// Make a solid star with n points and outer radius r
//    k is a skinniness parameter (0 to n/2), as defined in star
//      default value is (n-2)/2, which makes a slightly fat star
//      (try n/2 for a skinny star)
//    height is the height of the star, default is r/3
{
    k_star = k==undef? (n-2)/2: k;
    h = height==undef? r/3: height;

    linear_extrude(height=h, scale=0)
       star(n=n,k=k_star, r_outer=r);
}


module solid_star_of_stars(n=5, line=2, r=50)
{   
    small_r = 3*line;
    r_sub = inner_radius(r, n, (n-1)/2);
    outer_center= [(2*cos(180/n)+1)*r_sub-small_r,0];
    
    difference()
    {   union()
        {
            linear_extrude(line)
               star_of_stars(r=r, n=n, line=line);
            intersection()
            {   translate([0,0,0.0015]) cylinder(r=1.2*r, h=2*line, $fn=20);
                
                for (i=[0:n-1])
                {    rotate([0,0,i*360/n])
                        translate([r_sub,0,0])
                        {   linear_extrude(line) star(r_outer=3*line,n=n, k=(n-2)/2);
                            color("blue") translate([0,0,line])
                                solid_star(r=small_r, height=2*line, n=n, k=(n-2)/2);
                        }
                }
            }
            intersection()
            {   translate([0,0,0.001]) cylinder(r=1.2*r, h=2*line, $fn=20);
                
                for (i=[0:n-1])
                {   
                    rotate((2*i+1)*180/n)  translate(outer_center)
                     {  rotate(((n+1)%2)*180/n)
                        {   linear_extrude(line) star(r_outer=3*line,n=n, k=(n-2)/2);
                            color("red") translate([0,0,line])
                                solid_star(r=3*line, height=2*line, n=n, k=(n-2)/2);
                        }
                    }
                }
            }
        }
        
        for (i=[0:n-1])
        {   
            rotate((2*i+1)*180/n)  translate(outer_center)
               cylinder(d=line, h=5*line, center=true, $fn=30);
        }
    }
}

solid_star_of_stars(n=5);

Released on Thingiverse as https://www.thingiverse.com/thing:3805111

2019 August 10

More large pendants

I’ve previously posted about my 3D-printed stage jewelry: the 3D slugs , the diamond, and the chain of office, printed on my Monoprice Delta Mini printer using CC3D Silk Gold PLA filament.

I’ve done a couple more designs since then: two more large pendants that could be used with a chain of office.  These were designed for fairly fast printing, being fairly thin:

Flower pendant 1 has 12-fold symmetry (including mirror symmetries).

Flower pendant 2 has 16-fold symmetry, including mirror symmetries.

Both pendants were simple OpenSCAD code, as they consist of unions and intersections of spheres (cut to just the positive-z half-space, to get a flat back).

// Flower pendant 1
// 12-fold symmetry
// bumps in center
//
// License: Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)

// Kevin Karplus
// 2019 Aug 1

module round_facet(r=15, h=5)
{
    $fa=2; $fn=60;
    intersection()
    {   cylinder(r=1.3*r, h=h);
        union()
        {
            difference()
            {   sphere(r=r);
                carve_r=1.8*r;
                rim_h = 0.4*h;
                raise = sqrt(carve_r*carve_r + rim_h*rim_h -r*r)+rim_h;
                translate([0,0,raise]) sphere(r=carve_r); 
            }
            inner_r=0.35*r;
            translate([0,0,h-inner_r]) sphere(r=inner_r);
        }
    }
}

n=6;
r=40;
for(i=[1:n])
{   tran=0.3*r;
    color(c=[i/n,0.1,(n-i)/n])
        translate(tran*[cos(360*i/n), sin(360*i/n),0])  
            round_facet(r=r-tran,h=0.3*(r-tran));
}
// Flower pendant 2
// 16-fold symmetry
//
// License: Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)

// Kevin Karplus
// 2019 Aug 2

module round_facet(r=15, rim_h=2, carve_ratio=1.7)
{
    $fa=2; $fn=60;
    intersection()
    {   cylinder(r=1.3*r, h=rim_h*2);
        difference()
        {   sphere(r=r);
            carve_r=carve_ratio*r;
            raise = sqrt(carve_r*carve_r + rim_h*rim_h -r*r)+rim_h;
            translate([0,0,raise]) sphere(r=carve_r); 
        }
    }
}

module flower(petals=6, r=40, height_ratio=0.07, translate_ratio=0.4, carve_ratio=1.7)
{
    for(i=[1:petals])
    {   tran=translate_ratio*r;
        color(c=[i/petals,0.1,(petals-i)/petals])
            translate(tran*[cos(360*i/petals), sin(360*i/petals),0])  
                round_facet(r=r-tran,
                    rim_h=height_ratio*r, 
                    carve_ratio=carve_ratio);
    }
}

flower(petals=8, height_ratio=0.08);

I have not released these designs on Thingiverse, because the site keeps being unresponsive when I try to upload new designs. I realize that I shouldn’t complain about a free service, but I’m about ready to give up on Thingiverse. Is there a better 3d-printing sharing site?

Update 2019 Aug 10: Thingiverse finally let me upload as https://www.thingiverse.com/thing:3802142 and https://www.thingiverse.com/thing:3802138.

2019 July 27

3D-printed chain of office

I’ve previously posted about my 3D-printed stage jewelry: the 3D slugs  and the diamond, printed on my Monoprice Delta Mini printer using CC3D Silk Gold PLA filament.

I’ve done a couple more designs since then: a star pendant and a chain of office to show the director and props people at WEST Performing Arts the possibility of making stage jewelry with a 3D printer.

The front of the star. The “notches” on the top point are a horizontal hole for hanging the star from a chain or cord.

The back of the star, showing the flat spot.

I have released this star design on Thingiverse: https://www.thingiverse.com/thing:3756123.

The chain of office is more complicated, as it consists of 20 triangular plates and a pendant.  The plates took an hour apiece to print, and each one needed cleanup with a riffler to remove stringing.

The top layers of the print look pretty good, but there is a lot of stringing as the print head moved from one part of the print to another.

The bottom of each triangle looked worse than the top, as the first layer seemed to have more trouble with uniform extrusion than the higher layers.

This is what the triangles looked like after cleaning up the stringing with a riffler.  The difference in shininess is an illusion—I photographed this one with a flash, and the previous two photos were with more uniform lighting.

The triangles need to be joined with 6mm OD split rings:

Here are the triangles joined into a chain with jump rings.

The kid-size chain uses 18 of the triangular plates:

The pendant here is a design suggested by my wife, since I did not have any fake jewels to glue onto a pendant. I think that fake jewels may make for a showier pendant.

To make an adult-sized chain I added two more triangular plates, for a total of 20:

The chain of office needs to sit fairly wide on the shoulders, so probably needs to pinned or stitched to the shoulder seam, as the plastic is not heavy enough for the weight of the chain to hold it in place.

I’ve not released the chain of office on Thingiverse, mainly because their web site seems to be misbehaving this week.

2019 July 29: released as https://www.thingiverse.com/thing:3778927

2019 July 17

3D-printed stage jewelry

The 3D slug heart was my first attempt at 3D-printed jewelry, and I’ve only printed it as a draft in green PLA so far.  I wanted to show the director and props people at WEST Performing Arts the possibility of making stage jewelry with a 3D printer, so I designed a simple diamond pendant that can be put on a chain or a cord:

I’ve been playing around a bit with photographing small objects and adding different backgrounds. Here the pendant was photographed on a white background, the background was erased, and a blue backdrop was added.

Here the gold pendant was photographed on a black, textured background, and the background was blurred to make the diamond look shinier.

The diamond itself is a simple piece of OpenSCAD code:

module triangle(side=1)
// equilateral triangle centered at (0,0), with first vertex in +x direction
{   circle(r=side/sqrt(3), $fn=3);
}

module rounded_triangle(side=1)
// intersection of three circles, centers at corners of triangle
{    intersection()
    {   translate([side/sqrt(3),0]) circle(r=side,$fn=60);
        translate([-side/(2*sqrt(3)), side/2])  circle(r=side, $fn=60);
        translate([-side/(2*sqrt(3)), -side/2])  circle(r=side, $fn=60);
   }
}

module beam(side=1, length=3, center=false)
// triangular beam from (0,0,0) to (0,0,length). 
// (0,0,-length/2) to (0,0,length/2) if center is set.
{    linear_extrude(height=length, center=center) triangle(side=side);
}

module rounded_beam(side=1, length=3, center=false)
// rounded_triangle beam from (0,0,0) to (0,0,length). 
// (0,0,-length/2) to (0,0,length/2) if center is set.
{    linear_extrude(height=length, center=center) rounded_triangle(side=side);
}

module chopped_beam(x=13.5, y=27, side=20)
// triangular beam from (x,0,0) to (0,y,0), side-wide,
//  sitting on top of x,y plane and staying in 1st quadrant.
// center line of beam directly above (x,0) to (0.y)
{
    intersection()
    {  cube(abs(x)+abs(y)+side);
        
       translate([x/2, y/2, side/(2*sqrt(3))]) // slide out and raise
        rotate([0,0,atan2(y,-x)])  // beam parallel to (x,0), (y,0)
         rotate([0,-90,0])  // beam along x-axis
          beam(side=side, center=true, 
            length = 2*(abs(x)+abs(y)+side));
     }
 }
  
 module diamond(width=50, height=100, side=20, hole=4)
 {
     length = sqrt( height*height + width*width)/2;
     x = width /2 - (length/height) * side;
     y = height/2 - (length/width)*side;
     difference()
     {    union()
         {   
             chopped_beam(x=x, y=y, side=side);
             mirror([0,1,0]) chopped_beam(x=x, y=y, side=side);
             mirror([1,0,0]) chopped_beam(x=x, y=y, side=side);
             mirror([0,1,0]) mirror([1,0,0]) chopped_beam(x=x, y=y, side=side);
         }
         
         translate([0, y, side/(2*sqrt(3))])
           rotate([0,-90,0]) 
             rounded_beam(side=hole, length=width, center=true);
     }
 }
 
 diamond();

I made a triangular beam, rotated it into position and chopped it down to a single quadrant, then mirrored it to make the diamond. The hole for the cord or chain is made with a rounded triangle rather than a circle, so that there is no flat spot on top to cause drooping of the filament.

I have released this design on Thingiverse: https://www.thingiverse.com/thing:3753904

3D slugs in gold

Filed under: Uncategorized — gasstationwithoutpumps @ 21:42
Tags: , , , , ,

In 3D slug printing, I described the design for a 3D slug pendant and said that I had ordered two different gold filaments: Hatchbox Gold, which is what the IEEE slug was printed with, and CC3D Silk Gold, which should be shinier.  I also ordered some hardware for attaching the slug to the purse (split rings and lobster hook).

The package from Amazon arrived today, and checked that the hardware worked with the ring—the size was just right for the lobster-claw hook, so I did not need to modify the design.

I tried printing the slug in both Hatchbox Gold and theCC3D Silk Gold.  Both printed fine, with only a little stringing on the eyestalks, which was easily trimmed off with flush-cut wire cutters.

Here are the 3 slugs I’ve printed, in Monoprice green PLA, Hatchbox gold PLA, and CC3D Silk Gold PLA (from left to right).

The Hatchbox gold is a very close match to the color of my wife’s Michael Kors purse, which is what she wanted it for

The Michael Kors purse was a shopgoodwill.com find—they sometimes have good stuff at reasonable prices, but the auction prices sometimes get high, if people realize what the value of the item is.

The CC3D Silk slug is much shinier and also works well with the purse, but is a less subtle accent.

You can tell I’m not a professional photographer or graphic designer, as I made no attempt to make the three photos in this post be color matched.  On my laptop, the middle photo (of the Hatchbx Gold slug on the purse) is the closest to the real colors.

I released the model as https://www.thingiverse.com/thing:3735186

%d bloggers like this: