New paste Repaste Download
tips=7;
loop=tips*2-1; // the length or number points of a star3D
function star3D(r=[10,5],tips=4,z=0) = [
let(chg=360/(tips*2))
  for(i=[0:tips*2-1])
    concat([cos(i*chg),sin(i*chg)]* (i%2?r[0]:r[1]) , z )
];
points=[
each star3D(r= [10,5],z=0,tips=tips),// base
each star3D(r= [10,5],z=5,tips=tips), // 2nd level
each star3D(r= [1,3],z=2,tips=tips) // 3rd level
];
faces= [
[for(i=[0:loop])i ], // base face
[for(i=[loop:-1:0])i + tips*4 ], // 3rd level face in reverse order
for(i=[0:loop])[(i+1)%(tips*2),i,i+ tips*2 ,(i +1)%(tips*2) + tips*2],// 1st level sides creates a quad group for each side
for(i=[0:loop])[(i+1)%(tips*2),i,i+ tips*2 ,(i +1)%(tips*2) + tips*2] +[1,1,1,1]*tips*2// 2nd level sides just add the number of tips*2
];
polyhedron(points,faces=faces);
Filename: None. Size: 804b. View raw, , hex, or download this file.

This paste expires on 2025-01-15 10:59:15.439075. Pasted through web.