I’m attempting to apply the pattern, as shown in the first image, but when i try to make it uniformly across the panels it seems that the UVs might be getting distorted. Do you have any suggestions on how to fix this issue?
The best way is going back to original rectangles, making holes there, trimming away the panel corners, ditching the unwanted holes.
If you make holes at this stage, it will be very hard.
Hello
UV by default just indicate how the surface is constructed but they don’t carry other information. One way could be to make a “big” whole rectangle and apply the points on it
Rectangle could be distorted also
There is no reason to expect surfaces of different sizes and shapes to have any alignment of their UV patterns. Also, dividing small surfaces by the same U and V counts as larger surfaces won’t align at all.
I don’t have Pufferfish so @laurent_delrieu’s solution doesn’t work for me. Instead, I went to rather extreme lengths (white and purple groups) to achieve similar results. In the process, I derived the reference line used by Crv CP(yellow group), so used it instead.
SrfSplit is slow (12.5 seconds) using 6K circles (four times more than before) so is disabled. A bit surprising that Equals takes 4.1 seconds but considering it’s looking at 568K integers, it’s OK. Still, there might be ways to speed up the combined InCurve and Equals components?
P.S. OH Seeing the circles (holes) that overlap the edges, it occurs to me that maybe the PolyOffset ‘H’ output is only to filter holes and that the original curves shoud be considered the surface edges? I had to graft the PolyOffset ‘P’ input to get the ‘H’ output to match.
thank you laurent this is really simple method for applying patterns to complex shapes! but just don’t understand why there is issue in the normals even they looking at the same direction.
thanks joseph i think this is working for my case after flattening the output of the cull pattern.
however this trick culling the points near to the edges is awesome! but didnt understand why number 2 what is 2 representing to ?
What? Oh, I see now. You want the “gradient pattern” to ignore the panels. That increases the profiler time for SrfSplit from 12.5 seconds to 3.1 minutes There might be a better way to organize the code for that result?
Looks like some of these panels are flipped due to different perimeter curve directions?
Huh? Oh, you mean the panel “2” connected to the Equals ‘B’ input? Does this answer your question? InCurve ‘R’ output has three possible values: 0, 1 and 2. You could try != 0 instead.
This version flips perimeter curves so all panel surfaces face the same direction. And uses a faster algorithm (BrepInc) to associate points with each panel, which makes cutting circles much faster.
oh wow this is way better thank you!
one last question about this process i’m curious if its possible to edit the uv points direction? i tried to rotate the divided points but it didnt work as i expected
Too late, you did a great job helping Ahmed.
Here a version without Pufferfish, bounding rectangle is replace by bounding box and rectangle !!! I was a bit lazy.
And here the way to align the plane use a curve/vector of the initial panel.
Yeah, choice of edge curve for aligning the plane was somewhat arbitrary. Adding rotate plane later has complications I didn’t mention - U and V counts need to be swapped when rotating 90 degrees.
The other thing I spent some time on was speeding up SrfSpilt by organizing the points (and circles) to match the grafted list of panels. Less work for SrfSpilt so it’s faster.
Still waiting for your latest to finish cutting holes but did nothing to prepare it either so will give up.
I frequently need several versions of a GH model to fully understand it and get something optimal, preferably with breaks in between for a walk, sleep, cooking, a shower, etc. One of the last posts in this thread asked “if its possible to edit the uv points direction?” and I responded quickly with rotating the plane that is the basis for the UV points, knowing that rotation distorts the distance between UV points.
In my New Year’s Eve dreams, I was inspired by a new idea - scrap the UV points completely and rotate a grid of points created with SqGrid or RecGrid. There are some new ideas here, along with some “old” ones from previous versions. Four sliders illustrate the most important concepts:
‘Edge Align’ and ‘Edge Attractor’ choose which edges to use for those functions. ‘Edge Align’ selects which edge (White) to use for initial alignment and ‘Edge Attractor’ selects which edge (Blue) to use for measuring distance with Crv CP, which affects the fade direction.
The ‘Angle’ slider rotates (±180 degrees) the grid of points relative to the initial alignment determined by ‘Edge Align’.
The ‘PtSep’ slider sets the distance between points from SqGrid. Performance is best when the distance is high since there are fewer points. When all other parameters are satisfactory, the ‘PtSep’ slider value can be reduced, creating more points.
I’ll leave it at that and hope the other features of this model are self-explanatory. Performance is good!