Posts Tagged ‘gcode’

Quad Color Printing

4-Color Self-Portrait by br3ttb

4-Color Self-Portrait by br3ttb

Not only is br3ttb an OpenSCAD Challenge Imaginary Prize Winner, but he’s also doing some crazy amazing stuff by printing in FOUR colors.  Similar to the printing processes of old, br3ttb set down one color at a time on top of another to form a four-color picture, using just one extruder.  The result is a very lightly textured and posterized version of br3ttb’s own portrait.  In the true spirit of Thingiverse, he has shared lots of information about his software toolpath1 and design process so you can try it out yourself.

I’m also reminded of a recent Thingiverse contribution from RichRap where he achieved a similar effect by cutting and joining different colored filaments and then printing a model that would reveal different colors at different heights.

I suppose if you had an apparatus that could select, cut, join, and feed filaments in conjunction with a LOT of custom firmware and GCode, you could print in 8 bit color!

I needed a new profile image. While I'm proud of the project that lead to my former "TV face" image, it didn't really say "Thingiverse" Having just successfully created a 3 color bottle opener, I knew the time for a multi-color portrait had come. This is my first attempt at mashing colors together on the same layer like this. I'm really happy with the results. Hopefully others will take this technique and run with it. Turns out you don't need dual extruders to make a multi-colored part! tv-face: brettbeauregard.com/blog/tag/hdtv-mount/ 3 color opener: brettbeauregard.com/blog/2011/09/three-color-3d-print/
This thing brought to you by Thingiverse.com
This was an experiment using some great coloured Faberdashery PLA filament. It was not just designed to look pretty as I added lots of sections for filament bridging and thin layers for colour change. Skeinforge finds bridging on curves hard as it decided on an angle for the direction of bridge and does the whole section the same angle, so at points along the curve filament is going straight into the gap, this makes it a hard test especially when done at high speed, that’s why you can see a few gaps and dips in the model surface. I could make it look much better with a different Rainbow design but this was testing how the filament would perform on my Prusa Mendel ‘Bling’ machine. You can see it printing in this video here - youtube.com/user/RichRap2011#p/a/u/1/UA97cC1QfM8 More info on my Blog - richrap.blogspot.com
This thing brought to you by Thingiverse.com
  1. OpenSCAD, you say?! []
Tagged with , , , , , , , , One comment
 

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
 

NYC Elevation Map by kylemcdonald – Machine Halts FTW

Now...lets just see...where am I? Brooklyn!

MakerBot Artist-In-Residence Kyle McDonald is already an expert in mapping objects with point clouds given his extensive work on structured light and 3D scanning with a Kinect via Processing. But he is also exploring another kind of mapping — grabbing topological1 data and 3D printing it with a MakerBot Thing-O-Matic.

He’s not the first to attempt this — Lake and Mountain Topography and Mt Everest are other notable examples from the Thingiverse kingdom — but his hack makes the topography easier to read.

He uses the g-code command M1 machine halt2 to pause the print to give you time to switch filaments. The results are a two-color topography where the critical elevation gain above the bottom color of filament is easier to read. Works great for sea-level topography where the transition maps to an easy to understand reference elevation. ((Though I’d love to see some sea trenches!)

This hack only works on a “tethered” MakerBot printing RepG at the moment, but is worth the hassle:

  • The topographical data is freely available here.
  • Generate the STL with Kyle’s custom app here.
  • Then search through the gcode for just before the M101 command for the first G1 command including the z-height where you’d like the transition, and drop an “M1″ on its own line.
  • I’d suggest sandwiching a “20mm up, 20mm” down waiting position script around the M1 command to keep from oozing while you fiddle with the filament, but you should code to taste.
  • If there is an active M101 command you will be extruding while you switch filament! You need to find a sweet spot between an M103 and an M101.

Kyle was standing somewhere just above the thumb when he took this picture!

A topographical map of NYC based on the 1/3 arc second NED data from the USGS. Generated with a custom app available at github.com/kylemcdonald/Makerbot/tree/master/NedToStl
This thing brought to you by Thingiverse.com
  1. From topology to topography []
  2. that might be vanishing as an option soon []
Tagged with , , , , , , , , , , One comment
 

Gestural 3D Printing: Printing Freehand

YouTube Preview Image

Thingiverse citizen nrp uploaded a Python script that enables a Kinect to track a hand in the air and feed the corresponding Gcode to a 3D printer – a process he calls “gestural 3D printing.”  From the video above you can see how the monitor provides visual feedback for the user while his RepRap in the background mimics the user’s movement.

Really, the best description is the video:youtube.com/watch?v=BRJY927raTo Also on my website:eclecti.cc/computervision/gestural-printing-jumping-the-shark-on-kinect-hacks We’ve seen a seemingly endless array of amazing Kinect hacks over the last few months, from superhero generators to obstacle avoiding quadcopters. However, it was only a matter of time before someone came up with a hack so inane and irrelevant that it would bring shame to the entire hobby. That time is now, and that someone is me. I bring to you, gestural 3D printing! Using the Kinect to track your hand, you can draw one layer at a time, with the printer following your every move. Pushing forward extrudes plastic, while pulling your hand back will start a new layer. Who needs difficult and confusing CAD software when you can just directly draw the object you want to print?
This thing brought to you by Thingiverse.com
Tagged with , , , , , One comment
 

Maker.Bot.Party.Mode

Shakespeare's 6th Birthday by Lindsayloveshermac

Are you working your bot too hard? (Is your bot working you too hard?)

Ever wanna just take the night off, spend some quality time with your robot? Maybe toss the ole Calibration Cube between the two of you?

Now you can: partymode

Here is how you do it.

Create a short snip of G-code1 saved as a “.gcode” file, put it in a “partymode” folder, and drop the “partymode” folder into the “scripts” folder within ReplicatorG 24.

Code can be a fun set of movements, a tune, a gesture, a microprint, a neat trick.

Make sure it will play on all MakerBots (don’t play favorites: Thing-O-Matics and Cupcakes are both invited to the party). Test and tune right in the G-code window of ReplicatorG.2 Call the script from here: “File > scripts > partymode.”

Now it is time to throw a party! Hire a caterer! Stock up on 3-IN-ONE oil! Activate your script and get down with your bad self, while your bot is bot-bot-botting along next to you.

Was your party a smash success? Share back!

Was there cake?3 Share your partymode script on Thingiverse. There’s a new tag in Thingiverse-town, and it’s shakin’ all the nation’. partymode

And get your partymode script up by midnight, Wednesday, March 16th and it will be under consideration for inclusion in a “partymode” folder for future ReplicatorG releases.4

This set of short GCode scripts initiates what I hope will be a longstanding practice of creating fun things for your bot to do. Nothing as heavy as extruding much. More dances, gestures, sounds, and neat tricks. These scripts play well on all MakerBots (I don't play favorites: Thing-O-Matics and Cupcakes are both invited to the party). Make sure to read the instructions at the top of the code before running each partymode. Your axes might be reversed in a different pattern than mine -- so watch out! Where are your partymode scripts? And quick utilities? And stupid pranks? Making these things is probably the best way out there to get a firm grasp on essential, human-readable g-code scripting. They always told me that the future would be fun. And so I made it fun for everyone. Included in this set: "Game Anthem Grrarr!" "MakerBot M Stamper!" "one turn deserves another" "Party like a cube" "sNAKEy dANCe" "Stirring the Air" "Triangle Man, Triangle Man" "Where Is Violin! Is Too So Small!" Thanks to Pleasant 3D for the great gcode path visualization ... for these behaviors that leave no extrusion trace upon the world. (http://bit.ly/dUe5xh)
This thing brought to you by Thingiverse.com
  1. wanna repeat? throw an M30 at the end — at least until ReplicatorG 25 comes out []
  2. Ah, G-code, you are so groovy and human-readable. []
  3. I was told there would be cake. []
  4. Just make sure these are released as Public Domain or Creative Commons such that commercial releases are permitted! []
Tagged with , , , , , , , , , , , , , , , , , One comment
 

Wanted: SUPER Fast Traveling Salesman

 

TSP crossing

TSP crossing

The question behind the “Traveling Salesman Problem” is basically, what’s the most efficient path through a large number of points? 1  There are probably many important applications of this difficult mathematical problem, but the most interesting for me is line art.  If you’ve been following the progress of the MakerBot Unicorn or Egg-Bot projects, you’ve already seen some incredible examples of “TSP” line art.

This thing brought to you by Thingiverse.com

This thing brought to you by Thingiverse.com

Here is a Unicorn printable version of the Thomas Edison TSP Art line work by dnewman!
This thing brought to you by Thingiverse.com

The current process for converting a picture to TSP line art is pretty involved.  From the excellent TSP line art tutorial over at Evil Mad Scientist labs, the process involves converting the image to greyscale, converting it into a stippled image, putting the points through a TSP solver such as the Concorde TSP solver package to create the TSP line art from the stippled image and end up with an SVG file.  At that point you could probably use Schmarty’s Inkscape GCode extension23

I would love to see this process become simplified.  I suspect the best method for doing so might lie in the creation of a GIMP4 plugin.  GIMP already has the mechanisms for many of the above steps.  A GIMP plugin could probably automate the “grayscale -> stippled image -> point puddle” process.56  Once that was done, the resulting “point puddle” would still need to be fed through the TSP solver.  However, I suspect this might be able to be done by having GIMP call the Concorde TSP solver.  This would take it from “point puddle -> TSP solver -> SVG file” which could then be turned into GCode using the above Inkscape extension.

Besides my belief that there just isn’t enough TSP line art in the world, there are a bunch of reasons I’d love to see this plugin pop into existence.   The top three reasons being the Unicorn, the Egg-Bot, the CNC Etch-a-Sketch.  :)   After that, I’d have to say – TSP line art renderings of photographs and old master works of art.  I would love to see a web cam hooked up to a Unicorn for instant TSP line art photobooth style sticky note generation!

  1. Photo courtesy of robotson []
  2. Basically, image -> gray image -> point puddle -> TSP solver -> printable SVG path []
  3. I say point puddle since it’s not a 3D point cloud.  Just a 2D … puddle of points. []
  4. My favorite open source image manipulation/editing software []
  5. See note above last for explanation of “point puddle.” []
  6. “Point puddle” you heard it here first! []
Tagged with , , , , , , , , , , , , 3 comments
 

How do you automate 3D printer maintenance?

 

Coasterman's Makerbot Oiling Script

Coasterman's Makerbot Oiling Script

What I love about this new frontier of 3D printing is that everyone can contribute to making DIY 3D printing better for the world.  Even a small improvement can make a big change to the overall community – but raising awareness and drawing in support for a new problem or solution.

Look at basic 3D printer maintenance, this was just something I had always done – but never given much thought to.  Coasterman, on the other hand, found a way to ensure consistent and efficient oiling of a MakerBot Cupcake’s rods.  He’s created a GCode script that will move the platforms around and guide you through the maintenance process.  Now that he’s published this, it’s probably only a matter of time before it is adapted for a Thing-O-Matic or RepRap and then even integrated into ReplicatorG!

To run the script, your machine needs to know where zero is, and then you can run it. In other words, if you move all axes to zero, the machine should put the nozzle on the platform on the center. Endstops are currently not supported.

The machine will prepare for oiling and the script will produce messages to guide you through the process. It will move off to one side for you to oil, then the other side to expose the rest of the rod, then run the axis back and forth to make the oil “set in.” Also, to make oiling the Y easier, it keeps the X off to one side so you have space to stick the oil bottle in.

Oiling Tips:
When oiling the rod, squeeze a bit out over the length of the rod. If little drops of oil start to form hanging below the rod, take a paper towel and suck up the extra oil. The oil should cover the rod but not drip below it.

If, like me, you don’t have wicked software or hardware1 skills, you can always find a way to help out the community.  Just look at your ‘bot and think about what you’ve done to improve it.  Chances are you can help out a lot of people just by posting your thoughts, ideas, or design files.

  1. Or writing []
Tagged with , , , , , , , , 3 comments
 

Two Revolvers

There have been two very different revolvers uploaded to Thingiverse in the last few days. There’s Renosis’ scarily realistic revolver and mrkim’s GCode rendition of the Beatles’ Revolver.
Mrkim’s collection of GCode produces more than 30 minutes of 3D printer music. With some careful editing of your “end.txt” file and a set of GCode scripts, you could get your MakerBot to play a song when it finishes a print task.
What would be the best song to have your printer announce the end of a print job?

This is a replica of a revolver. Not really sure what kind of revolver but, I got some of the dimensions from a page showing the specs for a Ruger SP101 (This was the first thing that popped up on a google search for "snub-nose revolver"). The cylinder spins but there are no other moving parts. This is my second design and if I tried to get carried away with over engineering it, I would have never finished it.
This thing brought to you by Thingiverse.com

Error - could not find Thing 6429.

Tagged with , , , , 2 comments