How do I slice half C60 fullerene exported from OpenSCAD as STL?
 
Notifications
Clear all

How do I slice half C60 fullerene exported from OpenSCAD as STL?  

  RSS
HermannSW
(@hermannsw)
Estimable Member
How do I slice half C60 fullerene exported from OpenSCAD as STL?

I am working on a graph library that allows for convex face planar embedding straight line drawings:
https://hermann-sw.github.io/planar_graph_playground/

Since quite some time I am trying to make that algorithm determine coordinates on sphere surface.
Instead of fixating positions of vertices on (convex) outer face and then compute remaining vertices coordinates by solving two systems of linear equations, for sphere I fixate vertex positions on 6 edges of a tetrahedron subgraph and compute spherical coordinates of the remaining vertices:
https://forums.raspberrypi.com/viewtopic.php?p=2022401#p2022401

Currently it is only half of C60 fullerene vertices not on tetrahedron shortest paths and those paths.
I decided to try to 3Dprint this, and rendered the OpenSCAD model created by my algorithm (without inner transparent sphere):

Then I exported that as STL file.

Next I imported successfully into (Raspberry Pi 64bit OS) PrusaSlicer-version_2.4.1-aarch64.AppImage:

 

Slicing did not work, so I selected brim and 100% infill, but it still does not work.
All the edges are missing, only vertices remain and empty layer warning results:

How can I make PrusaSlicer slice x.stl?
Or what is wrong with the generated STL file?
https://stamm-wilbrandt.de/en/forum/x.scad
https://stamm-wilbrandt.de/en/forum/x.stl

Posted : 22/07/2022 4:55 pm
Neophyl
(@neophyl)
Illustrious Member
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

The connecting sections are too thin to print at your nozzle size is the most likely reason.  Either scale up the model or use a smaller nozzle.

You would have to include a zipped up project file to be certain as we would need your settings as well as the model to be certain but to me its obvious just from your pictures.

Posted : 22/07/2022 5:06 pm
fuchsr
(@fuchsr)
Famed Member
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

As Neophyl said, the edges are way too thin to print. Also, in the second picture it looks like there's at least one vertex without a connection to others, so there may be other things (like mesh errors) going on. 

Posted : 22/07/2022 6:23 pm
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE:

Thanks to both of you, yes (great circle arc) edges were too thin.

I scaled to 300%, and rendering was good, but MINI+ print was not.
Then I scaled to 500% and aborted print after some minutes (100%, 0.05mm).

Posted by: @fuchsr

Also, in the second picture it looks like there's at least one vertex without a connection to others, so there may be other things (like mesh errors) going on. 

Yes, I will fix that problem first.

Currently my algorithm cannot compute all non-tetrahedron shortest path vertices together.
So I mapped all vertices not considered yet to spherical coordinate (0, Math.PI/2).
That way I could solve system of n linear equations for n vertex graph.

I will fix the algorithm first in order to completely position all vertices and edges, then come back to 3Dprinting.

Posted : 22/07/2022 10:20 pm
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

Not completely done yet, but added (grey) spherical polygons (for pentagons) in addition to the blue spherical great circle arcs for the edges.

Made OpenSCAD animation today, after adding two (real) mirrors to the scene.
This allows to follow the isolated green vertex the whole rotation, over central sphere, left mirror and right mirror.
Details in this posting:
https://forums.raspberrypi.com/viewtopic.php?p=2025118#p2025118

 

Posted : 31/07/2022 3:45 pm
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

I was able to complete the whole planar graph sphere spring embedder today (works for C20 and C60 fullerenes as of now):
https://forums.raspberrypi.com/viewtopic.php?p=2025456#p2025456

I did render with OpenSCAD F6 and exported as STL. Rendering with (64bit Raspberry Pi OS) PrusaSlicer resulted in more than 1 day 3Dprint time MINI+ gcode file:

Reason for the long print time was that transparent inner white sphere got rendered completely filled.

Next I removed the white sphere from x.scad and rendered, after some time my (4GB ram) Pi400 froze.

After restarting the Pi400 I did render again on Pi400, and after 12 minutes "top" showed 2.5GB virtual and 2.0GB resident memory use. Again the Pi400 did freeze again.

So I installed PrusaSlicer on a 12GB virtual Intel i7 Ubuntu and sliced there. It tooke more than 10 minutes, and had >3GB resident memory (which explains why Pi400 froze). This is result:

2.5h sounds acceptable, I will give that a try now ...

Posted : 01/08/2022 7:55 pm
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

I had to stop the 3Dprint because of spaghetti monster.
In addition I found that the spherical gray polygons are too thin, PrusaSlicer only partly has them:

I just added option to create sphere spring embedding without pentagon spherical polygons:
https://github.com/Hermann-SW/planar_graph_playground/commit/eb1c507f27c5e8ec39bc8ebb841a22c87acab8fc

./rjs node.tetra.js graphs/C60.a white.60 -2

Only the very last line from x.scad needs to be removed before rendering and storing as STL for 3Dprinting ...

Posted : 01/08/2022 10:42 pm
fuchsr
(@fuchsr)
Famed Member
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

I think you're not going to have more luck unless you factor in some of the limitations of FDM printing into your design. Thickness of lines/walls is one, the other one is overhangs. When I saw your previous design I was sure it was never going to print. Too many parts that are unsupported, with overhang angles way too steep to print properly. 

Posted : 01/08/2022 11:00 pm
Swiss_Cheese
(@swiss_cheese)
Noble Member
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

I agree with Fuchsr, you'll not get that to print very well at all in that form, However you may have a chance if you do  something akin to a UVW unwrap, and try to print it flat with minimal supports and add in several areas where it can snap back together.

 

Good Luck

 

Swiss_Cheese

The Filament Whisperer

Posted : 01/08/2022 11:53 pm
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

Thanks for the comments, and I think you are right.

I once 3Dprinted a sphere surface with 0.4mm thick walls, and overhang was no problem there because of brim:
https://forum.prusa3d.com/forum/english-forum-awesome-prints-hall-of-fame/3dprinted-ball-from-two-halves-and-screw/#post-597133

What I might try next is to print C20 fullerene without the inner white sphere.
Because it is also called dodecahedron, all its 12 faces are pentagons and are filled with gray spherical (thin) polygon:

Since I generate the OpenSCAD file with node.tetra.js (and scad.js), I have full control over radii, and edge as well as spherical face thickness.
In case the C20 will 3Dprint, I might 3Dprint C60 with spherical (correct thickness) polygons added for all faces ...

Posted : 02/08/2022 6:37 am
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

An alternative for all planar sphere embeddings would be to not generate pentagon spherical polygons and keep white sphere instead, but not filled.

On the left you see white sphere with radius sc, differenced with sphere of radius "sc-0.1".
Edges have radius 0.1, so look above a bit.
I did difference a big cube to everything in order to be able to "look inside" and inspect sphere thickness.

Differencing "sc-0.1" radius sphere from radius "sc" sphere (left) is fast, but shows unneeded for 3Dprinting inner vertex ball halves.
On the right I first differenced cube, and then from all the "sc-0.1" radius sphere. Rotating that is really slow after long initial computation.

Posted : 03/08/2022 11:06 am
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

Regarding the very slow difference for sphere of radius "sc-0.5", I asked on reddit.com/r/openscad:
https://www.reddit.com/r/openscad/comments/wf447z/question_on_how_to_improve_difference_performance/iisl9ph/

I got explanation from @amatulic that this is expected due to the very big number of triangles created by that late difference.
And he pointed to using his "geodesic hemisphere module" as plugin replacement for OpenSCAD "sphere".

Before trying that, I thoght whether I can subtract a cube at right position and direction from the vertex sphere to achieve wanted result, but with better performance.

The existing "vtxt()" module to add text to vertices had all the spherical computations needed for placement of cube:

With latest commit+push new "vertex()" module is available, with optional 3rd "half" parameter:
https://github.com/Hermann-SW/planar_graph_playground/blob/main/scad.js#L57-L70

Left you can see that "cube([1,1,0.3])" was not sufficient, but "cube([1,1,0.4])" (right) was: 

 

I did run half option (-6) without white (white.0) sphere just to see how that looks like:

pi@pi400-64:~/planar_graph_playground $ ./rjs node.tetra.js graphs/C20.a white.0 -6

I have no use case for this setup yet, but using vertex "half" option with white sphere for 3Dprinting is promising and efficient.

Posted : 03/08/2022 8:30 pm
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE:

During vacation I learned about JSCAD (CAD in browser), and added JSCAD as output format in addition to OpenSCAD.

Also I implemented 6coloring of graph as face coloring in additon to "Pentagons" output, details here:
https://forums.raspberrypi.com/viewtopic.php?p=2032727#p2032727

JSCAD allows to change settings and get new view with "Update", enabling Auto-zoom is preferable as well.

In additon to export OpenSCAD model to eg. STL, JSCAD allows to export to STL (ascii and binary), AMX, DXF (ascii), JSON, OBJ, X3D and 3MF ...

Will play with 3Dprinting when back home tomorrow after 3 weeks away. 

 

You can play with model in your browser, initially it takes some time (~10s on Intel i7 Chrome), but then rotation and zooming is very fast:
https://www.openjscad.xyz/?uri=https://stamm-wilbrandt.de/en/forum/JSCAD.C60.6coloring.vtype.js

Posted : 27/08/2022 7:13 pm
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE:

I did loose two postings because forum cannot deal with jscad.app base64(gzip/(scad)) data URLs.
So I used my website as URL shortener.
Complete length of the redirected URL is 6696 bytes, containing the complete model:

https://stamm-wilbrandt.de/all_half_vertices.C36.html

New option "all" for half vertex allows for no vertex sphere parts inside.
Created with this Pari/GP script:
https://github.com/Hermann-SW/GP3D/blob/main/sphere_embedding.gp

Surprisingly good 3Dprint despite extreme overhang in center:

Posted : 24/01/2024 10:10 pm
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

Wow, just saw this youtube video (screenshot below)
https://www.youtube.com/shorts/YKZoMUWuI8g

and learned how to "easily" 3Dprint my fullerenes, eliminating the need for support structures from PrusaSlicer, and overcoming all extreme overhang problems. This model was 3Dprinted without support !

Posted : 26/01/2024 1:14 am
Diem
 Diem
(@diem)
Illustrious Member

That sort of structure cannot be printed without support - but it would be straightforward to print in two parts and assemble later.

Your fullerenes are inherently hard to print as they are 'structures' held together by force vectors - the vectors have to be represeted by solid plastic and it has to be thick enough to be printable, with the variety of directions your minimal vector thickness will have to be at least 3mm ...

If you had a multimaterial printer you might pint a soluble support structure and print a little thinner but it would be very fragile.

Your best bet might be to print rod and ball 'atoms' and assemble the fullerenes from basic parts.

Cheerio,

Posted : 26/01/2024 3:44 am
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE:

The trick in above linked video is to stop printing at some layer, insert previously printed part and then complete the 3Dprint glueing all together:

You are right about vertices and edges too thin for fullerenes.
The trick I will use is to print spherical surface in addition, holding all together (left).
On right you see that vertices in bottom half have a problem, they start (lowest layer) in the air.
So this cannot be printed in one part as with the trick above.

 

But I will print 17cm diameter thin sperical surface with above trick on my MINI+ without PrusaSlicer support.
Overhang is only a problem >70°, so at just below 70° overhang I will add small structure inside.
Then below two layer disk will be inserted after printer stop.
And after continuing printer will fill everything above disk in sphere completely.
So this will be technique without PrusaSlicer support, but with support starting "high in the air".

Posted : 26/01/2024 2:27 pm
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE:

I started with simple parametric sphere model first, you can try in your browser:
https://jscad.app/#https://stamm-wilbrandt.de/en/forum/sphere_simple.js

It is possible to change diameter, thickness, overhang angle and use debug feature look_inside.

For first print I reduced diameter to 30mm (faster, only 38min) instead of 170mm.
I kept thickness of 0.5mm (single layer sphere surface with MINI+ 0.4mm nozzle).
And kept the 70° overhang angle, that is from which overhang I want to get self-constructed support.
Finally I did set look_inside to yes, to see whether everything was alright inside.

Then I did export as STL, and look_inside was still yes, so the print will also show the inner details.

14fps simple_sphere borescope video with 10× speedup:

I selected "0.15mm QUALITY", "Generic PETG", Supports "None", infill=5% and brim.

Posted : 27/01/2024 11:12 am
HermannSW
(@hermannsw)
Estimable Member
Topic starter answered:
RE: How do I slice half C60 fullerene exported from OpenSCAD as STL?

New model allows (self created) support to start in the air with same trick I showed for the other video:
https://jscad.app/#https://stamm-wilbrandt.de/en/forum/sphere_support_in_air.js

The red part with 100% infill for sphere surface starting at specified overhang up to top.
The green support ring has slope of overhang and allows to place a previously printed disc.

 

Part of nozzle camera video with printer stop, disc placement ...
 

... and printer continuing print.

Result top of sphere looks nice, no overhang issues (I moved most of the sphere below printer plane, so that PrusaSlicer did print only the top part for test):

Posted : 29/01/2024 12:22 am
Share: