export option and unexpected result

Next
 From:  -Gwozik- (PP)
4012.1 
Hello

I've made a few export test to clearly undestand export options.
Maybe my tests may help beginer to understand (or maybe I misunderstood how Moi work, so, do not hesitate to correct me.)

=======
1) Angle
=======

First I created a circle and convert it to a surface (using planar tool) in order to test what happends when I change "angle" value (in the "meshing options" windows).

For those who don't like mathematic : Complete circle = 360°

When I choose 55° I get 7 polygons
360°/7=51,43°
55° is rounded to 51,43°.
It seems logic


When I choose 54° I get 8 polygons.
360°/8=45°
54° is rounded to 45°
In this case, I expected 54° to be rounded to 51,3° (which is closer than 45°)


I made a few other test :
76° is rounded to 72° (360°/5)
75° is rounded to 60° (360°/6) but is closer to 72° (360°/5)
26° is rounded to 24° (360°/15)
25° is rounded to 22,5° (360°/16) but is closer to 24° (360°/15)

So, my conclusion is :
mesh exported angle = ("angle" minus approximatively 5%) rounded to the inferior value.
Where "angle" represent value in the "meshing options" windows.

When trying to get precise polygon number this may help.

But of course 99,99% users probably don't care (I know, I'm pernickety man)

=======
2) divide larger than
=======

2.1)-plane-

I created 4 rectangular plane :
10x1cm
10x0.6cm
10x0.2cm
10x0,03cm







Then I export using "Divide larger than" set to "1".
As you can see :
in the first three rectangle, rectangles are divided in polygon having width inferior to 1
in the fourth rectangle, rectangle are divided in polygons having width equal to 1



I didn't undestand why all the polygon have not the same width. But once more, I'm probably the only one intersted in such pernickety details.

2.2)-curved-
I created a cylinder
And I make test to understand "curved"

first I only choose a value for angle


then I add a value "Divide larger than"/"curve"


then I add a value "Divide larger than"/"plane" (polygons don't seem regularly created)


then I add a value "Divide larger than"/"all"


When using 54°, polygons don't seem regularly created for both plan and curve :









I don't know if this will interrest anyone, but my objective is reached, I now understand mesh export option.

  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
4012.2 In reply to 4012.1 
Hi PP, so one thing that may help to explain how the mesher works is that it doesn't necessarily try to "round" the values that you enter - it's more like those values are used to decide whether to continue to subdivide some polygons further or not.

The mesher starts out with an initial base mesh that is made up of the surface subdivided down into a quad grid. Then each quad is measured and if any quad is out of the tolerance specified by your parameters (like if it has any angle greater than your angle parameter or any length larger than your "Divide larger than" parameter), then it gets subdivided, and then the measurement and subdivision continues with those pieces as well.

It does do some work specifically for circles to try and make an initial starting mesh that meets your angle parameter, but again the angle parameter in this case is used as a "tolerance", meaning that it will try to make a result where the angles between each line in the polygon circle are under the angle parameter that you have given.

Does that help to make some more sense of the results that you're seeing? I'll go over your post some more and see if I can give you some other comments.


Oh, also another thing I should mention is that the angle parameter is used in 2 different ways - for trim curves such as on the circle that you showed there, but also on surface normals. So on a curved surface the surface normals at the corners of the quad are compared to each other to see if they are within the angle parameter or not.

- 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
4012.3 In reply to 4012.1 
Hi PP - also so for your #1 part regarding Angle - it looks like you're expecting a measurement from the center of a circle like this:



But that's not actually how the angle is measured - the angle is actually measured as the angle between 2 adjacent edges of the polygon like this:




The reason for this is that the mesher is meant to work on any kind of curved geometry, not only just circles, so it can't really focus on a measurement that only applies to a circular boundary alone (where there is some kind of separate center point taking part in the measurement).

Additionally as I mentioned before the angle parameter is also applied between 2 surface normals as well, and that also works in this way as a measurement more between 2 directions and not as a measurement from some other center point as you were showing.

Does that help to explain why the circle did not behave as you expected?


The way the formula for the measurement works on a circle is:
360 / your_angle = number_of_segments_in_outline , with rounding going up.

That measures your angle as the angle between the final segments, not the "sector angle" as I think you were looking at before.

- 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
4012.4 In reply to 4012.1 
Hi PP, so for your #2 - I tried to recreate your planes and I get a different result from you - here I what I get:



They all seem to be behaving the same over here...

Did you possibly create the skinny plane using some different method from the others? If it has a different kind of trimming curves or different underlying surface than the others that could cause a different in meshing.

Maybe you could attach a 3DM file of your planes so I could take a look at them.

And also just as a side note, the reason why you don't get exactly 1 unit sized polygons is that the "Divide larger than" acts as a tolerance value here, forcing divisions of things larger than that.

So for example in this case it gets divide in half first at the larger arrow, then again at the smaller arrow, etc.. until the results are under your distance value:



- 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
4012.5 In reply to 4012.1 
Hi PP,

> then I add a value "Divide larger than"/"plane" (polygons
> don't seem regularly created)

It seems like you may have created something that had some polygons that were just about exactly equal to your "Divide larger than" setting.

It's not unusual for floating point calculations on the computer to give a very tiny amount of fuzz which can put some values in your case just under your tolerance and others just above the tolerance. The ones that are just above the tolerance will then get subdivided.

For other situations you won't see that kind of a thing - for example here I created a cylinder which must be of some other size than your particular one, and I get this result instead:



So it's most likely related to the particular size of your cylinder causing some polygons created which are very close to your "Divide larger than" setting. For your case you should be able to avoid the problem by using just a very slightly larger value for your "Divide larger than" parameter so that your parameter does not come so close to some polygons that are being checked to be subdivided or not.



> When using 54°, polygons don't seem regularly
> created for both plan and curve :

That's going to be the same kind of a thing - some polygons were just slightly over the tolerance value and those ones get subivided into half.

One thing to keep in mind is that it's not possible for the mesher to just evenly subdivide everything in all cases because that would cause extremely dense meshes to be created on anything that has a just a little bit of irregular bumpyness in one localized area of a surface.

That's why there is this mechanism of a kind of "local refinement" to the mesher where it will subdivided quads into halves so that there can be more polygons in areas of surfaces that are more tightly curved and less in areas that are flatter.


I hope this helps to explain the results that you were seeing!

- 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
 From:  -Gwozik- (PP)
4012.6 In reply to 4012.5 
Thank you very much for this very instructive informations.
Now, I understand what firstly seems strange.
Trying to understand mesher principle really helps me to learn Moi export option.
Thanks

PS : Your software is terrific.
  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