discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Manipulating External Meshes

RW
Raymond West
Sun, Feb 16, 2025 2:14 PM

I struggle with the intricacies of meshlab, but is easy to use it to
select and delete floaters.

On 16/02/2025 13:38, John Colagioia via Discuss wrote:

On 2/15/25 16:58, Jordan Brown wrote:

On 2/15/2025 12:17 PM, John Colagioia via Discuss wrote:

That's just bisecting (difference with a cube) the default model
with no proportions/identity elements set or accessories added, but
good enough for a proof of concept. The floating bits on the image's
right, and the white/transparent areas make me a /little/
suspicious, but they're now tiny, localized spots instead of the
entire model like that.

How big is the cube that you're subtracting?  The obvious reason for
bits on the right side is that the cube isn't quite big enough.

Putting a # in front of the cube may make this more obvious.

That's a neat trick!  Much better than my usual debugging of
reproducing the intersecting objects.  The cube is huge, though, and
the bits just float around well inside the boundaries.  I still call
it a success, considering the mess that I had in the first
iterations.  Presumably, the worst that'll happen is that the printer
will eventually try to dribble a couple of blobs in open space.


OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org

I struggle with the intricacies of meshlab, but is easy to use it to select and delete floaters. On 16/02/2025 13:38, John Colagioia via Discuss wrote: > > > On 2/15/25 16:58, Jordan Brown wrote: >> On 2/15/2025 12:17 PM, John Colagioia via Discuss wrote: >>> >>> That's just bisecting (difference with a cube) the default model >>> with no proportions/identity elements set or accessories added, but >>> good enough for a proof of concept. The floating bits on the image's >>> right, and the white/transparent areas make me a /little/ >>> suspicious, but they're now tiny, localized spots instead of the >>> entire model like that. >>> >> >> How big is the cube that you're subtracting?  The obvious reason for >> bits on the right side is that the cube isn't quite big enough. >> >> Putting a # in front of the cube may make this more obvious. > That's a neat trick!  Much better than my usual debugging of > reproducing the intersecting objects.  The cube is huge, though, and > the bits just float around well inside the boundaries.  I still call > it a success, considering the mess that I had in the first > iterations.  Presumably, the worst that'll happen is that the printer > will eventually try to dribble a couple of blobs in open space. > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org
JB
Jordan Brown
Sun, Feb 16, 2025 9:14 PM

The cube is huge, though, and the bits just float around well inside the boundaries.

Hmm.  Do you mind privately shooting me a copy of the STL and your OpenSCAD program?

> The cube is huge, though, and the bits just float around well inside the boundaries. Hmm. Do you mind privately shooting me a copy of the STL and your OpenSCAD program?
RW
Rogier Wolff
Mon, Feb 17, 2025 2:17 PM

On Sun, Feb 16, 2025 at 08:38:11AM -0500, John Colagioia via Discuss wrote:

That's a neat trick!  Much better than my usual debugging of reproducing the
intersecting objects.  The cube is huge, though, and the bits just float
around well inside the boundaries.  I still call it a success, considering
the mess that I had in the first iterations.  Presumably, the worst that'll
happen is that the printer will eventually try to dribble a couple of blobs
in open space.

In your slicer you can probably split your imported STL into parts
(spit->objects in Slic3r derived slicers) Then they fall to the bed, and
you can just delete the parts you don't need.

Roger. 

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a** is going up.  -- Chris Hadfield about flying up the space shuttle.
**  'a' for accelleration.

On Sun, Feb 16, 2025 at 08:38:11AM -0500, John Colagioia via Discuss wrote: > That's a neat trick!  Much better than my usual debugging of reproducing the > intersecting objects.  The cube is huge, though, and the bits just float > around well inside the boundaries.  I still call it a success, considering > the mess that I had in the first iterations.  Presumably, the worst that'll > happen is that the printer will eventually try to dribble a couple of blobs > in open space. In your slicer you can probably split your imported STL into parts (spit->objects in Slic3r derived slicers) Then they fall to the bed, and you can just delete the parts you don't need. Roger. -- ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 ** ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 ** f equals m times a. When your f is steady, and your m is going down your a** is going up. -- Chris Hadfield about flying up the space shuttle. ** 'a' for accelleration.
JC
John Colagioia
Mon, Feb 17, 2025 10:51 PM

On 2/16/25 16:14, Jordan Brown wrote:

The cube is huge, though, and the bits just float around well inside the boundaries.

Hmm.  Do you mind privately shooting me a copy of the STL and your OpenSCAD program?

Sure!  It's nothing secret, so I'll leave it here for anybody who might
want to investigate.

https://upload.disroot.org/r/sgAMFbFe#MIQ3c4Yo2dSdd8DefqkCQsZRb8YbavAyA6YuYS0CK28=

For reference, I got to that point by:

  • Opening Makehuman (http://www.makehumancommunity.org/)
  • Exporting the character as-is.
  • Opening the STL in FreeCAD
  • Running the Mesh Design/Analyze and Repair Mesh tool repeatedly.
  • Saving.

(The Mesh Design mode seems to have vanished from my FreeCAD
installation since the weekend, but that's another bizarre problem for
another day...)

And the program is this boring.

difference() {
    import("default-human.stl", convexity=20);
    translate([0, -25, -25])
        cube([50, 200, 50]);
}

On 2/16/25 16:14, Jordan Brown wrote: >> The cube is huge, though, and the bits just float around well inside the boundaries. > Hmm. Do you mind privately shooting me a copy of the STL and your OpenSCAD program? Sure!  It's nothing secret, so I'll leave it here for anybody who might want to investigate. https://upload.disroot.org/r/sgAMFbFe#MIQ3c4Yo2dSdd8DefqkCQsZRb8YbavAyA6YuYS0CK28= For reference, I got to that point by: * Opening Makehuman (http://www.makehumancommunity.org/) * Exporting the character as-is. * Opening the STL in FreeCAD * Running the Mesh Design/Analyze and Repair Mesh tool repeatedly. * Saving. (The Mesh Design mode seems to have vanished from my FreeCAD installation since the weekend, but that's another bizarre problem for another day...) And the program is this boring. difference() {     import("default-human.stl", convexity=20);     translate([0, -25, -25])         cube([50, 200, 50]); }
JB
Jordan Brown
Tue, Feb 18, 2025 12:05 AM

[ chopping a Makehuman model in half ]

Yeah, those are preview artifacts almost certainly caused by flaws in
the mesh.

Note the transparent parts toward the left and up around the eyes.

And when we remove the difference and turn on View/Thrown Together, note
the magenta on the inside of the arms and the inside of the legs.

Magenta indicates faces that are "backwards", that have their vertexes
in the wrong order and so in some sense face the other way.

When you look closely, you see holes where there shouldn't be holes, e.g.

And when I try to render the differenced model with F6 I get...

WARNING: PolySet -> Manifold conversion failed: NotManifold

Trying to repair and reconstruct mesh..

ERROR: [manifold] Input mesh is not closed!

ERROR: [manifold] Surface_mesh -> Manifold conversion failed:
NotManifold

WARNING: No top level geometry to render

Note:  When you're looking for errors like that, make sure you
Design/Flush Caches before each attempt, because unfortunately OpenSCAD
will cache the erroneous result and so won't give the message on the
second attempt.

> [ chopping a Makehuman model in half ] Yeah, those are preview artifacts almost certainly caused by flaws in the mesh. Note the transparent parts toward the left and up around the eyes. And when we remove the difference and turn on View/Thrown Together, note the magenta on the inside of the arms and the inside of the legs. Magenta indicates faces that are "backwards", that have their vertexes in the wrong order and so in some sense face the other way. When you look closely, you see holes where there shouldn't be holes, e.g. And when I try to render the differenced model with F6 I get... WARNING: PolySet -> Manifold conversion failed: NotManifold Trying to repair and reconstruct mesh.. ERROR: [manifold] Input mesh is not closed! ERROR: [manifold] Surface_mesh -> Manifold conversion failed: NotManifold WARNING: No top level geometry to render Note:  When you're looking for errors like that, make sure you Design/Flush Caches before each attempt, because unfortunately OpenSCAD will cache the erroneous result and so won't give the message on the second attempt.
RW
Rogier Wolff
Tue, Feb 18, 2025 7:41 PM

On Mon, Feb 17, 2025 at 05:51:09PM -0500, John Colagioia via Discuss wrote:

On 2/16/25 16:14, Jordan Brown wrote:

The cube is huge, though, and the bits just float around well inside the boundaries.

Hmm.  Do you mind privately shooting me a copy of the STL and your OpenSCAD program?

Sure!  It's nothing secret, so I'll leave it here for anybody who might want
to investigate.

https://upload.disroot.org/r/sgAMFbFe#MIQ3c4Yo2dSdd8DefqkCQsZRb8YbavAyA6YuYS0CK28=

What is this? The Makehuman output directly or the one that you've
tried to "fix" using the procedure below?

I used to agree with people that "all STLs on the internet are shitty
and have holes and such!".

Until I tried openscad with "manifold". Suddenly those shitty STLs
simply work. Nothing wrong with them. Meshlab had stuff to complain
about but I think: should be perfectly fine with that "error". I've
also written an STL-checker and... again: No errors, only things that
meshlab would be able to "fix" but not really a problem.

Anyway, I no longer have confidence in those "fixing" steps. The model
linked above... It contains humungous holes. I really want to know if
that's before or after "fixing".

Roger. 

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a** is going up.  -- Chris Hadfield about flying up the space shuttle.
**  'a' for accelleration.

On Mon, Feb 17, 2025 at 05:51:09PM -0500, John Colagioia via Discuss wrote: > On 2/16/25 16:14, Jordan Brown wrote: > > > The cube is huge, though, and the bits just float around well inside the boundaries. > > Hmm. Do you mind privately shooting me a copy of the STL and your OpenSCAD program? > > Sure!  It's nothing secret, so I'll leave it here for anybody who might want > to investigate. > > https://upload.disroot.org/r/sgAMFbFe#MIQ3c4Yo2dSdd8DefqkCQsZRb8YbavAyA6YuYS0CK28= What is this? The Makehuman output directly or the one that you've tried to "fix" using the procedure below? I used to agree with people that "all STLs on the internet are shitty and have holes and such!". Until I tried openscad with "manifold". Suddenly those shitty STLs simply work. Nothing wrong with them. Meshlab had stuff to complain about but I think: should be perfectly fine with that "error". I've also written an STL-checker and... again: No errors, only things that meshlab would be able to "fix" but not really a problem. Anyway, I no longer have confidence in those "fixing" steps. The model linked above... It contains humungous holes. I really want to know if that's before or after "fixing". Roger. -- ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 ** ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 ** f equals m times a. When your f is steady, and your m is going down your a** is going up. -- Chris Hadfield about flying up the space shuttle. ** 'a' for accelleration.