Placing beams on corrugated surface

Translated by moderator. Original post below the line.


Good afternoon.
I am trying to place beams on a corrugated surface but I really have no idea how to do it, the only thing I have achieved is to pass the surface to Dynamo, can you help me to solve this please?


Original post below


buenas tardes.
estoy tratando de colocar vigas en una superficie ondulada pero la verdad no tengo idea de como se puede hacer lo único que he logrado es pasara la superficie a Dynamo me pueden apoyar para poder resolver esto por favor

@gerardo.romeroHE9DJ welcome to the forum!

The official language is english, so please translate all posts as I did in the edit above. This is a technical requirement to get search working across the community.

Also, the images you tried to post didn’t go though, as the preview didn’t finish processing before you hit ‘post’. Can you post them in the next reply? Be sure to preview before posting so that things work correctly.

Thank you very much for the observation, placed on this same message the image in which I want to place the beams.

Good evening,
Here is a possible track (Not necessarily the most optimized)
we must be able by Isoline on the surface (But I don’t really know how to make the inclinations of the mesh)
So I created a curry


Cordially
christian.stan

A design script method utilizing UV values:

The design script to pull the UV values along the perimeter:

toOne = 0..1..#cnt/2;
fromOne = 1..0..#cnt/2;
zeroPad = List.OfRepeatedItem(0,cnt/2);
onePad = List.OfRepeatedItem(1,cnt/2);
u1 = List.DropItems(List.Join([toOne,onePad]),1);
v1 = List.DropItems(List.Join([zeroPad,toOne]),1);
u2 = List.DropItems(List.Join([zeroPad,toOne]),1);
v2 = List.DropItems(List.Join([toOne,onePad]),1);
u3 = List.DropItems(List.Join([zeroPad,toOne]),1);
v3 = List.DropItems(List.Join([fromOne,zeroPad]),1);
u4 = List.DropItems(List.Join([toOne, onePad]),1);
v4 = List.DropItems(List.Join([onePad, fromOne]),1);
d1 =
	Curve.ByParameterLineOnSurface(
		surf,
		List.DropItems(UV.ByCoordinates(u1,v1),-1),
		List.DropItems(UV.ByCoordinates(u2,v2),-1)
	);
d2 =
	Curve.ByParameterLineOnSurface(
		surf,
		List.DropItems(UV.ByCoordinates(u3,v3),-1),
		List.DropItems(UV.ByCoordinates(u4,v4),-1)
	);
oSets = Curve.ByIsoCurveOnSurface(surf,(0..1)@L1<1>, 0..1..#cnt-1);
crvs = List.Join(List.Flatten([d1,d2,oSets],-1));
csSet = Curve.CoordinateSystemAtParameter(crvs,0);
profile = Circle.ByCenterPointRadiusNormal(Point.Origin(), 1/8, Vector.YAxis());
profiles = Geometry.Transform(profile,csSet);
solids = Solid.BySweep(profiles, crvs);
1 Like

thank you very much for your help

3 Likes