To many controlpoints

Next
 From:  Paolo (PAOLOLOBBIA)
1844.1 
Hi Michael,

I have a problem with the surface wich you
can see on the first picture

It seems to me the surface has to many
controlpoints

I used the same curves in rhino40 with
networksurf with a better result(third picture)

Question : in the future can it be possible
to reduce the controlpoints

EDITED: 24 Oct 2008 by PAOLOLOBBIA

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:  DannyT (DANTAS)
1844.2 In reply to 1844.1 
Wow! Paolo, more like uncontrolled points. ;)

Don't ask me why, Michael will probably give you the technical explaination, but it's something to do with tolerences because of the size of your model, change your units to 'cm' and redo the surface, you get less control points, if you change the units to 'meters' and redo the surface you get even less control points.

Cheers
~Danny~
  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:  Paolo (PAOLOLOBBIA)
1844.3 In reply to 1844.2 
Thanks DannyT,

Changing units to 'meters' did the job very well.
  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:  tyglik
1844.4 In reply to 1844.1 
Hi Paolo,

>>I used the same curves in rhino40 with networksurf with a better result(third picture)

Hmmm.. but what was the tolerance settings? When you set the tolerance for Rhino's NetworkSrf command to:

edge curves: 0.001
interior curves: 0.1

you get the same 'bad' result for your input curves.

The structure of those curves is somewhat inappropriate for the network command...

I think when you changed a units and allow object to re-scale on unit system change in MoI, then you were actually creating a geometry using tolerance 1mm (1 meter multiplied by 0.001).

Petr
  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
1844.5 In reply to 1844.1 
Hi Paolo,

Yes as Danny mentioned the problem here is the large unit size of your object (about 6000 units in width) in comparison to the normal fitting tolerance of 0.001 .

For that size, 0.001 is too tight of a tolerance, it is just too small in comparison to the object and will generate all those many points to try and achieve a level of accuracy that is too high.

For now if you use a smaller unit size (either changing units or scaling your objects down) it will work a lot better.

I've also just updated Network to use the new relative tolerance mechanism, which adapts the fitting tolerance to the size of the object.

It solves this problem and makes your original Network in this case produce a good result. That will be in the next beta release.

- 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:  DannyT (DANTAS)
1844.6 In reply to 1844.5 
That's great, Michael.

Sounds like the new relative tolerance mechanism is coming along nicely.

I think a few of us do model to scale and this would help a lot, especially in cases where we have large models then go down to smaller details which require smaller units.
Is this what the new relative tolerance mechanism is designed to do?

-
~Danny~
  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:  tyglik
1844.7 In reply to 1844.5 
Hi Michael,

I still think the issue is not only a matter of object size. I have never got so awful complex surface in Rhino, although I'm using even tighter tolerance for NetworkSrf when modeling an aerodynamic part of x-meter long rotor blade or propeller. It must be also related to the particular structure of curves.


>>I've also just updated Network to use the new relative tolerance mechanism

I don't know how this new mechanism works but I think there is a kind of things which need keeping exact shape, no matter what their size.


Petr
  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
1844.8 In reply to 1844.6 
Hi Danny,

> I think a few of us do model to scale and this would help a lot,
> especially in cases where we have large models then go down
> to smaller details which require smaller units.
> Is this what the new relative tolerance mechanism is designed
> to do?

Yeah - basically it will allow things that need a fitting tolerance to work better when the object is of a larger unit size. The original problem in this thread is a good example of what this is designed to solve.

When you have an object of say 10,000 units in size, then in comparison to that the regular fitting tolerance of 0.001 is just too tiny in relation to the object. It is the same thing as trying to get a level of 0.0000001 accuracy on a "regular" sized object.

That tends to cause problems with creating very dense results, because the algorithms that calculate refitted things will keep refining things until they hit that level of accuracy.

- 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:  Paolo (PAOLOLOBBIA)
1844.9 In reply to 1844.4 
Hi tyglik,

I used the parameters you gave me in rhino40 :
edge curves: 0.001
interior curves: 0.1

the picture shows the result

Before DannyT gave me the solution (changing unit size in meters)
i worried i little bit seeing that surface error,and concluded that
even in moi3d,Nurbs have their limits.

I tried to use Sweep with two curves it didn't get any better

I still consider the information you gave me and will use it,
to make better surfaces ,thanks!

Michael, thanks for your info

Here you see the progress:

EDITED: 24 Oct 2008 by PAOLOLOBBIA

  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
1844.10 In reply to 1844.7 
Hi Petr,

> I don't know how this new mechanism works but I think there
> is a kind of things which need keeping exact shape, no matter
> what their size.

Some construction methods do generate exact results and don't have a refitting process in them at all, for example Loft with "Exact profiles", extrusions or Revolve.

Those operations aren't affected by size.

But things that involve refitting just do not function well when the fitting accuracy is more than about 4 or 5 orders of magnitude smaller than the size of the object. The results are just too dense.

If you need to make something like 100,000 units in size but also accurate down to 0.001 units small at the same time, that just does not really work with any fitting-based algorithms. If that kind of large size plus tight accuracy is important to you, you have to stick with the tools that do not use any refitting in them, or possibly you might need to use a different kind of modeling technology entirely.

I could also possibly put in some kind of override option so that you could turn off the relative tolerance if you needed to... But before adding in a bunch of stuff for that it would help for me to see any examples of things where the relative tolerance was causing 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:  tyglik
1844.11 In reply to 1844.10 
Hi Michael,

I am not biased towards any (hidden) fitting mechanism. I just like to have an accuracy under the reasonable amount of control.


>>Some construction methods do generate exact results and don't have
>>a refitting process in them at all, for example Loft with "Exact profiles",
>>extrusions or Revolve.

Does it mean that loft command doesn't mess with any kind of tolerances at all? In other words, when I loft a set of curves then scale those curves and loft it once again, both of those resulting surfaces should have the same number of control points?


>>The results are just too dense.

That's a question whether it's caused by "failure" of fitting-based algorithm or if it is just necessary to have such a number of control points in order to desribe given shape accurately.


>>any examples of things where the relative tolerance was causing problems.

How can I recognize it is causing problems? It will be "inaccurate". That's all. (exactly speaking, there will be no chance to figure out how accurate it is).
Okay. I guess MoI wasn't supposed to get on in aeronautical industry, designing wind turbine or something like this... and I am quite happy with Rhino to make such weirdnesses as this...


Petr


ps: I am sending you a file with a very complex profile curves via e-mail. You can use it to see a difference between lofting in MoI (Normal | Exact) and Rhino (Normal | Do not simplify) and for testing modificated network command.
  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
1844.12 In reply to 1844.11 
Hi Petr,

> I just like to have an accuracy under the reasonable amount of control.

The way the adaptive stuff works, is that there is actually no change at all for objects that have a bounding box diagonal between 1 and 50 units in size. Objects in that size range get a tolerance of 0.001 units, same as in moi v1.

As the object gets larger in size than that, a value will be used of 1e-5 (0.00001) times the diagonal length (but not smaller than 0.001).

This lets the tolerance grow if the object becomes larger in size.

But the tolerance will still be a small fraction of the size of the object.

If you need to create an object with fitting accuracy of smaller than 1/100000 the size of the object, you will probably need to use some kind of specialized software to do it, that would just be a rather unusual amount of accuracy needed.


> Does it mean that loft command doesn't mess with any kind
> of tolerances at all? In other words, when I loft a set of curves
> then scale those curves and loft it once again, both of those
> resulting surfaces should have the same number of control points?

Actually, I'm sorry - I forgot that there is a tolerance involved in Lofting with the "Exact" method as well. The way the Exact method works in MoI is after all the curves have all the knots for all the other curves added into them, there is a simplification process where excess knots are removed to reduce the control point count in the created surface, as long as each removed knot does not alter the curve's shape by more than the tolerance amount.

This helps quite a lot to reduce dense control point counts, like in the example that you sent to me in e-mail, Rhino produces a surface with 1900 control points in one direction, while MoI produces only 100 points in the same direction, the reason why is because of this knot removal process.


> That's a question whether it's caused by "failure" of fitting-based
> algorithm or if it is just necessary to have such a number of control
> points in order to desribe given shape accurately.

Certainly it would be possible for the fitting to use fewer points, but it is hard to use the totally optimum number of points without some kind of artifical intelligence.

But like I mentioned before, trying to hit an accuracy of 0.001 units on an object that is 10,000 units in size is the same thing as trying to hit an accuracy of 0.0000001 units on a regular sized object. It will not be at all unusual for it to require a significant amount of extra refinement to hit that kind of accuracy.

It easily leads to very overly dense results which create huge file sizes and consumes a very large amount of memory.


> How can I recognize it is causing problems? It will be "inaccurate". That's all.

Everything involving fitting will be inaccurate to a particular tolerance.

If you need perfect accuracy, you probably shouldn't be using a computer at all, the numbers on a computer are represented with a finite amount of memory, they don't generally hold perfectly "accurate" results for anything, even just dividing 2 numbers with each other.

It is all accurate to within an acceptable range of error though, this is the same kind of thing.

- 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:  tyglik
1844.13 In reply to 1844.12 
Hi Michael,

>>If you need to create an object with fitting accuracy of smaller
>>than 1/100000 the size of the object

Well, it is an extreme case. I was talking about something like 1/4000.


>>It is all accurate to within an acceptable range of error

I agree. There is no argument about that. Except, how can MoI know what is the acceptable error (only designers know what is the aim - model for visualization, machining or cmm inspection). But you explained how accuracy is determined and it is sufficient for me for now.


>>Actually, I'm sorry - I forgot that there is a tolerance involved in Lofting with the "Exact" method

Yes. I like (exact) lofting in MoI. It seems to eliminate not only number of control points but also a "wavy isocurves".


Petr

ps: By the way, will be V1 and V2 compatible considering solid objects with that new relative tolerance included in joining process (Join command)?
  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
1844.14 In reply to 1844.13 
> Well, it is an extreme case. I was talking
> about something like 1/4000.

I think that should be pretty well covered by this mechanism... The only other case is if you make your object actually smaller than 1 unit in size, that will instead try to shrink the tolerance down to 1/100 of the size (but not more than 0.001).


> Except, how can MoI know what is the acceptable error (only
> designers know what is the aim - model for visualization,
> machining or cmm inspection).

Yeah, that is kind of a general problem...

I've kind of tried to slant somewhat towards the "more accuracy" side by default a bit, you may remember that earlier in the v1 betas it was set at 0.01 and then knocked down to 0.001 ...

But too much accuracy causes problems as mentioned in the original message of this thread, so it needs to get relaxed somewhat for larger sized models.

It would seem at first that giving you a setting for the tolerance level would be a good solution, that's what happened in Rhino. Unfortunately it causes an whole host of problems to do that, weird stuff like you get a model that has the tolerance set really relaxed, you open it to take a look at stuff, then delete some objects and try drawing a new object at a different scale, and get weird results.

It is hard to remember to check what tolerance was set every time you open someone else's model.


> ps: By the way, will be V1 and V2 compatible considering solid
> objects with that new relative tolerance included in joining
> process (Join command)?

Yeah that will work fine - it will only change the Join calculation itself, once something has been joined and has shared edges, it will be considered a solid in v1 as well.

- 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:  kevjon
1844.15 In reply to 1844.14 
I like to model things in MoI to scale which means I am often working with objects that around 1800cm big. Is there a way in MoI to set the accuracy tolerance to suit the scale of your model ?

I couldn't find it in the options.
~Kevin~
  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
1844.16 In reply to 1844.15 
Hi Kevin,

> Is there a way in MoI to set the accuracy tolerance to suit the scale of your model ?
>
> I couldn't find it in the options.

There isn't any direct option for it, but I have been working on a new mechanism for MoI v2 which will scale the tolerance to match the size of your model automatically.

In the current v2 beta it is applied to the Join command. For the next beta also Network will have it and I will be gradually enabling other commands to use it as well over the next few betas.

- 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:  kevjon
1844.17 
Thanks Michael

Ok, I understand it now.
~Kevin~
  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