Ancestors

Written by Guy Dupont on 2025-01-04 at 21:00

Wrote a script to generate these "Iso Slice-O" drawings directly from 3D model files (with a tiiiny bit of manual SVG cleanup at the end). Ran it on some of the most popular models and I'm obsessed with the results using white ink / black paper

=> View attached media | View attached media | View attached media

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Toot

Written by Guy Dupont on 2025-01-04 at 21:01

First step takes in a number of slices and runs through the STL file vertically to get cross sections, and produces an SVG for each. Here's the output:

=> View attached media

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Descendants

Written by Guy Dupont on 2025-01-04 at 21:03

Then I iterate through each layer and use OpenSCAD to extrude by a given amount and recreate an STL file for each.

=> View attached media

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Written by Guy Dupont on 2025-01-04 at 21:04

I then use the PyVista library to place the STL file in space and take a picture of each with virtual lighting on. I always take the snapshots from a fixed global isometric position. I use the calculated camera from the largest slice, which ensures all will be in view.

=> View attached media

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Written by Guy Dupont on 2025-01-04 at 21:05

This is the strangest step - I quantize the image down to 3 colors, and then I have a script trace each of the resulting contours. So now I have SVG paths of the EDGES of the 3D object in space. This results in some duplicate paths but that all comes out in the wash

=> View attached media

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Written by Guy Dupont on 2025-01-04 at 21:06

Last bit of Python stacks all the edge SVGs with a fixed vertical offset (which works because of the viewing angle) and then I manually fill in the faces I want drawn (like 5 mins of clicking in inkscape) - there's probably a way to automate this but I like doing a finishing pass

=> View attached media

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Written by PierreNick :apple_old_logo: 💾 on 2025-01-04 at 21:10

@gvy_dvpont This is so cool. Art!

=> More informations about this toot | More toots from pierrenick@hachyderm.io

Written by Bradley on 2025-01-04 at 22:19

@gvy_dvpont very cool they turned out great!

=> More informations about this toot | More toots from bradley@techhub.social

Written by herzberg on 2025-01-09 at 20:06

@gvy_dvpont This is really great, thanks for sharing.

=> More informations about this toot | More toots from herzberg@linuxhotel.social

Written by math blasterson on 2025-01-04 at 21:36

@gvy_dvpont If you're looking to cut out the raster step, I've gotten good results using the "TechDraw" workbench in FreeCAD to directly generate SVGs of the edges of solid parts is isometric projections.

Not sure how good the Python API for that workbench is, but in theory it could be automated. There's an OpenSCAD workbench, too.

=> More informations about this toot | More toots from humulus@mastodon.social

Written by Guy Dupont on 2025-01-04 at 21:38

@humulus oh gtk!! I'm pretty comfortable with OpenSCAD - what am I looking for there? I swear I saw something like that in the past and just couldn't find this morning.

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Written by math blasterson on 2025-01-04 at 21:41

@gvy_dvpont

Start here

https://wiki.freecad.org/Basic_TechDraw_Tutorial

Except instead of using their sample file, drop in your OpenSCAD code.

=> View attached media

=> More informations about this toot | More toots from humulus@mastodon.social

Written by Guy Dupont on 2025-01-04 at 21:43

@humulus amazing thank you. Picking up FreeCAD is a 2025 TODO for me anyways!

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Written by Cassandrich on 2025-01-05 at 13:12

@gvy_dvpont These first three steps could be done entirely as an OpenSCAD module applied to the STL.

=> More informations about this toot | More toots from dalias@hachyderm.io

Written by Guy Dupont on 2025-01-05 at 13:35

@dalias I tried that first! projection(cut=true) was broken in my build I didn't feel like figuring out what I needed to install when I could just throw Python at it

https://github.com/openscad/openscad/issues/5159

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Written by Cassandrich on 2025-01-05 at 14:22

@gvy_dvpont Yeah CGAL is really buggy. Building with experimental features (manifold) fixes lots of stuff. It's so disappointing they don't have a stable tag so everyone ships ultra slow buggy builds with the old CGAL...

=> More informations about this toot | More toots from dalias@hachyderm.io

Written by skry on 2025-01-04 at 22:35

@gvy_dvpont I love this view too. The drawings seem more interesting than the model could be.

=> More informations about this toot | More toots from skry@mastodon.social

Written by izumitelj on 2025-01-04 at 23:00

@gvy_dvpont

This looks great 👌🤓. Did you plan to release script to the public at some point? It could be useful for laser cutting too.

=> More informations about this toot | More toots from izumitelj@mastodon.social

Written by Guy Dupont on 2025-01-04 at 23:29

@izumitelj I do plan on releasing the script but I actually think this is mostly overkill for lasering BUT I did discover Kiri:moto which runs in the browser and has a laser mode for exactly that purpose!

https://grid.space/kiri/

=> More informations about this toot | More toots from gvy_dvpont@mastodon.social

Written by izumitelj on 2025-01-04 at 23:37

@gvy_dvpont great thanks! Didn't know about Kiri:Moto but I will give it a try. I will also watch for your script since I lake the openscad + occasionally work with graphics.

=> More informations about this toot | More toots from izumitelj@mastodon.social

Proxy Information
Original URL
gemini://mastogem.picasoft.net/thread/113772100396256431
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
476.462866 milliseconds
Gemini-to-HTML Time
6.131116 milliseconds

This content has been proxied by September (ba2dc).