Replication Guides

Hello Folks!
Reference to the script attached herewith, I want some help in replication guides for the problem.

Desired output:
All the u v points on the surface shall be laced with cross product to form a grid of points in u-v direction.

Problem:
Refer the image attached below:


I want to make gird points orthogonally on each surface as follows (as highlighted in the image):

  • The surface 0.0 & 1.0 in S-list shall have grid points using only sub-list-0 from both u & v list
  • The surface 0.1 & 1.1 in S-list shall have grid points using only sub-list-1 from both u & v list
  • The surface 0.2 & 1.2 in S-list shall have grid points using only sub-list-2 from both u & v list
  • The surface 0.3 & 1.3 in S-list shall have grid points using only sub-list-3 from both u & v list

Also note that the number highlighted in the image shall match in the end. Though I have got this, still I am facing issues in achieving the perfect set of grid points on the respective surface.

Request the experts to please guide me as I am a beginner learner of dynamo.
I have attached the dynamo file (written in dynamo sandbox 2.6) herewith.

Regards,

Wajed

Point at surface patch.dyn (39.8 KB)

Hello Folks!
I will re-phrase the problem statement once again to explain it better and simpler.

Surface list is a list of rectangular surfaces, and u-list & v-list are the list of points to be used for making points in both direction in a form of orthogonal grid.
Rectangular surface at index 0.0 and 1.0 in Surface list, corresponds to the set of numbers at index 0 @L2 of u-list and v-list.

  • numbers at index 0 @L2 of u-list and v-list (with cross product lacing) shall make points on Surface at 0.0 & 1.0 only. It means Surface at 0.0 & 1.0 shall not interact with the number other than 0 @L2 of u-list and v-list.

Likewise all other surface shall interact with their corresponding set of u-list and v-list only

In detail:

  • numbers at index 1 @L2 of u-list and v-list (with cross product lacing) shall make points on Surface at 0.1 & 1.1 only. It means Surface at 0.1 & 1.1 shall not interact with the number other than 1 @L2 of u-list and v-list.
  • numbers at index 2 @L2 of u-list and v-list (with cross product lacing) shall make points on Surface at 0.2 & 1.2 only. It means Surface at 0.2 & 1.2 shall not interact with the number other than 2 @L2 of u-list and v-list.
  • numbers at index 3 @L2 of u-list and v-list (with cross product lacing) shall make points on Surface at 0.3 & 1.3 only. It means Surface at 0.3 & 1.3 shall not interact with the number other than 3 @L2 of u-list and v-list.
  • numbers at index 4 @L2 of u-list and v-list (with cross product lacing) shall make points on Surface at 0.4 & 1.4 only. It means Surface at 0.4 & 1.4 shall not interact with the number other than 4 @L2 of u-list and v-list.

Hope this explanation is enough if both the posts are read.

Request the experts to help me in getting the output.

Regards,
Wajed

Try this:

  • List.Transpose to get the ‘surfaces for UV 1, surfaces for UV 2, etc.
  • Not sure if this is needed, but transpose the UV parameters to only get UVs for surface 1, UVs for surface 2, etc.
  • Surface.PointAtParameter node with @L2 and cross product lacing should work from there.
  • Once confirmed use node to code to find the correct design script syntax.

Hello @jacob.small !
Thanks for your response. I was busy with some other stuff, so tried it today itself. With List.Transpose node the lacing and replication got easier but still I didn’t got the appropriate points on the respective surface.
Also note that, with using node, I am unable to get the number of desired points. Instead with code block, I am able to get exact number of points. But the co-ordinates of the points are not right / desired.

I’ll once again try to clear my result product:
Now after transpose of surface list,
image

  • Surfaces in 0 List @L2 shall have points in cross product using points in 0 List @L2
  • Surfaces in 1 List @L2 shall have points in cross product using points in 1 List @L2
  • Surfaces in 2 List @L2 shall have points in cross product using points in 2 List @L2
  • Surfaces in 3 List @L2 shall have points in cross product using points in 3 List @L2
    I have used srf<1L>.PointAtParameter(u<1><2>,v<1><3>) replication guide in code block:
    Where,
    srf = Surface list
    u = u-list
    v = v-list

Hope I have explained well. Request Experts to please provide a solution

Regards,

Wajed
Point at surface patch 2.dyn (43.3 KB)

@sayyadwajed I am wondering if you made any progress with this? I am having to do the same thing and trying to find a solution.

Please let me know. Thank you!

@rab_i I have not received any solution for it, so just left it for a while… I’ll be revisiting the same after some time with cool mind…
Meanwhile if you get any solution, would request you to share here.

Thanks

uv = UV.ByCoordinates(u<1><2>,v<1><3>);
pt = srf<1>.PointAtParameter(uv.U,uv.V);

Point at surface patch_2020-07-02_12-20-12

Still the points are not replicating with the exact pair of U & V list. If you see the coordinates in 0 List, X ordinates are -0.375 but Y are -0.407 for two points. zero is correct for second point, but as it is a square surface, Y ordinates shall also be -0,375 only.

Thanks

Not sure if this is what you intended, this code does this …

surface [0][0] : grid of 9 points
surface [0][1] : grid of 9 points
surface [0][2] : grid of 4 points
surface [0][3] : grid of 4 points

surface [1][0] : grid of 9 points
surface [1][1] : grid of 9 points
surface [1][2] : grid of 4 points
surface [1][3] : grid of 4 points

The above image only shows only one column of the 9 points.
Please try the code provided in your file, the points should match your parameter list.

You’re right with the number of points. I tried in my code too, but the coordinates of points is not matching with my manual cross check calculations.
For detailed understanding of my intention, you may have look once more at post 4 in this topic.

Thanks.

Might not be your intent, but this is how the code I’ve provided above works on 6 square surfaces (in two sublists of 3 each)


SurfacesPointParameters.dyn (10.6 KB)

1 Like