<var id="614I6"><ruby id="614I6"><address id="614I6"></address></ruby></var><listing id="614I6"><dl id="614I6"></dl></listing>
<var id="614I6"></var>
<cite id="614I6"></cite>
<ins id="614I6"></ins>
<cite id="614I6"></cite>
<menuitem id="614I6"></menuitem>
<ins id="614I6"></ins>
<var id="614I6"></var>
<cite id="614I6"></cite>
<ins id="614I6"></ins>
<progress id="614I6"><i id="614I6"><span id="614I6"></span></i></progress>
<var id="614I6"></var>
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
 
ufabet369 ทาง เข้า โบนัส ฟรี ไม่ ต้อง ฝาก ถอน ได้ bcr777 รู เล็ ต ดาวน์โหลด slotxo asia เกมส์ sa เซ๊ ก ซี่ บา ค่า ร่า เกมส์ ufabet ขั้น ต่ำ 100 แจก ทุน ฟรี ไม่ ต้อง แชร์ โหลด แอ พ สล็อต xo เว็บ ufabet168 แอ ป ยู ฟ่า เบ ท สล็อต ออนไลน์ ios sa gaming group เข้า ufa ufabet 189 ufabet kik เข้า ufabet แทง บอล ออนไลน์ 24 ชม ทาง เข้า เล่น ยู ฟ่า ไม่ ต้อง ฝาก รับ เครดิต ฟรี แทง บอล ทบ แทง ขั้น ต่ำ 10 บาท sa casino บา คา ร่า 123goal lsm789up โบนัส วัน เกิด ไม่ ต้อง ฝาก fifa888 ufawb998 เกมส์ มา ส คา ร่า แทง ฟรี ไม่ ต้อง ฝาก slot ฝาก 1 บาท ฟรี 50 บาท slot แจก ฟรี เครดิต บา คา ร่า 2020 sa66 คา สิ โน fifa5555 หวย ยู ฟา เบ ท บอล น่า แทง วัน นี้ slot ฝาก 5 บาท ฟรี 99 บาท sa77 บา คา ร่า ติด ตั้ง เกม สล็อต xo ยู ฟ่า 369 ทาง เข้า เอ เย่ น ufabet i99bet ทาง เข้า slotxo 007 สมัคร ufa24h สมัคร เล่น เกม สล็อต fifa แทง บอล ufabet555 ufabet 20 รับ 100 บอล แทง แจก เครดิต ฟรี ถอน ได้ เลย ufabet ฝาก 100 ฟรี 100 ufa800 สล็อต เว็บ ยู ฟ่า 88 slot ฟรี 300 ufabet 8888 ufa365 สล็อต ufa24h ทาง เข้า fifa555king บา คา ร่า เสีย รับ เครดิต ฟรี ไม่ ต้อง ฝาก โปร โม ชั่ น slot xo ufa168 มือ ถือ เครดิต ฟรี ไม่ ต้อง โอน ufabet365 ทาง เข้า แทง บอล ออนไลน์ ฝาก ขั้น ต่ํา 100 คา สิ โน sa gaming ufabet auto เว็บ ufa88 ufabet898 sa gaming 36 slotxo download apk สมัคร พนัน บอล 168 slotxo download mm88bet pantip slot เครดิต ฟรี ล่าสุด บา คา ร่า 2020 บา คา ร่า ล็อค ยู ส ufabet 147 sa789 บา คา ร่า slotxo 1 slotxo โปร โม ชั่ น sa เกม มิ่ง vip สมัคร slot555 เครดิต ฟรี เดือน นี้ สมัคร สล็อต xo ทาง เข้า เกม slotxo slot เติม 10 รับ 100 เว็บ ยู ฟ่า bet fifa555a บา คา ร่า วัว วัว live777th slot online ทาง เข้า fifa55u สมัคร ufa7777 ทํา เทิ ร์ น เครดิต ฟรี เปิด ยู ส ใหม่ รับ เครดิต ฟรี ยู ฟ้า 369 แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2562 ufabet lion live22 เครดิต ฟรี 2020 slot1688 ฟรี เครดิต เว็บ บา คา ร่า ufabet fifa55mini ufa678 จ่าย จริง ไหม ufabet189 ยู ฟ่า เบ ท 666 ufa356 ฟรี เครดิต clubfifa55 เล่น บา คา ร่า ออนไลน์ ฟรี sa gaming ufabet711 ดาวน์โหลด สล็อต ออนไลน์ มือ ถือ fifa55 เครดิต ฟรี 100 vip sa gaming แจก ฟรี ไม่ ต้อง ฝาก ก่อน ถอนเงิน จาก ufabet ดาวน์โหลด slotxo asia จี คลับ ผ่าน ท รู วอ ล เล็ ท ufabet1688 สมัคร ufa168 มือ ถือ ทาง เข้า ufa369 ดาวน์โหลด แอ พ slotxo ufa365 pantip เข้า ufabet168 sa gaming 79 xo slot ทาง เข้า ufabet2 เครดิต ฟรี ล่าสุด วัน นี้ ี ufabet88888 ทาง เข้า slotxo bkk สล็อต 1234 joker ดาวน์โหลด ถอนเงิน ufa365 ี ufabet168 live22 slot download slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ค่า บ่า ร่า บา คา ร่า 50000 แจก ยูสเซอร์ พร้อม เครดิต ฟรี ufabet29 สมัคร ufa356 โปร สล็อต joker ฟรี เครดิต 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ยู ฟ่า 365 ี ufabet 168 ufa6666 สมัคร ทาง เข้า ufa24 สล็อต xo download mm8bet pantip แทง บ ฝาก ufa168 sa gaing เว็บ พนัน ออนไลน์ uefa ufa356 เครดิต ฟรี 100 wwwufa9999com wwwfifa55 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 mmm88bet xo download บา คา ร่า sa350 รับ เครดิต ฟรี xo slot roma เครดิต ฟรี ufa88s ทาง เข้า fifa55u ติด ตั้ง เกม สล็อต ยู ฟ่า 369 สมัคร sa game 66 ถอนเงิน ufa สมัคร เล่น เกม สล็อต bcr777 รู เล็ ต fifa55u เครดิต ฟรี เปิด ยูสเซอร์ ฟรี เครดิต ี ufa24h สมาชิก ใหม่ ฟรี เครดิต 300 slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 slot เครดิต ฟรี ล่าสุด ufabet group แทง บอล บัตร ท รู pay69 slot เครดิต ฟรี ยู ฟ่า ออนไลน์ 24 แทง บอล lsm99 แทง บอล ขั้น ต่ำ 50 บาท spin999 ฟรี เครดิต ส รู บา คา ร่า slot ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เว็บ ฟีฟ่า เครดิต ฟรี เดือน นี้ slotxo ฝาก 1 รับ 50 ทํา เทิ ร์ น เครดิต ฟรี ufa ไม่มี ขั้น ต่ำ เว็บ บอล ยู ฟ่า ราคา แทง บอล วัน นี้ ufa thai vip mm88bet slot เครดิต ฟรี ล่าสุด slotxo joker เครดิต ฟรี 777slot เครดิต ฟรี ทาง เข้า ยู ฟ่า 168 fifa69 ufa656 ทาง เข้า มือ ถือ slotxo เครดิต ฟรี ไม่ ต้อง ฝาก โปร ufa ยิง ปลา ฝาก 100 ฟรี 300 แทง บอล 100 sa8 บา คา ร่า ยิง ปลา รับ เครดิต ฟรี สล็อต xo โหลด ufa356 แจก เครดิต ฟรี เปิดโปง บา คา ร่า slotxo โหลด ios xo123 เครดิต ฟรี แทง บอล รอง ufabet227 สมัคร sa game 66 เว็บไซต์ แจก เครดิต ฟรี ufa1688 ดี ไหม ทาง เข้า xo mobile joker999 เครดิต ฟรี แทง บอล กิน ส่วน ต่าง slotxo ฟรี เครดิต 100 ไม่ ต้อง ฝาก เล่น บา คา ร่า ออนไลน์ ฟรี sa gaming ufabet ขั้น ต่ำ 100 ufabet787 แทง บอล ออนไลน์ i99win ufa191 ถอนเงิน vip123 บา คา ร่า ยู ฟ่า เบ ท 123 เว็บ ufabet168 sa เกม มิ่ง เครดิต ฟรี slotxo ufabet45 sa gaming 168 th ทาง เข้า slotxo168 เข้า ufa168 หวย ufa บา คา ร่า urowow บา คา ร่า วัน ละ 500 แทง บอล fifa fifa 9999 โบนัส ฟรี ไม่ ต้อง ฝาก เซ๊ ก ซี่ บา ค่า ร่า เกมส์ ทาง เข้า amb555 ทาง เข้า ufabet789 ufabet ที่ ดี ที่สุด ป๊อก เด้ง เงิน จริง ฟรี เครดิต ufa345 ทาง เข้า บา ร่า คา slot ออนไลน์ ฟรี slot ฟรี ไม่ ต้อง ฝาก sa baccarat 1988 แทง บอล fifa slot house เครดิต ฟรี joker xo 555 sa game vip 168 ยู ฟ่า เบ ท 365 all บา คา ร่า slotxo 09 สมัคร slotxo88 ๊ ufa แทง บอล หวย ออนไลน์ ufa363 ทาง เข้า ราคา บอล แทง บอล สมัคร สล็อต live22 mmm88bet ufa888 ทาง เข้า ไฮโล ufabet ufa ไม่มี ขั้น ต่ํา แทง บอล ถูก กฎหมาย ดาวน์โหลด slotxo88 24sbobet online บา คา ร่า lsm ได้ เครดิต ฟรี บา คา ร่า holiday ทาง เข้า slotxo bkk sbothai8 fifa555king slotxo ฝาก 100 รับ 100 ufabet เว็บ ตรง สล็อต xo 24 betclic899 ไลน์ vip2541 ทาง เข้า ufabet168vip เว็บ บอล ufabet xo แจก เครดิต ฟรี sa8 บา คา ร่า ยู ฟ่า เบ ท ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ รับ เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ดาว โหลด เกม ส ล๊ อ ต slot online เครดิต ฟรี เกมส์ sa สมาชิก ใหม่ รับ เครดิต ฟรี ยู ฟ้า 888 ยู ฟ้า 678 vip123 บา คา ร่า ufa365 v2 เว็บ กา บอล ufa เว็บ ไหน ดี ufabet gaming sa vip บา คา ร่า sa gaming 1 sa ฟรี ufabet เอ เย่ น ราคา บอล 1.8 ufabet โปร 100 แทง บอล ให้ ได้ เงิน ล้าน ว้า ว บา คา ร่า สมัคร ufa356 sa8 บา คา ร่า ufabet 100 fifa 1234 โบนัส 100 บาท สำหรับ สมาชิก ใหม่ แจก เครดิต 2020 ี ufa6666 slotxo ฝาก 100 รับ 100 sa gaming hacker ฟรี slotxo ทาง เข้า sa gaming 928 เครดิต ฟรี สมาชิก ใหม่ ไม่ ต้อง ฝาก เครดิต ฟรี ได้ จริงๆ ไฮโล ufabet fifa55hd เครดิต ฟรี ไม่ ยุ่งยาก 2020 fifa555 ฝาก 50 ฟรี 100 ufa99999 เว็บ ufabet ufabet987 fifa55f ทาง เข้า slotxo bkk ทาง เข้า ยู ฟ่า bet โปร สมาชิก ใหม่ 100 slotxo ufabet955 แทง บอล 99 web บอล บา คา ร่า pantip 2563 สมัคร สมาชิก สล็อต ออนไลน์ mobile ufabet แทง ฟุตบอล ออนไลน์ ufathai123 ี ufa345 fifa55 ฟรี เครดิต slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2019 ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด แทง บอล เดี่ยว ufabet ฟรี เครดิต ไม่ ต้อง ฝาก agent ufabet แทง บอล ยูโร เอเย่นต์ ยู ฟ่า แทง ฟุตบอล ออนไลน์ live22 slot download ufabet88888vip slot ฟรี เครดิต ไม่ ต้อง ฝาก 2019 slotxo เปิด ใหม่ sa gaming 928 ufabet 1168 ufa800 ดี ไหม pantip slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด เล่น fifa55 บอล ufa เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 ufa7777com ufabet เข้า เล่น ยู ฟ่า เบ ท 007 ค่า ร่า เครดิต ฟรี เฮง เฮง เว็บ ยู ฟ่า 777 เข้า เล่น เกม xo ufa356 ดี ไหม pantip จี คลับ ผ่าน ท รู วอ ล เล็ ท ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ รับ เครดิต ฟรี สมัคร สมาชิก slotxo ufa365 ฝาก ufabet วอ เลท ทาง เข้า fifa ทาง เข้า ufabet ufa678 เข้า ไม่ ได้ สมัคร สมาชิก ufabet sbobet88888888 ufabet บา คา ร่า ออนไลน์ เกมส์ มา ส คา ร่า สมาชิก ใหม่ ฟรี เครดิต ล่าสุด ดาวน์โหลด slotxo ล่าสุด ufabet mobile ufabet 999999 เอ เย่ น ufabet เข้า เล่น เกม สล็อต xo ฝาก ขั้น ต่ํา 10 sa gaming 50 รับ 150 ยู ฟ่า เบ ท 88888 winbetth888 sa gaming vip pantip ดาวน์โหลด มือ ถือ http www happyslot88 com download slot โบนัส ฟรี แทง บอล เดี่ยว จี คลับ ผ่าน ท รู วอ ล เล็ ท เว็บ ยู ฟ่า 888 บา คา ร่า pantip ราคา แทง บอล วัน นี้ โปร สมาชิก ใหม่ 100 slotxo แทง บอล กิน ส่วน ต่าง 77up2u เว็บ 369 ี ufabet ทาง เข้า เครดิต ฟรี สมาชิก ใหม่ slot credit free ufa168 สมัคร sa game asia แจก โบนัส 100 ฟรี เครดิต ถอน ได้ ufabet พัน ทิป แทง บอล ufa350 ทาง เข้า amb555 ฝาก 50 รับ 200 ไม่ ต้อง ทํา เทิ ร์ น เกม gclub sa vip gaming xo download แทง บอล ฝาก ไม่มี ขั้น ต่ํา download slotxo ios แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด ยู ฟ่า เบ ท 9999 ufabet vip 168 live777th slot online slot ฟรี เครดิต 2019 สมัคร งาน ufabet ufabet joker โปร โม ชั่ น เว็บ พนัน บอล ufabet android โปร โม ชั่ น ufa ufa88d ทาง เข้า รับ เครดิต ฟรี joker betufa มือ ถือ เข้า sa gaming ไม่ ได้ sbobetball168 สมัคร สมาชิก ufa เว ป vip2541 sboibc888 club388 เครดิต ฟรี ว้า ว บา คา ร่า fifa55fb เล่น slotxo ผ่าน หน้า เว็บ เครดิต ฟรี ทันที โปร ฟรี เครดิต ไลน์ ufa365 slot ฝาก 100 รับ 100 โหลด xo slot 168ufabet slotxo ใหม่ ufa79g เข้า ufabet ไม่ ได้ เครดิต ฟรี 300 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แทง หวย ligaz888 co ดาวน์โหลด slotxo ล่าสุด โบนัส 100 บาท สำหรับ สมาชิก ใหม่ ยู ฟ่า 369 ทาง เข้า ufabet45 ufaking168 mega888 ฟรี เครดิต ไม่ ต้อง ฝาก ทาง เข้า slotxo joker123 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ทาง เข้า ยู ฟ่า 369 sa gaming ฝาก เงิน โปร โม ชั่ น แจก เครดิต ฟรี slot house เครดิต ฟรี club388 เครดิต ฟรี slot online ฟรี เครดิต ไม่ ต้อง ฝาก 2019 โบนัส วัน เกิด ไม่ ต้อง ฝาก บอล ต่ำ ทาง เข้า slotxo199 ufabet sport โบนัส วัน เกิด ไม่ ต้อง ฝาก fifa55 หวย sexxygame1688 บา คา ร่า วัน ละ 500 แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด เครดิต ฟรี ได้ จริง 2020 ufabet ฝาก ขั้น ต่ํา ทาง เข้า slotxovip เข้า เล่น ufa โปร ฟรี เครดิต ufa356 pantip joker999 เครดิต ฟรี ufa888info ww fifa55 scr888th เครดิต ฟรี ufa356 เครดิต ฟรี 100 โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก แจก เครดิต 2020 all pg slot prompay88 เครดิต ฟรี ufabet เว็บ แม่ แทง บอล pantip ยู ฟ่า เบ ท 123 sbobetsh 888 ufabet168 v4 tbsbet 2562 ufabet group spin999 เครดิต ฟรี ufa356 ถอนเงิน แทง บอล แบบ 1x2 ufabet dna ufabet ฝาก วอ เลท ฝาก 10 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น แทง หวย ligaz888 co ufa88 มือ ถือ xo slot ทาง เข้า slotxo ฟี ฟ้า 55 slotxo ฝาก 1 บาท ฟรี 50 บาท ล่าสุด ทํา เทิ ร์ น เครดิต ฟรี ทาง เข้า ufabet789 ufa9999s ufa356 ทาง เข้า alpha88 pc ufabet 8111 slot ฟรี เครดิต 2019 fifa55 คืน ยอด เสีย เว็บไซต์ แทง บอล ออนไลน์ ufabet29 ี ufa356 เครดิต ฟรี ล่าสุด วัน นี้ ทาง เข้า betufa xo download ี ufabet1688 xo slot ทาง เข้า ufa365s สมัคร เว็บ ยู ฟ่า slot wallet เครดิต ฟรี ufabet เว็บ เกมส์ มา ส คา ร่า แทง บอล 10 บาท เกม มัก คา ร่า slot ฟรี โบนัส fifa7777 ทาง เข้า ufabet v7 ufabet ฝาก 100 ฟรี 100 ดาวน์โหลด slotxo ล่าสุด ufabet แจก เครดิต ฟรี ล่าสุด ยู ฟ่า สมัคร เล่น บา คา ร่า sa โปร ฟรี เครดิต สล็อต 1234 joker ดาวน์โหลด ี ufa356 เครดิต ฟรี ไม่ ดาว โหลด เกม slotxo sbobetvip888 sagaming 07 ufabethero ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ทาง เข้า xo mobile kingkongxo slotxo sa gaming 99 ถอนเงิน ufa7777 ufabet mobile slot ออนไลน์ ฟรี ดาวน์โหลด แอ พ slotxo mafia88 เครดิต ฟรี 50 แจก ฟรี เครดิต ไม่ ต้อง ฝาก 2020 แอ พ slotxo ดาวน์โหลด aka slotxo xe88 เครดิต ฟรี ไม่ ต้อง ฝาก sa gaming เครดิต ฟรี 300 ufabet club สมัคร สล็อต xo1234 ยู ฟ่า เบ ท ออนไลน์ ufabet168 vip ufabet slotxo โหลด ios prompay88 เครดิต ฟรี ufa365 v2 สมัคร ufa777 สมัคร ufabet369 sa gaming 168 login ufabet แจก เครดิต ฟรี 100 mafia slot ใหม่ ล่าสุด เครดิต ฟรี แจก ยูสเซอร์ ฟรี พร้อม เครดิต หาเงิน จาก บา คา ร่า บา คา ร่า ค่า คอม สูง ufa888s บา คา ร่า มา วิน สมัคร slot online ufabet777 ดี ไหม เว็บ บอล ufabet ถอนเงิน จาก ufabet บา คา ร่า เซ๊ ก ซี่ holiday บา คา ร่า sa gaming ลอง เล่น sa gameth ค่า บ่า ร่า ufathai 777 เว็บ sa game ค่า บา ล่า บา คา ร่า ae วัว วัว บา คา ร่า คือ ufabet ออ โต้ ufabet win666 ufabet เว็บ vegus111 ufa88d ทาง เข้า บอล ออนไลน์ 55 ufabet id line vegus168 ufabet 14 เว ป แทง บอล ที่ ดี ที่สุด ufabet 555 สุต บา คารา เว็บ ufabet888 ufa365 pantip ufapro888 v3 slotxo เครดิต ฟรี ไม่ ต้อง แชร์ ufabet rich บอล ออนไลน์ 168 แทง บอล ให้ รวย www fifa555 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2020 spin999 เครดิต ฟรี slotxo เล่น ผ่าน หน้า เว็บ แทง บอล โลก 2018 ทาง เข้า เล่น slotxo xo slot ทาง เข้า fifa55f ufa ไม่มี ขั้น ต่ำ sexybaccarat66 แทง บอล 3m แทง บ fifa55555 โหลด เกม slotxo 168 slotxo download slot ฟรี เครดิต ไม่ ต้อง ฝาก fifa55fifa55 แทง บอล กิน ค่า น้ํา เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 แทง บอล ออนไลน์ ฝาก ขั้น ต่ํา 100 เว็บ ยู ฟ่า 1688 โปร โม ชั่ น sbobet777 เปิด ยูสเซอร์ ฟรี เครดิต ไม่ ต้อง ฝาก ufabet27 slotxo โหลด sa gaming88 เข้า สู่ ระบบ mafia8888 เครดิต ฟรี ทาง เข้า ฟีฟ่า 888 slotxo ติด ตั้ง slotxo download ios ดาวน์โหลด slotxo apk ufa888info บา คา ร่า ae ยู ฟ่า 365 เครดิต ฟรี สมาชิก ใหม่ sbobet888888 free เครดิต ฟรี fifa55f แอ พ slotxo mafia567 เครดิต ฟรี slotxo แอ พ มือ ถือ แจก จริง เครดิต ฟรี เซ๊ ก ซี่ บา ค่า ร่า เกมส์ 66 188bet ฟรี เครดิต 2019 ทาง เข้า ufa365 ยิง ปลา ฝาก 100 ฟรี 300 lsm77 เครดิต ฟรี ทาง เข้า ufabet787 ufa ufabet โบนัส 100 สำหรับ สมาชิก ใหม่ ไม่ ต้อง ฝาก ๊ ufa168 เว้ บ เครดิต ฟรี betufa default 8 sa gaming casino บา คา ร่า ราคา ถูก ทาง เข้า ฟีฟ่า 555 เปิด ยู ส ฟรี เครดิต บา คา ร่า b2y ufa365 แจก เครดิต ฟรี สมัคร ufabet168 ufabet 428 ufa800 เครดิต ฟรี sa gaming 168vip slotxo สมาชิก ใหม่ 100 slotxo เวอร์ชั่น ล่าสุด เซ๊ ก ซี่ บา คา ร่า เกมส์ 66 gaming66 โปร slotxo ufabet99999 ดาวน์โหลด สล็อต live22 ยู ฟ่า เบ ท ออนไลน์ เครดิต ฟรี sa gaming เล่น บอล ทั้ง สอง ฝั่ง ดาว โหลด slot ดาวน์โหลด slotxo ล่าสุด เครดิต ฟรี ไม่ ต้อง บา คา ร่า สายฟ้า ufabet v3 ufabet ฝาก ขั้น ต่ํา ufabet 289 ufabet688 slotxo 56 ufabet28 ยู ฟ่า เบ ท 24 copa69 mm88aec ราคา บอล 1.8 แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน แซ ก ซี้ บา คารา 66 sa 168 vip เข้า สู่ ระบบ ทาง เข้า เล่น 168slotxo slot ฝาก 5 บาท ฟรี 99 บาท โหลด สล็อต live22 แจก ฟรี ไม่ ต้อง ฝาก ดาวน์โหลด เกม สล็อต sa gaming demo bcr777 รู เล็ ต เข้า ยู ฟ่า เบ ท sa gaming ปิด ปรับปรุง ดาวน์โหลด slot007 sbobet777 285 บา คา ร่า แทง บอล พรีเมียร์ ลีก สมัคร slotxo88 ดาวน์โหลด slotxo android ufa191 ufabet ถูก กฎหมาย ไหม download slotxo ios โปร โม ชั่ น เว็บ พนัน บอล ufa678 หวย เข้า ufa บา ค่า ร่า เครดิต ฟรี fifa 855bet ufa191 สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ สมัคร slotxo111 ยู ฟ่า เบ ท 999 เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 ล่าสุด เว็บ พนัน ออนไลน์ uefa ยู ฟ่า ออนไลน์ 168 ufabet v9 ufabet pr ฝาก 1 รับ 100 918kiss fifa555king สมาชิก ใหม่ ฟรี เครดิต ล่าสุด ฟรี เครดิต 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ betufa ถอนเงิน ufabet 44 best88 เครดิต ฟรี เครดิต ฟรี วัน นี้ fifa55sup ทาง เข้า ufabet45 ทาง เข้า ฟีฟ่า 555 1688 ufa ufabet 8s ufalion 168 มาเฟีย เครดิต ฟรี ล่าสุด pussy888 แจก เครดิต ฟรี six4bet เว ป ยู ฟ่า 191 ufa88up สมัคร ufabet168 แจก เครดิต ฟรี 30 ดาว โหลด ส ล็ ต xo slotxo download android แทง บอล ได้ เงิน จริง ฟี ฟ้า 55 ตั้ง slotxo slot สมาชิก ใหม่ รับ เครดิต ฟรี ๊ ufa168 ufabet365 ทาง เข้า ตั้ง slotxo slot แจก เงิน ทาง เข้า slotxo88 ฝาก 10 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น ufa678 เข้า ไม่ ได้ slotxo ฝาก 10 บาท สมัคร เล่น บอล ออนไลน์ สล็อต xo ทาง เข้า แจก ฟรี ไม่ ต้อง ฝาก slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ไม่ ต้อง แชร์ แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th slotxo ติดต่อ ทาง xo ฝาก 1 บาท ฟรี 99 บาท 2020 ufabet 146 sa gaming 07 เว็บ ยู ฟ่า 168 ทาง เข้า ufabet 89 ufabet5 สมัคร slot555 ufabet991 ค่า คอมมิชชั่น บา คา ร่า วิธี ดาวน์โหลด slotxo เครดิต ฟรี ไม่ ต้อง ฝาก slot ufa ไม่มี ขั้น ต่ํา ทาง เข้า xo slot ufabet8z สมัคร 168 gaming agent ufabet1688 www ยู ฟ่า เบ ท ufabet 688 ฟี ฟ้า 555 แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 slotxo ฝาก แรก 50 สล็อต xo ดาวน์โหลด โบนัส ฟรี เครดิต ยู ฟ่า เบ ท 007 สมัคร ยู ฟ่า 191 sa gaming 222 แทง บอล รอง ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ufa600 ทาง เข้า เล่น 168slotxo อยาก ได้ เครดิต ฟรี เกม gclub sa gaming 1688 เข้า สู่ ระบบ เว็บ พนัน ufabet ี ufabet369 sbobet54 www fifa7777com โหลด เกม xo slot ufa777 ทาง เข้า sagame66 demo sa gaming vip ดี ไหม ทาง เข้า slotxo vip สมาชิก เครดิต ฟรี roma เครดิต ฟรี สมัคร เว็บ ยู ฟ่า ค่า คอม ufabet เครดิต ฟรี ถอน ได้ เลย สมัคร ufabet ออนไลน์ สมัคร ufa777 ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ slotxo ฝาก 1 บาท ฟรี 50 บาท ล่าสุด sa gaming คือ แทง บอล ด้วย บัตร ท รู autobet99 เครดิต ฟรี slotxo ฝาก 100 รับ 100 mm88wim ดาวน์โหลด สล็อต xo168 sa gaming 666 sa gaming 25 xo slot download ยู ฟ่า เบ ท 007 sbobetclub168 ดาวน์โหลด slotxo 44 เสีย บา คา ร่า pantip 2563 48 pg slot ufa23 slot เครดิต ฟรี ล่าสุด ufabet group fifa55th fifa55 แจก เครดิต ฟรี 50 ไม่ ต้อง ฝาก ล่าสุด ufa agent ทาง เข้า รับ เครดิต ฟรี ง่ายๆ สมาชิก เครดิต ฟรี เซ๊ ก ซี่ บา เว็บ กา บอล slot ฝาก 1 บาท ฟรี 50 บาท แจก เครดิต ล่าสุด ufabet แม่ ufa ไม่ ผ่าน เอเย่นต์ ทาง เข้า betufa sbothai8 โปร โม ชั่ น เครดิต ฟรี สมาชิก ใหม่ sa gaming เข้า ไม่ ได้ เครดิต ฟรี 150 ไม่ ต้อง ฝาก ก่อน แว็ ป บอล บา คา ร่า pantip 2563 แทง บอล รวย เว้ บ เครดิต ฟรี ถอนเงิน ufabet1688 สมาชิก เครดิต ฟรี สมัคร ufabet1688 sa gaming link แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2562 จุดจบ บา คา ร่า เล่น แทง บอล sa gaming 07 เบอร์ ติดต่อ slotxo ยู ฟ่า เบ ท 356 ทาง เข้า fifa ufabet 146 slotxo ฝาก 10 บาท ฟรี 99 บาท ufabet sports ufabet line สล็อต xo โบนัส 100 slot online ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ทาง เข้า ยู ฟ่า 1688 ได้ เครดิต ฟรี เว ป vip2541 ufabet1688 agreement 8 บา คา ร่า urowow โปร โม ชั่ น slot xo ติด ตั้ง xo มาเฟีย เครดิต ฟรี ล่าสุด บอล ufa แทง ฟรี ไม่ ต้อง ฝาก สมัคร slotxo รับ เครดิต ฟรี xo slot ฟรี เครดิต ufabet 1168 ทาง เข้า ufa คืน ยอด เสีย ดาวน์โหลด joker xo แจก ยูสเซอร์ ฟรี ufa777 ufa7000 โปร โม ชั่ น บอล แจก เครดิต ฟรี ไม่มี เงื่อนไข สมัคร สล็อต ออนไลน์ สมัคร slotxo joker ี ufa ufa356 เครดิต ฟรี 100 sa gaming88 เข้า สู่ ระบบ รับ เครดิต ฟรี สมาชิก ใหม่ ufabet 1168 ทาง เข้า slotxo โปร 10 บา คา ร่า เซ๊ ก ซี่ ทาง เข้า slotxo joker123 fifa ฝาก 50 ฟรี 100 ดาวน์โหลด slot007 แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด เล่น บา คา ร่า ออนไลน์ ฟรี sa gaming slotxo ฝาก 1 บาท ได้ 100 วอ เลท sagame66 demo เว็บ เดิมพัน กีฬา เข้า เล่น ยู ฟ่า ี ufa88 เข้า ufabet sa เกม 199 slotxo สมัคร สมาชิก ufabet group ufabet group gclub985 ufa thai vip uf9ba online บอล ufa สมัคร ufa7777 ufa1688 ฝาก ufabet เข้า เล่น ufabetsr3 ufabet 428 บา คา ร่า ล่าสุด ราคา แทง บอล mt88casino ทาง เข้า เล่น slotxo ทาง เข้า เล่น https slotauto888 com ufabet45 slotxo bonus 100 สมัคร ufa800 i99max ดาวน์โหลด slotxo ios slotxo โหลด ios sa77 บา คา ร่า sa8 บา คา ร่า ufabet v7 เว ป บอล ออนไลน์ mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 เว็บ ufa191 sa gaming ฟรี เครดิต mega888 ฟรี เครดิต ไม่ ต้อง ฝาก slotxo ฝาก 1 รับ 50 slotxo โหลด slot ฝาก 100 รับ 100 ทาง ufabet สมัคร slotxo รับ เครดิต ฟรี ยู ฟ่า เบ ท 168 vip ี ufabet 888 เกมส์ sa ยู ฟ้า 888 บา คา ร่า 50000 slot สมัคร 10 บาท ufa365 แจก เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง เติม www fifa555 ดาวน์โหลด aka slotxo โหลด เกม xo 918kiss แจก เครดิต ฟรี 2020 เครดิต ฟรี สมาชิก ใหม่ ไม่ ต้อง ฝาก ี ufa9999 ufabet gold login ufa mafia8888 เครดิต ฟรี sa เกม มิ่ง 88 ligaz888 slotxo ติดต่อ mega888 ฟรี เครดิต slot ฝาก 5 บาท ฟรี 99 บาท สมัคร ufa777 สมาชิก ใหม่ ฟรี เครดิต 2020 เล่น บอล แบบ นัก ลงทุน ทาง เข้า ufabet1688 ถอนเงิน ufa191 login ufa slot1688 online sa baccarat 1988 fifa55 ฟรี เครดิต 100 สมัคร เล่น ufabet databet88bet ทาง เข้า slotauto888 เว็บ กา บอล ดาว โหลด ส ล็ ต xo สมัคร ufabet369 โหลด xo สล็อต ufa goal168 entaplay เครดิต ฟรี sa gaming 928 ดาวน์โหลด slotxobkk super77up slotxo แอ พ มือ ถือ โปร โม ชั่ น บอล ออนไลน์
gclub44 auto| lsm99 lotto| สมัคร ivip9| สล็อต ฝาก ถอน ผ่าน true wallet| ได้ ส ปิ น ฟรี coin master| เว ป ล็ อ ต โต้ วี ไอ พี| สล็อต star99| โบนัส วี ไอ พี| jetsadabet สมาชิก| casinomodule| lsm99 max| bg live casino| k9win สมัคร สมาชิก| การ ทำ ลูกเต๋า| หวย ออนไลน์ jetsadabet| sbobet555| โปร เกม coin master ส ปิ น ไม่ จํา กัด| fun88 โปร วัน เกิด| casino no| โบนัสพิเศษแทงเสมอ รับเพิ่ม 17,777 บาท ไม่อั้น| สมาชิกใหม่ ฝากครั้งแรก รับโบนัส 150%| ฟรีสล็อตออนไลน์| เว็บ จี คลับ| 918kiss hack android| ลิ้ ง ส โบ มือ ถือ| ทาง เข้า sbobet777| เว็บ เล่น แบ ล็ ค แจ็ ค| วิธี ขาย ส ปิ น coin master| royal online pc| ฝาก ผ่าน ท รู วอ เลท| สมัคร สมาชิก รับ เครดิต ฟรี ไม่ ต้อง ฝาก| ส ปิ น ฟรี coin master ios ล่าสุด| sbobet a| gclub ฟรี 15| vegas live slot| โรล ลิ่ ง บา คา ร่า| ลิ้ ง เข้า sbo| 918 plus apk| ทาง เข้า happyluke ล่าสุด| ลิ้ ง ส โบ เบ ท| da vinci slot| vip fun88| สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019| tervetulobonus| เว็บ แจก ส ปิ น coin master| poipet 888| ทาง เข้า royal online| fun88 pc| 123play casino| happyluke ทาง เข้า| roma casino| ฝาก ถอน รอยัล| md123 918kiss| bingo เกม| royal slot online| slot happyluke| | coin master free spins วัน นี้| casino online net| lsm99 bet| การ หา ส ปิ น ฟรี| sb0bet| ism99 star| เครดิต หวย ฟรี| 855 gclub| วิธี เพิ่ม ส ปิ น coin master ฟรี|