Help with solids, boolean operation an shells

Next
 From:  pw
9219.1 
I have done o lot of things with MOI3d in the last year, and I love it. Also the hints in this forum are very valuable for me.

But now I am at a point, where I need some help from the experts. If I missed the right forum entry, please apologize.


We want to print a two part laminating form for a engine nacelle for a new plane of a friend of mine.

I spent hours to model it, I tried loft, sweep, combination of solids and so on. At the end I succeeded with the network function. And after some more hours I also got a planar front plate and glued everything together. When I saw the word "solid" and found no naked edges, I thought, my problem are served, but they aren't yet.

http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=f1a70f131b9733135826825c6ca72171&filename=t2.jpg&inline

- I want to cut out the wing connection and the exhaust part (green lines), but no boolean or trimming option works. In part 2 I tried as a test several boolean Operations (blue lines and the ball). I am able to shoot a hole, when it is totally inside the the solid, but other ways not. I am also not able to perform a boolean or trimming operation between the test ball and the solid or between the extruded solid. Why does this not work? I thought, a solid is a solid, isn't it?

- At last we want to generate a shell (3 or 4 mm, the outer side needs not to be exact). But the offset and shell function seems to be be limited (no constant angle or no way to generate a closed solid or a valuable surface). I wound like to have more options here. In former times, I played a little bit with Rhino, wasn't there a drape function, which generates a very lose coupled but closed area? I also thought, scaling the solid, an subtracting the unscaled part and yield as result a shell. How would you come around with this problem, which arise quite often?

Thank you for your advice in advance.

Paul

P.S.: I use the October beta version of MIO3d.

EDITED: 19 Jan 2019 by PW

Attachments:

Image Attachments:
Size: 151.1 KB, Downloaded: 84 times, Dimensions: 1417x777px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  pafurijaz
9219.2 In reply to 9219.1 
Hi, I've tried to inspect your 3D file, and it has several criticalities that put in difficulty many programs not only Moi3D, your curves are full of segments as if they were extracted from a polygon mesh, and this complicates the operation, you have to try to use simple curves and splines and possibly drawn with Moi3D.

In your file I have simplified the curves with the command "Rebuild" that you find at this link https://moi3d.com/2.0/docs/moi_command_reference10.htm#rebuild

I have not completely redone your model but I used your curves to generate new surfaces, but also the solid that you had created with the network of curves is technically incorrect.

For now I can do only this, since I do not have much time, but try to make simple curves and avoid building surfaces with too many curves as with the network, when you have to make complex parts you have to simplify the construction using many pieces to create a 'single solid.


EDITED: 25 May 2020 by PAFURIJAZ


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  pw
9219.3 In reply to 9219.2 
Thank you for your help. The curves of the network were a mix of parts from a dxf file and some freeform curves I modeled my own.
I will use the rebuild command or own freeform curves for further simplification of the model.

What do you mean with "the network of curves is technically incorrect"?

Moi generated it in a few seconds, there was no warning or error. Afterward the same with the boolean operation, it simply showed partially no effect, no warning or error.
Why is the generated solid incorrect, how can I see that? Is there a parameter I can see in MIO, for example number of vertices or degree of nurbs or anything else, which gives me an indication that solid or surfaces might become complicated or where I should be below?


Are there some further advices for an efficient generation of closed shells?

Best regard,
Paul
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9219.4 In reply to 9219.1 
Hi Paul,

re:
> I thought, a solid is a solid, isn't it?

Unfortunately no it's not quite so. MoI will report an object as being a Solid if there are no naked edges, meaning all edges are joined between 2 surfaces.

But there are many possible ways to make degenerate or malformed geometry that will report as a solid but cause many problems.

Some of these conditions are having a trimming boundary on a surface that crosses over itself, having surfaces with control points awkwardly pinched together so the surface has a chaotic shape in a small area, having opposite sides of the object push through each other, faces that are degenerate with all their surface area compressed down to a single line or point, and various others.

These various conditions tend to be both difficult and time consuming to try and catch in an automated process.

If MoI tried to screen all objects to have none of these problems before labeling it as a "Solid" you could potentially be forced to wait for several minutes every time you selected an object before it would be able to tell you the object type.

In the future I do definitely want to add different types of analysis and checking tools to help detect these kinds of problems but currently it's more up to the user to avoid making these kinds of messy objects.

So definitely one area that is not good in your case here is like pafurijaz writes above, this area of the green piece is made up of like 170 little slivered flat pieces instead of just one smooth surface:



Then on top of all of that, the offset and shell functions in MoI are not very good when it comes to thickening pieces made up of multiple faces that are all at different angles to each other. The offsets in those cases do not naturally match up with one another and need to be extended and intersected and that does not work well in MoI. So to generate an inner wall for your case it will probably be needed to explicitly model it rather than generate it through offsetting.

- Michael
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9219.5 In reply to 9219.3 
Hi Paul, so some further investigation into potential problem geometry, one thing that is not so great is the surfaces are fairly stressed with little ripples and bumps in them, that can tend to happen from trying to force a single surface to be constructed through a lot of changing shapes especially with inflection points in them. So those are areas such as here:



Sometimes those kinds of surface quality problems can be so pronounced that the surfaces zig zag back through themselves in those spots. I don't think you've got it quite to that level here so I think you can get away with these but it's generally not a great thing to have.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9219.6 In reply to 9219.3 
Hi Paul, so it looks like the main thing with a real degeneracy problem is a little thin sliver along the back. On the back side I noticed this anomaly here:



Then deleting the large back pieces I could get a little better look at it:



Often times that kind of shaded triangle "leak" can be because of degenerate trim boundaries. I zoomed in closely to that area and there are some very skinny slivery faces in there, these seem to be likely culprits:



So maybe something like the curves along the back side didn't quite exactly align with each other and are leaving that messy little fragmentary result in it.

Or maybe there is a tiny line segment in one of the curves. Something akin to that probably. If you can maybe post a simplified file that has just the curves used to create that piece that would help me to examine it more closely.

But it's likely that spot with such tiny compressed/degenerate surfaces in it are causing boolean problems.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  pw
9219.7 In reply to 9219.6 
I appreciate your help in the forum. Besides the improvements of MOI that is definitely a reason to update my MOI license, when Version 4 is ready.

Probably my questions in this thread are also a help for other not so experienced users.
What have I done now. First of all as requested I add the underlying dxf-file from my friend.

Than I have extensively reduced the number of points in the sections with the rebuild function by setting tolerances to 0.5 or reducing points while keeping edges. Also I deleted points, which were to near or out of the line.


The result looks to me much more "clean", as far as I can see from visual inspection (an professional inspection command would be in deed very valuable in the future). Are that still to many points or is this an order, MOI can handle? I found some small faces left at the bottom, but there are not many points left there. The network function worked very quick and after gluing the separately build planar front section, I got a solid with no edges.

I also reduced the point of the cutting sections a lot (green parts with style cut, the circle is only for testing purposes).



But unfortunately the boolean operations still do not work or lead to unexpected results, for example the difference of the solid and the circle leads to outer tubes glued to the solid.


Regarding the shell: In deed, I see that is mathematically a complex problem. On the other hand that things will be more and more interesting in combination with 3d printing, as in many cases it is valuable for the slicer to have a solid shell (exported to stl) then a full solid which is printed without infill. In my case I see 3 choices, as the outer shell (laminating form) does not have any accuracy demand:
- construction the shell and not the original solid -> not ideal
- scaling the solid and extract the original part, if that works
- extracting the solid model form a cube and forming the outer part with a simple surface, an ellipsoid or a simply loft (to much material in the shell extends the printing time extensively).

Best regard,
Paul
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9219.8 In reply to 9219.7 
Hi Paul, yes so the problem with the DXF file is that everything in it is made up of polylines. So the areas that look like smooth curves are not actually smooth curves, they're actually hundreds of little line segments.

So that DXF data is not suitable to be used directly for constructing surfaces from, you'll need to create smooth curves from those, either by using the Rebuild command or possibly by drawing completely new curves and using the DXF data as a guide. For the Rebuild command if you join together a sequence of lines that should be smooth you could use the "Endpoints" mode of the rebuild command which will be the same as doing a "Through points" type curve through the polyline vertices.

It would be better if the DXF file contained higher level data in it like at least arcs for circular areas. It would be good to ask your friend if he has the data in that form and could send that rather than only linearized data.

re:
> But unfortunately the boolean operations still do not work or lead to unexpected results, for
> example the difference of the solid and the circle leads to outer tubes glued to the solid.

The "outer tubes glued to the solid" happening in a boolean is a result of the outside direction of the solid being oriented incorrectly. That is one of the things that can happen with degenerate geometry like I was describing earlier and the degenerate faces that I showed in the previous post here http://moi3d.com/forum/index.php?webtag=MOI&msg=9219.6 are still present in this model as well so those still need to be cleaned up before booleans will work properly.

I also noticed an additional thin slivery surface along the front side here:







That might be a remnant of one of the little tiny lines in the original polyline data. It won't be possible to do a proper boolean on a model with these degenerate faces in it.

It looks like I can figure out now what things to select to make the Network so in a bit here I'll examine those curves more closely to see what needs to be trued up to avoid the malformed faces.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
9219.9 
Best in general is to redraw with curves above the existant "polylines" ! ;)
Maybe one minute in your case for this little piece!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9219.10 In reply to 9219.7 
Hi Paul, I found one problem area in the curves, there is a little tiny line segment in this area here:







I think that's not the only problem though.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  pw
9219.11 In reply to 9219.10 
I rebuilt all the dxf-polylines with curves through points. For me it took me a little more time than for Pilou :).

But the more time consuming part was to snap all sections together and keeping all lines flat.

- Is there an advise, how you snap the perpendicular Curves efficient and keep them snapped?
- Is there an easier way to look for the intersection points? I always used ->curve->insect and constructed points.

I also found that the closed crossections introduced problems at the backside. It was no longer flat. So I build it afterwards from the edges.

The outer shell took some additional time, but I was much faster, because I knew the problematic area already.

At the end the result looks quite promising.



The slicer gives an estimated printing time of 9 hours per half. We will see.



I will add some photos of the printed form, when we are ready.

Thank you again for your help. It showed me the my problem could be solved with MOI.

Best Regards,
Paul

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
9219.12 In reply to 9219.11 
Hi Paul, it looks like you're making great progress now!

re:
> - Is there an advise, how you snap the perpendicular Curves efficient and keep them snapped?

There isn't really any built in tool for doing that. Depending on the particular situation some kinds of strategies could be helpful like have some extended flat reference lines to target.


> - Is there an easier way to look for the intersection points? I always used ->curve->insect and constructed points.

The Construct > Curve > Isect command is the main way to check for intersection points. The Network command can actually tolerate curves that do not exactly intersect. That can be messy at a major nexus point but out in the middle somewhere it can be ok.

Sometimes it can be good to overbuild something and plan to hack excess areas off with a cutting line rather than trying to do the initial surfacing directly to a target shape...

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All