SCRIPT.
(innitial module_”showzbuffer” view used to illustrate its dimensions)
The script is in a primitive form, but it successfully creates a structural network using my modular system. The next steps will involve the addition of curves and corresponding lofts to add flesh to this skeletal product.
By adjusting the point locations and created curves of the initial module, the script can be tailored to each project within the studio. The control factors are pretty straightforward. Simply deciding what additions or augmentations to make to the “seed”module in the form of point data and curve/loft creation will allow for the project to evolve at a new rate of speed.
(innitial surface)
(surface after running the script)
(resulting system)
Here is the script in question
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | Option Explicit 'Script written by Pete VanHage edited by Michael Archer V001 'Script copyrighted by Creative Commons Attribution 'Script version Friday, March 28, 2008 1:08:40 PM Call Main() Sub Main() Dim baseSrf : baseSrf = rhino.getobject("select facade to tile, must be a single surface, NO POLYSURFACES JACKASS!!",8) If isNull(baseSrf) Then Exit Sub Dim rows,cols,srfDomainU,srfDomainV,uStep,vStep,u,v,zScale zScale = 6 rows = 1 cols = 1 srfDomainU = rhino.SurfaceDomain(baseSrf,0) srfDomainV = rhino.SurfaceDomain(baseSrf,1) uStep = (srfDomainU(1) - srfDomainV(0))/rows vStep = (srfDomainV(1) - srfDomainV(0))/cols For u = srfDomainU(0) To srfDomainU(1)-uStep Step uStep For v = srfDomainV(0) To srfDomainV(1)-vStep Step vStep Call drawCell(baseSrf,u,v,uStep,vStep,zScale) Next Next End Sub Function cellPoints() End Function Function drawCell(baseSrf,u,v,uStep,vStep,zScale) 'Dim a1,a3,c1,c3,b2_pos,b2_neg,b2_pos_normal,b2_neg_normal Dim crv1,crv2,crv3,crv4,crv5,crv6,crv7,crv8,pcrv1,pcrv2,pcrv3,pcrv4,pcrv5,pcrv6,pcrv7,pcrv8 Dim a1z0,a2z0,a4z0,a5z0,b3z0,e5z0,e4z0,e1z0,e2z0,d3z0 a1z0 = rhino.EvaluateSurface(baseSrf,array(u,v)) a2z0 = rhino.EvaluateSurface(baseSrf,array(u+(0.25*uStep),v)) a4z0 = rhino.EvaluateSurface(baseSrf,array(u+(0.75*uStep),v)) a5z0 = rhino.EvaluateSurface(baseSrf,array(u+(1.0*uStep),v)) b3z0 = rhino.EvaluateSurface(baseSrf,array(u+(0.5*uStep),v+(0.25*vStep))) e5z0 = rhino.EvaluateSurface(baseSrf,array(u+(1.0*uStep),v+(1.0*vStep))) e4z0 = rhino.EvaluateSurface(baseSrf,array(u+(0.75*uStep),v+(1.0*vStep))) e1z0 = rhino.EvaluateSurface(baseSrf,array(u,v+(1.0*vStep))) e2z0 = rhino.EvaluateSurface(baseSrf,array(u+(0.25*uStep),v+(1.0*vStep))) d3z0 = rhino.EvaluateSurface(baseSrf,array(u+(0.5*uStep),v+(0.75*vStep))) Dim c4z1,c2z1,b1z3,a2z3,d1z3,e2z3,e4z3,d5z3,c2z2,b5z3,a4z3,c4z2 Dim vec_c4 vec_c4 = rhino.SurfaceNormal(baseSrf,array(u+(0.75*uStep),v+(0.5*vStep))) c4z1 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(0.75*uStep),v+(0.5*vStep))),rhino.VectorScale(vec_c4,(0.1*zScale))) c2z1 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(0.25*uStep),v+(0.5*vStep))),rhino.VectorScale(vec_c4,(0.1*zScale))) b1z3 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u,v+(0.25*vStep))),rhino.VectorScale(vec_c4,(0.5*zScale))) a2z3 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(0.25*uStep),v)),rhino.VectorScale(vec_c4,(0.5*zScale))) d1z3 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u,v+(0.75*vStep))),rhino.VectorScale(vec_c4,(0.5*zScale))) e2z3 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(0.25*uStep),v+(1.0*vStep))),rhino.VectorScale(vec_c4,(0.5*zScale))) e4z3 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(0.75*uStep),v+(1.0*vStep))),rhino.VectorScale(vec_c4,(0.5*zScale))) d5z3 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(1.0*uStep),v+(0.75*vStep))),rhino.VectorScale(vec_c4,(0.5*zScale))) c2z2 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(0.25*uStep),v+(0.5*vStep))),rhino.VectorScale(vec_c4,(0.4*zScale))) b5z3 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(1.0*uStep),v+(0.25*vStep))),rhino.VectorScale(vec_c4,(0.5*zScale))) a4z3 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(0.75*uStep),v)),rhino.VectorScale(vec_c4,(0.5*zScale))) c4z2 = rhino.pointAdd(rhino.EvaluateSurface(baseSrf,array(u+(0.75*uStep),v+(0.5*vStep))),rhino.VectorScale(vec_c4,(0.4*zScale))) Call rhino.AddPolyline(array(a1z0,a2z0,b3z0,a4z0,a5z0)) 'bottom front Call rhino.AddPolyline(array(e1z0,e2z0,d3z0,e4z0,e5z0)) 'bottom back Call rhino.AddPolyline(array(b1z3,c2z2,d1z3)) 'top left angle Call rhino.AddPolyline(array(b5z3,c4z2,d5z3)) 'top right angle Call rhino.AddPolyline(array(d5z3,e4z3,e2z3,d1z3)) 'top back Call rhino.AddPolyline(array(b1z3,a2z3,a4z3,b5z3)) 'top front Call rhino.addline(c2z2,c2z1) 'left vertical member Call rhino.addline(c4z2,c4z1) 'right vertical member Call rhino.addpolyline(array(c2z1,d3z0,c4z1,b3z0,c2z1)) 'bottom opening pcrv1 = rhino.addpolyline(array(b1z3,c2z2,c2z1,b3z0)) pcrv2 = rhino.addpolyline(array(d1z3,c2z2,c2z1,d3z0)) pcrv3 = rhino.addpolyline(array(d5z3,c4z2,c4z1,d3z0)) pcrv4 = rhino.addpolyline(array(b5z3,c4z2,c4z1,b3z0)) pcrv5 = rhino.addpolyline(array(d3z0,c2z1,b3z0)) pcrv6 = rhino.addpolyline(array(d3z0,c4z1,b3z0)) pcrv7 = rhino.addpolyline(array(d1z3,c2z2,b1z3)) pcrv8 = rhino.addpolyline(array(d5z3,c4z2,b5z3)) crv1 = rhino.AddCurve(array(b1z3,c2z2,c2z1,b3z0),2) crv2 = rhino.AddCurve(array(d1z3,c2z2,c2z1,d3z0),2) crv3 = rhino.AddCurve(array(b5z3,c4z2,c4z1,b3z0),2) crv4 = rhino.AddCurve(array(d5z3,c4z2,c4z1,d3z0),2) |
Popularity: 14% [?]
Related Content



























No Comments, Comment or Ping
Reply to “SCRIPT.”
You must be logged in to post a comment.