Displaying / Matching ends of curves
 1-20  21-28

Next
 From:  TOM (SIRTOM)
8468.1 
Hi,

I deal a lot with objects with many joining curves where the joining ends must perfectly
match in one overlapping point for a perfect result.

While building up the object thus using with the snap function I realize that more than often
the endpoints of the curves do match perfectly end in one common point but are slightly apart.
(attached image)

So before creating surfaces I have to zoom in at each point to find out if the ends merge
perfectly in one point or not. With many objects built up of similar network of
curves this zoom in procedure at each endpoint gets time consuming.

So I am searching for a function within MOI which -after selcting the respective curves - displays
all the matching ends. It would be easy to identify all the not matching ends and a great time
save not to have to zoom in at each of the joining ends each time.
(image attached)

So is there a function / script hidden somewhere ?




EDITED: 13 Jun 2017 by SIRTOM

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:  Frenchy Pilou (PILOU)
8468.2 
Before a specialized script maybe use Edit / View Points ?
---
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:  TOM (SIRTOM)
8468.3 In reply to 8468.2 
Hi Monsieur Pilou,

As far as I know, "show points" only displays all points.

What I look for, is a display of endpoints of two or more curves, which
are located at exact the same coordinates, see attachment.
  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)
8468.4 In reply to 8468.3 
Sure, it was writed "before a specialized" plugin! ;)
It was maybe possible a palliative!
  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:  TOM (SIRTOM)
8468.5 In reply to 8468.4 
" It was maybe possible a palliative! "

What do you mean by palliative, 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:  bemfarmer
8468.6 In reply to 8468.1 
For a preliminary investigation of the possibilities, the following scripts and posts may be relevant.
_MarkCurveStart
_MarkOpenCurveStart
_MarkCurveEnd
_MarkOpenCurveEnd
So the endpoints can be obtained.

_PointCoordinates3, currently displays point coordinates for one point. Perhaps could be modified to compare two points, within a tolerance distance,
to see if they are identical to n decimal places, another tolerance.

http://moi3d.com/forum/index.php?webtag=MOI&msg=7457.11
http://moi3d.com/forum/index.php?webtag=MOI&msg=7056.2
http://moi3d.com/forum/index.php?webtag=MOI&msg=7323.4

I guess zooming way in runs into pixel display issues?
Does a closed curve have identical start and end points, or is there a tolerance?
Do two curves intersect, or just pass very close together?

- Brian
  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
8468.7 In reply to 8468.1 
Hi Tom, please try the attached script, hopefully it does what you're looking for. Instructions for installing a plug-in are here.

- 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:  TOM (SIRTOM)
8468.8 In reply to 8468.6 
I appreciate your tips, Brian, thank you very much !


>>I guess zooming way in runs into pixel display issues?
>>Does a closed curve have identical start and end point>>s, or is there a tolerance?
>>Do two curves intersect, or just pass very close together?

I attached an image to explain

TOM
Image Attachments:
Size: 295.6 KB, Downloaded: 28 times, Dimensions: 4857x1200px
  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:  TOM (SIRTOM)
8468.9 In reply to 8468.7 
>>please try the attached script<<
The amount of support provided her is almost scary ;-)
THANK YOU, I am delighted !


There is a related topic here which I very often stumble upon :

I draw 2 curves and they should have one point in common where both of them
touch each other in identical coordinates>> see attachment

To get this done I move nearby points (symbolized by the green arrows in the attachment)
until I guess (zooming in and rotating around) that the 2 (or more) curves do now touch each other in exactly one point.

Is there a better technique than the one described to achieve that ? And :

Is there a better way to control the "perfect match" than zooming in - maybe as
done in your last "little script" ?

EDITED: 13 Jun 2017 by SIRTOM

Image Attachments:
Size: 84.5 KB, Downloaded: 23 times, Dimensions: 1412x1200px
  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:  bemfarmer
8468.10 In reply to 8468.7 
Installed plugin as Alt+G (for example)
Added script to MoiCommand folder.

Select two curves, hit Alt+G.
If two start/end points are, (measured with CustomDistance,) at a distance less than tolerance, a point appears.
If distance is greater than tolerance, no point appears.

Question for Michael:
When selecting a curve with the mouse, is the ability to identify the nearest end to the selection point, (as Blend is able to do for 2 curves,)
available to javascript?

- Brian
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:  TOM (SIRTOM)
8468.11 In reply to 8468.10 
Will give it a run inmediately tor test!

EDITED: 13 Jun 2017 by SIRTOM

  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)
8468.12 
With the Michael one "MarkCurveMatchingEnds"
As I suppose the polygon has only one Start End...(itself alone don't works (as not considered as a curve ? ) )

(here 5 simple curves and 1 polyline)



so 5 connections if matching! :)

http://moiscript.weebly.com/uploads/3/9/3/8/3938813/only_1_point.3dm

EDITED: 13 Jun 2017 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:  TOM (SIRTOM)
8468.13 In reply to 8468.12 
Hi Pilou,

In my test run all matching points where displayed.
  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)
8468.14 In reply to 8468.13 
Test with the file linked above ! ;)
Works if I "Separe" the polygon!
  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
8468.15 In reply to 8468.9 
@Tom - one thing I forgot to mention is that the way it works is it looks for endpoints within 0.00000001 of each other, not exactly equal. Usually it's not so good to compare floating point numbers for exact equality because it's normal for very very small differences to be there. But if you want you can adjust the tolerance value in the script. I'll reply to your other question in a separate post.


@Pilou, re:
> so 5 connections if matching! :)

If you use Edit > Separate on the polyline it should then work like you're asking I think.


@Brian, re:
> When selecting a curve with the mouse, is the ability to identify the nearest end to
> the selection point, (as Blend is able to do for 2 curves,) available to javascript?

Sorry no it's not accessible to script currently. If you can remind me about it again once v4 betas are underway I can add it.

- 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:  TOM (SIRTOM)
8468.16 In reply to 8468.12 
Pilou, you had the segments of the curves connected. for the script
to identify points there should be points ;-) see attachment
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:  TOM (SIRTOM)
8468.17 In reply to 8468.15 
<< @Tom - one thing I forgot to mention is that the way it works is it looks for endpoints within 0.00000001 of each other, not exactly equal. Usually it's not so good to compare floating point numbers for exact equality because it's normal for very very small differences to be there. But if you want you can adjust the tolerance value in the script>>

This tolerance should be by far enough in order to create perfectly smOoth surfaces out
of the curves.

The goal is to avoid bigger gaps as the surfaces created would have wobbling edges
  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
8468.18 In reply to 8468.9 
Hi Tom, re:

> I draw 2 curves and they should have one point in common where both of them
> touch each other in identical coordinates>> see attachment

Do you mean that the curves currently don't touch in the z direction and that's where you're adjusting them?

Can you please post the 3DM model file for your example?

Maybe working with just half of your adjusting curve so that it had an endpoint where you wanted it to touch could work better, then you'd adjust the last 2 points and move the endpoint right onto the spot you want it to touch, then mirror or rotate a copy of it to get the other half.

Right now it's difficult to adjust some point on the curve that's not an end or corner point like that, although when you have control points of a curve turned on you can drag directly on the curve to move the point on the curve to another location but there isn't a way to grab the midpoint of the curve as the spot being located.


> Is there a better way to control the "perfect match" than zooming in - maybe as
> done in your last "little script" ?

Sorry I don't understand this part, are you talking about the endpoint marking script?

- 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:  TOM (SIRTOM)
8468.19 In reply to 8468.18 
>>Do you mean that the curves currently don't touch in the z direction and that's where you're adjusting them?
Can you please post the 3DM model file for your example?<<

I attached an example. The points show where the curves should intersect in a way that they share
a common point (within the tolerance you have talked about in your former post)>>Right now it's difficult to adjust some point on the curve that's not an end or corner point like that<<

Thats what I mean. When working with curves located in a 2D plane it is easy but when the
curves are "freeform 3D", it is a challenge to arrange them in a way that they touch each
other in exactly one point. (I use to zoom in and move them around with the Nudge script at very low
values till I visually guess there is no gap left between them.>> Is there a better way to control the "perfect match" than zooming in - maybe as
done in your last "little script" ?
Sorry I don't understand this part <<

It is not easy to know if the curves do touch each other as close as possible or if there is a remaining gap between them.

So I thought if it maybe possible to run over a script similar to "MarkCurveMatchingEnds"
which will "DisplayCurveCommonPoints" to ensure that the respective curves do indeed
touch each other in one point.

But it may not be possible as there are no "real points"

Sorry its a bit difficult to explain ,,,
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
8468.20 In reply to 8468.19 
Hi Tom, re:

> So I thought if it maybe possible to run over a script similar to "MarkCurveMatchingEnds"
> which will "DisplayCurveCommonPoints" to ensure that the respective curves do indeed
> touch each other in one point.

If I understand you correctly, you can select the 2 curves and use the Construct > Curve > Isect command which will intersect the 2 curves and should give a point object at areas where the curves are within 0.001 units of each other. I'll take a look at your file here next.

- 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

 

 
Show messages:  1-20  21-28