Parametric dome (triangle pattern)

Hello all,

Can anyone pls help me to complete parametric dome (struck with the above step) and I was planning to assign triangle pattern.

Thanks in advance.

Hi, maybe this is right for you?

this might be the simplest way

4 Likes

@Andrew_Hannell @osfe thank you very much… I really appreciate your help.

@Manoj sice you’ve used the term ‘parametric’ :expressionless:

//Parametric Hemisphere
r = 10;
b = 30;
c = 20;
u = 0..360..#b;
v = 0..r..#c;
x = Math.Sqrt(Math.Pow(r,2)<1>-Math.Pow(v<2>,2)<2>)*Math.Cos(u)<1>;
y = Math.Sqrt(Math.Pow(r,2)<1>-Math.Pow(v<2>,2)<2>)*Math.Sin(u)<1>;
z = v;
p = List.FirstItem(Autodesk.Point.ByCoordinates(x<1><2>,y<1><2>,z)<1>);

//Cross Bracing
dr = List.DiagonalRight(p,c);
pr = PolyCurve.ByPoints(List.FilterByBoolMask(dr,List.Count(dr<1>)>1)["in"],false);
dl = List.DiagonalLeft(p,c);
pl = PolyCurve.ByPoints(List.FilterByBoolMask(dl,List.Count(dl<1>)>1)["in"],false);
dh = List.UniqueItems(List.Transpose(p)<1>);
ph = PolyCurve.ByPoints(List.FilterByBoolMask(dh,List.Count(dh<1>)>1)["in"],false);
4 Likes

@Vikram_Subbaiah
Hallo,
i copy paste your code into a codeblock, but it didn’t work.
I think the functions don’t have a connection to the core…but im not sure


Error:Warning: Internal error, please report: Dereferencing a non-pointer.

Any idea whats wrong?

Try replacing List with DSCore.List

1 Like

thx Ewan_Opie this helped with list, but PolyCurve.ByPoints don’t work with DSCore

@Fiesta There seems to be a conflict with some package you’ve got installed
Try this …

//Parametric Hemisphere
r = 10;
b = 30;
c = 20;
u = 0..360..#b;
v = 0..r..#c;
x = Math.Sqrt(Math.Pow(r,2)<1>-Math.Pow(v<2>,2)<2>)*Math.Cos(u)<1>;
y = Math.Sqrt(Math.Pow(r,2)<1>-Math.Pow(v<2>,2)<2>)*Math.Sin(u)<1>;
z = v;
p = DSCore.List.FirstItem(Autodesk.Point.ByCoordinates(x<1><2>,y<1><2>,z)<1>);

//Cross Bracing
dr = DSCore.List.DiagonalRight(p,c);
pr = PolyCurve.ByPoints(DSCore.List.FilterByBoolMask(dr,DSCore.List.Count(dr<1>)>1)["in"],false);
dl = DSCore.List.DiagonalLeft(p,c);
pl = PolyCurve.ByPoints(DSCore.List.FilterByBoolMask(dl,DSCore.List.Count(dl<1>)>1)["in"],false);
dh = DSCore.List.UniqueItems(DSCore.List.Transpose(p)<1>);
ph = PolyCurve.ByPoints(DSCore.List.FilterByBoolMask(dh,DSCore.List.Count(dh<1>)>1)["in"],false);
1 Like

thx!..yes i forgot the lists inside:


it worked, but the Error says: List.Count() don’t work

@Fiesta You’ve still haven’t prefixed a DSCore for List.Transpose on the second last line

Thx Vikram, this solved the problem!

1 Like