Posts Tagged ‘skeinforge’

Multiply Your Prints! We Show You How

Posting about the Light It Up Blue logo design yesterday got me thinking: what if I did want to print out four or five of these at a time? What if I were a teacher and wanted to modify and multiply this awesome badge for a Wild West unit with my students?

As it happens, my colleagues in Support have just today published a new tutorial addressing this exact question. It’s a quick read, and you can find out how to divide your build platform for a designated number of copies of your object. So you can have two three headed tigers, or three four leaf clovers, or four five fingered salutes.

Speaking of tutorials, the Support team wants to hear from you. What tutorial would you really like to see? Is there something you’ve had to teach yourself that you think we could cover with a good how-to? Let us know! Comment below, or submit your ideas to support@makerbot.com at any time.

Now, go forth and multiply!

Error - could not find Thing 20694.
Error - could not find Thing 19293.
Error - could not find Thing 12629.
Tagged with , , 2 comments
 

Welcome, Dualstrusion Experimenters!

 

Those of you who got a chance to stop by Maker Faire this weekend (or read our earlier blog post) are probably wondering when you too can experiment with dual extrusion heads. The answer is: now! We’ve integrated tools into ReplicatorG that simplify the process of creating a two-material print. They’re not in the released version of ReplicatorG yet, but they are available in a git branch for experimenters who want to get a jump start on the future. And who doesn’t want to get a jump start on the future? Details for the bold below!

Read the rest of this entry »

Tagged with , , , 7 comments
 

Going slow

Slow down, you move to fast.  You've got to make the moment last.

Slow down, you move to fast. You've got to make the moment last.

Over the weekend I was experimenting with really really fast feedrates for my Thing-O-Matic. 1  What I discovered was that if I start even a complex object off very slowly, I could run the Thing-O-Matic pretty darn fast. 2  The tricky bit was getting that first layer to print slowly enough.3

After some poking and prodding in Skeinforge, I found the settings here:

  • Raft -> Object First Layer -> Object First Layer Feed Rate Infill Multiplier (ratio)
  • Raft -> Object First Layer -> Object First Layer Feed Rate Perimeter Multiplier (ratio)
  • Raft -> Object First Layer -> Object First Layer Flow Rate Multiplier (ratio)

I set each of these settings to the same value.  However, my target range was between 10 and 15mm/s.  So, I look the Feedrate from the Speed settings, and discovered that I would have to reduce my Feedrate to 30% of it’s normal speed in order to get within that range.  Thus, I entered 0.3 in each of the above settings.

The result was an almost agonizingly slow first layer – but a print that adhered well to the heated build platform, did not deform as the infill was applied, and provided an excellent base layer for the rest of the print. 4

  1. Feedrate is the speed of the X and Y axes.  Flowrate is the speed at which the plastic comes out of the nozzle. []
  2. More on the speed stuff in a later post. []
  3. Photo courtesy of Jakob E. []
  4. If you’re curious, I was printing the 27-to-1 gear toy []
Tagged with , , , , , , , , , , 11 comments
 

Thoughts on Slicing: Lessons from DivX

Frankenstein Code

Frankenstein Code

So, this is a long walk, but I’ll bring you back to model slicing tech and Skeinforge.1

A very long time ago I tried to compress The Matrix from my DVD copy to the size of a CD using a DivX video codec.  Back when I did this there were two different modes for DivX – one for slow video and one for fast moving video.  Slow video was compressed in a qualitatively different way from fast video.  With slow moving video each frame could use more of the prior frame for reference – since not much was changing.  It is also important that each frame in slow moving video be sharper.  With fast moving video the codec would need to account for drastic changes in scenery from frame to frame, but it could allow for slightly blurrier definitions since sharper frames wouldn’t be that noticeable amidst lost of movement.  Some movies with lots of talking2 could be reasonably encoded with just the slow-DivX codec, while other movies with tons of action could be encoded with just the fast-DivX codec.3

However, for the truly optimal compressed video experience, you wanted to take the entire DVD and break it into it’s component scenes, sort them as “fast” or “slow,” encode them all separately, and then stitch them all back together. 4  The result was an excellent blend of the two types of compression for a movie that looked better than if it had been encoded with either type alone.  While video compression has come a long way since then, with codecs that automatically detect scene motion and frame changes to apply the best codec to that portion of the video, this history lesson is not without merit.

Okay, back to 3D printing theory.

Let’s suppose you had a model that needed different fill ratios, fill patterns, shells at different layers.  If you slice the model more than once using the same layer thickness, you could conceivably stitch together different GCodes with different properties and settings.  Or, if you kept careful track of layer thicknesses, you could even combine different layer heights.  For instance, you could print three really detailed sections at 0.2mm layers and then two other courser layers at 0.3mm per layer – as long as you took great care to splice the layers back and forth at intervals of 0.6mm.

I don’t have the programming chops to create a visualization program for GCode, but I could conceive of a very very cool system that would allow you to mix-and-match these settings.  It could look like this:

  • You would slice a model in whatever different ways you want.
  • The visualization program would line up your various GCode models next to one another.
  • If the layer heights were different, it would highlight alternating blocks of layers that were thick enough to be evenly divisible by all GCode models.
  • If the layer heights were all the same, it wouldn’t highlight any regions.
  • You could then click on regions or sections for each GCode model (probably using a series of vertical sliders) to select portions of each GCode model.
  • In the background would be a composite model that was comprised of the combined layers.  Ideally there would be an indicator showing completion progress for the model.
  • You hit a button and the program simply spliced together the different layers from different GCodes and outputs a single Franken-GCode.
  • Print!

What do you think?

  1. Photo courtesy of Devlin Thompson []
  2. Say, any movie by Woody Allen []
  3. Say, any Marvel comic book movie. []
  4. Yes, I really did this. []
Tagged with , , , , , , , , 7 comments
 

Untangling Skeinforge: Shells

Remember magic shell?

Remember magic shell?

I had the opportunity to talk to Nick Starno of MakerBot yesterday regarding something we are both passionate about – getting the best Skeinforge settings to print sweet awesome things. 1  Nick believes that the “extra shells” setting is the most underlooked and underappreciated settings in all of Skeinforge2

Assuming a typical Skeinforge setup, the extruder will first draw the outline of a layer in a part before filling any of it in with more plastic.  That outside trace is the “first shell.”  The “extra shells” setting will add additional interior traces of the outline of the layer for each additional specified.  This picture should explain it better:

2 extra shells, 0 extra shells

2 extra shells, 0 extra shells

Pretend the lines are the paths of the extruder as it lays down plastic.  The figure on the left has the extruder drawing the outline, then draws two extra shells, and then fills the center of the object with plastic.  The figure on the right has the extruder drawing the outline and then filling the object with plastic.3

The “extra shells” setting is probably just as important to part strength and structural integrity as plastic “infill” or the amount of plastic printed inside the object.  It is probably pretty intuitive that an object that is 100% filled with plastic is going to be stronger than an object with 0% filled with plastic.  But what if you don’t need the strongest part possible?  What if you just need an object that is purely decorative, doesn’t need to be strong at all, that just needs to be only just strong enough for a particular application, or prints quickly?

It depends.  Generally speaking, a higher infill ratio will lead to a stronger and sturdier object that will use more plastic and time to print.  Whereas, a lower infill ratio will lead to a lighter, less sturdy object that uses less plastic and time to print.  When I don’t need a part that is super-strong, I typically print with about a 20% fill ratio.  I find this makes for parts that are very strong and durable while still being quick to print without using a ton of plastic.

However, infill isn’t the only concern.  Laying down extra shells can result in an object that is strong on the outside, while still being sparse on the inside.  However, more shells isn’t always better!

  • Thin Parts. When you have extra shells on a thin part, a current bug in Skeinforge will cause your thin parts to be hollow.  Basically what’s happening is Skeinforge looks at the thin section of your object, figures that it cannot fit the required number of extra shells in there, and then skips the shells and the infill. 4  So, if you’ve got a small or thin part or a part that has small or thin features, you will want to turn extra shells down to 0.
  • High Infill. When you have a high infill ratio with insufficient extra shells, the shrinkage that occurs inside the part with the high infill as the plastic cools causes a lot of stress in the printed part.  If the number of extra shells is too low, that stress from too-high of an infill could cause larger volume objects to crack.  Nick has noticed that this effect seem to be worse with smaller diameter nozzles and small layer heights.  I suspect this is a bigger problem for ABS than it is for PLA since PLA has almost no shrinkage, but I haven’t done enough testing to confirm this.

What Skeinforge setting would you like to learn more about?  Leave a comment and let me know!

  1. Photo courtesy of *Micky []
  2. You can find the “extra shells” settings in Skeinforge here:

    • Fill -> Extra Shells on Alternating Solid Layer (layers)
    • Fill -> Extra Shells on Base (layers)
    • Fill -> Extra Shells on Sparse Layer (layers)

    []

  3. Oh, and those sweet sweet awesome drawzwing skillz?  All mine, baby! []
  4. Say, for instance, you have a 5mm thick wall and your extruder is laying down 0.5mm wide strands of plastic.  The most extra shells you could fit in there would be 4.  With zero shells, the 5mm thick wall would be composed of a 0.5mm outer perimeter with whatever infill.  With 1 extra shell, you would have the 0.5mm thick perimeter and one 0.5mm shell, with the rest being infill.  With 4 extra shells, you would have a 0.5mm perimeter and four 0.5mm shells, leaving no room for infill.  If you had extra shells at 5 or higher, this bug in Skeinforge would determine that it could not fit in all the shells required, and then just not add shells or infill. []
Tagged with , , , , , , 5 comments
 

How to manually edit your Skeinforge profiles in Windows

Slicing with style

Slicing with style

Gian Pablo’s excellent tutorial on how to manually edit Skeinforge profiles on Mac OS X got me thinking that manually editing Skeinforge profiles isn’t exactly intuitive for just about any operating system. 1  For instance, Windows Vista will store Skeinforge settings in one of two locations.  These profiles are located either in a sub-folder where you have ReplicatorG installed or a sub-folder of your user profile.

  1. Location of Skeinforge Settings in ReplicatorG
    • replicatorg-0024\skein_engines\skeinforge-35\skeinforge_application\prefs
  2. Location of Skeinforge Settings under User Profile
    • C:\Users\USERNAME\.replicatorg\sf_35_profiles

The settings folder within the ReplicatorG sub-folder should contain a series of sub-folders with the stock profiles:

  • SF35-cupcake-ABP
  • SF35-cupcake-HBP
  • SF35-Thingomatic-ABP
  • SF35-Thingomatic-ABP-Stepstruder
  • SF35-Thingomatic-ABP-Stepstruder-1.75
  • SF35-Thingomatic-HBP
  • SF35-Thingomatic-HBP-Stepstruder
  • SF35-Thingomatic-HBP-Stepstruder-1.75
  • SF35-Thingomatic-non-heated

It seems that when you create a new Skeinforge profile within ReplicatorG the new settings profile will be stored under your User Profile.  The profiles themselves are basically a collection of text documents laid out in the exact order you would see them in when viewing Skeinforge.  Changing the settings manually is merely a matter of opening one of those text documents in a text editor and changing the relevant values.

  1. Photo courtesy of pj_vanf []
Tagged with , , 4 comments
 

Untangling Skeinforge: Infill

Infill - half empty or half full?

Infill - half empty or half full?

I had the opportunity to talk to Nick Starno of MakerBot yesterday about something we are both passionate about – getting the best Skeinforge settings to print sweet awesome things.  ((Photo courtesy of micmol))  One of settings we discussed was “infill.” 1  While this may be review for some, I’m hoping to do a few more posts that will build on this topic. 2

25% infill, 75% infill

25% infill, 75% infill

It is probably pretty intuitive that an object that is 100% filled with plastic is going to be stronger than an object with 0% filled with plastic.  But, what if you don’t need the strongest part possible?  What if you just need an object that is purely decorative and doesn’t need to be strong at all, an object that just needs to be only just strong enough for a particular application, or an object that will print very quickly?

Generally speaking, a higher infill ratio will lead to a stronger and sturdier object that will use more plastic and time to print.  Whereas, a lower infill ratio will lead to a lighter, less sturdy object that uses less plastic and time to print.  When I don’t need a part that is super-strong, I typically print with about a 20-25% fill ratio.  I find this makes for parts that are very strong and durable while still being quick to print without using a ton of plastic. 3

What infill ratio do you use for strong lightweight quick-printing objects?

    • Fill -> Infill Solidity (ratio)

    []

  1. So hang in there! []
  2. However, infill isn’t the only consideration for strong lightweight printed object.  Next time: extra shells! []
Tagged with , , , , 4 comments
 

ProfileMaker – Stop printing calibration cubes!

Obsolete 40mm Cube Test Object by bre

Obsolete 40mm Cube Test Object by bre

As some of you may know, I’ve been working on a Skeinforge calibration projected called, “ProfileMaker.”  I released v3.0 last month over at MakerBlock.com1  My goal was a web-based cross-platform easy-to-use Skeinforge setting calculator.2

Calibration by cube is essentially a trial and error process.  Print a cube, examine the results, take some notes, change a setting, and LRR3 until you have a satisfactory result.  There’s nothing wrong this this, but it is time consuming and can be frustrating.  ProfileMaker uses the same math and formulas as Dave’s Profileinator to derive the flowrate (or speed at which plastic comes out of the nozzle) based on the few settings you choose.  There are also some advanced options, for the more adventurous.

When you calculate some new profile settings, ProfileMaker will generate the settings and tell you exactly where to enter them in Skeinforge.  Or, if you wish, it can e-mail a zip file containing those settings as part of a complete profile.  Just unzip into your directory and start slicing!

As always, I’d appreciate feedback!

  1. In that time more than 200 people have generated nearly 1000 profiles.  I see this as a good trend.  If people weren’t happy with the profiles they’re getting, they probably wouldn’t come back to generate five profiles on average. []
  2. In fact, if this isn’t the easiest Skeinforge calibration system you’ve EVER used, I’ll give you your money back! []
  3. Lather, rinse, repeat. []
Tagged with , , , , , , , , 6 comments
 

MakerBot MicroTip: Skeinforge Secrets, Hidden in Plain Sight

Hollow Calibration Cube by Starno

Yesterday, I had a conversation with MakerBot Operator Rift and MakerBot Mechanical Engineer Nick Starno in the BotCave about the Skeinforge tool “Jitter.” Rift had come to visit for a consultation about Skeinforge calibrations and Starno’s excellent Print-O-Matic SF Assistant1.

Rift had printed a couple of Tornadoes in his Thing-O-Matic using ABS and wanted to see if Jitter was the right tool to avoid seam that can appear on the sides of thin-walled geometries. (Jitter was designed to adjust where the z-height increments when completing a layer.) Starno and Rift considered the pane within Skeinforge for Jitter and found the option “Jitter over Perimeter Width (ratio).” How exactly does this tool function? Lacking sufficient details within Skeinforge, they jumped into experimentation, trying a range of values so that they could test results.

There have been a number of attempts to create wikis for various versions of Skeinforge, but most of these web resources are in such disarray that those who consult them leave more frustrated than informed. But there is a secret, hidden in plain sight — the best reference for most of the tools within Skeinforge are included as prose comments within the python scripts for the tools themselves. Even as ReplicatorG integrates assistants to help save users from Skeinforge gauntlet, taking a look at these comments can be helpful reading to get a sense of how these tools function and what are their interdependencies.

To read these comments, look inside your ReplicatorG folder for the “skein-engines” folder. Nested deep within the folder for the version of Skeinforge you want to learn about are the “craft_plugins” folders that contains the python scripts themselves.

Grab yourself a plaintext application2 and investigate those python scripts one at a time, with a special emphasis on Carve, Fill, and Speed. While in places the scripts (in active development) diverge a bit from the comments, these comments remain your best shot for reading full explanations for what each tool was created for and how to use it.

Take a look at this excerpt from the Jitter page, that was able to help Starno and Rift investigate this tool:

“Jitter Over Perimeter Width===Default is two. Defines the amount the loop ends will be jittered over the perimeter width.  A high value means the loops will start all over the place and a low value means loops will start at roughly the same place on each layer.”

Now that is a huge improvement over the amount of information available in the Skeinforge Jitter tool pane!

  1. which is now being integrated into the beta for ReplicatorG 25 []
  2. I recommend notepad++ for Windows and TextWrangler for Mac OS X []
Tagged with , , , , 4 comments
 

Maker.Bot.Party.Mode – GCode Tips & Tricks for the Practical Botter

Recently, I posted an introduction to partymode and uploaded my own sample partymode scripts to Thingiverse to kick things off.

Today, I want to share a few more details to help you play in the ReplicatorG-flavored G-Code sandbox. For those uncertain about the value of creating short movement bot scripts should remember that this is a great opportunity for you to learn just enough about G-code to tweak your prints and personalizing the start.gcode and end.gcode files in your skeinforge profiles for better, more efficient MakerBotting.

Also, why not add a bit of musical hijinx to your prints? Why doesn’t your bot play music after every print? Mine does.1

Please enable Javascript and Flash to view this Blip.tv video.

I’m going to bribe you to improve your G-code fluency by introducing you to a stupidly simple trick you will want to use every time you skein a model.

MakerBot Operators grumble about navigating down through the ReplicatorG file structure to adjust the Start.gcode files for a Skeinforge profile. But do you know what happens if you don’t do this step? The nozzle drops down to 20mm-40mm above the platform and attempts to print in the air. Not so successfully, as it turns out.

Well, that little snipped of gcode you must change in your Start.gcode file appears again right near the top of the gcode that you generate when you slice a model. Here’s the chunk in question just a little ways down the G-code document I have just generated for an Octopus model I am super eager to print on my bot. Want to make an adjustment? You can punch up the code right in ReplicatorG without touching your Start.gcode document.

(**** begin homing ****)
G162 Z F500 (home Z axis maximum)
G161 X Y F2500 (home XY axes minimum)
G92 Z80 ( ---=== Set Z axis maximum ===---)
G92 X-57.5 Y-57 (set zero for X and Y)
(**** end homing ****)

“Hmmm,” you say. “So this is the Homing section. And Set Z axis maximum lists only 80mm for the height of my build envelope. You’d better change that to your bot’s printing height ( 120.3mm) and then save your file!”

Thank you, bot-friend! You have just shown me how to use ReplicatorG to tune and save g-code!2 You can perform this trick right within ReplicatorG or open a plaintext editor and change the file there.

I suggest you take a look at this homing block every time you skein a new model to make sure that the correct value has propagated through. (Sometimes it helps to adjust your z-height by a 10th of a millimeter up or down — that first layer is ultra crucial when you aren’t printing a raft, especially on stepper-driven extruders.)

Do you want to know the handful of G-Code commands every Operator should recognize on sight! Learn more after the jump. Read the rest of this entry »

  1. Well, my Cupcake prints do. []
  2. Most G-code is practically as simple — thanks to lots and lots of commenting in Skeinforge and the user configurable Start.gcode and End.gcode. []
Tagged with , , , , , , , , , One comment