<menuitem id="XG9V85y"><i id="XG9V85y"><address id="XG9V85y"></address></i></menuitem>
<var id="XG9V85y"></var>
<thead id="XG9V85y"></thead>
<listing id="XG9V85y"><dl id="XG9V85y"></dl></listing><thead id="XG9V85y"><ruby id="XG9V85y"><noframes id="XG9V85y"><thead id="XG9V85y"><dl id="XG9V85y"><th id="XG9V85y"></th></dl></thead><cite id="XG9V85y"><ruby id="XG9V85y"></ruby></cite><thead id="XG9V85y"></thead>
<listing id="XG9V85y"></listing>
<thead id="XG9V85y"></thead>
<listing id="XG9V85y"></listing>
A playground for University of Bologna Students and a 6-days seminar about digital tools.

Digital generative tools are a very important part of architectural education. Andrew Kudless during his conference at SimAE was telling about chinese traditional woodcraftsmen: they spend their first two years of apprentice in making their own tools. Today, we have a large pool of digital ready made tools, built to respond to more or less specific problems or tasks, while keeping a level of flexibility and personalization. The majority of these tools have hidden capabilities, which can only be accessed bypassing the conventional interface and getting close to the machine logic of programming or building parametric components which generate shapes. Thus, seriality, differentiation, complexity can be implemented in architectural projects through code, in order to exploit the power of algorithmic based complex systems which are the basis of biological systems.


But, before going through such complexity, we must start with simple tasks and simple rules. Before playing seriously we need practice. This is the playground where a bunch of students will start to practice, a pool where they will share their results and questions. Maybe the stuff here that will be posted will seem obvious or naive to the navigated code-monkey, but, as I mentioned before, we all start from the basics and this is intended as a place to start. However, any comment and contribution is appreciated.

Playground is open, let's play! _ Alessio

2.11.09

L-system [test]

Working on the same principles of my last post I realized a new script based on self-learning system.
The concept is easy. A simple L-system start to grown randomly from a seed, and after every generation it try to touch other L-systems, that are growing from different one seed.

[edit]
I forgot to explain some aspects. In this script singles L-system recive a feedback from others, because configuration of every generation depend on configuration of previous one.
Unlike my previous script there isn't only one final perfect configuration, but infinity ones... because every random event of system "A" affects other systems in next generation, thus itself in following one.
[/edit]


Option Explicit
' Script written by Alessandro Zomparelli
' alessandro.zomparelli@gmail.com
' http://alessandrozompa.altervista.org/
' Script version domenica 1 novembre 2009 14.40.18

Call Main()
Sub Main()
'picking seed points
Dim arrSeed, arrSub
ReDim arrSeed(0)
arrSeed(0)=Rhino.GetObjects("pick seed points",1)

'defining number of branch
Dim dblBrN
dblBrN=Rhino.GetInteger("number of branches",2,1)

'defining number of branch generation
Dim dblBranch
dblBranch=Rhino.GetInteger("number of branch generation",3,1)
ReDim Preserve arrSeed(dblBranch)

Dim arrData, dblVote, arrVote
ReDim arrData(dblBranch), arrVote(0)

'defining number of generations and amount of mutation between following generations
Dim dblGen, dblMut, strLine
dblGen=Rhino.GetInteger("set number of generations",100,2,10000)
dblMut=Rhino.GetReal("set mutation value",2,0.1,100)

Call Rhino.EnableRedraw(False)

'starting evolution system
Dim i,j,z,k,y,m,a

Dim dblDis, arrDist, strC1, strC2
ReDim arrDist(0)

'generation of different layers
Dim strL1: strL1="lines"
Call Rhino.AddLayer(strL1)

'evaluation of distance between seed points for a better L-System scale
dblDist=Rhino.Distance(Rhino.PointCoordinates(arrSeed(0)(0)),Rhino.PointCoordinates(arrSeed(0)(1)))
For i=0 To ubound(arrSeed(0))
For j=0 To ubound(arrSeed(0))
If i<>j Then
If Rhino.Distance(Rhino.PointCoordinates(arrSeed(0)(i)),Rhino.PointCoordinates(arrSeed(0)(j)))<>0 Then
arrSeed(i)=arrSub
End If
arrData(i)=arrSub
For j=0 To ubound(arrSeed(i))
arrData(i)(j)=array(0,array(0,0,0),array(0,0,0),dblDis)
Next
Next


For z=0 To dblGen-1
Call Rhino.Print(int(z*100/(dblGen-1))&"%")
For i=1 To dblBranch
'generation of branches
For j=0 To ubound(arrSeed(i-1))

For y=0 To dblBrN-1
'defining vector scattering direction
arrData(i)(j*(dblBrN)+y)(2)=array(arrData(i)(j*(dblBrN)+y)(1)(0)+dblMut*(dblGen-z)/dblGen*(rnd-rnd),arrData(i)(j*(dblBrN)+y)(1)(1)+dblMut*(dblGen-z)/dblGen*(rnd-rnd),arrData(i)(j*(dblBrN)+y)(1)(2)+dblMut*(dblGen-z)/dblGen*(rnd-rnd))

'propotional scaling factor
arrData(i)(j*(dblBrN)+y)(2)=Rhino.VectorUnitize(arrData(i)(j*(dblBrN)+y)(2))
arrData(i)(j*(dblBrN)+y)(2)=Rhino.VectorScale(arrData(i)(j*(dblBrN)+y)(2),arrData(i)(j*(dblBrN)+y)(3)/i/3)
arrSeed(i)(j*(dblBrN)+y)=Rhino.CopyObject(arrSeed(i-1)(j),arrData(i)(j*(dblBrN)+y)(2))

'drawing last generation
If z=dblGen-1 Then
strLine=Rhino.AddLine(Rhino.PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)))
Call Rhino.objectlayer(strLine,strL1)
If i=1 Then
strC1=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i-1)(j)(3)/20/i)
Else
strC1=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i-1)(j)(3)/40/(i-1))
End If
strC2=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i)(j*(dblBrN)+y)(3)/40/i)
Call Rhino.AddLoftSrf(array(strC1,strC2))
If i=1 Then
Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i-1)(j)(3)/20/i)
'Else
' Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i-1)(j)(3)/30/(i-1))
End If
Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),arrData(i)(j*(dblBrN)+y)(3)/40/i)
Call Rhino.DeleteObjects(array(strC1,strC2))
End If

'for display colors of different generation
'If z/10=int(z/10) Then
' strLine=Rhino.AddLine(Rhino.PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i)(j*2+y)))
' Call Rhino.ObjectColor(strLine, RGB(255-255/dblGen*z,0,255/dblGen*z))
'End If
Next
Next

'recordn data of individual branches
For j=0 To ubound(arrSeed(i-1))
For y=0 To dblBrN-1
a=-1
'defining votes for branches generated from different seeds
For k=0 To ubound(arrSeed(i-1))
If int(k/(dblBrN^(i-1)))<>int(j/(dblBrN^(i-1))) Then
For m=0 To dblBrN-1
a=a+1
ReDim Preserve arrVote(a), arrDis(a+1)
'defining a vote for element efficiency
arrVote(a)=(Rhino.Distance(PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i-1)(k)))-Rhino.Distance(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),Rhino.PointCoordinates(arrSeed(i-1)(k))))
'recording distance from detected points
arrDist(a)=Rhino.Distance(PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i-1)(k)))
Next
End If
Next
dblVote=Rhino.Max(arrVote)

'recording dist for nearest point
For k=0 To ubound(arrVote)
If arrVote(k)=dblVote Then
arrDist(a+1)=arrDist(k)
End If
Next

'recording data about the new element
If dblVote>arrData(i)(j*(dblBrN)+y)(0) Then
arrData(i)(j*(dblBrN)+y)(0)=dblVote
arrData(i)(j*(dblBrN)+y)(1)=arrData(i)(j*(dblBrN)+y)(2)
arrData(i)(j*(dblBrN)+y)(3)=arrDist(a+1)
End If
Next
Next

Next
For i=1 To dblBranch
Call Rhino.DeleteObjects(arrSeed(i))
Next

Next
Call Rhino.LayerVisible(strL1,False)
Call Rhino.EnableRedraw(True)
Call Rhino.Print("100%")

End Sub

31.10.09



Like human body and ant colony, later generations reduce scattering for a more accurate configuration. Studying countless generations, the family should reach the target specified.

Specifying different rules for worms should be possible to study emergent systems whose behavior is not predictable from the study of individual elements, like organic complexity L-systems.




Option Explicit
' Script written by Alessandro Zomparelli
' alessandro.zomparelli@gmail.com
' http://alessandrozompa.altervista.org/
' Script version venerdì 30 ottobre 2009 16.59.03

Call Main()
Sub Main()
Dim strTarget, arrFamily, arrTarget, n
n=Rhino.GetInteger("set number elements",20,2,100)

ReDim arrFamily(n), arrTarget(2)
arrFamily(0)=Rhino.GetObject("pick starting point")
'check for starting point
If Rhino.IsPoint(arrFamily(0))=False Then
Exit Sub
End If
strTarget=Rhino.GetObject("pick target point")
'check for target point
If Rhino.IsPoint(strTarget)=False Then
Exit Sub
End If
arrTarget=Rhino.PointCoordinates(strTarget)

Dim dblDist
dblDist=Rhino.Distance(Rhino.PointCoordinates(arrFamily(0)),arrTarget)

'defining number of generations and amount of mutation between following generations
Dim dblGen, dblMut
dblGen=Rhino.GetInteger("set number of generations",100,2,1000)
dblMut=Rhino.GetReal("set mutation value",2,0.01,100)

'defining an array to collect data about different family
Dim arrData
ReDim arrData(n)

'defining a value for better step-element of different family
Dim dblVote

'defining counters, array for data recording and an array for scattering direction
Dim i, j, arrVect, arrVect0, arrRec
ReDim arrVect(2), arrVect0(2), arrRec(1)

'defining random data for first generation
For j=1 To n
arrVect=array(rnd-rnd,rnd-rnd,rnd-rnd)
dblVote=0
arrData(j)=array(dblVote,arrVect)
Next

Dim strLine

'starting evolution system
For i=0 To dblGen-1

Call Rhino.EnableRedraw(False)
'starting family growning
For j=1 To n
arrRec=arrData(j)
arrVect0=arrRec(1)
arrVect=array(arrVect0(0)+dblMut*(dblGen-i)/dblGen*(rnd-rnd),arrVect0(1)+dblMut*(dblGen-i)/dblGen*(rnd-rnd),arrVect0(2)+dblMut*(dblGen-i)/dblGen*(rnd-rnd))
arrVect0=Rhino.VectorUnitize(arrVect)
arrVect=Rhino.VectorScale(arrVect0,dblDist/n)
'generation of new element of the family
arrFamily(j)=Rhino.CopyObject(arrFamily(j-1),arrVect)
strLine=Rhino.AddLine(Rhino.PointCoordinates(arrFamily(j-1)),Rhino.PointCoordinates(arrFamily(j)))
Call Rhino.ObjectColor(strLine, RGB(255-255/dblGen*i,0,255/dblGen*i))

If Rhino.Distance(Rhino.PointCoordinates(arrFamily(j)),arrTarget)arrRec(0) Then
arrData(j)=array(dblVote,arrVect)
End If
End If
Next
For j=1 To n
Call Rhino.DeleteObject(arrFamily(j))
Next

Call Rhino.EnableRedraw(True)
Next

End Sub

12.6.09

tens.tesselation


Here some other surface tesselation experiments, I have already posted the first one but now it is fixed (no more Rhino.command!). Anyway there is not a relevant physics accuracy in both scripts, take them just as tries.





















' CASE 10 SURFSTARS

Sub surfstars(strsurf,upar,vpar)
upar = upar*5
vpar = vpar*5
Dim dblheight : dblheight = rhino.getreal("extrusion height?" ,.05)
If isnull (dblheight) Then Exit Sub
Dim attrpoint : attrpoint = rhino.getobject("point attractor",1)
Dim arrpoint : arrpoint = rhino.PointCoordinates(attrpoint)
Call rhino.enableredraw(False)
Dim i, j
Dim uvalone(1), uvaltwo
Dim arrUone, arrVone
Dim arrpttemp, pointtwo
Dim pt1, pt2, pt3, pt4, pt5, pt6, PT7, Pt8, pt5b, pt6b, pt7b, pt8b, ptc1, ptc2, pt1c, pt2c, pt3c, pt4c
ReDim matrix (upar, vpar)
Dim tempt
arruone = array (0,0)
arrVone = array (0,0)
Dim strcell, arrct, arrptsurf, arrnorm, arrnormend,arrnormenddown, arrline, strcell2
Dim pt1b,pt2b,pt3b,pt4b
If rhino.IsSurface(strsurf) Then
arruone = rhino.surfacedomain(strsurf,0)
arrVone = rhino.surfacedomain(strsurf,1)
End If
For i=0 To upar
For j=0 To vpar
uvalone(0)= ((arruone(1)-arruone(0))/upar)*i
uvalone(1) = ((arrVone(1)-arrVone(0))/vpar)*j
arrpttemp = rhino.EvaluateSurface(strsurf,uvalone)
matrix(i,j) = arrpttemp
Next
Next
Dim oct1, oct2, oct3, oct4, arrlinehuge, arrel1, arrel2, arrdom, midplane, midcircle1, midcircle2
Dim rn, crvtemp, dbldist

For i = 1 To upar-1
For J=0 To vpar-1
pt1 = matrix(i,j)
pt2 = matrix(i+1,j)
pt3 = matrix(i,j+1)
pt4 = matrix(i+1,j+1)
pt5 = array( (pt1(0)+pt2(0))/2,(pt1(1)+pt2(1))/2,(pt1(2)+pt2(2))/2)
pt6 = array( (pt2(0)+pt4(0))/2,(pt2(1)+pt4(1))/2,(pt2(2)+pt4(2))/2)
pt7 = array( (pt3(0)+pt4(0))/2,(pt3(1)+pt4(1))/2,(pt3(2)+pt4(2))/2)
pt8 = array( (pt1(0)+pt3(0))/2,(pt1(1)+pt3(1))/2,(pt1(2)+pt3(2))/2)
ptc1 = array( (pt5(0)+pt7(0))/2,(pt5(1)+pt7(1))/2,(pt5(2)+pt7(2))/2)
ptc2 = array( (pt6(0)+pt8(0))/2,(pt6(1)+pt8(1))/2,(pt6(2)+pt8(2))/2)
dbldist = rhino.Distance(ptc1,arrpoint)
dbldist = Rhino.Log10 (dbldist*3)
If dbldist<1 dbldist ="">
pt5b = array( pt5(0)+(ptc1(0)-pt5(0))/(dbldist),pt5(1)+(ptc1(1)-pt5(1))/(dbldist),pt5(2)+(ptc1(2)-pt5(2))/(dbldist))
pt6b = array( pt6(0)+(ptc2(0)-pt6(0))/(dbldist),pt6(1)+(ptc2(1)-pt6(1))/(dbldist),pt6(2)+(ptc2(2)-pt6(2))/(dbldist))
pt7b = array( pt7(0)+(ptc1(0)-pt7(0))/(dbldist),pt7(1)+(ptc1(1)-pt7(1))/(dbldist),pt7(2)+(ptc1(2)-pt7(2))/(dbldist))
pt8b = array( pt8(0)+(ptc2(0)-pt8(0))/(dbldist),pt8(1)+(ptc2(1)-pt8(1))/(dbldist),pt8(2)+(ptc2(2)-pt8(2))/(dbldist))

Call rhino.AddCurve(array(pt1,pt2,pt4,pt3,pt1),1)
strcell = rhino.addcurve(array(pt1,,pt5b, pt2,pt6b, pt4, pt7b,pt3,pt8b,pt1),1)

arrct = array( (pt4(0)+pt1(0))/2,(pt4(1)+pt1(1))/2,(pt4(2)+pt1(2))/2)
arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
arrnorm = rhino.VectorScale(arrnorm, dblheight)
arrnormend = rhino.PointAdd(arrct,arrnorm)
arrnormenddown = rhino.Pointsubtract(arrct,arrnorm)
crvtemp = rhino.AddSrfPt(array(pt1,arrnormend,pt5b))
crvtemp = rhino.AddSrfPt(array(pt5b,arrnormend,pt2))
crvtemp = rhino.AddSrfPt(array(pt2,arrnormend,pt6b))
crvtemp = rhino.AddSrfPt(array(pt6b,arrnormend,pt4))
crvtemp = rhino.AddSrfPt(array(pt4,arrnormend,pt7b))
crvtemp = rhino.AddSrfPt(array(pt7b,arrnormend,pt3))
crvtemp = rhino.AddSrfPt(array(pt3,arrnormend,pt8b))
crvtemp = rhino.AddSrfPt(array(pt8b,arrnormend,pt1))

crvtemp = rhino.AddSrfPt(array(pt1,arrnormenddown,pt5b))
crvtemp = rhino.AddSrfPt(array(pt5b,arrnormenddown,pt2))
crvtemp = rhino.AddSrfPt(array(pt2,arrnormenddown,pt6b))
crvtemp = rhino.AddSrfPt(array(pt6b,arrnormenddown,pt4))
crvtemp = rhino.AddSrfPt(array(pt4,arrnormenddown,pt7b))
crvtemp = rhino.AddSrfPt(array(pt7b,arrnormenddown,pt3))
crvtemp = rhino.AddSrfPt(array(pt3,arrnormenddown,pt8b))
crvtemp = rhino.AddSrfPt(array(pt8b,arrnormenddown,pt1))
arrline = rhino.AddLine(pt1,pt2)
arrdom=rhino.CurveDomain(arrline)
midplane=rhino.CurvePerpFrame(arrline,arrdom(0))
midcircle1=rhino.AddCircle(midplane,0.09)
midplane=rhino.CurvePerpFrame(arrline,arrdom(1))
midcircle2=rhino.AddCircle(midplane,0.09)
Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
arrline = rhino.AddLine(pt3,pt4)
arrdom=rhino.CurveDomain(arrline)
midplane=rhino.CurvePerpFrame(arrline,arrdom(0))
midcircle1=rhino.AddCircle(midplane,0.09)
midplane=rhino.CurvePerpFrame(arrline,arrdom(1))
midcircle2=rhino.AddCircle(midplane,0.09)
Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))

Next
Next

Call rhino.deleteobject(strsurf)
Call rhino.EnableRedraw(True)
End Sub



'----- CASE 11 SURFholetens -----


Sub SURFholetens (strsurf,upar,vpar)
Dim dblheight : dblheight = rhino.getreal("elements height?" ,.6)
Dim attrpoint : attrpoint = rhino.Getobject("attractor",1)
Dim attrpointcoord : attrpointcoord= rhino.pointcoordinates(attrpoint)
If isnull (dblheight) Then Exit Sub
Call rhino.enableredraw(False)
Dim i, j
Dim uvalone(1), uvaltwo
Dim arrUone, arrVone
Dim arrpttemp, pointtwo
Dim pt1, pt2, pt3, pt4, pt5, pt6, pta, ptb, ptc,ptd
ReDim matrix (upar, vpar)
Dim tempt
arruone = array (0,0)
arrVone = array (0,0)
Dim arrct, arrptsurf, arrnorm, arrnormend, arrline
If rhino.IsSurface(strsurf) Then
arruone = rhino.surfacedomain(strsurf,0)
arrVone = rhino.surfacedomain(strsurf,1)
End If
For i=0 To upar
For j=0 To vpar
uvalone(0)= ((arruone(1)-arruone(0))/upar)*i
uvalone(1) = ((arrVone(1)-arrVone(0))/vpar)*j
arrpttemp = rhino.EvaluateSurface(strsurf,uvalone)
matrix(i,j) = arrpttemp
Next
Next
Dim dbldist
Dim strquad1,strcentr,strquad2,strcell, midline,midcircle1,midcircle2, midplane,arrdom,ptmid
Dim midp1,midpoint1
Dim midp2,midpoint2
For i = 1 To upar-2 Step 3
For J=0 To vpar-2 Step 4
pt1 = matrix(i,j)
pt2 = matrix(i+1,j)
pt3 = matrix(i+2,j+1)
pt4 = matrix(i+1,j+2)
pt5 = matrix(i,j+2)
pt6 = matrix(i-1,j+1)
pta = matrix(i-1,j)
ptb = matrix(i+2,j)
ptc = matrix(i+2,j+2)
ptd = matrix(i-1,j+2)
strcell = rhino.AddCurve(array(pt6,pt1,pt2,pt3,pt4,pt5,pt6),2)
strquad1 = rhino.AddCurve(array(pta,ptb,ptc,ptd,pta),1)
Call rhino.objectcolor(strquad1,rgb(255,255,255))'bianco
arrct = array( (pt6(0)+pt3(0))/2,(pt6(1)+pt3(1))/2,(pt6(2)+pt3(2))/2)
arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
dbldist=rhino.Distance(arrct,attrpointcoord)
dbldist = Rhino.Log10 (dbldist*7)
If dbldist < dbldist ="">
strcell = rhino.scaleobject(strcell,arrct,array(0.95/dbldist,0.95/dbldist,0.95/dbldist))
arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
arrnorm = rhino.VectorScale(arrnorm, dblheight)
arrnormend = rhino.PointAdd(arrct,arrnorm)
arrline = rhino.AddLine(arrct,arrnormend)
Call rhino.AddLoftSrf(array(strcell,strquad1))
strquad2=rhino.copyObject(strquad1,arrct,arrnormend)
strcentr=rhino.copyobject(strcell,arrct,arrnormend)
Call rhino.addloftsrf(array(strquad2,strcentr))
Call rhino.addloftsrf(array(strquad2,strquad1))
Call rhino.addloftsrf(array(strcentr,strcell))

midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
midpoint1=rhino.addpoint(midp1)
midpoint2=rhino.AddPoint(midp2)
Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
midp1=rhino.PointCoordinates(midpoint1)
midp2=rhino.PointCoordinates(midpoint2)
midline = rhino.AddLine(midp1,midp2)
arrdom=rhino.CurveDomain(midline)
midplane=rhino.CurvePerpFrame(midline,arrdom(0))
midcircle1=rhino.AddCircle(midplane,dblheight/6)
midplane=rhino.CurvePerpFrame(midline,arrdom(1))
midcircle2=rhino.AddCircle(midplane,dblheight/6)
Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
Next
Next
For i = 2.5 To upar-2 Step 3
For J=2 To vpar-2 Step 4
pt1 = matrix(i,j)
pt2 = matrix(i+1,j)
pt3 = matrix(i+2,j+1)
pt4 = matrix(i+1,j+2)
pt5 = matrix(i,j+2)
pt6 = matrix(i-1,j+1)
pta = matrix(i-1,j)
ptb = matrix(i+2,j)
ptc = matrix(i+2,j+2)
ptd = matrix(i-1,j+2)
strcell = rhino.AddCurve(array(pt6,pt1,pt2,pt3,pt4,pt5,pt6),2)
strquad1 = rhino.AddCurve(array(pta,ptb,ptc,ptd,pta),1)
Call rhino.objectcolor(strquad1,rgb(255,255,255))'bianco
arrct = array( (pt6(0)+pt3(0))/2,(pt6(1)+pt3(1))/2,(pt6(2)+pt3(2))/2)
arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
dbldist=rhino.Distance(arrct,attrpointcoord)
dbldist = Rhino.Log10 (dbldist*7)
If dbldist < dbldist ="">
strcell = rhino.scaleobject(strcell,arrct,array(0.95/dbldist,0.95/dbldist,0.95/dbldist))
arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
arrnorm = rhino.VectorScale(arrnorm, dblheight)
arrnormend = rhino.PointAdd(arrct,arrnorm)
arrline = rhino.AddLine(arrct,arrnormend)
Call rhino.AddLoftSrf(array(strcell,strquad1))
strquad2=rhino.copyObject(strquad1,arrct,arrnormend)
strcentr=rhino.copyobject(strcell,arrct,arrnormend)
Call rhino.addloftsrf(array(strquad2,strcentr))
Call rhino.addloftsrf(array(strquad2,strquad1))
Call rhino.addloftsrf(array(strcentr,strcell))
midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
midpoint1=rhino.addpoint(midp1)
midpoint2=rhino.AddPoint(midp2)
Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
midp1=rhino.PointCoordinates(midpoint1)
midp2=rhino.PointCoordinates(midpoint2)
midline = rhino.AddLine(midp1,midp2)
arrdom=rhino.CurveDomain(midline)
midplane=rhino.CurvePerpFrame(midline,arrdom(0))
midcircle1=rhino.AddCircle(midplane,dblheight/6)
midplane=rhino.CurvePerpFrame(midline,arrdom(1))
midcircle2=rhino.AddCircle(midplane,dblheight/6)
Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
Next
Next
Call rhino.DeleteObject(strsurf)
Call rhino.EnableRedraw(True)
End Sub
 
slot168 เครดิต ฟรี slotxo demo เครดิต ฟรี 918 ไพ่ เงิน จริง megaways demo เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด slot777 ฟรี เครดิต sn888 kiss review databet88 pantip joker slotxo 168 xo ไม่ ต้อง ฝาก fifa55 ทดลอง เล่น wms slot slot 1688 slotxo รู เล็ ต dafabet เครดิต ฟรี 2018 slot โปร ฝาก 10 บาท เครดิต ฟรี 600 slot123 joker สล็อต xo วอ ล เลท เข้า vegus168 scrslot918 slotxo56 mega888 download 2019 slot free credit no deposit 2019 xo เล่น บน เว็บ เครดิต ฟรี ถอน ได้ 500 slot ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 สล็อต xo ฝาก ผ่าน true wallet spk slotxo ไม่ ต้อง ฝาก 918kiss star v2 ไลน์ slotxo คิ ส 918 safari gold megaways 918kiss demo slot 360 b2y เครดิต ฟรี slotxo apk มาเฟีย 123 เครดิต ฟรี ไฮโล คลาสสิค slot red ไพ่ แบ ล็ ค แจ็ ค slotxo allbet 918 allbet mm88bet สมัคร slotxo199 เครดิต ฟรี 888 sagame168th เครดิต ฟรี เเ ป น ไฮโล slot ฝาก 19 รับ 100 joker456 เครดิต ฟรี slotxo51 ไม่ ฝาก ไม่ แชร์ poker ออนไลน์ pg slot โปร ทุน น้อย slot35 joker superlot999 เครดิต ฟรี 918 slot ไพ่ แบ ล็ ค แจ็ ค ออนไลน์ 918kiss เครดิต ฟรี ล่าสุด slot369 918 คิ ส slot super999 เครดิต ฟรี ไม่ ต้อง ทํา เท ริน slotxo วง ล้อ slot sagame66 สล็อต 777 คา สิ โน ออนไลน์ 918kiss slot 918kissvip slotxo เกม ไหน แตก ง่าย 2020 918kiss เครดิต ฟรี 100 สล็อต xo ท รู วอ ล เล็ ต สล็อต เอ้ ก โอ yakuza slot fifa55bonus superslot999 xo ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท b2y เครดิต ฟรี slot ฝาก 20 รับ 100 ไฮโล 600 เว็บ บอล ฟีฟ่า 55 ผล บอล ฟุตบอล เสมือน จริง best joker slot joker681 เครดิต ฟรี 918kiss v1 all slot777 918kiss star v2 แอ พ เครดิต ฟรี สล xo คา สิ โน ป๊อก เด้ง ออนไลน์ slot xo 777 slot joker 1234 pg slot โปร ทุน น้อย กติกา รู เล็ ต live22 slot auto สมัคร แล้ว ได้ เครดิต ฟรี slotxo24 double slot เครดิต ฟรี ไม่ ต้อง ทำ เท ริน barney slots fifa55 easy 333be โค๊ ด ฟรี 133 เครดิต ฟรี สมัคร ง่าย ufa800 ไฮโล 918kiss แจก เครดิต ฟรี ไม่ ต้อง ฝาก เว็บ พนัน บอล ดี ที่สุด 2021 mafia ฟรี เครดิต 50 918kiss ท รู วอ เลท gaming world slot โปร slot rg888 slot ไฮโล คลาสสิค ออนไลน์ สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 สล็อต ฝาก อัตโนมัติ สมัคร ฟรี ไม่ ต้อง ฝาก fifa55run สมัคร ใหม่ ฟรี เครดิต mega888 เครดิต ฟรี ไพ่ โป ก เกอร์ 1 12ww เครดิต ฟรี เล่น xo slot 918kiss slot1234 slot1234pg slot 888 scr888 ฝาก ไม่มี ขั้น ต่ำ 918kiss android android slotxo ผ่าน วอ เล็ ต เล่น สล็อต roma xo ฝาก ผ่าน วอ เลท win three card slotxo 10 ได้ 100 allbet24hr เล่น poker slotxo456 sagame66 slot ถอนเงิน slotxo slotxo mod apk slotxo ฝาก 20 ได้ 100 slotxo qs หมุน วง ล้อ slotxo 918kiss เครดิต ฟรี 100 fifa5599 918kisskingdom vip mm88bet sport & casino joker ถอน ไม่มี ขั้น ต่ํา fifa55 ฝาก ขั้น ต่ํา 50 slotxo z 8bit slotxo slotxo ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo asia 777 slot007 joker joker456 เครดิต ฟรี fifa777 ทาง เข้า fifa55 เข้า ระบบ all slot666 slotxo club gclub 918kiss slot ฟรี เครดิต 100 win three card 918kiss kiss 918kiss แจก เครดิต ฟรี ไม่ ต้อง ฝาก 918kaya slot สล็อต xo888 sn888 kiss review slot2499 gucci slotxo 918kiss download ios ไฮโล ขึ้น คู่ เครดิต 2020 slotxo45 เล่น poker เงิน จริง gclub888 royal black slot slotxo ฝาก น้อย royal 918kiss live22 รับ 100 slot789th 918kissauto download เว็บ ฟีฟ่า 888 slotxo แจก เครดิต ฟรี live22 ฝาก 1 บาท ฟรี 99 slotxo logo png gclub 918 infinity slot เครดิต ฟรี xo ไม่ ต้อง ฝาก แทง บอล ฟีฟ่า slotxo ที่ ดี ที่สุด scr888 918kiss download fifa55 คา สิ โน 918kiss me 2 joker slot demo สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก joker ฝาก ถอน ไม่มี ขั้น ต่ำ golden hoyeah slots ถอนเงิน slotxo โปร ฝาก 10 รับ 100 เครดิต ฟรี 888 ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก เว็บ พนัน ออนไลน์ ป๊อก เด้ง joker slot demo ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ mega888 malaysia slot free credit no deposit 2020 slotxo com sign in slot live22 gclub เครดิต ฟรี slotxo ฝาก ผ่าน วอ ล เลท เล่น แบ ล็ ค แจ็ ค ออนไลน์ 918kiss android android 168slotxo auto fifa555bonus เครดิต ฟรี ไม่ ต้อง ฝาก 150 slot เครดิต ฟรี เครดิต ฟรี ค่าย cq9 lucabet789 เครดิต ฟรี สมัคร ได้ เครดิต ฟรี สมัคร live22 auto 168bet slot สมัคร ฟรี เครดิต 2020 xe88th เครดิต ฟรี 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก เครดิต ฟรี สมัคร ใหม่ winner55 เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss แตก ง่าย 2020 สมัคร ฟรี เครดิต ฟรี fifa777 ทาง เข้า 99 ocean เครดิต ฟรี joker ฝาก ถอน ไม่มี ขั้น ต่ํา 168slotxo auto live22th slot สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท ufa24h6 เครดิต ฟรี ไม่ ทํา เทิ ร์ น slotxo playlive88 สล็อต xo แจก เครดิต ฟรี คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ best88 สมัคร 918kisstm 918 เครดิต ฟรี fin888 เครดิต ฟรี slot 999 top slot slot 1668 slot48xo slot mafia191 slotxo ทั้งหมด โป๊ก เก้อ โป เกอร์ ไพ่ poker เกมส์ สล็อต มือ ถือ fifa55st ทาง เข้า เว็บ fifa555 p8slot gold slot168 v2 slotxo pantip slotxo 24 สยาม โป ก เกอร์ 918kisstm 918kiss android android 666slot z4 slot best slotxo ไฮโล 5 บาท tiger918kiss fifa ทาง เข้า joker hunter 888 fortuna slots slotxo new 918kiss 918kiss ใหม่ royal 918kiss mafia789 เครดิต ฟรี slot free credit no deposit 2020 slot joker ฝาก 10 รับ 100 slotxo ฝาก 9 บาท 77up club slotxo mb 918kiss44 download เสียง ไฮโล ฟรี ไม่ ต้อง ฝาก ก่อน พนัน ออนไลน์ ฟรี เครดิต fifa55 200 บาท เครดิต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 918kiss888 agent 918kiss คา สิ โน ออนไลน์ ป๊อก เด้ง 1xslot slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 fifa69 ทาง เข้า slotxo ฟรี เครดิต 100 918 แจก เครดิต ฟรี do123 918kiss แอ พ การ พนัน ได้ เงิน จริง slot88vip สล็อต ฝาก อัตโนมัติ สมัคร databet88 ฝาก 20 รับ 100 slotxo สูตร บา คา ร่า ufa800 ไฮโล รีโมท slot123 สล็อต xo true wallet joker ไม่มี ขั้น ต่ํา เว็บ ตรง 918kiss slot ฝาก วอ เลท ไม่มี ขั้น ต่ํา slot slotxo123 918kiss android ฝาก 99 ฟรี 300 slotbet168 win three card mega888 เครดิต ฟรี mbslot live22 slotxo fifa55 goalclub slotxo 10 ได้ 100 fifa55 1234 48 slotxo g9slot slotxo 191 slotxo 24 fifa55 ทาง เข้า มือ ถือ ไฮโล ไฮเทค คือ shangri la slot 918kiss ฟรี 1000 king77 slot live22 ถอนเงิน ึึ 77 up slotxo688 fifa55 โดน จับ 918kiss mafia888 slot 918kiss line slotxo168 เครดิต ฟรี 999 สลอด เอก โอ ไพ่ ออนไลน์ รู เล็ ต กด เอง pgslot88 sbobet ฟรี เครดิต ล่าสุด slot1234 เครดิต ฟรี ฟรี ไม่ ต้อง ฝาก ก่อน 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 อั่ ง เปา scr888 เกม ส ล็ เข้า ฟีฟ่า 55 ไฮโล เกม สล็อต live22 fifa55u ดู ทีวี ออนไลน์ เครดิต ฟรี mega888 สล็อต xo roma slot machine free 918kiss royal ufa800 ไฮโล ไฮโล ต่ำ สล็อต xo joker คา สิ โน ออนไลน์ สุด ฮิต samuraixo slot megaways ช่อง 77up mafia เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ถอนเงิน สล็อต xo slotxo ฝาก 9 บาท รับ 100 ล่าสุด ฟรี เครดิต ไม่มี เงื่อนไข fin slotxo slot top game หมุน วง ล้อ joker123 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก 2020 สมัคร ได้ เครดิต ฟรี 918kisstm slotxo98 slot joker123th slotjoker99 เข้า vegus168 ไฮโล สูง ต่ำ vip slotxo สมัคร ใหม่ ฟรี เครดิต fin888 เครดิต ฟรี slotxo วง ล้อ hacker slot45 slotplay88 เครดิต ฟรี fifa55 ufa365 เข้า ไม่ ได้ ฝาก ไม่มี ขั้น ต่ำ ถอน ไม่มี ขั้น ต่ํา gclub royal1688 ฟรี เครดิต slot ถอน ไม่มี ขั้น ต่ํา เว็บ slotxo joker slot 77 wbc slot joker hunter 888 ขอรับ เครดิต ฟรี ครับ ยิง ปลา ฝาก ขั้น ต่ํา 50 เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ เครดิต ฟรี 50 918kiss เครดิต ฟรี ฝาก 10 รับ 100 ล่าสุด xo 918kiss auto สมัคร mega888 ฟรี เครดิต slot free slot7 mega888 slot slot promotion เติม เครดิต slotxo เล่น ไพ่ แบ ล็ ค แจ็ ค slot vip slot555 slot casino free slotxo 999 slot789th slotxo ฝาก 1 รับ 100 open365 ฟรี เครดิต สล็อต xo 1688 slotxo คือ 918kiss live22 เล่น ไพ่ แบ ล็ ค แจ็ ค เล่น sbobet ฟรี joker ถอน ไม่มี ขั้น ต่ํา 77up football ป๊อก เด้ง ขั้น ต่ำ 10 บาท 918kiss เครดิต ฟรี ล่าสุด เข้า slotxo ฝาก เงิน live22 เว็บ แทง บอล fifa55 slot โบนัส เกมส์ สล็อต มือ ถือ scr888 sn888 วง ล้อ เสี่ยง โชค ออนไลน์ fifa55 แจก เครดิต ฟรี ลูกค้า เก่า สล็อต xo mobile เว็บ ตรง 918kiss 918kissauto v4 joker ฝาก ถอน ไม่มี ขั้น ต่ํา lucabet789 เครดิต ฟรี slot joker 99 สล็อต xo 99 บา คา ร่า mclub สล็อต xo วอ เลท เกม 11 ไฮโล scr99th 918kiss joker 2pigsslot 918kiss me 2 ufa365 com ได้ เลย ค่ะ xo โบนัส 100 ผล บอล เกม เสมือน จริง 2pj slot 918 allbet mega joker slot slotxo vip88 เครดิต 50 slot เติม true wallet ไม่มี ขั้น ต่ํา สมัคร ฟรี เครดิต ฟรี slotxo 10 ได้ 100 ไฮโล หน้า ลาย fifa55 แจก เครดิต ฟรี 200 เว็บ ฟีฟ่า 888 สล็อต xo วอ ล เล็ ต bet365 เครดิต ฟรี best slot รู เล็ ต 918kiss โปร ทุน น้อย slotv9 live22 เครดิต ฟรี ไม่ หลอก แชร์ สมัคร สมาชิก fifa55 สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 joker123 true wallet ไม่มี ขั้น ต่ํา 918kiss เครดิต ฟรี 2020 mafia88 slot ไฮโล ออนไลน์ ดี ที่สุด ฝาก 99 ฟรี 300 joker live22 www918kiss ทาง เข้า ฟีฟ่า 8888 โป เกอร์ sagame168th เครดิต ฟรี sg เครดิต ฟรี เครดิต ฟรี joker ไพ่ เงิน จริง หน้า ไฮโล ยิง ปลา ฝาก ขั้น ต่ํา 50 slotxo ฝาก ผ่าน ท รู วอ เลท 168bet ฟรี เครดิต joker slotxo เครดิต ฟรี ไม่ ต้อง ทํา เท ริน โกง ไฮโล ออนไลน์ slotxo ฝาก 19 บาท รับ 100 แบ ล็ ค แจ็ ค ไพ่ สล็อต โร ม่า เครดิต ฟรี 918kisskingdom fifa1234 login ไฮ โล slotxo ฝาก 19 บาท slot live22 โปร 918kiss สล็อต xo แตก ง่าย slot567 มาเฟีย 007 เครดิต ฟรี แอ พ ไฮโล ออนไลน์ slotxo mb fifa1234 login slotxo369 918 ฝาก ถอน ออ โต้ ไฮโล เครดิต ฟรี xo168 เกมส์ มือ ถือ พา รวย slotxo เกม สล็อต เกม มือ ถือ mm88bet login 918kiss ฝาก 19 joker slot 55 win88 เครดิต ฟรี 918kissthailand slotxo game 66 ป๊อก เด้ง คา สิ โน fifa55we แอ พ แยก เสียง ไฮโล best88 slot tss911 ฟรี เครดิต เว็บ ตรง 918kiss รู เล็ ต 11 แถว slotxo 1668 live22 โปร โม ชั่ น 918kiss v8 ไฮโล ขั้น ต่ำ 5 บาท slotxo ฝาก 10 บาท รับ 100 ล่าสุด live22 โปร โม ชั่ น เข้า เว็บ fifa55 เครดิต ฟรี ทํา เทิ ร์ น ถอน ได้ zap918kiss สมัคร live22 auto สล็อต roma ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 100 jokerauto 888 official918kiss เว็บ ตรง 918kiss 4ux slot vegus168 lucky 918kiss line slot999 xo ro slotxo slot joker 1234 สมัคร fifa7777 918dowload ยู ส เท ส slotxo ลิ้ ง เข้า fifa55 โจ๊ก เกอร์ 888 819 kiss download ฟรี เครดิต 200 live222th slotxo สล็อต xo ทุน น้อย fin888 เครดิต ฟรี รู เล็ ต ออนไลน์ มือ ถือ 20 slot god slot joker 918 slot online mafia999 slot boxing slot joker slot 2020 scrslot918 ดั ม มี่ คา สิ โน 918 ล่าสุด hack918kiss เครดิต ฟรี 2563 download918kiss ฝาก 1 บาท ฟรี 99 บาท scr99th 918kiss live22 ฝาก 1 บาท fifa55boom สล็อต xo77 โป๊ก เก้อ โกง ไฮโล ออนไลน์ สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน สล็อต xo123 winner55 เครดิต ฟรี ไฮโล ออนไลน์ เล่น ไพ่ โป ก เกอร์ ออนไลน์ ถอนเงิน slotxo สล็อต xo 191 super999 slot qtech slot slot เครดิต ฟรี 50 สล็อต ออนไลน์ 22 ไพ่ แบ ล็ ค แจ็ ค pantip slotxo z สมัคร mega888 ฟรี เครดิต live22 รับ 100 slot sagame66 แบ ล็ ค แจ็ ค ไฮโล รีโมท สี่ หน้า 88 kiss download fifa55v เครดิต ฟรี 18 เครดิต ฟรี เล่น ได้ เลย gclub 918 สมัคร ฟรี ไม่ ต้อง ฝาก fifa5555 ทาง เข้า slot sagame66 slot88vip slotxo 899 xo slot cafe gclub ฟรี เครดิต 2019 slot189 ฟีฟ่า 1688 fifa55 rmcc aec999 slot kingslotxo slotxo เติม วอ ล เลท 918kiss billion slot free credit no deposit 918 ล่าสุด คา สิ โน ออนไลน์ ดั ม มี่ 918kiss 168 slotxo god สล็อต ufa365 สล็อต xo 35 918kiss billion วิธี สมัคร databet88 918kiss kiss 55slot ไฮโล sicbo 918kiss เครดิต ฟรี 2020 ไฮโล ไฮเทค คือ gclub ฟรี เครดิต 918 live22 slotxo โมบาย slot4u slotxo qs ufa800 บา คา ร่า joker123 allbet asia slot auto888 เกมส์ ไฮโล red slot โบนัส เงิน ฝาก king77 slot ราคา รู เล็ ต big jack slot ไพ่ แบ ล็ ค แจ็ ค slotxo 1234 918kissyou slot joker xo สล็อต xo 99 slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 เครดิต ฟรี 200 ไม่ ต้อง แชร์ slotxo joker 918kiss เว็บ ไหน ดี ถอนเงิน xo 918kiss download slot roma ค่าย ไหน luk666 คา สิ โน ออนไลน์ 918kiss download live22 โปร 100 ฝาก ถอน 918kiss slotxo ฝาก 1 รับ 100 slotxo allbet เครดิต ฟรี ถอน ไม่ จํา กัด auto slotxo slotxo ที่ ดี ที่สุด live22th slot สล็อต 888 คา สิ โน ออนไลน์ slot joker เครดิต ฟรี slot game ฟรี เครดิต 200 เติม เงิน live22 สล็อต xo คิง ค อง vegus168 ดี ไหม ผล บอล เสมือน จริง ฟีฟ่า 20 slotxo เติม true wallet slot joker69 ทาง เข้า ฟีฟ่า 69 918kiss เครดิต ฟรี ล่าสุด slotxo 88th g9slot slot xo168 aa9win slot 77up club วงกลม รู เล็ ต slotxo ฝาก วอ เลท slot 3d เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss fifa55 เข้า ไม่ ได้ win555 เครดิต ฟรี น้ํา ยา ส กิ ด ไฮโล ไฮโล ออนไลน์ w88 918kiss win slotxo apk fifa55u true sport ฝาก เงิน ufa365 928kiss 678slot เว็บ แทง บอล fifa55 สล็อต 888 คา สิ โน ออนไลน์ สล็อต xo777 slotxo credit free รู เล็ ต คือ joker123 slotxo สล็อต ออนไลน์ xo slotxo ทุน น้อย slot at slot48xo ufa800 ไฮโล 198 kiss ฟรี เครดิต joker168 ฟรี เครดิต slotvip789 เครดิต ฟรี ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo slot game fifa55 goalclub fm99bet เครดิต ฟรี slotxo6 สล็อต xo แจก เครดิต ฟรี เว็บ พนัน fifa55 slot198 slotxo 191 slotxo 1988 สล็อต เอ้ ก โอ xo slot007 joker ฝาก ไม่มี ขั้น ต่ํา live22 โปร โม ชั่ น puss888 คา สิ โน ออ น ไล live22 easy fifa1234 log สล็อต ufa365 ด ค ร ดิ ต ฟรี megaways slot slotv9 คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ เครดิต ฟรี ถอน ได้ ไม่ จํา กัด joker slot 888 v1 สล็อต xo วอ ล เลท เข้า slotxo epic win slot cq9 slots 918 casino live22 ฟรี เครดิต ไม่ ต้อง ฝาก bbet99 เครดิต ฟรี เครดิต ฟรี 18 บาท happy slotxo slotxo city ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท skywind slot mafia928 เครดิต ฟรี 918kiss 123 sabai99 slot slotxo ฝาก 9 รับ 100 918kiss 1234 918kiss win ufa800 ไฮโล mega888 ไม่มี ขั้น ต่ํา slotxo ฟรี ส ปิ น fifa555com คา สิ โน ออนไลน์ 918kiss slot ฝาก ไม่มี ขั้น ต่ํา วอ เลท pgslot88 เติม เงิน live22 918kiss ฝาก ท รู วอ เลท 2pj slot slotxo ดี ไหม เครดิต ฟรี 2563 เว็บ บอล ฟีฟ่า 55 slotxo 24hr joker123 slotxo สล็อต xo เกม สล็อต xo เล่น ผ่าน เว็บ slot hd gaming world slotxo 928kiss grand kiss918 สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท ggbet168 เครดิต ฟรี slot cq9 เล่น เสือ มังกร ออนไลน์ fifa8888 login slotxo1 918 auto ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท siam slot agent 918kiss fifa55 ดี ไหม xoslot69thai 918kiss auto ป๊อก เด้ง คา สิ โน slotxo98 mm88bet com deposit ถอนเงิน live22 ak47max เครดิต ฟรี xoslot69 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก ufa800 สูตร ฝาก 1 บาท ฟรี 50 บาท หมุน วง ล้อ slotxo joker slot โปร 100 slot69 click slotxo 918kiss แจก อั่ ง เปา ตอน ไหน fifa55 rmuajj เล่น xo หน้า เว็บ สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก 2020 xs slotxo สมัคร เครดิต ฟรี 200 slot7777 slot168 xo ี ฟีฟ่า 55 slotxo สล็อต mega888 ไม่มี ขั้น ต่ํา 918kiss เจ้า ไหน ดี สล็อต xo 777 918kisstm win slot 888 slotxo 11 scr888 online casino slotxo 191 918kiss android android apk slotxo หา เครดิต ฟรี ไม่ ต้อง แชร์ 168 สล็อต xo royalbet777 สมัคร ฟรี เครดิต barney slots slot xo 999 gxy888 เครดิต ฟรี slotxo aec999 แอ พ ไฮโล ออนไลน์ 918kiss ถอน ไม่มี ขั้น ต่ํา playstar slot joker123 slotxo ไฮโล เงิน จริง เครดิต ฟรี 99 เครดิต ฟรี แค่ กรอก เบอร์ ล่าสุด slotxo 888 z8 เครดิต ฟรี joker hunter 888 game slotxo อั่ ง เปา 918kiss starslot777 สมัคร mega888 ฟรี เครดิต 918kiss ตู้ ม้า slot red ไฮโล ออนไลน์ เดิมพัน ขั้น ต่ำ 10 777 slots casino ไฮโล ขั้น ต่ำ 1 บาท 35 slot joker สล็อต พี่ หมี xo shangri la slot แทง ไฮโล ออนไลน์ open365 ฟรี เครดิต เว็บ xo fortune 918kiss slotxo แจก เครดิต ฟรี ทาง เข้า ฟีฟ่า 55 มือ ถือ 55slot joker ไฮโล pantip slot22 slotxo 96 สมัคร เว็บ บอล fifa55 แอ พ ไฮโล ออนไลน์ slot ฝาก 50 slotxo แตก บ่อย เสือ มังกร ออนไลน์ มือ ถือ เว็บ พนัน บอล fifa55 winner55 เครดิต ฟรี empire slot 918kissstar คิง ค อง สล็อต xo 918kiss888 slotxo168 918kiss 100 ฟรี 100 สล็อต xo311 1xbet slot เล่น ฟรี ถอน ได้ 918kisskingdom 555slotxo vegus16 ไฮโล เกม joker slot 168 th fin888 เครดิต ฟรี 4ux slot 168slotxo auto slot191 สมัคร เครดิต ฟรี 100 xo slot 369 slot189 ฟรี เครดิต 100 ไม่ ต้อง ฝาก 2563 เว็บ slotxo sagame66 ดี ไหม slotxo lucky สล็อต ยู ฟ่า 777 sg เครดิต ฟรี superslot999 xo shangri la slot ฟรี เครดิต 50 joker xo slot slot111 918kiss ฟรี 200 ส รู ตรู เล็ ต สล็อต ออนไลน์ 1234 slot ใหม่ scr888th v5 รู เล็ ต เคล็ด ลับ slotxo ฝาก ถอน วอ เลท slotxo lucky joker slot 96 อา ม่า 918 xo slot 369 เติม เงิน slotxo เครดิต ฟรี สมัคร ง่าย vegus168 line b2y เครดิต ฟรี 2020 heng666 ฟรี เครดิต gclub slot ฟรี เครดิต fifa55 สมัคร 50 ฟรี 100 slotxo 311 777 slots casino fifa555bonus tss911 ฟรี เครดิต mega888 download 2019 เล่น เกม slot slot 360 บ้าน บอล fifa55 918kiss ฝาก 50 ฟรี 50 918kiss เครดิต ฟรี 50 winner55 ฟรี 100 ไฮโล เกม slotxoth22 slot เครดิต ฟรี 2020 ไม่มี เงื่อนไข สล็อต xo777 mvegus1682 memberbet net chklogin สล็อต xo 007 slot4u joker ace333 ฟรี เครดิต 918kissworld all game slot all slot777 fifa55 reward เครดิต ฟรี ไม่ หลอก แชร์ mbk slot คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ kiss918 เครดิต ฟรี ufa24h6 เล่น ฟรี ถอน ได้ fifa55 line fifa55run 918kissbet databet88 pantip joker123auto เครดิต ฟรี ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท 918kiss download ios ล่าสุด slot tiger live22 ฝาก 1 บาท slot33 ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ำ slot finn wilderland slot slotxo qs slotxo 89 ฝาก 10 รับ 100 ล่าสุด xo sg game เครดิต ฟรี mm88bet สล็อต memberbet vegus168 leo slot z8 slot slot joker mobile ฝาก ถอน xo ฝาก 20 รับ 100 slotxo แบ ล็ ค แจ็ ค ไพ่ เครดิต ฟรี 200 ไม่ ต้อง แชร์ slot xo1234 ไฮโล 11 gclub ฟรี 500 198 kiss ฟรี เครดิต 35 slot joker slotxo blue slotgame666 boxing slot เล่น เกม สล็อต xo การ เล่น แบ ล็ ค แจ็ ค สมัคร เครดิต ฟรี 300 slot slot7777 คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ jokerslot888v1 slotxogame365 เล่น โป ก เกอร์ ออนไลน์ joker 2pigsslot ไฮโล ลูกเต๋า wow918kiss วง ล้อ คา สิ โน golden 678 slot slotxo god ไพ่ black jack ฟุตบอล เสมือน จริง คา สิ โน ไพ่ ดั ม มี่ 8bit slotxo จุดอ่อน รู เล็ ต slotxo199 เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ bein sport 1 fifa55 slotxo sb mega888 ไทย slotgame666 ฝาก 10 รับ 100 joker xo แทง รู เว็บ fifa55 gott7 slot grand918kiss 918kiss แจก เครดิต ฟรี 100
ฟรี เครดิต สล็อต น้อง ใหม่ 300 บาท| gta 5 casino ps4| แจก เครดิต ฟรี สมัคร รับ เลย| กีฬา วัน นี้ ผล บอล| ทดลอง เล่น สล็อต ฟรี ถอน ได้| sagame ฝาก 100 ฟรี 100| slot auto 100| เครดิต ฟรี สล็อต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020| slotmafia789| กีฬา วัน นี้ ผล บอล| dragon match megaways slot| csr1 slot club| ยิง ปลา เครดิต ฟรีสล็อต 999| สล็อต แบบ ไม่ ต้อง ฝาก ก่อน| ดู ผล ฟุตบอล พรีเมียร์ ลีก| เกมส์ สล็อต live22| www star77casino| slot888 กระเป๋า ตัง| gta 5 ps4 casino| สมัคร sboslots| สล็อต ฝาก ขั้น ต่ํา 20 บาท| w88 สล็อต ทดลอง เล่น| iphone 7 blackjack| สมัคร slotspx| ผล บอล ไทยรัฐ| slot v เงิน ฟรี| สล็อต รองรับ วอ เลท| all slot999| รวม live22| เครดิต ฟรี แค่ สมัคร สล็อต| สมัคร มาเฟีย| ผล ฟุตบอล สด คืน นี้| red lady slot| mega joker download| slotsmagic| สมัคร empire777| gta 5 casino ps4| ทดลอง เล่น สล็อต red tiger| ขอ เครดิต ฟรี สล็อต| ผล บอล ซีเกมส์ ทุก คู่| amazing slot| casino spin up| casino gta 5 offline| amatic slot| สมัคร ufa555| แจก เดิมพัน ฟรี| total slot| kingslot 77| คา สิ โน โบนัส ฟรี 100| สมัคร สล็อต ได้ เครดิต ฟรี| เล่น เกมส์ สล็อต xo| ผล การ แข่งขัน ฟุตบอล u19| เว็บ สล็อต ซื้อ ฟรี ส ปิ น ได้| เว็บ แท่ง บอล ออนไลน์ pantip| โหลด king 168| สล็อต เครดิต ฟรี วัน นี้| casino777 app| 369slotxo| สล็อต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์| แอ พ การ พนัน| casino slot demo| สมัคร omgbet| party poker app android| bicicleta slot| ยืนยัน ตัว ต้น รับ เครดิต ฟรี ล่าสุด| ปอย เปต ด อ ท คอม|