Around February 2019 I bootstrapped a scripted CAD environment named “ScriptCAD”, and resembles closely to OpenSCAD.org and OpenJSCAD.org (which I co-developed for a couple of years) with a new take, developed from scratch:
Scripting capability using JavaScript
Separate internal representation from display representation
Triangulation or Implicit representation
only triangulate at late stage at display or export
Intuitive Graphical User Interface (GUI)
Simple export various formats
Select top-level solids
Source <-> TreeView <-> 3D Model selection
The transparent Source vs Object Tree vs 3D Space has been in the back of my mind for a long time as I keep the connection of each stage intact and transparent.
Ease of use
hiding JS module complexity and notions
Browser use (either use built-in editor or drag-n-drop source with autoreload)
Command Line Interface (CLI) use
Screenshots & Examples
SpiritCAD.org Online as Preview
As of November 2019, ScriptCAD.org is reachable as an early preview (alpha stage), most examples work, some do not yet or display wrong output.
Note: there is only limited documentation yet (2019/11), and the API is subject of changes.
I still tune it to my use-cases and therefore API and overall design of the API might change, even drastically; once the API becomes more stable I will release the source code as well.
Some of use-cases (as seen in the gallery above):
coding low-level Gcode and use ScriptCAD to preview (render) Gcode including colors, scriptcad (CLI) outputs .gcode to actually print
testing single layer color mixed 3D Printing: forms, color mixing
ScriptCAD uses ThreeCSG/csg.js at its core to perform CSG operations, which can be very slow – hence, designing complex pieces can be slow as every change recomputes all again (I like to avoid this in future developments) yet as of 0.3.2 basic caching is implemented so only deltas are recomputed.
A few worthwhile videos done by 3DMN (3D Maker Noob), Vector 3D (Adam) and others at Formnext 2019. I will update this post as more interesting videos become available.
2019/12/11: added 3DMN Trilab DeltiQ 2 video
2019/12/02: added Joel’s (3D Printing Nerd) Formnext 2019 video
bowden style, optionally direct drive style setup (Trilab FlexPrint)
price: 2600 EUR (minimal configuration)
Vector 3D: Continuous Carbon Fibre by Anisoprint
Anisoprint mixes Nylon, PC, PLA, TPU and PETG with carbon fibres (CCF) in their continueous 3D printing procedure.
Vector 3D: Dyze Design & Craftbot
Dyze Design: High volume printing from pellets with 1-5mm large nozzles. Craftbot: Briefly discusses “Craftbot Flow Generation” 3D printer series, not very informative (sales talk).
igus: more infomercial, yet informative: wear resistant filament / prints (e.g. gears) with their own polymer mixture called “iglidur”, optionally also food save.
I decided to visit Formnext 2019 in Frankfurt (Germany) November 20, 2019. And to give you the essence first, it was too much – 800 exhibitors in two larges halls each with 2 floors – one day is not enough, and others told me, not even two days is enough to have time to absorb what has been shown at this exhibition.
Metal Printing: one of the huge topics of Formnext 2019 was . . . metal printing aka “no more plastic”, it seemed like the motto for 2019, in the corporate sense of it.
Tritone
Ecoparts samples
Ecoparts sample
High precision custom cooling nozzles (sprays 50cm far on CNC machined piece)
Sharebots samples
The printers were huge, car or even tractor sized 3D printers.
Tritone
Ansys
The kind of faceless corporate world:
GE Additive
Markforged
DMG Mori
Protiq
Trumpf
Fraunhofer
Materialise
Stratasys
HP
Aconity3D
Zeiss
Renishaw
Ultimaker booth
Ultimaker: So I spotted Ultimaker booth, and asked for “Daid”, nobody seemed to know, but “David” was known (as author and driving force of Cura) but not there, as he left the company 2 months ago I was told – either way, I spoke with Roger Bergs and expressed my gratitude for Cura being Open Source and he replied: “you know, we come from there, it’s part of our company culture” . . . nice to see such a commitment to the Open Source, especially compared to the next:
MakerBot: . . . and to my surprise, there was a mid-sized booth of MakerBot, the owner of the struggling Thingiverse, on the brink of collapse. After some brief delay, I was able to talk to Jason Chan, responsible for Thingiverse who was on site, and we had a brief talk:
MakerBot booth
I acknowledged the role MakerBot played in early days of 3D printer development in contrast to the later abandonment of the Open Source principle with the acquisation by Stratasys . . .
I pointed out how important Thingiverse was and still is for existing projects, which still reference the STL files on Thingiverse and if it were to disappear it would be devastating and break many projects out there (not all migrated to github or other 3D model repos)
further I expressed my experience about other the 3D model repositories being functionally inferior compared to Thingiverse
Thingiverse was unbearable slow and unreliable – Jason acknowledged and confirmed my concerns of the current functionality of the site
Jason responded as following:
only 2 web developers are assigned to Thingiverse maintenance as of 2019/11
there is a backlog or debt of problems unaddressed for the years and MakerBot is aware of it (to the public it seemed nobody cares at MakerBot)
Thingiverse is costly running it, and provides no (significant) income
there are commitments within MakerBot to reboot Thingiverse and fix all the backend issues and resolve the “slowness” of the site (that has been said before, nothing happened – just check @makerbot Twitter account)
development of a financially sustainable foundation for Thingiverse, means, to create income – how this is planned he didn’t wanted to reveal in more details
MakerBot kind of was surprised of the immense success of Thingiverse of the past years
Josef Prusa: While visiting Hall 11, I came across Josef Prusa walking alone, and I just briefly shared my admiration for his success by combining Open Source and business to a self-sustaining model. I later visited the Prusa Research booth, and it was packed with visitors and and catched this short video showing Prusa Mini in action:
BuildTak: Just a brief talk with Igor Gomes, about their new products and shared a bit of my stuff as laid out on this web-site.
BuildTak booth
Few samples
Creality booth
Creality: . . . and there it was, a tiny small booth of Creality – 4 or 5 shy representatives sitting there, and I walked toward them and greeted them in english, and a smile rushed unto their faces (to my surprise), and I expressed my thankfulness of their move to Open Source the Ender 3 entirely, that this move or gesture really was acknowledged in the Open Hardware and 3D printing community in the “West”. In a way it was bizarre, there was this small booth, while in reality, this company had more impact than perhaps the rest of the exhibitors of the entire hall – nobody else ships as many 3D printers as this company as of 2019.
Misc Small Chinese Exhibitors:
Dobot
Weistek
eSun
Too little time to explore their products in more depth.
E3D Online: Just briefly glanced at their booth, as I watched already videos online of their tool changer, and I was already significantly exhausted.
E3D Online: Tool changing with metalbrush to clean the changing toolhead
They scanned the stones and computed the junction pieces
Timeless beauty
Computational beauty
CellCore: organic internal structures for pieces used in F1 racing cars
Proper colors (Pantone)
1m diameter printed drone hanging on the wall
Anyway, after 7 hours I was exhausted from all the impressions – it was too much of visual stimulis and constant noise – and I left the exhibition and headed back to Switzerland by train again, and arrive at midnight finally – it was worth my time.
The past year (2018/2019) I printed with my own designed 3D Printers with various printheads and required for each variant a dedicated Part Cooler, and I realized it was worth the time to approach this in a parametric manner using OpenSCAD, using the “bull horn” design and so I came up with a general approach, and as a result was able to create various variants for my use-cases:
E3D Volcano (1 nozzle, 1 heatsink, large nozzle diameter)
E3D V6 Lite (1 nozzle, 1 heatsink, small / medium nozzle diameter)
a few other specialized setups
Dual Micro Swiss
Dual E3D V6 Lite
Triple Micro Swiss
Single E3D V6 Lite
Needless to say, the proven design allowed me to quickly design and print a new variant, and have expected results when using the part cooler – which is a huge time saver.
Yet, one drawback is obvious: in order to adapt a new variant, one requires the surrounding parts like heat sink and nozzle as a model or design it yourself (which can be time consuming as well) so the proper variables can be found to render the part cooler for the setup.
After I designed my 3D Printers also in parametric manner, like the Ashtar K (Prusa i3-like) 380x300x300mm build volume or Ashtar C (Core XY) 380x400x380mm build volume, using this parametric approach for a Part Cooler as well, turned out quite successful too.
It makes sense to develop and design a parametric piece which
maintains a few constraints, a general form, a base functionality
requires a few variables to adapt certain customization, sometimes it makes sense to introduce a lot of variables, and while testing and adapting customized pieces, some variables may become constants and unforeseen variables become more important
It certainly requires expertise about the piece in order to discern the constraints from the variable aspects while still maintaining its base functionality.
Assemble 3 nozzles in one go, and adding heatsink fan mount:
adding 50mm fan on top:
and with the dedicated Part Cooler using 5015 fan blower:
I recommend cover all nozzles with silicon socks when using the part cooler. Optionally LED strip mount in case you want some light on all three nozzles.
Leveling Three Nozzles
It’s essential that all three nozzles have the same distance to the bed, otherwise inactive nozzles might touch and tip-over a piece while printing. See Dual Nozzle Setup for the procedure.
Third Hotend Wiring
One requires a board with 3x MOSFETs to heat all three heatblocks and 3x thermistors inputs, like RUMBA or TANGO (Open Source variant of RUMBA) controller board or extend it with dedicated parts:
per heater: STP55NF06L (MOSFET) with 10R, 100K on a Dx (digital output); LED with 1.8K is optional
per thermistor: 4.7K with 10uF on a Ax (analog input)
You can define X offset via Gcode (e.g. as start gcode):
M218 T0 X0
M218 T1 X24 Y0
given T0/Extruder 1 is left, and T1/Extruder 2 is on the right.
Since “CR10 hotends” are really cheap and not precisely machined, there is too much margin in the mounting 3mm holes – hence, you likely have more or less of 24mm X offset, and possible even Y offset as well. Use a 2-color calibration model to tune the offsets.
in theory no purge block, but if ooze shields are shared among switching extrusions (more than 2 extrusions) there may be cross-contamination between colors/materials
the printheads individually are proven to be reliable
Hints:
single heatblock = same print temperature
dual heatblock = different print temperatures possible
The past weeks (2019/09) I adapted existing Part Cooler designs, and redesigned them in order to work with the Diamond Hotend, as I have been searching for a good part cooler option and did not succeed with what’s out there already.
So here my 3 designs so far with a short review of their use quality:
Dual (or Single) Short Fan Shrouds
At the first sight this looks a promising design, but in reality there were major drawbacks:
adjustment of height (vertical) was critical and required fine-tuning
tendency to cool down the nozzle instead of the molten filament, in particular at lower layers near the bed
As next I designed the ring cooler, with small holes around the nozzle, also adjustable in the height (Z), but the cooling wasn’t really sufficient, as the nozzle still was cooling off a lot (no more than 45% cooling fan with 5015 blower was possible) – quite a disappointment for the rather sophisticated setup, but this general “ring cooler” design has failed for me also for other printheads like E3D V6 or so, and I switched back to “bull horn” like fan shroud.
This rather simple design turned out the best option so far:
wide: 5015 blower runs at 80% without cooling the nozzle too much
narrow: 5015 blower runs at 50% without cooling the nozzle too much
creates sufficient disturbance around the nozzle to cool opposite side as well
and the XYZ 20mm Hollow Calibration Cubes came out quite well, on all 4 sides the letters were printed OK – not as good as E3D V6 and other printheads.
Although it seemed logical to use two direct cooler, but the amount of air around the nozzle in operation was too much, and it required 20% fan cooling so the nozzle was still properly heated, but this was too low to provide any sufficient part cooling. So this option, without silicon sock on the Diamond Hotend, is not suitable.
Rating: ★★★★★
Summary
The winner is the Directional Part Cooler as it brings the cool air close enough where the molten filament exits the nozzle, without affecting the bare nozzle too much. As mentioned, either way a silicon sock would be recommended when using a part cooler with the Diamond Hotend – so far (2019/09) there is no commercial source but DIY approach with this thing.
As you can see I used simple E3D V6 Fan mount in combination of LED Strip holder to lighten up the tip of the nozzle and the printing operation.
Even though the air output is close to the nozzle tip, you might reduce the fan
-narrow: use ~50% fan cooling, position as low to the nozzle height as possible (e.g. 2mm above, not less, not more)
-wide: use ~80% fan cooling: more tolerant on vertical position / height
to avoid cooling the nozzle and run into “THERMAL RUNAWAY” error – or you use a Diamond Hotend silicon sock, then you likely are able to use 100% cooling fan.
XYZ Hollow Calibration Cube with 3 Colors Mixed
The actual success of this setup is seen in this test cube (printable with 0% infill):
The “X” and “Y” junctions are quite well printed, not as good with a “bull horn” part cooler as with E3D V6 setup.
Addendum: Dual Directional Cooler
Although this looks like a nice setup, the overall output of air to the nozzle is overpowering and cools off the nozzle too much. The cooling fan, in my case, required reduction to 20% to avoid “THERMAL RUNAWAY ERROR”, but at 20% the cooling effect on the extruded filament was less optional than with a single directional cooler – therefore this option isn’t recommended, unless you have a silicon sock over the nozzle.
Best print ring_part_cooler in white PLA, as it obstructs the nozzle quite a lot and if you use LED strip to lighten up the nozzle, white PLA might help to keep the brightness.
Pros:
adjust vertical distance of ring to bed/nozzle
Cons:
vertical position only adjustable when 5015 blower is deattached