The goal of this project is to create a Rhino command that merges surfaces that have at least 2 linear edges. Everyone that wants to can work on it. Just post your thoughts and gh files in this thread. So far I have run into a few issues that need addressed.
I dont think that the below is supposed to look like that
Currently it cannot do open poly surfaces. Which is very annoying, and personally I think that most people would find it useless because of that.
It needs to be able to delete the referenced sub surfaces and then join the new surfaces to the poly surface. I assume this needs some python which I am terrible at.
Not sure if this should have gone in the Rhino for Windows section. Maybe we will need a Custom Rhino Commands section one day.
I still donât understand what youâre really trying to do ⌠but sounds kinda like it violates the laws of NURBS mathsâŚ
âmerge non-planar adjacent facesâ? ⌠including ânon-rectangular/trimmedâ ⌠I remember wanting V4 to do that
Iâve spent countless hours of my life âmergingâ surfaces together. I learned alot about how non-similar and non-compliant isocurve compositions can make things really messy, hence not really work.
Eventually I went down the path of networking things together, and focusing on the curve networks that do exactly that. On occasion, there are times when it might be better to create a network that is intended to be âtrimmedâ, but thatâs a bit more complex at times, due to the strange phantom nature of trimmed nurbs data off in space â long story short.
Well I guess that makes alot of sense. Really i am trying to get rid of seams in champhers and on my curved beams by making 1 nurbs surface. Of course i may be wasting my time. Thank you for your input @lander ! It is much appreciated.
Good morning @lander !
Just looking to try and see if I am understanding you correctly.
So are you saying that this is not possible? Not to be annoying but it seems like it could be one single nurbs surface? Like taking to cylinders and joining them together. You are left with a seam at the joint. But both cylinders could be one single cylinder right? I am probably just misunderstanding the way nurbs works.
Granted that it could probably be avoided by better modeling practices.
Iâve spent enormous amounts of time on this stuff, and still am probably scratching the surface.
The way I see it, is these NURBS surfaces are like 4-sided fabrics composed from polynomial curve networks. So, they donât really like being cinched together and their sides donât really like being zero-length â although you can bend the rules from time to time and get away with some fancy things.
It all depends on the behavior you need relative to an edge and the behaviors are different depending on whether edges are trimmed or not, etc.
So, a sphere is a good example of a surface that has two sides of zero-length thatâs wrapped around onto itâs self and literally matching two of the remaining sides âtangentiallyâ to itâs self â itâs kinda crazy
I modified this one to make the information more obvious.
Some might say âit is more correct to say curvature continuousâ or something or G2 idk
I use the word âtangentâ very broadly for anything thatâs smooth transition lol
So, normally itâs pretty difficult getting surfaces to be smooth when you bend these rules and smash or cinched things around, altering surface edges and isocurves in such a way where things can get scrambled up into a mess sometimes.
A cone, is an example where only one side is zero-length â just another example of how these ârulesâ can be bent. Cause how can a surface edge have zero length? lol
When these NURBS want to really be 4 sided, itâs fun trying to force them to be 3 sided or 2 sided
Isocurves are key to understanding the potential networks that can comprise surfaces â usually thereâs many different ways to comprise the same surface.
My favorite âwork modeâ (display mode) settings to use, will display the isocurves and edges in such a way where I see exactly what is what and their directions â at a glance. So, while Iâm constructing different things I see as much as the information as possible.
I usually never modify the âdensityâ of isocurves (above density 1), because Iâm more interested in the âtrueâ display of the underlying curve networks of surfaces. So, the density changes in my above examples are due to actually ârebuildingâ the native geometry.
So, depending on how you want the final results to be, you might want to do one of like 5 different possibilities:
1.) merge the surfaces for a quick and dirty approach â risking possible distortion.
2.) recreate the geometry and take âextrusionsâ further or âsweepsâ âloftsâ etc. â and try reducing the numbers of seams maybe.
3.) moving seams around cause sometimes a trimmed surface could also have the seam trimmed out to your advantage â you just have to move the seam prior to the trim.
4.) think completely in terms of the curve network you need to create exactly what you want in the final result â potentially dealing with the need to trim later.
5.) follow the rules of UV degree or maybe completely bend the rules â sometimes itâs good to make a straight side straighter with the guarantee of a degree-1 polynomial, but sometimes it might not matter and degrees 2 or 3 are fine if straightness or roundness only has to be ârelativeâ versus âexactâ.
Even a âtrueâ circle isnât really âtrueâ in this realm of NURBS â they be bending the rules with control point weights nâ stuff
If you have two surfaces that are straight perpendicular to the common edge and are not trimmed then you can certainly convert them to a single surface. MergeSrf does that, but only with two surfaces at at time. You can follow up with a Rebuild to reduce the linear degree to 2.
Wow! Thanks @lander !
That is very informative! Thank you for taking the time to answer all that for me and for going so far as to make demonstrations for me! Love your explanations!
I may have a new saying. When in doubt, ask Lander
5 stars!
Thanks @jeremy5
That makes sense. I did not realize that it had to be an untrimmed surface. Although it wont quite work for my application, it is good to know. So thanks!