Wordpress Themes
A Random Image

core.form-ula

MArcher

SCRIPT.

seed module

(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.

target surface

(innitial surface)

surface with modules

(surface after running the script)

modular field

(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% [?]

Share and Enjoy:
  • Digg
  • del.icio.us
  • Reddit
  • Slashdot
  • SphereIt
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!
  • LinkedIn
, , , , , , , , , ,

Related Content
  • Skin test 002
  • SKIN.
  • 1×1 unit example code and diagram
  • Rhino.Script: Array around curve
  • Within These Walls
  • ------------------------------------------------------------------------------------------------------------

    No Comments, Comment or Ping

    Reply to “SCRIPT.”

    You must be logged in to post a comment.






    SparkStats