# 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

// BOSL2 from https://github.com/revarbat/BOSL2/
// used for offset

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
[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;
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;
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
//

// 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
//

// 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.

« Previous Page