@maiabdelsalam wrote:
Hello,
Plz I need to add a box extruded from a recursive squaresI found a script on Gh website and i would like to modify the script so that it is converted to a 3d recursive boxes.
I am wondering if I can add a surface connecting these four points (P1,P2,P3,P4 ) and then extrude this surface by a distance equals to (dist). recursively
Kindly find attached the GH file
Thank u in advanceuser_gh.gh (17.7 KB)
this is the script
import rhinoscriptsyntax as rs
def koch(v1,v2):
dist = rs.Distance(v1,v2) p1 = v2 - v1 p1 = rs.VectorUnitize(p1) p1 *= dist * dist1 p1 += v1 p2 = v2 - v1 cross =v2 - v1 cross = rs.VectorUnitize(cross) cross = rs.VectorRotate (cross, 90, [0,0,1]) cross *= dist * h p2 = rs.VectorUnitize(p2) p2 *= dist * dist1 p2 += v1 + cross p3 = v2 - v1 p3 = rs.VectorUnitize(p3) p3 *= dist * dist2 p3 += v1 + cross p4 = v2 - v1 p4 = rs.VectorUnitize(p4) p4 *= dist * dist2 p4 += v1 return [v1, p1, p2, p3, p4, v2]
def recursive (v1,v2,gens , linelist ):
if (gens > 0): newPts = koch (v1 , v2) l = rs.AddPolyline ([newPts[0],newPts[1],newPts[2],newPts[3],newPts[4],newPts[5]]) linelist.append(l) recursive(newPts[0],newPts[1], gens-1, linelist) recursive(newPts[1],newPts[2], gens-1, linelist) recursive(newPts[2],newPts[3], gens-1, linelist) recursive(newPts[3],newPts[4], gens-1, linelist) recursive(newPts[4],newPts[5], gens-1, linelist) return linelist
allLines =[]
a = recursive(pt1,pt2, gens, allLines)
a = koch (pt1,pt2)
a = pt1 + pt2
this is the final result i need
Thank you in advance
Posts: 1
Participants: 1