Geometric continuity of a whole curve

How to check the geometric continuity of a whole curve without clicking the Gcon command between each curve pair? I`m looking for a faster method.

For now I extrude surfaces from curves and check it with GlobalEdgeContinuity over surfaces but it takes so long, I need faster solution. I would like to get G1 curve.

we have CurvatureGraph within one curve, other then that there is nothing besides gcon for 2 curves. you could ask @Gijs if his tool could be extended to work for curves either.

1 Like

@Gijs Would you be so kind and in a future version of your wonderful tool (GlobalEdgeContinuity) make a support for curves check?

hi @mdesign thanks
I will not make that part of GEC, but I do like the idea.

1 Like

To check curves I also do trick that I extrude two curves to surfaces and after extrusion I try to do FilletEdge on edges (top should be closed). FilletEdge has ChainEdges option which could be set to Position or to Tangent. If all edges are selected then I know that a whole curve is G1. But those tricks are time consuming when you have to check 100 curves fast.

A script could be able to find all such joints and mark them with a text dot… Would that be useful? Do you want to find just G1 or all G0, G1 and G2?

1 Like

Thanks. In current job which I`ve finished yesterday I had to find G1 on more than 100 curves but I will have same job in next week.I did it with converting curves to surfaces and using GlobalEdgeContinuity plugin.

I think that find G2 also could be needed if you could produce g2 surfaces from g2 curves but as for now g1 gives me enough problems :slight_smile:

@mdesign if you just need a one shot check on a bunch of curves, then a more simple script, that marks G0, G1, G2 should be sufficient. I thought you wanted a persistent mode while you can edit the curves, that keeps track of any changes made to the curves. That involves more programming.

1 Like

Another trick is to join the curves before running _ExtrudeCrvTapered. Separate faces will only be produced where the curve joints are not G1 per the document 's angle tolerance. If the curve is closed, and only one surface is produced, also check the seam or the relative curve joint.

In V8, _ExtrudeCrvTapered’s option, SplitAtTangents, must be set to No for this to work.

1 Like

Here is a Python script to try out - let me know how it works for you.

Edit - fixed script here (with colors) (2.9 KB)

(only works on joined curves)

1 Like

this is brilliant but…

  1. I`ve corrected script a bit to change colors for every kind (2.9 KB)

  1. zoom in close and zoom out - dots are changing values and colors. Something wrong with refreshing. I’m not sure if it`s a script error or expected behavior but changing values is dangerous.

  2. How to delete text dots?

Idea is brilliant. Thanks a lot

That’s because the script isn’t working correctly - there are multiple dots at G0 and G1. Why?

The continuity checks include all lower levels, go G0 is just G0 but the G1 check includes G0 and the G2 check includes G1 and G2. I tried to exclude those by checking and eliminating the ones that are duplicated, but my method isn’t working correctly – sorry, I will fix that.

I can add the colors, no problem.

One way to be able to delete the dots efficiently would be to perhaps group them - by individual curve or by continuity type or just all? (if you do a SelDot and delete you risk to delete other dots in your file)

It’s a car grill curve so its built from a long spaghetti curves but there should be only G1. I`ve put G0 for tests only. One long curve can cointan 100 G1 and few G0s mostly. That curve looks like long spaghetti which build grill crossbar. I’ve done a few so far but I would like to make it faster.

To delete all text dots I hit Ctrl-Z :slight_smile: . When I do not scroll in/out then it works perfectly :slight_smile: Chat GPT helped me add colors to your script but it was almost too much for it :wink: fortunately I know python a bit to correct him. I asked it cause I didn`t knew how to do those dots coloring.

You need also check G2 cause GCon command in G2 places shows me G1 so I don`t know why script tells that G1 is G2. Detection of G1 and G0 is correct.

On a side note: when are we getting a gcon that recognises continouities over g2?
This is curious as blendcurve and blendsurface have continouity options of up to g4.

1 Like

I edited the post above with a something that should work better - my logic was simply wrong.

1 Like

Brilliant. Works like a breeze :slight_smile:

Even with zoom in and zoom out all is ok.

Thanks a lot. I will use that everyday :slight_smile:

I would like to say that I love text dots as indication if product of a tool is right or not. Even if you are sleepy all is well visible :slight_smile: niiice