Rebuild curves : a possible way to get a seamless curve in order to create seamless surfaces  1-20  21-24

Next
 From:  mkdm
7912.1 
Hi Michael,

i'm looking for a straight and efficient way to get this result, in order to create seamless surfaces :

1) Take whatever "control point" curve, or even" through point" curve, composed of more than one curve segment.
2) Obtain an exact copy of that curve, made by only ONE curve segment.
3) At the same time, the resulting curve must contain the EXACT number and position of control points of the original curve.
That is, the same topology.
THIS IS THE CRUCIAL REQUIREMENT.

In order to get such a result, i made some tests both in Moi and in Rhino, without achieve the wanted result.

In Moi and in Rhino i tried lofts, extrusions, sweeps, isocurve extractions from those surfaces, edges rebuilding and so on....

I tried also the DelCorners script by Max Smirnov too, but all these commands modify the topology of the curve.

The attached files shows one of the ways i tried, hoping that the explanation be adequately clear.

I'm sure that you'll give me a better and straightforward way to get what i'm trying to achieve.

Have a nice day,

Marco.

EDITED: 5 Apr 2016 by MKDM

Attachments:

Image Attachments:
Size: 1.4 MB, Downloaded: 168 times, Dimensions: 1918x1033px
  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:  Karsten (KMRQUS)
7912.2 In reply to 7912.1 
Hello Marco,
>>>3) At the same time, the resulting curve must contain the EXACT number and position of control points of the original curve.
That is not enough - You should have also the same parameterisation, corresponding knot vector, .....
And that causes the problem: e.g. a radius/circle has a spezial knot vector and parameterisation. The rebuild leads also to a swinging of the curve.
Could you explain were the problem is with the seams?

Have a nice day
Karsten


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:  mkdm
7912.3 In reply to 7912.2 
Hello Karsten,

Thank you for your reply, and also for your effort in illustrating the curvature analysis.

> Could you explain were the problem is with the seams?

Surfaces seams aren't basically a problem in themselves or in general,
but in some situations i explicitly want to build surfaces with the minimum complexity, in order to get less complex results.

The attached files illustrate an example of what i'm saying.

I hope that this example can better clarify what are my intentions.

Nice evening,

Marco.
Attachments:

Image Attachments:
Size: 955.1 KB, Downloaded: 100 times, Dimensions: 1917x1031px
  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:  Max Smirnov (SMIRNOV)
7912.4 In reply to 7912.3 
Hi Marco,

select curves and run this script ;)
code:
var fs=moi.filesystem, fl=fs.getTempDir()+'tmp.stp', gd = moi.geometryDatabase; gd.fileExport(fl); gd.removeObjects(gd.getSelectedObjects()); gd.fileImport(fl); fs.deleteFile(fl);

EDITED: 5 Apr 2016 by SMIRNOV

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:  Karsten (KMRQUS)
7912.5 In reply to 7912.4 
Wow!
Cool idea - chapeau!

Deeply impessed
Karsten
  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
7912.6 In reply to 7912.1 
Hi Marco, what is it that you are trying to achieve by doing that?

There would not really be any kind of "improvement" to your object by what you are trying to do, and in fact it would usually result in worse geometry because you would no longer have lines being turned into analytic plane faces when they were extruded, you would instead have a general surface object which would no longer benefit from more simplified calculations like intersections and projections.

Right now as a side effect, if you export your joined curve to STEP format, STEP does not have in it the concept of a segmented curve, so MoI combines the segments into one long spline curve, and when it reads it back it will only break it apart at sharp corners, so that almost does what you want except any line segments in the curve will become degree elevated to the highest degree segment which will make the lines have one or two additional points in them.

In the future I expect to have some curve merging mechanism built into MoI to do what you want, but for a case like you show here where you've got something constructed out of lines and arcs it is better to keep those as separate segments so you get planes and cylinder analytic surfaces when you extrude them.

- 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:  mkdm
7912.7 In reply to 7912.4 
Hi Max,

Thank you very much for your script!

As usual, your suggestions always reveal how deep is your know-how.

I certainly will use often your script, although it not do perfectly what i want.

To mean that, based on many tests i made, the number of control points of the resulting curve is clearly bigger then the original curve.

But now i better understand this behavior, thanks also to the Michael's reply.

Thanks a lot again!

Marco.
  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)
7912.8 
Sorry, how exactly works the last script of Max ?
Must I save first a file ? Make a shortcut? ...
---
Pilou
Is beautiful that please without concept!
My Gallery
  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:  mkdm
7912.9 In reply to 7912.6 
Hi Michael,

Thank you very much for your prompt reply.

But...i must admit that, although your indications were exhaustive,
they are doubtless for anyone who's more experienced than me in the nurbs's world.

Could you please translate the concept illustrated in the first part of your reply,
in a more concrete example or in a more easy language ?

> There would not really be any kind of "improvement" to your object by what you are trying to do,
> and in fact it would usually result in worse geometry because you would no longer
> have lines being turned into analytic plane faces when they were extruded,
> you would instead have a general surface object which would no longer
> benefit from more simplified calculations like intersections and projections.

I mean.....

As i tried to express in my previous post (http://moi3d.com/forum/index.php?webtag=MOI&msg=7912.3),
i thought that, as showed in the attached file example2.3dm and the relative picture,
the surfaces obtained without seams, or with the minimum amount of seams,
are better suited for filleting or boolean operations, for example.

Or that a surface without seam could be better rendered or could present a finer surface curvature continuity.

Is it correct to think that, having less seams in a surface, could lead to be able to
create things like fillets and blends, without the need of merging the edges ?

I'm sorry if i wasn't clear and i hope you have the patience to explain me the concepts that i misunderstood.

Thank you very much,
Marco.
Attachments:

Image Attachments:
Size: 955.1 KB, Downloaded: 43 times, Dimensions: 1917x1031px
  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:  mkdm
7912.10 In reply to 7912.8 
Hi Pilou,

> Sorry, how exactly works the last script of Max ?
> Must I save first a file ? Make a shortcut? ...

I simply copied the Max's code in a .js file, and saved it the "scripts" directory.
Also the "commands" folder is ok.
To use it, simply select the curves you want to elaborate and run the command.

That's all!

Ciao,

Marco.
  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
7912.11 In reply to 7912.9 
Hi Marco,

> But...i must admit that, although your indications were exhaustive,
> they are doubtless for anyone who's more experienced than me in the nurbs's world.

I mean that when a single line is extruded, it results in a plane surface, and it is represented internally by special type of surface sub-class which can simplify various calculations such as surface/surface intersection.

If you just extrude your original curve that are made up of lines and arcs, you will get these kinds of simple planes in the areas where lines were extruded.

In the case that you're trying to achieve, you will not have that type of structure, there will be just one general surface and it won't be represented by an analytic sub-class.


> I mean.....
>
> As i tried to express in my previous post
> (http://moi3d.com/forum/index.php?webtag=MOI&msg=7912.3),
> i thought that, as showed in the attached file example2.3dm and the relative picture,

Ok, but I'm not sure what that picture is illustrating - you've got 2 filleted results there, neither of which is ill formed, there isn't really any reason to consider the one with multiple segments to be worse than the other one...

Going through a bunch of hoops to generate the single surface one is not worth the time unless it solves some particular problem.


> the surfaces obtained without seams, or with the minimum amount of seams,
> are better suited for filleting or boolean operations, for example.
>
> Or that a surface without seam could be better rendered or could present a finer
> surface curvature continuity.

Well, maybe there is some confusion about the term "seams" - normally in NURBS modeling a "seam edge" is a special type of edge, one on a closed surface like a cylinder or sphere surface where opposite sides of the surface come together and touch each other. These can often times be awkward when it comes to filleting, especially for spheres.

But the things you are talking about trying to eliminate here are not "seams", they're just regular edges.


> Is it correct to think that, having less seams in a surface, could lead to be able to
> create things like fillets and blends, without the need of merging the edges ?

This is not automatically true in all cases, it depends on the particular situation.

For something that is made up of structured parts like a line and arc drawing that you are showing here, it is usually better to have a multi-face structure with one separate face for each line and arc, so that each surface can be represented by a plane or cylinder surface sub-class and utilize some more simple code paths.

For your case here, you would only want to eliminate all those edges if you were working around some specific problem, like there happens to be a tiny edge fragment left over after a boolean and that little tiny fragment was making it difficult to do filleting later. But those are things you would do just for the specific case that was causing the problem.

For the most general use case where you've got something structured with straight lines in it, I wouldn't recommend trying to eliminate the segmentation like you're asking about.

When you are doing a boolean with a sphere, that's a case where it can be helpful to position the sphere so the sphere's seam edge won't be sticking out just a tiny bit in the booleaned result.

But just because there are some cases here and there where it could help with avoiding fillet problem does not automatically mean that you should put a ton of effort into removing as many edges as possible on every single operation.

- 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)
7912.12 In reply to 7912.10 
@Marco
Thx for the explanation about the installation of script!

About your seams
just render an object with yours seams : you will see that they don't appear on your renderings! ;)


About the Max's script : can maybe useful when you want directly inside Moi a drawing with only surface + external / Internal edges ?

EDITED: 5 Apr 2016 by PILOU

  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:  mkdm
7912.13 In reply to 7912.11 
Michael, i would like to thank you for your deep reply!!!

> In the case that you're trying to achieve, you will not have that type of structure,
> there will be just one general surface and it won't be represented by an analytic sub-class.

Now i understand :)

> ...you've got 2 filleted results there, neither of which is ill formed, there isn't really any reason to consider
> the one with multiple segments to be worse than the other one.

Ok....maybe for me it's only for aesthetic reasons.

> But the things you are talking about trying to eliminate here are not "seams", they're just regular edges.

Thank's for the clarification. It was necessary!

> But just because there are some cases here and there where it could help with avoiding fillet problem
> does not automatically mean that you should put a ton of effort
> into removing as many edges as possible on every single operation.

I feel relieved to know that it's not necessary to put a lot of effort in order to remove as many surface edges as possible!

Now, some minutes ago, i made a little test involving 2 solids generated starting from
a traditional joined curve, composed by 2 straight lines and an arc,
and the other one obtained from the first curve, on which i applyed the Max's script transforming it into a single curve.

Well....the result surprised me 'cause on the classic solid the "shell" command
didn't work.

In the attached .png i tried to recap all the steps of the test.

If you want to spent again some minute to clarify this behavior, i'll thank you.

Nice night,

Marco.
Attachments:

Image Attachments:
Size: 1.1 MB, Downloaded: 98 times, Dimensions: 1915x1030px
  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:  mkdm
7912.14 In reply to 7912.12 
Hi Pilou,

> About the Max's script : can maybe useful when you want directly
> inside Moi a drawing with only surface + external / Internal edges ?

Well....interesting consideration...i'll think about it!

Thanks!

Ciao,

Marco.
  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
7912.15 In reply to 7912.13 
Hi Marco, unfortunately the shell command in the geometry library is not very robust, there are a lot of things that can get it confused. There is probably some case where it's the reverse from what you show.

But it is true that shelling can be simplified with more pieces that match up naturally edge-to-edge, so if you are focusing on using that it may be worth a try. But really if you need to do a lot of shelling, MoI's shell function is probably not going to do the job for you in many cases, so you may need to do your shelling in some other program for now.

Another way you could make things easier for shelling could be to build more of your part all from one larger Loft rather than doing it in separate pieces and blending, if you want it to look like one large flowing surface. See the attached file where I used Loft with the Loft style = "Loose" option to build the starting piece.

- 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:  BurrMan
7912.16 In reply to 7912.15 
Hi Michael,
I took Marco's file from this post here:

http://moi3d.com/forum/index.php?webtag=MOI&msg=7912.13

And shelled it .1 (He said it failed)

Doing a drilldown selection of that top surface, the success or failure can be achieved by the selection position.



Not sure if that can help you find anything on your end or not.

  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
7912.17 In reply to 7912.16 
Thanks Burr!

- 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:  danperk (SBEECH)
7912.18 In reply to 7912.16 
Here's an example of a failure with a simple fillet on a seamless curve.

Also, in most cases you'll find meshing for export works better leaving the seams as they are.

ymmv

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:  mkdm
7912.19 In reply to 7912.16 
Hi Michael and BurrMan,

Thank you both for your help!

From Michael's previous post :

> Another way you could make things easier for shelling could be to build more of your part
> all from one larger Loft rather than doing it in separate pieces and blending,
> if you want it to look like one large flowing surface.
> See the attached file where I used Loft with the Loft style = "Loose" option to build the starting piece.

Thank you very much for your suggestions and for giving me a different point of view.

Now....a strange thing that, believe me guys, is driving me crazy!

From BurrMan's previous post :
> And shelled it .1 (He said it failed)
> Doing a drilldown selection of that top surface, the success or failure can be achieved by the selection position.

Well....
I reloaded the file that i posted in http://moi3d.com/forum/index.php?webtag=MOI&msg=7912.13, and, worked on it many times....

As shown in this current attached picture (curveRebuild3_B.png), if i try to shell the original object marked as "Solid 1",
the shell command is always correctly performed, regardless of selected area on the top surface.

But...if i do the same thing on the cloned copy of the "Solid 1" the shell ALWAYS FAILS!!!
Also, like before, regardless of selected area on the top surface!!

WHY ?????

What the cloned object (copy...pasted or ctrl dragged from the original), has in it that leads the shell command to fail ???

At this point, i'm not understanding anything more...

Please help !!

Nice day to everyone,

Marco.
Image Attachments:
Size: 1.1 MB, Downloaded: 21 times, Dimensions: 1915x1030px
  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:  mkdm
7912.20 In reply to 7912.18 
Hi danperk (SBEECH),

and thank you for your help!

I wanted to do a try by myself and i got the results summarized in the picture example4_capture.PNG that i'm posting here.

In effect the shelling on the extruded object with no internal edges fails with a radius of 2 but works well with radius of 1.5.

I think that this behavior leverages on the internal more complex structure of the object without internal edges.

If i understood correctly Michael's explanations, in this case the internal edges, help Moi to achieving the task.

Nice day,

Marco.
Attachments:

Image Attachments:
Size: 1.3 MB, Downloaded: 64 times, Dimensions: 1910x1030px
  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

 

 
Show messages:  1-20  21-24