<object id="42k1C"><noscript id="42k1C"></noscript></object>
<acronym id="42k1C"><wbr id="42k1C"></wbr></acronym><rt id="42k1C"><noscript id="42k1C"></noscript></rt>
<object id="42k1C"><div id="42k1C"></div></object>
<rt id="42k1C"><wbr id="42k1C"></wbr></rt>
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
 
โจ๊ก เกอร์ สล็อต 888 เข้า ระบบ เกม สล็อต youlike555 สล็อต ฝาก 99 รับ 300 เกม สล็อต แมว ยิง ปลา ufabet เกม mega888 เล่น สล็อต มาเฟีย สล็อต ฝาก ถอน ออ โต้ gladiator slot เกม ยิง ปลา lsm99 เว็บ ฝาก ขั้น ต่ํา 50 ลอง เล่น ยิง ปลา pgking888 สล็อต 919 เข้า เล่น joker123 gi998 slot โหลด slot pg 300 shields aw8 casino เล่น สล็อต ได้ เงิน ฝาก 50 รับ 100 วอ เลท การ เล่น เกม ยิง ปลา เว็บ พนัน ไม่ ผ่าน ไลน์ ยิง ปลา ได้ เงิน pantip สล็อต 1668 best88 slot ดาวน์โหลด สล็อต xo เกมส์ ไหน ดี โบนัส แตก บ่อย เกม ยิง ปลา joker888 gladiator slot เกม roma slot joker888 เว็บ เดิมพัน sbobet ฝาก ไม่มี ขั้น ต่ํา แอ พ สล็อต sbobet ไม่มี ขั้น ต่ำ 8899 casino มาเฟีย slot เกม ยิง ปลา เล่น ได้ เงิน ส โบ เบ็ ต ออนไลน์ 24 เกม สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน win casino hibet8 เว็บ 88 live22 เล่น หน้า เว็บ 24sboonline sbobet สล็อต มา ใหม่ ล่าสุด สล็อต ฝาก 10 บาท ได้ 100 ค่าย เกม jdb เกม ยิง ปลา ufabet สล็อต ฝาก 10 บาท ได้ 100 ปอย เปต 123 เกม ยิง ปลา 168 สล็อต ฝาก 50 รับ 200 เกม star vegas ได้ เงิน จริง ไหม gi998 slot joker slot 978 gold slot เว็บ ยิง ปลา ที่ ดี ที่สุด เว็บ พนัน 99 เว็บ ยิง ปลา 888 fastbet เกม ยิง ปลา ส ตา ร์ เว กั ส สล็อต 888 เครดิต ฟรี skykings casino โจ๊ก เกอร์ เกม ออนไลน์ เล่น live22 ผ่าน เว็บ หิ นิำะ 88888888 เล่น โจ๊ก เกอร์ หน้า เว็บ เล่น 918kiss เว็บ เล่น เกม สล็อต สล็อต โอน ผ่าน ท รู วอ เลท สล็อต ยืนยัน เบอร์ โทร รับ เครดิต ฟรี เกม ยิง ปลา เจ้า มหาสมุทร เกม สล็อต เล่น แล้ว ได้ เงิน จริง สล็อต ที่ นิยม เกม สล็อต 222 pg slot เล่น ผ่าน เว็บ เล่น slot joker ค่าย สล็อต ทั้งหมด สล็อต true wallet wclub365 ้ เกม สล็อต คา สิ โน เติม true wallet ขั้น ต่ำ 20 เกม สล็อต 789 casino net star vegas pantip สล็อต ฟรี ส ปิ น สล็อต มาเฟีย ฟรี เครดิต โหลด เกม ยิง ปลา ฟรี slot มือ ถือ jokerthvip เกม mega888 sagame เครดิต ฟรี เกม คา สิ โน ออนไลน์ 2020 เล่น เกม โจ๊ก เกอร์ ผ่าน เว็บ mafia 666 slot เกม สล็อต ฝาก ขั้น ต่ํา 50 บาท แอ พ สล็อต แจก เครดิต ฟรี สล็อต แจก เครดิต ฟรี 2020 pg slot โปร เว็บ สล็อต ใหม่ ล่าสุด เกม puss สล็อต เติม true wallet ไม่มี ขั้น ต่ํา เกม สล็อต อัน ไหน ดี สล็อต ฝาก 100 ได้ 200 เข้า เกม สล็อต joker โจ๊ก เกอร์ สล็อต 888 demo ยิง ปลา โจ๊ก เกอร์ เล่น ผ่าน เว็บ เกม ยิง ปลา ได้ เงิน 2020 สล็อต ฝาก 10 รับ 100 วอ เลท ปั่น สล็อต สมัคร วัน นี้ รับ เครดิต ฟรี ทันที ไลน์ sbobet betmaster casino เกม ยิง ปลา เงิน จริง มาเฟีย slot คา สิ โน true wallet ไม่มี ขั้น ต่ำ เว็บ พนัน ไม่ โกง evobet casino สล็อต ไลน์ เกม สล็อต ออนไลน์ joker123 slot thai jokerauto123 เว็บ ตรง พนัน สล็อต ไม่ ต้อง ฝาก ฟรี ยิง ปลา โหลด เกม kiss918 jokercat44 สล็อต ออนไลน์ ฟรี แจก กระสุน ยิง ปลา ฟรี โหลด เกม สล็อต 888 casino online โหลด สล็อต มาเฟีย puss888 เข้า สู่ ระบบ โปร ยิง ปลา หมุน วง ล้อ ฟรี เครดิต สมัคร สล็อต รับ โบนัส 100 สล็อต candy เว็บ ยิง ปลา 888 โหลด แอ พ สล็อต เว็บ i99win เกม ยิง ปลา joker888 เกม สล็อต ค่าย pp ยิง ปลา 2020 sbobet ca 1 joker เล่น เกม ยิง ปลา กระสุน ฟรี 300 เกมส์ ยิง ปลา แจก เครดิต ฟรี ไม่ ต้อง ฝาก เว็บ copa89 โหลด เกม ยิง ปลา สล็อต ออนไลน์ 999 sbobet ออนไลน์ 24 เกม สล็อต ออนไลน์ ได้ เงิน จริง pantip 918kiss ยิง ปลา สล็อต 789 ยิง ปลา พัน ทิป เล่น เกม สล็อต 918 สมัคร รับ ทันที เครดิต ฟรี เกม สล็อต ทำ เงิน สล็อต ออนไลน์ 2019 สล็อต ที่ ได้ เงิน ดี fastbet mastercard casino ยิง ปลา มือ ถือ 7777 casino สล็อต live22th สล็อต 4u playboy slot โหลด เกม สล็อต ออนไลน์ slotxo66 เกม kiss918 line casino ยิง ปลา 2020 mega888 เล่น ผ่าน เว็บ wm casino casino 777 online สล็อต มาเฟีย 928 เกม ยิง ปลา สล็อต royal casino online slot tracker เกม สล็อต ได้ เงิน จริง ไหม avenger98 เว็บ สล็อต น่า เล่น ยิง ปลา joker123 เกม สล็อต ที่ ดี ที่สุด โจ๊ก เกอร์ สล็อต 123 สล็อต 1 บาท dada99thai slotgame66 สล็อต ออนไลน์ เกม ออนไลน์ 88 ฝาก 9 บาท รับ 100 slot ค่าย rt jokerblack55 สล็อต โจ๊ก เกอร์ 123 th slot 666 สล็อต 188 สล็อต ออนไลน์ ฟรี เครดิต 2020 xo888th joker slot เล่น ผ่าน เว็บ เว็บ 888 สล็อต แค่ สมัคร ก็ รับ เครดิต ฟรี ไม่ ต้อง ฝาก สล็อต ฟรี 200 ปั่น สล็อต ได้ เงิน จริง ไหม ฝาก 10 บาท รับ 100 speed casino สล็อต joker roma starvegas168 เกม สล็อต golden gladiator slot สล็อต ผ่าน วอ เลท เกม ยิง ปลา ได้ เงิน จริง หรอ เข้า เล่น slot007 โหลด เกม scr888th evobet casino dada99thai เล่น สล็อต pg ฟรี สมัคร เว็บ poipet god of fortune ยิง ปลา สล็อต แตก joker slot ทั้งหมด เกม สล็อต ยู ฟ่า ยู ฟ่า 191 สล็อต สมัคร วัน นี้ รับ เครดิต ฟรี ทันที starvegas168 monopoly slot สล็อต 77up เล่น สล็อต ให้ ได้ เงิน slot191 เกม สล็อต ออนไลน์ เกม ยิง ปลา ฟรี 300 เกม ยิง ปลา เงิน จริง เกม ฟัน สิงโต เกม ยิง ปลา เงิน จริง royal casino เกม สล็อต ที่ แตก ง่าย ที่สุด เว็บ พนัน อันดับ หนึ่ง สล็อต 666 ฟรี เครดิต สล็อต 918kiss ฟรี เครดิต mafia789 โหลด แอ พ ufabet สล็อต มาเฟีย 999 สล็อต pussy88 betsoft สล็อต 666 คา สิ โน ออนไลน์ slot22th สล็อต kiss918 โหลด เกม mafia88 slotxo311 crazy casino เกม ยิง ปลา ใน คอม สล็อต sg ฟรี เครดิต pinnacle casino เกม ยิง ปลา ได้ เงิน จริง 2020 allwin casino ค่าย สล็อต ใหม่ fastbet สล็อต ค่าย ไหน ดี สุด joker44th เกม sweet bonanza sbobet คอม เม้น ถอนเงิน เกม สล็อต casino 777 online sbobet 24 lsm99 sbobet สล็อต 681 joker123 เข้า สู่ ระบบ เกมส์ ยิง ปลา w88 สล็อต ฝาก 10 บาท ได้ 100 สล็อต ออนไลน์ 918kiss สมัคร สมาชิก ใหม่ โบนัส 100 เทิ ร์ น น้อย สล็อต 35 sbo9998 ยิง ปลา m888 casino sbobet club 24 คา สิ โน ออนไลน์ i99win เกม roma jackpotxo1 10 รับ 100 วอ เลท เกม ยิ่ง ปลา ฟรี เกม สล็อต ออนไลน์ แจก เครดิต ฟรี เว็บ สล็อต ใหม่ สล็อต ได้ เงิน จริง slotxoth1 เว็บ ยิง ปลา แจก เครดิต ฟรี สล็อต ที่ แตก ง่าย สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2020 เกม ยิง ปลา ฝาก ขั้น ต่ํา 100 live22auto scg9 เกม ยิง ปลา โหลด คิด 918 โจ๊ก เกอร์ 888v1 สล็อต มา รวย 99 king slot เครดิต ฟรี ecopayz casino siamslot168 goldslot168 เกมส์ ยิง ปลา ได้ เงิน ง่าย allslot88 คา สิ โน แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2018 sbobet ไม่มี ขั้น ต่ำ ส โบ เบ็ ต 89 เครดิต ฟรี epicwin เล่น โจ๊ก เกอร์ 123 สล็อต น้อง ใหม่ โหลด เกมส์ ยิง ปลา 918kiss สล็อต ฝาก 9 บาท รับ 100 casino เกม ยิง ปลา ออนไลน์ pantip เล่น สล็อต ให้ ได้ เงิน เล่น สล็อต joker ฟรี 918kiss โหลด เกม เล่น เกม pg เครดิต ยิง ปลา สล็อต ออนไลน์ ได้ เงิน จริง ไหม สล็อต ฟรี เครดิต 200 สมัคร kiss918 หมุน สล็อต ฟรี ถอน ได้ ออ โต้ สล็อต ซื้อ ฟรี ส ปิ น slotxo slot4u pg โหลด เกม ค่า สิ โน สล็อต ออนไลน์ 191 เล่น สล็อต ฟรี เครดิต slot live222 เกม สล็อต 555 ยิง ปลา ฟรี กระสุน 300 โหลด เกม ยิง ปลา 918 สล็อต ฝาก 10 บาท ได้ 100 แพนด้า สล็อต sbobet ไม่มี ขั้น ต่ำ เกม สล็อต 88 slot ค่าย pp joker เกม ไหน ดี pg เกม สล็อต ถอนเงิน ได้ จริง เกม สล็อต ฟรี ได้ เงิน จริง million casino joker เล่น ผ่าน เว็บ โหลด สล็อต 007 เกม ยิง ปลา คือ เกม สล็อต ลอง เล่น casino win ufa888 สล็อต luk666 คา สิ โน เกม ยิง ปลา ได้ เงิน จริง มั้ ย live22 เข้า เล่น ฝาก 50 รับ 100 ถอน ไม่ อั้น เกม ยิง ปลา สล็อต goldenslot casino เกม ฟรี pg สมัคร ใหม่ โบนัส 100 โจ๊ก เกอร์ 8899z sweet bonanza ค่าย สล็อต สมัคร 10 ได้ 100 918 สล็อต ออนไลน์ แคน ดี้ แจก เครดิต ฟรี สล็อต ค่าย jdb เครดิต ฟรี สมัคร สล็อต ฟรี เครดิต sweet bonanza ค่าย สล็อต ฝาก 9 บาท รับ 100 casino hex เล่น 918kiss ให้ ได้ เงิน เกม ยิง ปลา ฟรี เครดิต ไม่ ต้อง ฝาก เกม ค่าย rt ยิง ปลา แลก เงิน สล็อต ออนไลน์ ฟรี เครดิต 2019 ล่าสุด เล่น สล็อต อัน ไหน ดี casino jackpot เกม ยิง ปลา pantip live22 เล่น หน้า เว็บ สล็อต 99 ฟรี เครดิต โจ๊ก เกอร์ เกม มิ่ง เล่น slot joker คา สิ โน true wallet ไม่มี ขั้น ต่ำ เล่น slot ถอนเงิน เกม สล็อต ปอย เปต 123 สล็อต ออนไลน์ 678 เกม ยิง ปลา pg star vegas ยิง ปลา ยิง ปลา fishing god fugaso poipet สมัคร god สล็อต แอ พ สล็อต ยืนยัน ตัว ตน รับ เครดิต ฟรี เล่น สล็อต ได้ เงิน จริง 2019 เกม แจก เค ดิ ต ฟรี สล็อต ฝาก ผ่าน ท รู วอ เลท sugar pop ได้ เงิน joker เกม ไหน ดี สมัคร สล็อต 999 คา สิ โน ออนไลน์ joker winpalace เกม สล็อต ออนไลน์ 666 สล็อต เว็บ ใหม่ ล่าสุด เกม ค่าย jdb ultra casino live22 ผ่าน เว็บ empire777 casino เว็บ พนัน ออนไลน์ 365 7 gods casino สล็อต นิยม โหลด เกม ยิง ปลา ฟรี สล็อต เครดิต ฟรี 100 ไม่ ต้อง แชร์ ฝาก 10 รับ 100 ล่าสุด วอ ล เลท 168 สล็อต สล็อต star betnet casino เว็บ บา คา ร่า ขั้น ต่ำ 10 บาท เกม ออนไลน์ ฟาโรห์ slot123th ยิง ปลา มือ ถือ lsm99 สล็อต เล่น สล็อต ให้ ได้ เงิน wm168 casino โหลด เกม 918kiss44 โจ๊ก เกอร์ สล็อต 123 สล็อต ฝาก 1 บาท ได้ 100 สล็อต ค่าย jdb ฟรี เครดิต เข้า ระบบ เกม สล็อต สล็อต sa เล่น สล็อต ผ่าน หน้า เว็บ สล็อต 888 ฟรี เครดิต เว็บ พนัน อันดับ หนึ่ง king live22 slotxo โหลด สล็อต 007 เกมส์ สล็อต เล่น ฟรี มากมาย slotxo311 joker สล็อต 1888 goldenslot 168 สล็อต sg ฟรี เครดิต เกม เกม สล็อต สล็อต 888 เครดิต ฟรี ไม่ ต้อง ฝาก golden slot สล็อต ออนไลน์ casino เครดิต ยิง ปลา live22 สล็อต ออนไลน์ joker slot 123 th casino lucky เกม ยิง ปลา apk เกม สล็อต 2020 win365 casino สล็อต ทุน น้อย king slot เครดิต ฟรี สล็อต ออนไลน์ ไม่มี ขั้น ต่ํา เล่น เกมส์ ยิง ปลา ได้ เงิน จริง ไหม เกม slot joker pg เกม joker slot 123 th เกม ยิง ปลา star vegas สล็อต 8899 สล็อต ฝาก 20 ฟรี 100 ยู ฟ่า สล็อต เกมส์ ยิง ปลา ได้ ตังค์ เข้า เกม สล็อต เกม sweet bonanza สล็อต ออนไลน์ 918 เกม ยิง ปลา ออนไลน์ สล็อต เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ สล็อต ฝาก 50 รับ 200 mafia919v1 fun88 เกมส์ 777ww casino home สล็อต fun88 gate 777 casino mafia789 ตัวแทน sbobet เกม สล็อต เงิน จริง สล็อต หมุน ฟรี entaplay บา คา ร่า poipet สล็อต มาเฟีย 88 สล็อต ค่าย ใหม่ สล็อต ออนไลน์ 123 เข้า สู่ ระบบ joker123 สล็อต ออนไลน์ png เกม mega888 โร มา สล็อต เกม ยิง ปลา เว็บ ไหน ดี 2020 เกม ยิง ปลา ฝาก ถอน ไม่มี ขั้น ต่ํา 918kis casino 777ww คา สิ โน ฟรี เครดิต สล็อต สล็อต joker1234 สล็อต 88 สล็อต ค่าย mg โจ๊ก 123 fun88 casino sbobet member sbobet vip pg slot เกม ไหน ดี live22 หน้า เว็บ pg slot ลอง เล่น เล่น roma ฟรี สล็อต ฝาก 1 บาท ได้ 100 เกม เครดิต ฟรี ไม่ ต้อง แชร์ แทง บอล ส โบ เบ็ ต สล็อต แจก เงิน ยิง ปลา หาเงิน เกม ยิง ปลา กระสุน ฟรี โหลด เกม pg slot แอ พ เกม ยิง ปลา ได้ เงิน olybet casino สล็อต ค่าย rt ยิง ปลา ค่าย jdb สล็อต เว็บ โจ๊ก เกอร์ dada99thai slot1234joker เว็บ mm88win เกม หมุน สล็อต ได้ เงิน จริง slot เกม 66 สล็อต เล่น ได้ ทุก ค่าย joker เกม สล็อต สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2019 kg88 สล็อต ไลน์ sbobet ยิง ปลา pantip เล่น เกม ได้ เงิน ฟรี ยิง ปลา เด โม่ สล็อต 2020 ไลน์ sbobet ยิง ปลา lsm สล็อต หมุน ฟรี ได้ เงิน จริง สล็อต ฟรี เครดิต 200 เกม สล็อต ที่ ได้ เงิน จริง เล่น สล็อต ได้ เงิน จริง ยิง ปลา โจ๊ก เกอร์ 123 เว็บ สล็อต joker โหลด เกม สล็อต ออนไลน์ ได้ เงิน จริง black jack casino เกม สล็อต 88 สล็อต ที่ เล่น ง่าย ที่สุด slot roma เกม สล็อต เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ufa แจก เครดิต ฟรี ไม่ ต้อง ฝาก gold club casino เกม joker เล่น สล็อต ใน เว็บ สล็อต 888 เครดิต ฟรี ยิง ปลา ได้ เงิน ง่าย zulu casino เกม ยิง ปลา ฟรี เว็บ หวย ค่า สิ โน ส ตา ร์ เว กั ส ออนไลน์ slot ลอง เล่น royal spinz casino เกมส์ ยิง ปลา 888 เกม ยิง ปลา แล้ว ได้ เงิน จริง เว็บ เกม ได้ เงิน จริง 7 สล็อต เกม ออนไลน์ 918 slot ทุก ค่าย สล็อต ออนไลน์ ฟรี เครดิต ฝาก ขั้น ต่ำ 100 ปอย เปต 789 allslot888 สล็อต 666 ฟรี เครดิต live22 เล่น ผ่าน เว็บ betmaster casino สล็อต ออนไลน์ 999 888 เกม thai casino สล็อต เครดิต ฟรี เว็บ มาเฟีย 888 เล่น สล็อต ออนไลน์ บน มือ ถือ เว็บ joker123 89 สล็อต slot007 มาเฟีย สล็อต มาเฟีย 2020 avenger98 www777 casino สล็อต ออนไลน์ royal casino jokerslot69 หมุน สล็อต เว็บ ไหน ดี ยิง ปลา xo เกม สล็อต 1688 slot91jk mafia88 แจก เครดิต ฟรี roma slot 777 sbobet ไม่ ผ่าน เอเย่นต์ s casino joker slot 978 sagame โบนัส 100 psthai888 เว็บ sbobet888 joker123 เล่น หน้า เว็บ 4kingslots สล็อต โอน ผ่าน ท รู วอ เลท playboy slot สล็อต true wallet สล็อต ได้ ตัง จริง สล็อต ทุน น้อย สมัคร สมาชิก ใหม่ โบนัส 100 918kiss 2pigslot 4kingslots slot91th star vegas slot เกม ยิง ปลา ไม่มี ขั้น ต่ํา เกม สล็อต ฝาก ไม่มี ขั้น ต่ํา joker8899 สล็อต mafia ฟรี เครดิต bet slot สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก สล็อต ค่าย pragmatic play สล็อต 2020 สล็อต 888 ฟรี เครดิต สล็อต ค่าย jdb web casino slotxo789 เว็บ vip2541 ไม่ ผ่าน เอเย่นต์ เกม joker ทั้งหมด เล่น สล็อต แอ พ ไหน ดี คา สิ โน แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2018 สล็อต jdb เล่น สล็อต ได้ เงิน จริง ไม่ ต้อง ลงทุน เล่น เกม โจ๊ก เกอร์ ผ่าน หน้า เว็บ สล็อต ฝาก 19 รับ 100 ล่าสุด mafia แจก เครดิต มาเฟีย สล็อต เครดิต ฟรี สล็อต 10 ได้ 100 slot ค่าย pg สล็อต ฝาก 10 บาท ได้ 100 pg slot vip เกม สล็อต ค่าย ไหน ดี เครดิต ฟรี สมัคร รับ เลย คา สิ โน ออนไลน์ แจก เครดิต ฟรี เว็บ เกม สล็อต สล็อต ออนไลน์ อัน ไหน ดี เกม สล็อต ออนไลน์ joker เว็บ พนัน ฝาก ไม่มี ขั้น ต่ํา สมัคร slot เครดิต ฟรี แค่ ยืนยัน ตน สล็อต มาเฟีย 007 เกม star vegas ได้ เงิน จริง ไหม xo168 เกม พา รวย mafia slot ใหม่ ล่าสุด lsm99 สล็อต เว็บ เล่น สล็อต ฟรี lsm99 casino slot168th เกม ยิง ปลา ได้ เงิน จริง มือ ถือ เว ป ปั่น สล อ ต ยู ฟ่า 191 สล็อต slot น่า เล่น เครดิต ฟรี มาเฟีย 88 sweet bonanza เครดิต ฟรี เกม ยิง ปลา ส ตา ร์ เว กั ส สล็อต เติม true wallet ไม่มี ขั้น ต่ํา เล่น 918kiss หน้า เว็บ สล็อต แจก เงิน ฟรี mafia1688 เล่น ผ่าน เว็บ hibet8 ยิง ปลา jili goldfishka casino slot007 เล่น ผ่าน เว็บ เล่น 918kiss หน้า เว็บ เกม สล็อต mafia88 fastbet เว็บ พนัน โบนัส 100 g2win casino sbobet promotion เอ ส บี โอ เบ ท jokerslot168th เกม ace333 ได้ เงิน จริง ไหม สล็อต เครดิต ฟรี ได้ เงิน จริง เล่น joker ผ่าน เว็บ สล็อต ฝาก 1 บาท โบนัส 99 jokergame 123 สล็อต vip สล็อต 123 มาเฟีย สล็อต เกม คา สิ โน ออนไลน์ เครดิต ฟรี 2019 เกม สล็อต ที่ นิยม เว็บ สล็อต โจ๊ก เกอร์ pinnacle casino เวฟ เกม ได้ เงิน สล็อต ยืนยัน เบอร์ รับ เครดิต ฟรี 2020 918kiss เข้า สู่ ระบบ ไม่ ได้ เกม star vegas pantip sweet bonanza ค่าย ไหน rg888 บา คา ร่า สล็อต ออนไลน์ สล็อต 681 blackjack mobile ฝาก 10 บาท รับ 100 g2win casino slot ลอง เล่น เครดิต ฟรี ไม่ ต้อง ฝาก ยิง ปลา เข้า เล่น สล็อต โจ๊ก เกอร์ แอ พ สล็อต ยืนยัน ตัว ตน รับ เครดิต ฟรี taibet88 สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก casino android สล็อต ออนไลน์ เล่น ผ่าน เว็บ slot joker หน้า เว็บ สล็อต ยิง ปลา ฟรี เครดิต ไม่ ต้อง ฝาก slotxoth1 คา สิ โน ออนไลน์ joker สล็อต มาเฟีย 888 ufabet ยิง ปลา เล่น สล็อต ผ่าน เว็บ ้ เกม ยิง ปลา เว็บ พนัน lagalaxy demo ยิง ปลา เล่น สล็อต 888 ฟาโรห์ สล็อต สล็อต mb เกม สล็อต เว็บ ไหน ดี web casino sweet bonanza ได้ เงิน สล็อต ฝาก 100 รับ 200 สล็อต ออนไลน์ อัน ไหน ดี เกม ยิง ปลา ออนไลน์ ฟรี เกม โจ๊ก เกอร์ 777 สล็อต luk666 king189 สมัคร เกม แทง ปลา pgslot888 lsm99 sbobet joker เข้า เกม allwin casino เว็บ พนัน lagalaxy casino 777 online joker เกม มิ่ง สล็อต ลงทุน น้อย สล็อต แจก ฟรี 300 เกม 8richd joker เว็บ ใหม่ เกม ยิง ปลา ออนไลน์ nikigame777 เครดิต เกม ฟรี เว็บ เล่น สล็อต ฟรี daddy casino ฝาก 20 รับ 100 วอ เลท ล่าสุด สล็อต ออนไลน์ 6666 sbobet ที่ ดี ที่สุด joker slot 1888 สล็อต 369 เกม ยิง ปลา ฟรี เครดิต ไม่ ต้อง ฝาก 2020 slot 777 สล็อต เข้า เกม pg แอ ป สล็อต เงิน จริง แทง บอล ส โบ เบ็ ต live22 สล็อต ออนไลน์ เกม ได้ เงิน จริง ฟรี สล็อต มาเฟีย 123 ecopayz casino สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2019 casino wild casino mobile golden casino slot มาเฟีย เว็บ สล็อต 888 reel rush 2 ufabet888 สล็อต สล็อต ฝาก 1 บาท โบนัส 99 sbobet ไม่ ผ่าน เอเย่นต์ winpalace 1234 สล็อต สมัคร scr888 918kiss เล่น เกม ตก ปลา ได้ เงิน 191 slot เล่น เกม สล็อต joker เกม 789 เว็บ พนัน อังกฤษ สล็อต ที่ ได้ เงิน จริง สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2020 เกม ออนไลน์ 918 ถอนเงิน เกม สล็อต เล่น สล็อต ออนไลน์ มือ ถือ เว็บ ปั่น สล็อต ฟรี slot 1688 slot roma สล็อต ออนไลน์ ได้ เงิน จริง ไหม เว็บ i99 สล็อต แจก จริง 918 สล็อต ออนไลน์ เกม ยิง ปลา ฟรี เครดิต ถอน ได้ 2020 สมัคร สมาชิก สล็อต ไม่มี ขั้น ต่ำ โหลด แอ พ ufa191 huc99 vip pg slot โปร สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก เกม เล่น ฟรี ได้ เงิน จริง ฝาก 1 รับ 100 ฝาก 1 บาท betnet casino เกม ยิง ปลา ได้ ตัง เว็บ เกม ยิง ปลา เว็บ พนัน โบนัส 100 slot ค่าย pg ยิง ปลา สล็อต xo เล่น slot ผ่าน เว็บ ส ตา ร์ เว กั ส ยิง ปลา spin999 สล็อต ท รู วอ ล เล็ ต www mafia678 777ww casino home เกม ยิง ปลา apk mafia slot แจก เครดิต ฟรี สล็อต ฮิต เว็บ เกม สล็อต ออนไลน์ สล็อต เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน คา สิ โน ออนไลน์ เครดิต ฟรี 2020 ไม่ ต้อง ฝาก pg slot ลอง เล่น เข้า เล่น slot joker 2pigslot 4kingslots ยิง ปลา slotxo สล็อต ผล ไม้ slot jili เว็บ สล็อต โจ๊ก เกอร์ เกม สล็อต ฝาก ไม่มี ขั้น ต่ํา เกม ฟรี ได้ เงิน จริง ufa678 สล็อต โจ๊ก 123 เครดิต ยิง ปลา ฝาก 1 บาท เว็บ สล็อต ออนไลน์ ฟรี เครดิต casino crown เกม ยิง ปลา lsm99 เว็บ เกม ยิง ปลา โหลด mafia1688 สล็อต ฝาก ถอน ออ โต้ ฝาก 10 รับ 100 ล่าสุด puss888 เข้า สู่ ระบบ slotanza casino เกม star vegas ได้ เงิน จริง ไหม ปั่น สล็อต คือ สล็อต มาเฟีย 65 fairspin casino สล็อต มาเฟีย ฟรี เครดิต โหลด เกม ยิง ปลา ฟรี สล็อต นิยม สล็อต 2020 สล็อต gclub168 สล็อต เว กั ส ราคา บอล ส โบ เบ็ ต bslot88 sweet bonanza เว็บ ไหน ดี สล็อต png สล็อต 488 ส โม เบ ท ส เต็ ป สมัคร รับ เครดิต ฟรี ทันที 2020 สล็อต มาเฟีย 123 เกม ยิง ปลา sg ยิง ปลา แลก เงิน สล็อต หมุน ฟรี ได้ เงิน จริง สล็อต pussy sugar pop ได้ เงิน เว็บ ปอย เปต 555 slot น่า เล่น evobet casino pg เกม สล็อต แจก เงิน ฟรี สล็อต ฮิต สล็อต ฟรี ไม่ ต้อง ฝาก สล็อต เกม ยิง ปลา สล็อต ผ่าน วอ เลท เว็บ เกม สล็อต ที่ ดี ที่สุด โหลด เกม xe88 สล็อต 777ww ฟรี เกม สล็อต โหลด pg slot สล็อต เติม เงิน ผ่าน wallet xo1688 เข้า เว็บ joker zulu casino เกม รอยัล สล็อต ตู้ สล็อต ออนไลน์ mafia slot เว็บ pg slot สล็อต th 918kiss เกม สล็อต ออนไลน์ มือ ถือ 888 holiday casino สล็อต แอ พ เกม สล็อต โจ๊ก เกอร์ 123 สล็อต เครดิต ฟรี ค่าย ใหม่ แอ พ เกม 918kiss slot epicwin สล็อต 96 slot น่า เล่น เกม สล็อต 888 สล็อต 007 สมัคร xe88 เกม ไม่ ต้อง ฝาก ก่อน สล็อต เครดิต ฟรี ค่าย ใหม่ เกม ตู้ ผล ไม้ ฝาก 10 รับ 100 918kiss สล็อต ที่ ได้ เงิน จริง ยิง ปลา 2020 ส ปิ น ฟรี เกม หมู ยิง ปลา ฟรี เครดิต 2020 ยิง ปลา xo เกม ยิง ปลา ได้ เงิน พัน ทิป joker เกม ไหน ดี เกม ยิง ปลา ได้ เงิน จริง pantip เกม ยิง ปลา ยอด นิยม โจ๊ก เกอร์ 918 สล็อต ฟรี ส ปิ น slot เล่น ฟรี ได้ เงิน จริง แอ พ สล็อต ยืนยัน ตัว ตน รับ เครดิต ฟรี www777 casino เกม ออนไลน์ 88 เกม คา สิ โน ออนไลน์ 2020 เล่น ฟรี ได้ เงิน จริง dracula slot net casino เกมส์ ยิง ปลา ios god slotxo สล็อต xe88 live222th เกมส์ ยิง นก ได้ เงิน joker สล็อต 1888 ยิง ปลา xo แทง สกอร์ สูง ต่ํา เล่น สล็อต ผ่าน หน้า เว็บ คา สิ โน เติม true wallet ขั้น ต่ำ 20 สล็อต pussy88 เกม สล็อต ค่าย rt joker slot vip casinos cercanos slot แตก ง่าย สล็อต แตก บ่อย สล็อต โอน ผ่าน ท รู วอ เลท สล็อต 345 slotxo311 www ufa877 com สมัคร สมาชิก ufabet casino grand poker 21 casino se สล็อต gclub เกม สล็อต ที่ แตก ง่าย ที่สุด 2020 หิ นิำะ 88888888 pgslot99 เกมส์ ยิง ปลา เล่น แล้ว ได้ เงิน sbobet888888 คอม เม้น เล่น mafia88 ผ่าน เว็บ id line sbobet สล็อต เกม ยิง ปลา โหลด เกม star vegas เว็บ copa89 เกม สล็อต แลก เงิน ปั่น สล็อต 1 บาท เกม สล็อต ออนไลน์ 918 โหลด เกม scr888th สล็อต โจ๊ก เกอร์ วอ เลท โหลด แอ พ เกม 918kiss โหลด เกม ยิง ปลา ได้ เงิน หน้า เกม โจ๊ก เกอร์ sbobet 555 ลอง เล่น สล็อต ฟรี สล็อต ออนไลน์ ได้ เงิน จริง เกม สล็อต เล่น แล้ว ได้ เงิน จริง slot เว็บ ใหม่ เกม ยิง ปลา เครดิต ฟรี 300 jack blackjack เกม ตก ปลา ได้ เงิน แอ พ สล็อต เครดิต ฟรี พนัน 365 สล็อต xo69 poker 21 1xslot casino สล็อต มาเฟีย 99 ยิง ปลา ออนไลน์ ได้ เงิน จริง เกม หมุน สล็อต เกม สล็อต png sbobetonline24 casino king สล็อต เล่น pg candy เครดิต ฟรี joker slot 123 th เกม ยิง ปลา ฟรี ได้ เงิน จริง สล็อต ทุก ค่าย เกม ยิง ปลา แจก กระสุน ฟรี 300 คา สิ โน เติม true wallet ขั้น ต่ำ 20 โหลด mafia1688 ยิง ปลา ฟรี เครดิต 300 สล็อต เติม true wallet ไม่มี ขั้น ต่ํา เล่น เกม สล็อต ได้ เงิน จริง ไหม เกม ยิง ปลา กระสุน ฟรี เกมส์ ยิง ปลา w88 เกม ยิง ปลา ufabet สล็อต ที่ เล่น ง่าย ที่สุด เว็บ เกม ยิง ปลา สล็อต v2 betwinner casino sbobetonline24 casino เกม ยิง นก ได้ เงิน pg slot 777 สล็อต อัน ไหน ได้ เงิน ดี slotanza casino merkur24 online casino แอ พ สล็อต แจก เครดิต ฟรี สล็อต 588 joker สล็อต 123 ส ตา ร์ เว กั ส ออนไลน์ สล็อต แจก ฟรี เครดิต joker123 สล็อต 918 สล็อต ออนไลน์ สมัคร วัน นี้ รับ เครดิต ฟรี ทันที เกม สล็อต png mafia vip slot
สมัคร บา คา ร่า มือ ถือ| เกม ฟรี ps4| เกม 1| สมัคร บา คา ร่า ฟรี 300| จี คลับ ฝาก ถอน ไม่มี ขั้น ต่ํา| สมัคร เว็บ ฟรี เครดิต| ข่าว ลิเวอร์พูล สยาม กีฬา| คา สิ โน บน มือ ถือ| fun88 ล่าสุด| โบนัส| เกม ไอ โอ| สมัคร เว็บ บา คา ร่า ออนไลน์| fun88 แช ท สด| บา คา ร่า ออนไลน์ คือ| เกม ฮิต| คา สิ โน เงิน จริง| โหลด เกม ฟรี pc| โหลด เกม the sims 4| พนัน ออนไลน์ ได้ เงิน จริง| เล่น หมากรุก| planet coaster ราคา| คา สิ โน ถูก กฎหมาย| เกม เก่า pc| รวม คา สิ โน| เล่น เกม roblox| สมัคร คา สิ โน รับ เงิน ฟรี| สูตร การ เล่น บา คา ร่า| สล็อต คา สิ โน ฟรี เครดิต| เกม เล่น ใน วง เหล้า| พนัน ออนไลน์ ฝาก ขั้น ต่ํา 100| valorant สมัคร| สมัคร เว็บ บา คา ร่า ฟรี| ถอนเงิน บา คา ร่า ไม่ ได้| ทดลอง เล่น คา สิ โน| บา คา ร่า สมัคร รับ เครดิต ฟรี| นักกีฬา ปิงปอง| วิธี สมัคร เล่น บา คา ร่า| เดลิ นิ ว ส์ กีฬา วัน นี้| เกม หนอน io| กีฬา ฟุตบอล ภาษา อังกฤษ| บา คา ร่า sexygame66| บา คา ร่า เงิน ทดลอง| เกม เล่น ใน วง เหล้า| 100 รับ 100| gclub มือ ถือ| happyluke bonus| สมัคร คา สิ โน ออนไลน์ ไม่มี ขั้น ต่ํา| นักกีฬา วอลเลย์บอล หญิง ไทย| เว็บ ข่าว กีฬา| วิธี เล่น บา คา ร่า ออนไลน์| คา สิ โน โบนัส ฟรี| เกม บา ส| เกม ฟรี nintendo switch| บา คา ร่า โบนัส ฟรี| คา สิ โน ออนไลน์ บน มือ ถือ| คา สิ โน สด ออนไลน์| บา คา ร่า ขั้น ต่ำ 100| เกม ยิง ปื่ น| โบนัส happyluke| สมัคร เล่น บา คา ร่า เว็บ ไหน ดี| สมัคร บา คา ร่า รับ เงิน ฟรี| คา สิ โน ไม่ ต้อง ฝาก| เกม nintendo switch| ข่าว วงการ ฟุตบอล ต่าง ประเทศ| สนุกเกอร์ เกม| โบนัส ฟรี 500|