Why do 3D printer makers all create their own software instead of Blender add-ons?

It seems like they go through a lot more work writing proprietary software from scratch - usually software that doesn’t work on all major OSes, when it all does the same stuff - import an .stl, scale/rotate/position it on the platform, and generate support structure / printer code.

As far as I can tell, that can all be done as a Blender add-on and they would reach a broader audience.

Thoughts?

I am currently working on such an addon as some kind of inhouse solution for our non-profit organization (Health care organization for autistic people). Maybe i can release it at some point in the future. it currently supports printing directly to all makerbot-style printers (S3G/X3G).
I’m planning to add support for Reprap-style printers (GCode), as soon as i have built one.

It currently has the following features:

Automatically Setup a scene with a virtual Built-platform
Place and scale the Objects to be printed
Slice the Objects
Display the sliced objects color-coded for the speed of each layer
Simple Parameter mode (only material, layer-height and speed have to be set)
Advanced parameter mode (currently about 20 parameters can be set)
diectly print to the selected printer (currently only makerbot style printers)
Dual Extrusion (currently only for support-material)

Currently it is just an inhouse solution, so i have to iron out a lot of wrinkles before it can be released.
There are still a lot of bugs that have to be fixed. It is implemented like a Renderer in Blender. So you can select it in the drop-down menu, just like you would select Cycles or BI.
But instead of rendering the Scene to the screen you are “rendering” to the printer :wink:

Update:
Added a screenshot of the (almost) current state of the addon, so you can get a first impression


This is great, I look forward to your release! I haven’t done any 3d printing yet but am extremely interested, just a bit intimidated by all the steps involved… this would be extremely helpful.

On a related subject it would be fantastic if it was possible to choose from the splash screen of Blender what type of workflow you’re doing (e.g. general [if none other selected… starts as normal], compositing, 3d printing, motion tracking etc.)

This would not remove functionality but simply present only the tools required to make it less cluttered… something along the lines of the Blender 123 project. It could work similar to workspaces and at any time you could restore the full layout, I think it could make Blender alot more accessible to different groups.

Well the reason might be, that 3D printers also work on micro controllers, like the Arduino(Mega), beagle black, or mini Pc’s like Rasberi Pi
Not all platforms can run Blender, those that cannt only have support for STL usually, but if you ask me; yup if possible it would be smarter to support (extending) blender and get a mega 3D tool besides their hardware product. For them its mostly STL, plus a few tricks, but all the other modeling tools they dont have to re-invent then.

BTW Linny, need idea to render to a printer, using a different render menu engine for it.
I dont know if you talk STL to it, or directly interface ‘arduino’ to the stepper motors.
Maybe as i wrote above it would be handy to be able to do both.
So if one is able to quickly create the STL and the printer has a disk / Cfast or so.
Blender can allready do STL, so i assume your a developer improving it.

@Razorblade:
You are right. The Addon exports an STL file that is than fed into the really awesome Open Source CuraEngine, which does the actual slicing. CuraEngines output is then imported back into Blender by the addons own GCode Interpreter.
I chose CuraEngine, because it is an incredibly fast slicer that produces really nice results.
There are currently some problems in CuraEngine with Dual-Extrusion (Overextrusion after switching the toolhead), but my GCode Interpreter fixes that during re-import. I had a quick look at CuraEngines Source and i was able to roughly locate the bug, but i’m not familiar enough with Cura’s codebase to fix it without risking to break other things. That’s why i chose to work around this bug during reimport.

control over the pattens and copywrites. if they come up with an optamization, even something simple, they want to keep it off the competitors machines. neatdesk is an auto scanner organizer. the trick is all in the software so they wont let it work with any except their own scanners. if it wasn’t propritary you could use it with any scanner rather than their expensive ones.

why wouldn’t they use free for what they want to make money with? because someone will build a cheaper machine eventually that would work as good with blender and they would have to cut their price/profits to match the other product while the other company uses their software for free. like regular printers there will probably be a model with a big up front cost and cheap refills, and another company that has a cheap machine with expensive refills the consumer locks themselves into, the refills subsidize the loss on the printer. they dont want the cheap machine to be able to get the cheap refils or neither company will make money, nobody will by the parts that make the money for the company. if you make something for profit you want it to be broken if you dont get your profit. you want them to have to keep buying your supplies/services not the competitors. you want them locked in as much as you can.

generate support structure / printer code.

This part is machine/FW-specific and also the hardest and most complex part AFAIK. So once you get that far you might as well write the rest, I guess.

Ehm have you talked to the developers, of CuraEngine, if you can point the bug, maybe with some teaming on their site its fixable; i was just thinking as Blender has so many graphical functions, …wouldnt it be possible for blender to do slicer work too (a simple boolean operation);
; then only gcode generation is required. (although standard, i wonder of repap’s have an exhange format for gcode too. … i still got to dive into our companies leapfrog printing-machine, some day when i have the time for it :wink:

@Linny
What you are doing is SO cool!
I really hope you do release this to the community once you feel it’s developed enough.

@Razorblade

Not all platforms can run Blender, those that cannt only have support for STL usually

True, but Blender runs on more platforms than any 3D printer’s software I know of.

Ehm have you talked to the developers, of CuraEngine, if you can point the bug, maybe with some teaming on their site its fixable

Agreed. Worth a try.

@rdo3

control over the pattens and copywrites. if they come up with an optamization, even something simple, they want to keep it off the competitors machines.

If it’s really about that then they could make their add-on closed source (partially or entirely). It would be specific to their hardware anyway.

@Kemmler

This part is machine/FW-specific and also the hardest and most complex part AFAIK. So once you get that far you might as well write the rest, I guess.

Except that often they only write for one or maybe two OSes.

@Linny (again)
Thanks for sharing, this is really exciting to see!

When a 2D (paper) printer ships, the manufacturer doesn’t reinvent the word processor, they write a driver. I’m looking forward to a day when 3D printing is less proprietary and more standardized on the software side. Since Blender is available to all, add-ons for it seem like a good place to start.

@Razorblade:
Haven’t talked to the devs yet. But i will. Currently i hardly have any time left. I just moved to a new home and i have lots of other work in our health-care organization to do. But as soon as i pick up the development of the addon again, i will contact them.

Regarding the slicing:
The slicing itself wouldn’t be a problem in Blender. That could be done with booleans as you mentioned. But this is only half of the story. If you are using a printer with a dlp-beamer and a photopolymer, than that’s almost all there needs to be done.
But with an FDM-Printer you have to figure out the actual toolpath and thats another story. Here you are facing a classic travelling-salesman problem, which is really hard to solve, besides things as fill-patterns, slowdowns for cooling and such.
CuraEngine for example makes a lot of assumptions to be that fast. Skeinforge on the other hand is more precise but it sometimes need hours to slice a model while CuraEngine solves the same model in a couple of seconds.

either I am overlooking something or everybody else is: (guess which is more likely :slight_smile:
Not everybody uses Blender, as hard as that is to believe :smiley:
If I was a printer maker, which would I choose to base my software on: software that runs on most platforms but is only used by a subset of the world, or my own software that targets the major OSs and will read a standard file format that virtually every modeler can export? With me there is no contest (the latter). Unless it turns out that 90% of .stl files are generated with Blender, but that doesn’t seem likely.

That being said, I would love to be able to print directly from Blender (if I ever get my dang printer to work at all, it’s my first)

The question should be why do 3D printer makers make 3D printers cost so much

@LordOdin
3D printer+cost=hardware |= software = Blender<- this forum

Because anything with high quality parts and tight tolerances and no real massive production scale is going to be expensive?

There is tough one thing, i just made something for a 3D printer.
And using blender is not ideal for creating real stuf.
I mean it has to be 43mm width, 56 mm heigth 1 cm above the plane center there has to be a hole of 6mm
The hole has to be on angle equal to the panel X, and the hole should have roundered corners.
Paralel to the hole, on 8mm distance 3 more holes need to be made; and together those 3 holes are on 120 degrees.

Well i just made a model, and blender isnt realy ideal for fixed measured stuff, the mouse cursor isnt ideal for it.
So besides my other arguments here, which are actualy pro blender, i can imagine this is a negative for using blender.
There is an addon that can give you measurements… but well blender is not targeted in its UI to handle measurements like sketchit pro can or autocad. Eventually since we master Blender we can get to the same results…

BTW it has not much to do with machine driving language that’s a pretty common standard.
BTW the cheapest printer i found today was new 340 Euro, a bit raw printer, but prices drop fast.
By the time the get good high detail we - blender users - are ready for it,
we Blender people could become the new designers, for the next industrial revolution :slight_smile: