MakeNBreak

MakeNBreak.pl is a Perl script developed as a means to promote increased production for those using extruding 3-D printers such a Makerbot and RepRap. Currently, two issues occur with multiple print routines available in Skeinforge. First, they necessitate the nozzle to constantly be moving from one part to the other for each layer, increasing total build time. Second, the exterior surface of items produced in this manner often have discontinuities and plastic “strings” that must be removed after the build. This is avoided by using the script to create z-direction stacks of parts, split up by an independent float layer which can be set such that parts are easily separated by hand.

See Current Version:MakeNBreak.pl

There are numerous benefits to the stacking process. Tests have shown that eliminating the raft before each repeat build can save more that 20% of the time for printing small parts. By only having to create 1 raft for ABS and building up, there are far less chances of the multiple builds failing or parts warping. Empirically, it seems that the parts cool at a rate that prevents warping as they are built up. In a production case, time saved from removal and additional post-processing of parts may be even greater.

WARNING: This particular script is a very early step in z-stack printing and as such that there are only limited cases where this script will applicable. The best case scenario is for a derivative of this code to be produced an implemented in Skeinforge, but it currently exists as a post-processor for Skeinforge produced .gcode files. Gcode created otherwise will not work.

Files needed

gcode: gcode is based on standard computer controlled tool path addressing that has been extended by the reprap project for home 3D printing. RepRap Page This script assumes use of "stackable objects" like rectangular or cylindrical objects (or whistles!) that allow a float layer to be added on top of them. If this is not the case, there may be other options such as creating a simple external box or structure on which the float layer can be built, but this is yet to be prototyped. Input for this script is assumed to be generated from Skeinforge as a .gcode file.

float: This is a simple text file containing the layer used to hold one object on top of the other. It must be developed separately as input for the script. See below test cases for sample files. Otherwise, it is suggested to start from the existing gcode raft interface layer and truncate that path to fit within the final set of external boundary points of the gcode. Z-coordinates are ignored in preference of settings built into the script. This could be automated, but it would be difficult to do as a post-processor of gcode files.

Instructions

Setup

Make sure you feel confident that both the gcode and float files will work together. There is no margin for error in this tool as it stands.

The script is setup to have variables edited before execution. Place script in the same folder as input files.

$file123=”stacked.gcode”; # output file such as “whistlestack.gcode”. Will overwrite if another file has the same name.
$float="float.txt"; # Input float file. Name this something similar to your gcode , like "whistlefloat.txt”
$file1="whistle.gcode"; # Input gcode file, generated by skeinforge
my $zstack=7; # number of parts you wish to print.
my $floatbottom=0.7; #Z distance from last gcode layer and float layer, 0.7 suggested for easy separation
my $floattop=0.5;#Z distance from float layer to next part first layer still under experimentation, 0.5 suggested assuming post-processing to trim from op part
my $production=0; #production mode switch 0=off, 1=start and end at same height

Execution

Download and install perl if you are on a windows machine (Unix and Mac OSX
feature this code internally).

The code is executed through the command line by entering “perl MakeNBreak.pl” while in the directory containing the script and input files. No command line modifiers are available at this time.

Before you print

Open the .gcode file to be printed. Check to make sure it begins at coordinates 0,0,0 or at the targeted Z for production mode. Scroll to the bottom of the code. What are the final coordinates? These should be absolute machine position. Are these coordinates achievable by the machine (~120mm for Makerbot). Is the Z coordinate above those in the rest of the code? In general it would be a good idea to spot check a few places in the code to make sure nothing wrong has occurred. (Otherwise watch your machine like a hawk!)

Also Important: Print one part first to get a feel for how long this will take. This is harder to gage using an SD card with replicatorG. There is some time savings by not building a raft, but it's still a multiple of how many parts you are building. Builds that take hours can easily be created. Make sure dinner plans don't get ruined!

Please don't leave your bot unattended!

Print

Pre-heat printer and noodle some plastic in order to maximize chances of a good build. Position nozzle as directed in line 1 of the gcode. If you used the production mode switch, this should be the same as the last z-coordinate. Send the script outputted gcode file to SD card in your preferred manor and print from the SD card. With tall prints such as these it is important to “smoosh” the raft into the build platform. Otherwise, warping can cause the nozzle to rip the build off.

Post-Print

If you’ve used the recommended settings for the float layer, the parts should easily separate under bending. The float will need to be cut away from parts similar to the raft.

Tested Cases:

608 Idler Pulley Production Gcode
Time per part: Approximately 12 minutes
Black ABS
Base gcode:_608-idler-v1_export2ssl-production-mod2.gcode
Float text:pulleyfloat.txt
Stack gcode:pulleystack.gcode (start at z=0,0,0)
Options

$file123=”pulleystack.gcode”;  # output file such as “whistlestack.gcode”.  Will overwrite if another file has the same name.
$float="pulleyfloat.txt"; # Input float file.  Name this something similar to your gcode , like "whistlefloat.txt”
$file1="_608-idler-v1_export2ssl-production-mod2.gcode _608-idler-v1_export2ssl-production-mod2.gcode"; # Input gcode file, generated by skeinforge
my $zstack=7; # number of parts you wish to print.
my $floatbottom=0.7; #Z distance from last gcode layer and float layer, 0.7 suggested for easy separation
my $floattop=0.5;   #Z distance from float layer to next part first layer still under experimentation, 0.5 suggested assuming post-processing to trim from op part
my $production=1; #production mode ON start at specified height!
4115554943_1761776dc6.jpg

Mendel "Frame Vertex" converted from STL
Time per part: Approximately 70 minutes
Black ABS
STL file:frame-vertex_6off.stl
Base gcode:vertex.gcode
Float text:vertexfloat.txt
Stack gcode:stackedvertex.gcode (start at z=0,0,0)
Options

$file123="vertexstack.gcode"; # output file 
$float="vertexfloat.txt"; #float file. 
$file1="vertex.gcode";# input gcode file, generated by skeinforge
my $zstack=3; # number of parts you wish to print.
my $floatbottom=0.7;#Z distance from last gcode layer and float layer
my $floattop=0.5;#Z distance from float layer to next part first layer
my $production=0;#production switch OFF
4146190744_200f7c0395.jpg

Suggested Requirements

Perl 5.8.8 or above. Skeinforge 0005. Makerbot with MK4 plastruder. ReplicatorG 0009 or above. Tested in windows XP and windows 7.

“He's intelligent, but not experienced. His pattern indicates two-dimensional thinking.” -Capt. Spock (The original “good” Star Trek movie)

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.