Archive for the ‘ CG ’ Category

CNC The Bay

I bought & assembled my X-Carve cnc during Christmas, 2015.  Ever since then, I thought it would be perfect to do topo maps.  I had great success with Denali & Lake Tahoe, but always wanted to do something bigger.  In fact, a year before the X-Carve’s arrival, I’d 3d printed the (lower half) of the San Franisco Bay Area, which I felt turned out well.

Some friends and I took a trip to Firewood Farms in Half Moon Bay, where I picked up a couple slabs of redwood, without really knowing what I was going to do with them at the time.  Then the stars aligned, and I realized one was the perfect shape to do a cnc topo map of the whole bay area.  “The Bay” is the result:

uberbay_final_web

uberbay_persp_web

uberbay_closeup_web

More pics below.

Info on it:

  • The piece measures 17×30″, and about 1.75″ deep.
  • Rough cut was 3h, 10min.  Finish pass was 6h, 20min.   Total was 9.5h (my whole Saturday…).
  • Used a 3-flute .25″ ballnose for both passes, DeWalt router on speed 1.
  • Roughcut feed for X/Y was at 150″/min, finish pass was at 210″/min.
  • Roughcut feed for Z was 20″/min, finish pass was 40″/min : I had to modify my firmware to get these speeds.  I tried a faster z-feed, but the machine couldn’t raise the spindle that fast, and chaos ensued.
  • Very little sanding was needed, based on the 10% stepover during the finish pass.
  • Used terrain2stl to get the topo data.
  • Used Autodesk Maya for all the mesh modification, and text creation.
  • Used MeshCAM for the toolpath generation.
  • Used Universal GcodeSender to send the cam to the machine.
  • Applied a ‘natural’ Minwax stain, and “Blue Lagoon” satin paint.

Issues:

  • I think the poor Arduino Uno couldn’t handle the fast feedrate during the rough terrain parts:  The whole thing would start & stop over and over (giving me an anxiety attack at first), while the buffer caught up with the operations.  Maybe it’s time to get some new electronics?  That really slowed down the finish pass.  Didn’t have any trouble during the rough.
  • I think I could speed up the rough-cut even more by not using MeshCAM’s ‘Use 3D Roughing’ option : while it makes a nice looking roughcut, who cares, it’s all getting cut out anyway.  The result was a lot of small up/down z-travels, that really slowed it down overall.

Here’s a series of photos showing the process:

A shot in Maya, while I got the text arranged:

uberbay_maya_web

1.15 million triangles:

uberbay_maya_polydensity_web

The very first cuts:

uberbay_initialcut_web

Roughcut complete:

uberbay_roughcut_web

The final piece, before stain and paint:

uberbay_unpainted_web

In conclusion, I found this to be really satisfying project, and it looks great hanging on my living-room wall.

 

A comparison of Simplify3D and Slic3r Prusa Edition

allBenchies_web

I printed so many 3dBenchies for this comparison….

Preface

I’ve been a 3d printing hobbyist for right around five years now:  I purchased my first printer, a Makerbot Replicator 1 (which I still own, still prints great) in March of 2012.  Since then I’ve used multiple slicers to generate my gcode, but mainly (and in order):  ReplicatorG, MakerWare (now MakerBot Print), and Simplify3D.  And for the time I used them, they’ve all been great.  I’ve also built my own printer a few years ago.

However, and as much as I like Simplify3D:

  • Despite it does so many things so well…
  • The fact that I paid cash money for it.
  • And that their updates are so few and far between…
  • And the updates don’t include fixes to some major issues I feel it has…

I thought I should revisit what slicer software 2017 has available.

I know that slicer software is like religion, politics, and CAD software:  People can get very attached to them.  And there’s a good chance someone out there is going to disagree with my findings : That’s great, I’d like to hear your perspective, leave a comment below.  Everyone uses the software differently, and the things I find important (or not) could be polar opposite of someone else.

Based on a general poll I posted, it looks like these slicers are out in the wild and commonly used.  Yes, there are more, but these seem to be popular:

After reviewing all of them, and for reasons listed below, I decided to investigate Slic3r Prusa Edition.  And mainly that edition over vanilla Slic3r because vanilla Slic3r hasn’t been updated since mid 2015, while the Prusa edition is being actively developed (+ extra fancy features).  I know vanilla Slic3r is still being developed, it’s just been a while since an official release has gone out.

Update:  As it turns out, dev releases of vanilla Slic3r are generated often, so it’s pretty easy to be on the cutting edge, find downloads here.

This is not a post designed to bash Simplify3D and espouse the values of some other slicer:  My goal is to make it an honest comparison of the two software.  It should be noted however, I have over two years of experience with S3D, and only a few weeks on Slic3r, but so many of the concepts of the software overlap, I feel I have a pretty good grasp of it.

Finally, why am I writing this? It’s taken quite a while to do all the research!  Mainly for myself actually:  I wanted to get all my research down on paper to see if I should make a slicer switch or not.  There are so many facets to all of this, I wanted to get it in one place to make sure I wasn’t missing anything.

I will continue to update it over time, see bold “Update” text below.

What I used for testing

  • 3D printer hardware:
    • My custom core-xy C-Bot : It has a 12x12x21″ build volume, auto-leveled on a heated, removable, mic6 aluminum bed covered in a PEI sheet.
    • Runs RepRapFirmware on 32-bit RADDS/Due electronic.
    • All steppers set to 1/128 microstepping using SD6128 drivers.
    • I currently print mainly MakerGeeks PLA out of a .6mm E3D-v6 Volcano nozzle at 230 degrees on a 60 deg bed, with active PLA cooling from a ducted 24cfm fan.
  • 3D Model:  I used the good’ol 3dBenchy as my test model for all comparisons, except the thin-wall compare, it’s linked to below.

So let’s get into it…

Simplify3D

Version Tested: 3.1.1

Unique things it does well

These are things I’ve found it to do, that other slicers may not.  Or it does better.

  • Multiple ‘Processes’:
    • A process in S3D is basically a print preset.  And you always need at least one:
      • s3d_process x
    • The power comes into play however, that you can assign them per mesh to print (if there are multiple being printed):
      • s3d_process_permesh
    • Or by layer height:
      • s3d_process_heights
    • You can even ‘group’ processes so as to link their similar parameters together, so changing one changes all others (see how this works here).  This is extremely powerful, and arguably one of the best parts of the software.  And when I need it, it’s great.  But honestly 95% of the time I don’t need it.
    • Not that it effects me so much, but it has pre-configured profiles for many printers, allowing a larger market-share to have success with the software sooner.
    • I should note that I’ve found no other slicer that treats “processes” as well as S3D.  This is a major selling point, and brings much power and convenience when needed.
  • Print options:
    • In its ‘Advanced Mode’, there’s a knob to tune just about every aspect of your print.
  • Post processing of gcode:
    • You can modify the output of the gcode via S3D’s own custom syntax.  You can see this post on an example of how to do it.
  • Printer communication & machine control panel
    • S3D has a robust “machine control panel” for operting your printer, issuing gcode, printing gcode either over USB, or via SD.  It also allows you to make your own macro’s that show up in the UI.
  • Manual supports:
    • An area where S3D really shines, is how easy it allows you to place and generate your own support material (vertical columns).
    • Even in ‘manual’ mode, you can place them ‘automatically’, then add/remove them as you need.  A nice feature is you can toggle on/off ‘from built platform only’, so you can generate automatic supports for everything touching the bed, the later add in manual supports as needed elsewhere.
    • Support removal has always been great.
  • Technical support:
    • Yes, they actually get back with you if you email them with a problem.
  • Active forums:
    • Linked above:  A very active community.
  • Gcode previewer:
    • Does a great job displaying gcode through a variety of filters (print speed, feature type, etc).
  • Slicing speed:
    • Fastest slicer I’ve ever used, 3DBenchy sliced in 1 second.
  • Print results:
    • There’s no question that once you get your settings tuned right, S3D produces great results.
  • Object transformation:
    • In addition to translation\rotation\scale of parts on the build platter (either via a manip, of numeric entry), you can also specify dimensions, and it will scale to match.  Handy.
  • Multi OS support:
    • I’ve used it on powerful PC’s, and pretty old Mac’s, and it’s never had a problem.

Things it does not do well

This list is the main reason I started looking for other slicer options.  The “Major Issues” are things that I personally feel really, really need to be addressed.

  • Thin wall detection:
    • Major issue“: If you have a wall that’s .5mm thick, but you’re printing with a .6mm nozzle (or extrusion width), S3D won’t print it.  This drives me (and many others) nuts, considering old slicers like Makerware handled this just fine.  Simply having the ability to ‘opt in’ would be great.  Since I print with large (.6 -> 1.2mm) volcano nozzles, it means many files are simply unprintable.
  • Automatic supports:
    • Major issue“: S3D does a great job with manual supports (that you place by hand, which can be accurate but time consuming), but it’s automatic supports (most commonly used) are some of the worst I’ve seen, because… it doesn’t support any type of stalactite (or icicle) like feature.  While the supports it creates are fantastic, and remove great (better than any other slicer I’ve used), when it fails to create them at all where it should ‘automatically’, that’s a major failure.   I have an ongoing thread here with plenty of pics showing this problem.  This is a straight up bug that other slicers don’t have any problem with.  In fact, Simplify3D, KISSlicer, (Update:) CraftWare and ideaMaker have this problem:  Cura, Makerware, Slic3r, and ReplicatorG all handle this just fine .  Here’s an informative pic with the problem.  Just imagine how this can make your prints fail, I’ve had many wreck because of it:
    • overhangCompare
  • Cost, no trial version:
    • That about says it all.  I’ve been told they’ll refund you if you don’t like it after you buy it.  But seriously, there should be a trial for software like this for new people
  • Timely updates
    • They have maybe one update a year… and since it’s closed source software, you have no idea when its going to be released, or what will be in it.  And the last update was pretty lackluster as far as major bugfixes (anything on this list) or improvements.
  • Listening to their community:
    • While they do have tech support (that does respond), they seem to be completely absent from the forum.  Which I personally find quite questionable, since it gives the impression they don’t care about their user base.   There can be a certain topic that has 5 pages of people voting it up, but you never hear if the developers know, or care.
  • Toolpath simplification of high res mesh:
    • Major issue“: This is another major gripe of mine I’ve talked with tech support about, and they seem to have no want to address:  If you pass in a very high-res mesh from zbrush (for example), that may have a much higher poly density that what can actually be printed, the software will do no sort of simplification on the tool path.  The result is that it still tries to print all the detail, and the fallout is your print having a surface quality of oatmeal.  I have example prints that show this off pretty well, as they transition from low-poly to highres mesh.  Their suggested fix is that you manually decimate all your models.  But this means any time I scale a model, I have to re-decimate it for that particular scale (and how do I know how much to decimate it?).  That’s horrible.  Considering other slicers, like ancient Makerware or Slic3r do this for you.\
    • UpdateThis post of mine talks about the problem more, but here are some pics showing it off.  If you enlarge the pic on the right the quality difference is pretty clear.
    • resCompare_s3d_web foot_web
  • Lumping printer settings, print settings, and filament settings into the same preset/Process.
    • Not the end of the world, but since all these things are saved together, it means I need to have… a lot of processes for every speed, resolution, and filament type combo.  Splitting these settings up (like Slic3r) would only make data management easier.
  • Process Storage:
    • Even though S3D does a great job with it’s ‘processes’, it took a step backwards with it’s v3 release:  Up until then, when you’d save a process, it would save on your hard drive, allowing for multiple people to easily share process values.  But with v3, all process are saved “internally” in the software, making it very hard to do any sort of distributed process sharing between employees.  Yes, you can export them out to your HD, but this creates an extra, unnecessary step.  The issue is discussed here.
    • Update:  In addition, if you ever ‘reset S3D to factory settings’, it will wipe all your custom process and firmware setups without warning.  Which would be a non-issue if theses were stored on disk.  I’ve been bit by this in the past, its painful.

Slic3r Prusa Edition

Version Tested: 1.33.8-prusa3d-win64

Unique things it does well

These are things I’ve found it to do, that other slicers may not.  Or it does better.

  • Splitting printer settings, print settings, and filament settings into different presets.
    • slic3r_printsettings_tabs
    • I love this feature.  I can mix and match printer settings, print settings, and filament settings as needed.  Cuts way down on the number of ‘profiles’ needed vs say, S3D.  Plus they’re all saved on disk, easily shareable.
  • Toolpath simplification of highres mesh:
    • You can specify a ‘minimum detail resolution’ that will help it print higres mesh better.  Great feature.
  • Thin wall detection
    • If two walls are close together, they can be collapsed into one, so as to not cause an overextrusion problem in that area.  In addition, within reason (and discussed below in more detail), it will print a collapsed single wall much thinner than your nozzle width, which is desirable.
  • Variable layer height
    • Powerful new feature allowing you to smoothly adjust the print resolution over height.  See an informative post here.
  • Unique infill:
    • In addition to what you’d expect out of a slicer (hexagona, triangluar, grid, etc) Slic3d has additionl types like cubic and 3d honeycomb.
  • Unique top layer infill:
    • Whoe doesn’t love a hilbert curve for their top layer, eh?
  • Notes
    • Simple, but handy:  There’s a notes page for your prefs, to jot down extra info.
  • Max volumetric speed:
    • A handy way, mainly when dealing with bigger volcano nozzles, to limit how much material you extrude.  Based on resarch, the common thought is a volcano heater can melt about 30 mm3/sec, so you can actually enter that in, to make sure you don’t try to extrude more material than you can actually melt.  Which I’ve done before, it’s not good.
  • Verbose cooling description:
    • A little thing, but they have a human-readable paragraph describing how your print cooling fan is going to work, based on the values you set.
  • gcode postprocessing via scripting language of your choice:
    • This is pretty great:  You can pass in code from any scripting language (Python, Perl, JavaScript, etc) to postprocess your gcode.  I found this valuable when I had to modify the gcode output to support my RepRap Firmwares, by writing a custom pos-tprocesser in Python.
  • Slicing speed:
    • Not as fast as S3D, but still pretty fast.  3dBenchy sliced in 4 seconds.
    • Update:  Based on the v1.34 release, which the release notes state moved to a parallelized slicing system, dropped the benchy to a 2 second slice time.  Nice!
  • Print options:
    • In its ‘Advanced Mode’, there’s a knob to tune just about every aspect of your print.
  • Update: Octoprint connection:
    • It can connect to, and upload gcode directly to Octoprint.
  • Update:  Run it from the command line.
    • Fully scriptable from the command-line, no window needed!  That’s great for custom toolchains.
  • Update: Object Modifiers
    • Object Modifiers allow you to use stl files to define volumes of your print for custom print settings.  This is similar to S3D’s ‘processes’, except you can use an stl to define a volume to define the custom settings, rather than just a layer height.
    • You can use your own stl files, or it provides primitives like box, cylinder, sphere, and slab.  With the later you only have to define a height, so it acts a lot like defining a S3D process height.
    • In this example, I have a helix for print, and two cubes defining volumes for custom print settings:
    • slic3r_modifiers

Things it does not do well

  • Printer communication
    • The Prusa edition has the option to connect directly to your printer over a serial/usb connection, but I’ve been unable to get it to work, up through version 1.34.1.24.  Just says my printer is ‘not detected’.
    • Vanilla Slic3r (1.29) doesn’t have this option at all.  It just means you need some other sender software like Printrun or Repetier Host (or, ironically, Simplify3D).
      • The 1.3 dev branch of vanilla Slic3r does have this ability, and I have tested it successfully.
  • Thin wall detection:
    • This is a pro above, but I also found it to be a con:  There were issues on my 3dBenchy tests (mainly the flag-pole hole on the stern) where it would collapse thin walls, but not replace them, causing gaps to form in the walls.  Disabling this option caused noticeable over-extrusion in some areas.
    • Update:  You can track this issue here.
  • Mac support:  It crashes a lot on my (old) mac.  No problem on my PC.
  • Update : Adjusting settings print settings per model:
    • Slic3r only lets you modify the ‘print settings’ per model, you can’t adjust printer or filament settings, which would help greatly.
  • Update : x3g support:
    • This only matters if you have a Makerbot printer (like myself), but while you can export a Makerbot-flavored gcode, you’ll still need some external tool (like gpx) to convert the gcode to x3G.  Technically since Slic3r supports postprocessing of gcode, it could call out to a x3g converter via a scripting language of your choice as well.
  • Update:  Saving/loading ‘scenes’:
    • It seems a bit awkward to save and load a ‘scene’.  To me, a ‘scene’ is  the current 3d mesh on the platter, plus all the current machine, print, and, printer configuration states.  You can do it, but (instead of the File menu) via “Platter -> Export Plate as AMF…” (Additive Manufacturing File Format).  you can later “Add” the xml file that process generates, which has the effect I’m after, it’s just a weird/clunky process.
    • Update:  I’ve read that per v1.34.1 it now supports a .prusa format that should handle this… but I can’t actually find that functionality in the software.
  • Update : Undo : Slic3r hands undo ok inside the print\printer\filament settings, but it doesn’t work on the platter:  I accidentally hit “Delete All”, and I was unable to get my data back :(

Comparing Simplify3D & Slic3r’s successes & failures

  • Print Quality
    • They both print great, in my opinion, see the below section with all the pretty pictures.  After setting up similar profiles in both slicers and printing 3dBenchies, the results look different, but great.
  • Overall level of print settings:
    • They both provide a similar level of knobs to twist for designing your print settings.  A wash.
  • Setting organization:
    • While Simplify 3D’s ‘processes’ are great, based on the fact that I use multiple ones so infrequently, I give Slic3r the win here, since it allows you to split you printer settings, print settings, and filament settings to separate presets, while Simply3D lumps them all into one.  Plus Slic3r’s are saved on disk, while S3D hides them inside the software.
  • Gcode previewer:
    • S3d’s better than slic3r for the fact it has more ways to preview the gcode.  However, both of them physically render the gcode about the same.
  • Gcode postprocessing:
    • Slic3r wins here, with it’s ability to use any scripting language.
  • Printer Communication:
    • S3D does a great job with its Machine Control panel.  Update:  Slic3r’s only seems to currently work in a dev branch.
  • Supports:
    • The supports that S3D actually creates (manual or automatic) are fantastic, but when it completely fails to ‘automatically’ support certain features that cause print failure, it’s just sad.  Slic3r’s supports are pretty standard, but don’t fail when they shouldn’t, so it gets a win for just being status-quo.  Both software could learn from the other.
  • Object Transformations:
    • S3D wins here, providing more tools that are easier to use.
  • Tech support & forums : S3D for the win, just a bigger community (or better communication platform) it seems.  It’s not that Slic3r doesn’t have that, S3D’s just seems more active.
  • Thin wall detection : Even though Slic3r has some problems, the fact that it recognizes them at all (compared to S3d) is a win.
  • Cost : You can’t beat free, Slic3r FTW.
  • Software Updates:  The Prusa Edition of Slic3r seems very actively developed… who knows when S3D will get another update, or what it will even have.
  • Highres mesh toolpath simplification:  Slic3r clearly wins here, realizing this is an important aspect of any highres model.
  • Setting storage:  Slic3r for the win here:  All if it’s printer, print, and filament settings are stored on desk in ini files, easily accessed by others, while S3D hides all the settings in the software itself.
  • Update: x3g support:  S3D wins, supporting it natively, with no extra steps needed for export.
  • Update : Slicing speed:  S3D wins, but with the latest Slic3r release I tested, the gap got a lot smaller.
  • Update : Scene saving/loading : S3D wins, it behaves like you’d expect any software too.  While you can do it in Slic3r, it’s just a bit clunkier.
  • Update : Overall experience:  S3D feels like a more polished piece of software, while Slic3r sill gives me that ‘shareware’ vibe from the 90’s.
  • Update: Setting customization per model / height:  This is a tossup:  S3D makes it easy to define processes by height, and you have full control to all print settings within.  Slic3r allows you to create robust Part Modifiers, but it takes a bit more time, and not all options are available within.
  • Update:  Command line api access:  Slic3r has it, S3D does not.
  • Update: Undo : S3D handles undo great, Slic3r is missing it in some areas.

Things I didn’t test

  • Supports : Since I did this entire test with the 3dBenchy, which requires no supports, I didn’t feel it was important to test them.  But I’ve used plenty of supports generated by S3D in the past, and they were always easily better than the older slicers I used like Makerware or ReplicatorG.  I’ve actually not ever printed supports in Slic3r, just looked at the gcode output.
  • Other slicers :  I was considering mixing ideaMaker, Craftware and Cura into this test… but I’d probably never have finished it.

3dPrint Comparison

I should be noted that all prints have had zero cleanup work done to them.  This is to show all possible flaws.

Print Stats

I did most of my testing with the 3dBenchy model, trying to make sure both slicers had similar values.  This is what I printed with:

  • 280 micron z layer heights (‘medium res’ for a nozzle this size, set to full z-stepper steps).
  • .6mm E3d-v6 volcano nozzle, extruding at .72mm.
  • 2 shells, 3 top and bottom layers.
  • Triangualr infill @ 30%.
  • MakerGeeks Urban Camo PLA extruded at 230 deg, with a .97 extrusion multiplier.
  • Printed at 60mm/sec with active filament cooling, and slowing layers down for details like the smoke stacks.
  • The gcode for both slicers were sent over USB, via S3D.

Printer issues:

  • It should be noted my bot has a slight z-wobble I’ve been working on addressing.
  • Even though I think I have it tuned in for that filament, I feel like my tests were slightly over-extruding.

Print time and weight:

  • Both slicers generated prints weighting 15g.
  • Both prints took exactly 41 minutes.

Visual Gcode Comparison

On the left is Simplify3D, on the right is Slic3r

s3d_bency_gcode slic3r_bency_gcode

You can note the nice on-screen legend that S3D provides, not to mention it has many other display modes.  With Slic3r, on the right is what you get.  Visually, they’re about the same aside from the colors used.

Poll Results

I know I’m biased about what I think are good/bad print results.  I though it would be interesting to see what others thought, that really have no experience with 3d printing.  I did a poll at work where I brought in benchies sliced in both software(shown in the pics below), put it in the kitchen, and over the course of the day let people vote on which they thought was ‘better’.

I had a total of 57 people vote, and by 2:1, they chose the Slic3r version over S3D.  I didn’t tell them anything about how they were made other than “I’m comparing two different prints, what do you think is better?”.  I should also note that a number of people abstained saying “I don’t see any difference”.

Do I feel Slic3r’s visual results outweigh S3D’s by 2:1?  Not at all.  But I still find the results interesting.  Take them for what you will.

Visual Print quality comparison

Click on images to expand.

Side By Side

Beauty shot, side by side, S3D on the left, Slic3r on the right:

s3d_slic3r_compare_web

Pretty darn close!  Slic3r has slightly more stringing, but at a glance they look like twins.

Individual Simplify3D & Slic3r closeups:

s3d_closeup_web slic3r_closeup_web

Thin wall comparison

Since the bencny wasn’t the best test for this, I down laded a “thin wall test” from Thingiverse, and ran them through both slicers.  I didn’t print these, but I didn’t need to:  The gcode preview tells enough.

FYI, the walls on the top start at .05mm (on the left), and end at 1.0mm (on the right).  The walls on the bottom start at 1.0mm (on the left) and end at 3.0mm (on the right).

Again, I generated this gcode with a .6mm nozzle, but with an extrusion width of .72mm (20% over).

Simplify3D

Did not do well at all.  It didn’t start printing until the wall with was greater than my extrusion width, so it left out all walls under .75mm.  Kind of hard to print anything architectural related at scale with this limitation.

s3d_thinWall_lines_web

Slic3r

Did great:  It was able to detect and deal with walls almost 1/3 the width of my nozzle, the first one being .25 mm wide.  Note, this was with “Detect thin walls” turned on in the settings.  With it turned off, it had the exact same results as S3D.

slic3r_thinWall_lines_web

Slic3r ‘Detect thin walls’ issues

Interesting findings:  As mentioned above, Slic3r allows for thing wall detection and collapse, S3D does not.  The above benchy pics of Slic3r have the “Detect thing walls” feature turned on.  But I figured out, it was collapsing more than it should, in the case of the flagpole : There’s a small hole in it, which is also shown in the gcode itself:

slic3r_thinwall2_web slic3r_flagpole_hole

Turning this feature off fixed the flagpole, but caused a slight over-extrusion in other places, like where the bow meets the sidewalls, visualized in this comparison:

slic3r_thingwall_compare_web

Note on the right benchy, the line running parallel to the bow, below it.  But also go look at the top/first pic of the S3D/Slic3r compare above:  You can see the same artifact in the S3D print as well.

The thin wall collapse does help give better definition to features though, compare the portholes in these to Slic3r prints:

slic3r_thinwall_compare2_web

Note how the porthole on the left has better definition.  It looks better than S3D’s as well.

In Conclusion

They’re both great pieces of software, and they both a have many features in my ‘pro’ sections.  But based on the cost involved, how Slic3r has matured, and how few cons Slic3r has in comparisons to S3D’s cons, I’d have a hard time recommending S3D off the bat to someone new to this:  Give the free software a shot.

For myself, I’m definitively going to give Slic3r Prusa Edition a look:  Considering how it addresses all my ‘major con’ issues with S3D (correct automatic supports, properly handles highres mesh, deals with thin edges), I’m going to invest some serious time in it.  I think sometime in the next few months S3D should have another release if they follow years past, I definitively look forward to that will bring.

Finally, I’d like to give some suggestions to the S3D dev’s if they ever end up reading this:

  • Regularly comment on the forums.
  • Expose upcoming features & bug-fixes that are in development:  If I knew all the problems I discussed above would be fixed in an upcoming release, I’d be far less likely to spend the hours I have looking at other slicers.
  • Release more than once a year.
  • Basically, stop being such a black box.
  • Charge a reoccurring fee rather than a single upfront lump-sum:  I’d happily pay, say 5$ a month for an ongoing subscription where the above issues were met.  The OctoPrint Patreon subscription model (that I contribute to on a montly basis) is a great example of this.

Customizing Oculus Medium

Over the holidays I picked up an HTC Vive, and the first thing I did was jump into Google Tiltbrush and Oculus Medium : Both awesome VR painting apps, both very different.  This post will collect my (ongling) notes on Medium.

First tests

Here’s a couple of kitbashed robots that took me about three hours.  So much fun!

kitbash_robo_1 kitbash_robo_2

Installation

To get Medium working on my Vive, I had to setup an Oculus account (+ purchase Medium) and install “Revive” : Both painless.

Documentation

Mapping the Oculus controllers to the Vive

At first I had a lot of trouble trying to figure out which Vive buttons mapped to the virtual Oculus controllers.  Couldn’t get anything to reliably work.  I finally read you just touch on the thumbpads where the corresponding Oculus buttons are, and it ‘just worked’.  Suddenly became usable.

Installing custom brushes

You can install your own custom brushes in Medium. Here are the rules (many pulled from the above FAQ):

  • Must be saved as .obj
  • Must be triangulated.
  • They need to be saved here:
    • C:\Users\USERNAME\Documents\Medium\_Import\Stamps
  • In Medium, open the Main Menu, navigate to the personal tab, and select Stamps. At the bottom of the window, you’ll see an import button.
  • They’ll then show up in the ‘Custom’ stamps section.
  • Should be as low-poly as possible.
  • Scale doesn’t appear to matter:  I made test with different sized models.  My guess is that Medium auto-scales them to fit some standard sphere that is used on the brush.

Medium’s coordinate system

I did some test by bringing in three different cones into Medium each build along a different axis.  I was able to then reverse-engineer the coordinate system relative to the sculpt tool.  You can use these notes when building your own brushes, to make sure they show up in Medium correctly.

I made a handy infographic:

mediumCoordSystem

X is towards you, Y is towards the controller, and Z is up.

This also means that when you create stamps that you want to project onto another surface, you should orient them so that their ‘up’ vector aligns with the +Z worldspace axis in your 3d software.  This will thus orient them properly onto the surface in medium.

Performance Issues

I’m running a GTX 1080 GPU, i5 CPU, 32 gigs of ram : The software will definitely stutter if I paint large items, or paint quickly.  If I paint one stamp at a time it doesn’t seem to be a problem.  Also seems to loose tracking far more often than other software:  I can watch the sculpt hand just ‘float away’ sometimes.

Modular Panel System & new garage shelving

Overview

I’ve had the idea for sometime to create a new shelving unit in our garage:  When we moved it we tossed some spare Ikea shelves against the wall.  Wasn’t the best use of space.

Rather than go looking for a pre-built solution, I figured this would be a great learning experience:  Make an entire shelving unit from scratch, including all the parts that join it together.  At first I thought I’d use my X-Carve CNC for this, but after much research and though, I instead decided to create a new 3d-printed modular corner bracket system to hold 3/4″ plywood sheets together.  While creating it, more 3d printed items were needed, so I decided to coin the whole operation the “Modular Panel System“, or MPS.  As of this authoring the system includes:

  • MPS – Corner Clamp
  • MPS – Shelf Support
  • MPS – Shim

This blog post describes the process I went through to create the MPS, how you can use them, and the shelving unit I designed to prototype it all with.

Disclamer

This is all common sense, but because lawyers:  I am not responsible in any way for any type of accident, damage, injury, death, or cost incurred from using this system:  By downloading from any source and / or making these files on any printer / fabrication system, you wave me from from any liability now or in the future.  Be smart, use at your own risk, test.

File Download

You can download all the above-mentioned MPS 3d printable files on Thingiverse HERE.

The End Results

Pretty pictures first:

shelf_closeup01_web

Closeup of Corner Clamps in action

final_shelf_web

The final shelving unit installed, using the MPS.

The 3d Printable Parts

All the 3d printable parts I printed on my C-bot.

Corner Clamps

The Corner Clamps are what hold two pieces of plywood together at 90 deg angles.  By using them in different configurations, you can create just about any rectangular-shaped structure.

Prototyping the Corner Clamps

I wanted an adjustable bracket to hold plywood together at 90 deg angles.  Since plywood can have varying width, I needed a solution that allowed for that slop.  I’d seen some interesting brackets at Maker Faire one year that did something similar, so I got to prototyping a system:  An outer L-shaped piece that could have an inner piece cinched against it, taking up any slack.  This was my initial prototype modeled in Autodesk Maya:

first_prototype

The idea is you put a nut in the outer L-shaped piece, and a screw through the end of the inner piece to hold it in place, and both sides press against the plywood.  Prototype was ‘strong like bull’ to humans, and my hope was the dense infill would provide the internal strength it needed, but I quickly broke it when torquing the held plywood.  However, it was still really strong, so I went about a redesign.

Stress testing, & Corner Clamp prototype 2

Based on where the cracks had formed in my prototype I redesigned it to use less material, but put what was there all in the right places.  From there I printed a number of them, assembled a small plywood box out of them, and started bouncing on top if it:

box_prototype box_prototype_closeup

With only one bracket per side (less that in the above shots), four of them could easily hold my bouncing 180lb frame.  I found this encouraging.

Corner Clamp Final Design

At this point, I realized I had purchased 1/2″ plywood for my above tests:  For my final shelving unit I wanted to use 3/4″ ply, to provide more strength.  Because of this I went through one more iteration, requiring me to enlarge the brackets significantly to handle the increased width of the plywood:

shelf_closeup01_web

Corner Clamp Dimensions

The below images show the overall dimensions of the parts in both inch and cm.  When I first started making them they had nice round numbers. But that very quickly went off the rails as design needs were encountered.

dimensions_cm dimensions_inch

And to help with design, when two corner clamps are holding plywood opposite one another, the gap is just about 2″:

shelf_closeup01_width

3d Printing the Corner Clamps

I print mainly in PLA:  I had used a couple different types during prototyping, and around that time I learned about MakerGeeks Raptor Series PLA : It’s supposed to be stronger than ‘normal pla’, and while I have no numbers to back up my findings, it does seem much stronger than ‘normal’ pla.  It’s more pliable, less brittle.  Based on that I bought 8 spools (enough I’d need to print the 100ish brackets, supports, and shims):

filament

And got to printing:

printint_brackets bunch_o_brackets

Corner Clamp 3d Print Settings

These are the settings I used to print them in Simplify 3D, based on the Raptor PLA using a .6mm nozzle.  If you’er using a .4mm nozzle you’ll need to compensate for the layer height and number of roof\floor\shells.

  • .6mm E3d-v6 volcano nozzle
  • 300 micron z-height
  • 90mm\sec
  • 230c extruder, 60c bed.
  • 6 floor, 6 roof, 0% infill.
  • Based on my nozzle diameter, 4 shells completely filled all the structures.
  • No raft, nor brim, no supports, did use a offset skirt.
  • Be sure to print them flat, not up on one end.  They’re designed to be printed flat, to provide maximum strength based on those layer lines.

They came to 68g for both pieces, and took about 70 min.  Which means I could print 14 per 1kg spool.  So, I’d do 7 at a time on my c-bot’s 12×12″ bed: One over night and one while I was work (monitored via OctoPrint), allowing me to print 14 (one spools worth) a day.

Other notes:

  • If during assembly you can’t get the washer or nut inserted, it’s likely your printer is over-extruding.  If it’s tuned properly, they should drop right into place with minimal to no pressure.

Corner Clamp Print Cost

I paid around 35$ per spool for the Raptor Series PLA.  For 68g of material, that works out to just about $2.40 per Corner Clamp for the raw materials.

Corner Clamp Initial Assembly

Tools required

You’ll need:

  • A philips head screwdriver.

You may want:

  • An electric drill with 1/4″ bit.

Hardware required

I purchased all of this at my local “Orchard Supply Hardware”.

Per Corner Clamp:

  • 1 Philips flat-head machine screw (or equivalent) :  1/4″-20 x 3″ – K
  • 1 Hex Nut : 1/4″-20 – K
  • 2 Flat Washers : 1/4″ – K

hardware_cornerclamp

Assembly Instructions

  • Insert a 1/4″ washer and 1/4″ hex nut into the L-shaped outer-clamp.  They should drop in easily.
    • If they’re too tight to fit, there’s a good chance your printer is over-extruding.
  • Insert a 3″ long 1/4″ machine screw screw through a 1/4″ washer, and insert that through the smaller inner-clamp.
    • If it’s too tight to easily slide through, you can easily enlarge the hole with a 1/4″ bit on an electric drill.  I used this method often…
    • Optionally you can simply thread the screw through the plastic.  This will give you more holding power (not sure if that is necessary though), but a lot more manual twisting.

assembly

  • Push the machine-screw through the larger bracket, into the nut, and continue to tighten until the tip of the screw just pokes through the nut.  That should give you ample space to later fit the plywood in both sides.

final_assembly

Shelf Supports

The Shelf Supports are used to hold up… shelves.  They are simply triangular supports that are placed under a flat piece of plywood, and screwed into the plywood being held by the Corner Clamps.

shelfsupport_side

3d Printing the Shelf Supports

These are the settings I used to print them in Simplify 3D, based on the Raptor PLA.  If you’er using a .4mm nozzle you’ll need to compensate for the layer height and number of roof\floor\shells.

  • .6mm E3d-v6 volcano nozzle
  • 450 micron z-height
  • 60mm\sec
  • 230c extruder, 60c bed.
  • 4 floor, 4 roof, 0% infill.
  • Based on my nozzle diameter, 4 shells completely filled all the structures.
  • No raft, no brim, did use an offset skirt.
  • Supports are needed:  Since these are printed flat, and not on end (to give them max strength), you’ll most likely need supports to hold one of the sides up, unless your printer is a monster at printing bridges.

Shelf Support Assembly

Tools Required

You’ll need:

  • Philips Screwdriver (magnetic head is handy).

You may want:

  • Electric drill with Philips bit (magnetic head is handy).

Hardware required

I purchased all of this at my local “Orchard Supply Hardware”.

Per Shelf Support:

  • 2 Philips Flat Head Wood Screw (or equivalent) : 10 x 3/4″ – K
  • 1 Flat Washer : 1/4″ – K

hardware_shelfsupport

Assembly Instructions

  • With the side that has the slot facing down, slide a 1/4″ washer up to the top of the support.
  • With a screw on your driver, thread it through the washer, and into the plastic slot just until it catches.
  • Just start the other screw into the other hold as well.  Note, not all supports need this screw:  I only usually have two per shelf.  They’re just there to keep the shelf from shifting one installed.
  • You can leave it in this state until final shelf assembly.

Here’s how it looks assembled in place.  Note, the screw I have in the top is not what I reference above.

shelfsupport_inside

Shims

Since plywood can have varied thickness, this can have an effect on the overall assembled shelving unit.  For Corner Clamps that hold vertical sections, I noticed they wouldn’t always touch the plwood under them, putting an unnecessary strain on their horizontal bits.  I designed these simple shims to be placed on top, or under a Corner Clamp, to help take up the slack, and help distribute the weight more evenly.

Here, you an see two shims in action, on place on top of a Corner Clamp, and the other underneath one:

shims

3d Printing the Shims

Just print them completely solid.  I made a bunch and used them liberally as needed.  You can make your own by taking what I provided and scaling it by any amount in your slicer software (presuming it has that ability)

Garage Shelf design

This section describes the shelf I designed that made use of all the above Modular Panel System pieces.

Digital Design

At the same time I was designing the Modular Panel System, I was also designing the shelf to prototype it on in my garage.  I used Autodesk Maya for this : Yes, there is probably much better software out there for this sort of thing, but I know Maya best, so it was the software of choice.

After measuring my space, I went about mockup up what I’d think the shelving unit would look like in 3d:

garage_shelving_mockup_02 garage_shelving_mockup_01

All the solid pieces are what will be assembled using the Corner Clamps, and all the gray-outline ones will be held with the Shelf Supports.

Plan Creation

After I (and the Mrs) was happy with the design, I did a manual space-fitting operation in Maya:  I laid all the panels down into shapes that match 4’x8′ pieces of plywood.  This both let me know how much plywood I had to buy, and how to make all my cuts.  Since the Mrs asked that all flat pieces were pained white on top, I also called out that in my plan:

plywood_layout_spacefit

This also led to some design changes:  I had some shelves that were just over 4′ long:  If I could make them fit 4′, then I could maximize my material.  Based on that, I deduced I needed 9 sheets of plywood.

Cutting & painting the plywood

I ended up getting 3/4″ sanded pine plywood.  Has a nice smooth pine veneer on both sides that required no sanding on my part.  9 sheets @ $30 a sheet = $450 in plywood.

Based on my above plans, I’d measure out each cut, and get to it with my circular saw:

cutting_in_progress

4+ hours later, I had this pile:

all_cuts

Which the boy and I spent a couple hours sanding all the cut sides on.  Whew…

From there, all the horizontal parts got laid out on plastic in my yard, and I rolled on the paint:

painting

A few days later the paint had dried, and final assembly could ensue…

Garage Shelf Assembly

It took a whole weekend to just get rid of all the existing stuff on that wall of the garage.  So the next weekend, with the occasional help of my wife and son, the new shelf was assembled.  Guessing it took around 6 hours, which included extra fabrication like cutting holes for electrical plugs, and other gotchas.  But for the most part it wen off without a hitch.  To do something this size, and extra pair of hands is really handy.  BTW, 3/4″ plywood is… heavy.

Special note : Before assembly, I used my stud-finder to figure out where on the wall the studs were:  On the large, back-pieces of plywood facing your, I used 3″ wood-screws to anchor them directly into the studs post-assembly.  I’m in California, earthquake territory.

final_shelf_web

Installing Corner Clamps

This was the method I used:

  • It will vary based on what section of the shelf you’re assembling,but the general process goes:
  • Make sure the machine-screw is loose enough so you can get plywood on either side of the clamp.  Or, if you’re attaching a clamp to an already assembled section, you can completely unscrew it, put the pieces on either side of the corner, and then re-thread the screw.
  • I use a screwdriver to tighten it up:  I watch the plywood on either side “suck” up into position.  While tightening, I make sure the plywood is pressed up flush against the middle of the bracket, so there’s no gaps exposed.
  • On a large section with many Corner Clamps, I’ll leave them all slightly loose until all are in place, square up the section, then tighten each one.
  • Don’t forget to add shims in where needed, before you tighten everything up, and before you put a load on the shelf.

How many Corner Clamps to use per section?

For the above shelving unit, I used two Corner Clamps to hold each side of each section.  For example, for the middle desk table by the chair, it had two clamps on the left, two on the right, but based on it’s length, three on the back.  It’s all based on the sizeof the shelf, an the load it will be holding.  If in doubt, add more.  You can always safely add more.

How tight should I make the Corner Clamp?

Tight enough, but not too tight? :)  I never actually broke one from tightening, but very quickly I got a feel for how tight I thought it should be.  If you hear it start to crack either you’ve tightened way to much, or you have a bad print.

Installing Shelf Supports

This was the method I used:

  • I first marked where the top of each Shelf Support should be.
  • With the screw just barely poking out the back, I held the Shelf Support in-place on the wall, and used my screwgun to tighten it up.

How many Shelf Supports should I use per shelf?

For the above shelving unit, I used two on either side of each shelf, and 2-3 on the back based on their length.  Again, it’s entirely based on what they’ll be holding.  If you’re going to fill them with books I may place one ever 6″.

How tight should I make the Shelf Support?

For the screw that goes into the wall, through the washer, I cinch it up with my drill until I can no longer twist the bracket back and forth.  For the screw that goes up into the piece of wood above it, this can be left nearly loose:  I tighten until the screw head his the plastic and I stop.  If you over-tighten that one, you can split the bracket.  And it doesn’t need to be tight to do its job.

Total Shelf Cost

Rough figures:

  • 9 Sheets of plywood at $30 a sheet: $270.
  • 8 rolls of filament at $35 a roll: $280.  Used nearly all of it, but that’s also counting print failures that happened as well.
  • Various nuts, bolts, washers: $30 (estimate)
  • Can of paint: $15.

Total:  Just under $600.

Final Thoughts

Was a great experience.  Was a lot of work.  Was hopefully cheaper than buying Ikea shelving :)

As of this blog post the shelving has been installed for three weeks, fully loaded with stuff, and nothing yet has broken.  It’s my hope you can uses these files, tools, and ideas to aid in your own creativity.  And  always, be safe!

New 3D Print: Maui

I’ve 3d printed a few other maps, and got a lot of enjoyment out of it:

I recently spent a week in Maui:  This gave me inspiration to do a (painted) 3d print of it on my C-Bot:

maui_painted_main

The below post is an overview of how I designed, printed, and painted it.


Getting the Mesh Data

I first headed to the web app Terrain2STL : This is the great little program that lets you download 3d-printable terrain data.

However, no matter what you set the capture-box size to, it captures the same resolution of data.  If you make the box the size of the whole island of Maui, you end up with a pretty low-resolution capture mesh, based on the detail I want to 3d print.  So the only way to get a ‘high-res’ Maui mesh is to download many small chunks, that will later be seamed together to build a high-res island.

In Terrain2STL, I set the box size (ARC seconds) to 360.  Based on that size, I can adjust the latitude & longitude values by .1 values, to offset the box by one length in either direction.  So stating at the NW corner of Maui, I started capturing squares of it’s mesh.  In total, I made 30 captures.

Assembling the Mesh Data

In Autodesk Maya, I created a new scene, and started importing in each STL that Terrain2STL generated.  Starting in the NW corner, I’d import in the next stl, line it up with the last, and repeat that process.  Which gave me something that looked like this upon completion:

maui_maya_chunks_raw

I then went through the process of deleting all the mesh that wasn’t part of the island, stretching all the edges down to make a cliff-like effect, making a base for it, and creating the text.  I also did a lot of mesh cleanup since the Terrain2STL tool isn’t perfect.  Final Maya result:

maui_maya_final

tried to boolean all the mesh together, but Maya just wouldn’t do it.  This left me frustrated, but I realized that Simplify3D (the slicer I use) allows you to import in multiple mesh:  In Maya, I made sure the pivots of all the mesh were at the origin (so they’d all show up in Simplify3D in the correct location), the transformations frozen, and I exported every individual piece as a new STL.

Slicing The Data

I imported all the stl’s into Simplify3D:  They appeared to all line up correctly.  I wanted the island to be scaled 2x on the Z axis, so I grouped all that mesh, and applied the scale transformation.

But when I sliced it, I noticed lots of little gaps between the mesh chunks:

maui_sliced

Come to find out, even though all the mesh was lined up correctly, in some cases… it just wasn’t enough for Simplify3D : This spawned a painful process of me moving pieces, re-slicing, checking gaps, etc.  But eventually I got rid of them all.  The general prints stats were:

  • 200 micron, .4mm E3D-v6 Volcano nozzle
  • Maker Geeks Gray’matter Gray PLA @ @210 deg.  Bed @ 50 deg.
  • 90 mm\sec print speed.
  • 2 shells, 4 roof\floor. 10% ‘fast hexagonal’ infill.

Took around 13 hours to complete.  Based on my 12″x12″ build platform, printed diagonally it came out to 14″ across:

maui_noPaint

Painting the model

I wanted to try a new (for me) dry-brush technique to show off the mountains.

To start, I shot the whole model in a pleasing Rust-Oleum ‘Meadow Green’ color:

maui_midPaint

After that dried, I sprayed “Maui Blue” (can’t believe I found a color that matches the medium I’m painting) onto a foam brush, and painted up the ocean.  Finally, I sprayed a light-brown onto a paper towel, and then brushed it across the mountain peaks for the final result.

maui_painted_NW maui_painted_SW

Was really pleased with the results!