Gas station without pumps

2019 September 19

Printed 3DBenchy

Filed under: Uncategorized — gasstationwithoutpumps @ 13:32
Tags: , ,

One of the standard test pieces for 3D printers is 3DBenchy, a design with several somewhat difficult features created by Creative-Tools.com (licensed CC-4.0-By-No).  I finally got around to printing it earlier this week on my Monoprice Delta Mini using Hatchbox Gold PLA with a layer height of 0.07mm and the 0.4mm brass nozzle that came with the printer. It took 4 hours and 25 minutes to print at that resolution.

I’ve been trying to figure out how to get Cura 4.2 to dump the entire settings used to generate the Gcode, but I’ve been unable to do that—it seems to record only the differences from the standard settings. So far the best I’ve been able to do is to extract settings from the output G-code:

;FLAVOR:Marlin
;TIME:10855
;Filament used: 3.85238m
;Layer height: 0.07
;MINX:-29.8
;MINY:-16.122
;MINZ:0.14
;MAXX:29.798
;MAXY:16.113
;MAXZ:47.95
;Generated with Cura_SteamEngine 4.2.0

M82 ;absolute extrusion mode
G21;(metric values)
G90;(absolute positioning)
M82;(set extruder to absolute mode)
M107;(start with the fan off)
G28;(Home)
G29 P5 Z0.3 V4; (Level the bed with 5x5 array)
G1 X55 Y0 Z5 F3000;(Move to the outside of the bed.)
G92 E0;(reset extrusion distance)
G1 E5 F500;(Prime.)
G92 E0;(zero the extruded length)
G1 Z0;(Down to printing height.)
G2 X0 Y55 I-55 J0 E20 F2000;(Draw a priming arc.)
G92 E0;(zero the extruded length)

adhesion_type = none
build_volume_temperature = 0
default_material_bed_temperature = 50
layer_height = 0.07
layer_height_0 = 0.14
material_bed_temperature = 40
material_bed_temperature_layer_0 = 50

alternate_extra_perimeter = True
brim_width = 3
cool_min_layer_time = 3
fill_outline_gaps = True
infill_sparse_density = 25
line_width = 0.35
material_initial_print_temperature = 195
optimize_wall_printing_order = True
top_bottom_thickness = 0.42
xy_offset_layer_0 = -0.05
zig_zaggify_infill = True

That is enough to recreate the settings in Cura 4.2, but if the default values change in later versions of Cura, I won’t know which to reset. Some of these settings are irrelevant, also, as the brim_width doesn’t matter since I didn’t use a brim, for example.

Print speed is the default 60mm/s with walls and top/bottom at the default 30 mm/s and travel at the default 120mm/s.

I chose to print at 0.07mm (70 µm), since I read somewhere that multiples of that thickness are best for the Monoprice Delta Mini.

Bottom view shows the shiny surface from using a glass plate with hairspray as an adhesive.

The top surface looks pretty clean, but stringing can be seen from the stern and between the uprights of the wheelhouse.

The top view looks pretty good from this angle also, but some blobbing can be seen inside the bow.

The port bow shows smooth sides, but some stringing on the hawsepipes and poor bridging at the top of front window of the bridge.

The view from the stern shows bad stringing for the rear window. The 0.1mm writing on the stern is barely legible with angled lighting (not really with this flash).

The starboard view shows bad stringing between the uprights of the bridge and some blobbing on the back of the bridge, as well as some layer marks near the top of the arch.

Many of the calibration checks (measured/ideal) are hard to do with calipers, because there are not well-defined measurement points or other parts of the print interfere with placement of the calipers. I skipped some measurements entirely as impossible to measure with the calipers.
roof length 22.9mm/23mm
chimney cap diameter 6.4mm/7mm
depth of chimney hole 11mm/11mm (hard to measure accurately)
chimney inside diameter 2.4mm/3mm (hard to measure accurately)
length 60mm/60mm (hard to measure accurately)
width 29mm/30mm (hard to measure accurately)
height 48.2mm/48mm
box height 15.65mm/15.5mm
box width 11.8mm/12mm
box inside width 7.8mm/8mm
box depth 9.1mm/9mm
box length 10.75mm/10.81mm
hawsepipe diameter 3.95mm/4mm
front window width 9.95mm/10.5mm
rear window outer diameter 11.35mm/12mm (horizontally)
rear window inner diameter 8.9mm/9mm

The z-heights look about 0.5% too big and the x-y dimensions about 2% small (though I don’t trust the measurements—I’d want to use a rectangular block for re-calibrating).

I think that the biggest problem is stringing, which may be fixable by increasing the retraction, though bridging at the top of the front window is also flawed. Retraction is enabled and is the default 6.5mm @ 25mm/s.

I’ll be asking for advice on the 3D-printing subreddit, since asking for help on Benchy prints seems to be common there.

2019 August 31

Shakespeare cookies v7

Today (2019 August 31), my son and I baked shortbread cookies using version 7 of the Shakespeare cookie cutter, which is a two-part design with a separate cutter and stamp:

Version 7 of the Shakespeare cookie cutter uses a simple outline for the cutter and a separate stamp for adding the facial features. Version 6 of the stamp failed, because I made the alignment markers too thin and they did not survive even gentle handling.

In addition to the new cutter and stamp, we also tried out the “cookie sticks” that I made for rolling the dough to a consistent 6mm thickness:

I made two different sticks: a straight one and one with a 90° corner. The OpenSCAD file also allows other angles, so I could have made 120° corners for a hexagon.  I made the sticks about as big as I could print on the Monoprice Delta Mini.

The hooks at the two end of the stick lock the sticks together.

I made enough of the sticks to make a rectangular frame almost as big as my cookie sheets. I ran out of the ugly green PLA filament after only 3 sticks, so I did the rest in the Hatchbox gold PLA filament.

I made the same shortbread dough as last time: 1 cup butter, 2 cups pastry flour, and ½ cup powdered sugar. I cleared a counter to make some workspace:

I had a cookie sheet,a rolling pin (a piece of birch dowel that I sanded and coated with mineral oil decades ago), a silicone baking mat, the cookie sticks, the cookie cutter and stamp, and a shallow bowl for flour.

The entire batch fills about 2/3 of the frame when rolled out:

For the first batch, we tried rolling the dough directly on the silicone baking mat, and removing the excess dough without moving the cookies.

The cookie sticks worked well for getting a uniform, consistent thickness to the dough, and 6mm is about the right thickness for these cookies. Having a complete frame around the dough meant that I did not have to worry about the cookie sticks shifting position, nor what the orientation of the rolling pin was.

The stamping is easily done on the cookies, but removing the excess dough from between the cookies was harder than we expected. It probably didn’t help that it was a warm afternoon and the dough got sticky quickly, even though we refrigerated it before rolling.

For the second rolling, we rolled the dough onto waxed paper, then transferred the cut-out cookies to a baking sheet lined with a silicone mat, doing the stamping only after the cookies were on the baking sheet.

We ended up with 19 cookies from the batch, and they came out pretty good:

This picture is a bit misleading as these were probably the best two of the nineteen.

The biggest problem was with dough getting stuck in the nose when stamping—it might be easier to do Tycho Brahe cookie cutters!

The second biggest problem was getting accurate alignment of the stamp with the cutter. For several of the cutters we were a millimeter off, resulting in an extraneous line at one of the alignment markers.

Despite these minor problems, the v7 cutters were much easier to use than previous versions, and I don’t have any immediate ideas for improvements (other than changing from a 3D-printed cutter to a injection-molded cutter, which would require a lot of changes and cost a few thousand dollars—something I’m not prepared for.

2019 August 19

Shakespeare cookies v5

On Saturday, my son and I baked shortbread cookies using version 5 of the Shakespeare cookie cutter:

The difference between version 4 and version 5 is mainly around the left eye (on the right in this photo). Version 4 had a lot of trouble with the dough getting stuck in the small regions there. (See prior post for cookies made with the V4 cutter.)

Despite the simplifications, Shakespeare’s head is still quite recognizable.

We used the classic recipe (2 cups flour, 1 cup butter, and ½ cup confectioner’s sugar), but this time I used pastry flour instead of a mixture of all-purpose flour and sweet rice flour.  The dough works about equally well either way.

The cookies came out good, but the cookie cutters are still having problems with dough sticking to the cutters. Chilling the dough after rolling helped a little, but stickiness was still a problem. We also had problems rolling the dough out to a uniform 6mm thickness—sometimes we had the dough too thin, and the interior lines were not clear, and sometimes we had it too thick and couldn’t get the cookie out of the cutter without destroying the cookie.

My son had two suggestions, both of which I’ll follow up on:

  • Go back to having separate cutter and stamp (as in Version 3), but don’t try to connect the two.  Make the stamp just have a few alignment marks so that it can be hand-aligned to the cookie outline.  The stamp can have a lot of open space, so that the visual alignment is relatively easy, and so that the cookie dough can be easily separated from the stamp.  The stamping can even be done after the cookie has been transferred to the baking sheet, to make distortion from moving the cookie less of a problem.
  • Make a set of 6mm thick sticks that can be put down around the dough, that the rolling pin can rest on.

Version 6 of the stamp failed, because I made the alignment markers too thin and they did not survive even gentle handling.  I’m now printing Version 7, which has more robust alignment markers.

 

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.

Next Page »

%d bloggers like this: