<object id="A8n7989"><noscript id="A8n7989"></noscript></object>
<rt id="A8n7989"><noscript id="A8n7989"></noscript></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
 
ปั่น สล็อต ฟรี pg joker89 download แคน ดี้ คา สิ โน เกมส์ สล็อต sa avenger สล็อต เบอร์ โทร ส โบ เบ็ ต 55 slotxo โหลด slot live22 slotxo 989 ทาง เข้า joker mobile โหลด slot live22 สล็อต ที่ มี คน เล่น มาก ที่สุด 2020 sweet bonanza xmas ทดลอง เล่น joker บา คา ร่า 168 superslot ดู บอล สด copa69 ไอ ดี ไลน์ โจ๊ก เกอร์ เอ เย่ น joker สมัคร slot online th สมัคร sweet bonanza สล็อต ฝาก ทาง วอ เลท สล็อต ฝาก ไม่มี ขั้น ต่ํา วอ เลท joker 10000 สล็อต พี จี เกม ยิง ปลา แจก เครดิต ฟรี 300 สล็อต joker โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ํา สมัคร bacc6666 168 reddragon88 ทาง เข้า s joker ดาวน์โหลด แอ พ pussy888 แทง บอล ส เต็ ป วัน นี้ เกมส์ พนัน ออนไลน์ ได้ เงิน จริง ก่อน ฝาก พุ ช ชี่ 888 โบนัส 100 epicwin77 เครดิต ฟรี joker town slot วง ล้อ สล็อต slot333 สมัคร สมัคร betflix24 คา สิ โน แอ พ เกม สล็อต xo เกม สวี ท โบ นั น ซ่า อยู่ ค่าย ไหน สมัคร slot 1688 สล็อต ไม่มี ขั้น ต่ํา ฟรี โบนัส ค่าย สล็อต แตก ง่าย เกม ฝาก ผ่าน ท รู วอ ล เล็ ต ace 999 slot slot joker 96 เกม ไพ่ ออนไลน์ เงิน จริง สมัคร slot เครดิต ฟรี extreme joker slot สล็อต เล่น ฟรี ไม่ ต้อง ฝาก เกม โบนัส ฟรี เกม ออนไลน์ ได้ เงิน ไม่ ต้อง ลงทุน เล่น สล็อต ฟรี ได้ เงิน จริง 2018 slot mafia999 สูตร บา คา ร่า ที่ ดี ที่สุด 2020 รอยัล สล็อต เครดิต ฟรี สล็อต ค่าย epic ทาง เข้า เว็บ https www uro168club com fifa55 m สูตร บา คา ร่า ที่ แม่น ที่สุด 2020 สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2560 โค้ด 333be ล่าสุด เกม ตี ตุ่น เครดิต ฟรี sticky joker ตี ตุ่น เครดิต ฟรี slot เกมส์ 66 casino1988 แจ้ง ฝาก โหลด เกมส์ คา สิ โน goldclubslot เกม สล็อต ufabet สมัคร สล็อต pg สล็อต ออนไลน์ fun88 app เกม สล็อต ทดลอง เล่น สล็อต ออนไลน์ ฟรี เข้า เล่น โจ๊ก เกอร์ 123 gclub slot เปิด กี่ โมง รวม เกมส์ ได้ เงิน จริง สล็อต ใน เว็บ ดาว โหลด พุ ช ชี่ 88 ฟุต ซี่ 888 joker 777 slot slot ไว กิ้ ง เดิมพัน ฟรี ไม่ ต้อง ฝาก 2020 joker slot abc เกม ไพ่ แลก เงิน ได้ จริง สมัคร สล็อต แคน ดี้ โจ๊ก เกอร์ 889 ทดลอง sweet bonanza สล็อต 10 รับ 100 วอ ล เล็ ต สล็อต เติม วอ เลต joker gaming download slot mafia999 ทาง เข้า copa88 สล็อต ฝาก ขั้น ต่ํา 50 บาท ทาง เข้า โจ๊ก เกอร์ 123 th โหลด เกม joker888 joker go slot สล็อต ไม่มี ขั้น ต่ํา ฟรี โบนัส 2020 เล่น เกม ได้ เงิน จริง ไม่ ต้อง ฝากเกม สล็อต ฟรี เครดิต สมัคร pg slot โปร 100 ทดลอง เล่น สล็อต ฟรี 2020 joker เกม ตู้ ออนไลน์ mafia เกม สล็อต joker slot xd ฟรี slot กม สล็อต ฝาก 10 รับ 100 วอ เลท pg slot เกมส์ 66 เกม สล็อต ที่ คน เล่น เยอะ ที่สุด เล่น เกม รับ เงิน ฟรี 918kiss สล็อต ออนไลน์ แทง สล็อต ออนไลน์ m88ufa เล่น joker888 สล็อต ออนไลน์ เติม วอ เลท slot ฝาก ท รู วอ เลท เกม เล่น ได้ เงิน จริง ไม่ ต้อง ลงทุน slot โปร ฝาก ครั้ง แรก โหลด แอ พ joker123 เกม สล็อต the dog house ยิง ปลา ยิ่ง มี รา วา จ joker gaming สมัคร เว็บ สล็อต ที่ ดี ที่สุด 2019 slot joker 96 สล็อต โจ๊ก เกอร์ ฟรี ufa168 v2 joker slot z วิธี เล่น sbobet มือ ถือ สล็อต ทุน น้อย แตก บ่อย สล็อต ฝาก ท รู วอ เลท ไม่มี ขั้น ต่ํา mafia slot 888 pg slot ฟรี เกม สล็อต สมัคร ฟรี สล็อต ฝาก ท รู วอ เลท ไม่มี ขั้น ต่ํา เข้า สูตร บา คา ร่า ฟรี โหลด joker ล่าสุด เกม ออนไลน์ 123 joker123 เกม ทาง เข้า เว็บ joker ufavip848 แจก เครดิต ฟรี โจ๊ก เกอร์ สล็อต 89 pg slot games เกม สล็อต pussy ดาวน์โหลด และ ติด ตั้ง แอ พ ค่า สิ โน ออนไลน์ 918kiss joker demo slot roma สล็อต 777 ฝาก ขั้น ต่ํา 100 all pgslot เกม สล็อต สวี ท โบ นั น ซ่า ฝาก เงิน sbobetonline24 ฝาก 20 รับ 100 ท รู วอ เลท ทดลอง เล่น สล็อต สวี ท โบ นั น ซ่า 1 star vegas ได้ เงิน จริง ไหม โหลด แอ พ จี คลับ ufa lion 168 สูตร ทาง เข้า amb555fifa555hd สมัคร เล่น เกม ได้ เงิน จริง เกมส์ pg โหลด เกม joker123 ฝาก ถอน sbobetstep โปร โม ชั่ น สล็อต ฝาก 10 บาท ได้ 100 เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2020 slot supreme caishen วง ล้อ เสี่ยง โชค ฟรี j0ker slot เว็บ สล็อต ที่ มี คน เล่น มาก ที่สุด บา คา ร่า ใบ เดียวทีเด็ด บอล เต็ง วัน นี้ v2 เกมส์ ยิง ปลา รีวิว slot ฝาก น้อย ได้ 100 โปร โจ๊ก เกอร์ เว็บ เกม ได้ ตัง เล่น เกมส์ ได้ เงิน จริง 2020 สล็อต 50 รับ 100 แจก โค้ด bet911 vs168 sure แอ ป สล็อต ได้ เงิน จริง เล่น เกม แล้ว ได้ เงิน ฟรี เว็บไซต์ โจ๊ก เกอร์ เกม slot เครดิต ฟรี slotxo ทดลอง เล่น roma สล็อต ลาย 22 playlive88 joker สมัคร casinothai168 xoslot vip เล่น sbobet ผ่าน มือ ถือ all slot168 joker mvp gaming สมัคร ฟรี สล็อต โหลด พุซซี่ 888 demo game pg soft copa89 ดี ไหม โหลด เกมส์ สล็อต ได้ เงิน จริง ทดลอง เล่น สล็อต ค่าย โจ๊ก เกอร์ supreme caishen slot pg slot ฟรี1ufabet สล็อต ฝาก ท รู วอ เลท ไม่มี ขั้น ต่ํา โล เยน สล็อต โหลด โจ๊ก เกอร์ 888 ทาง เข้า joker vip slot joker ล่าสุด pg ฝาก 30 รับ 100 joker 123 th download 168pg slot slot joker 1888 joker168 auto เว็บ เล่น slot โจ๊ก เกอร์ 123 สมัคร vs168 sure ฝาก ถอน sbobetstep โหลด เกม epicwin โหลด เกมส์ สล็อต pc demo slot captain bounty โหลด เกมส์ โจ๊ก เกอร์ 888 หวย ออนไลน์ เครดิต ฟรี slot48 joker mcopa882 slot joker win joker123 สมัคร สมาชิก โหลด เกม joker128 sbobetstep 5 โหลด เกม พุซซี่ 888 puysy888 เกม สล็อต ไหน แตก ดี สล็อต รวม ทุก ค่าย สล็อต ฝาก ถอน ขั้น ต่ำ 1 บาท ฟรี เครดิต ทดลอง เล่น สล็อต เกม โร ม่า สล็อต slot นาง เงือก ฟรี เครดิต สล็อต jdb โปร สมาชิก ใหม่ 100 สล็อต เกม เล่น ได้ เงิน จริง ไม่ ต้อง ลงทุน เล่น slot ออนไลน์ joker โปร แทง บอล ส เต็ ป วัน นี้ สล็อต joker แตก บ่อย ฟัน สิงโต โร ม่า สล็อต ออนไลน์ ได้ เงิน จริง pantip สมัคร betflix24 คา สิ โน joker123 วอ เลท สล็อต gp pg slot online สล็อต bet2you epicwin สมัคร ดาว โหลด pg slot ios ยิง ปลา แตก ง่าย pantip slot v pantip เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน สมัคร สมาชิก joker สล็อต ที่ รับ วอ ล เลต slotxoth live22 pg slot games joker slot 44th เว็บ สล็อต ฝาก ท รู วอ ล เล็ ต dummy online เงิน จริง เกม ฟรี เล่น แล้ว ได้ เงิน lucky777 ถอนเงิน slot เค ดิ ต ฟรี ไม่ ต้อง ฝาก ทาง เข้า joker mobile slot แตก ง่าย 2020 เกม ฟรี โบนัส เกม คา สิ โน แจก เครดิต ฟรี 168 fortune slot gs 168 slot โจ๊ก เกอร์ 8888 joker slot asia สล็อต ฝาก ขั้น ต่ํา 50 บาท เข้า สู่ ระบบ joker88 a4ccc gclub1688 ทาง เข้า เว็บ 168 ส โบ เบ็ ต 888 สล็อต ดาว โหลด pg slot ios เกมส์ fun88 joker game ทาง เข้า gclub slot vip sagame 1111 พุ ช ชี่ 88 epicwin 1234 เว็บ ทดลอง เล่น สล็อต ฟรี สมัคร สล็อต w88 สล็อต 88 mafia เล่น สล็อต ทุน น้อย แคน ดี้ แจก เครดิต ฟรี ไม่ ต้อง ฝาก ufa007 ดี ไหม joker ฝาก ท รู วอ เลท เกม ยิง ปลา สมัคร ฟรี แพนด้า 888 แจก เครดิต ทดลอง เล่น ฟรี 2020 แจก รหัส ยูสเซอร์ best88 slot apk โจ ก เกอร์ 123 พุซซี่ 888 ดาวน์โหลด sbobetstep แจ้ง ถอน พุ ช ชี่ 88 วิธี แทง บอล sbobet sbobet memberสล็อต เกม 66 ทาง โจ๊ก เกอร์ ถอนเงิน จาก เกม สล็อต เกม สล็อต pg แตก ง่าย สมัคร joker123net slot88 joker joker123 สมัคร สมาชิก เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน joker slot casino เข้า สูตร บา คา ร่า ฟรี slot pg ฝาก 10 ได้ 100 ทดลอง สล็อต roma ทดลอง เล่น สล็อต ฟรี joker สล็อต เล่น ผ่าน วอ เลท เล่น เกม ได้ เงิน ไม่ ต้อง ลงทุน slotxo gold ซื้อ ฟรี ส ปิ น sweet bonanza สูตร บา คา ร่า ที่ แม่น ที่สุด 2020 slotxoth 22 สล็อต 1 บาท ก็ ฝาก ได้ เว็บ พุซซี่ 888 เงิน สล็อต ฟรี pg slot auto สมัคร สล็อต joker โบนัส 100 สล็อต ครบ ทุก ค่าย เว็บ ค่า สิ โน รวม สล็อต ทุก ค่าย เกม สล็อต ทํา เงิน ฝาก วอ เลท 99 รับ 300 pg ทาง เข้า โจ๊ก เกอร์ 123 th เกมส์ ยิง ปลา รีวิว เว็บ สล็อต ที่ คน เล่น เยอะ ที่สุด เว็บ joker888 เล่น เกม ได้ เงิน ไม่ ต้อง ลงทุน roma slot demo สมัคร เว็บ สล็อต slot ทดลอง เล่น joker สมัคร สล็อต ท รู วอ ล เล็ ต mafia slot เล่น ผ่าน เว็บ demo slot pg soft mafia slot 777 ลิ้ ง เกม สล็อต สล็อต ฝาก วอ ล เลท helloslotjoker ยู ส ทดลอง เล่น joker โค้ด เครดิต ฟรี 333be ทาง เข้า joker1234 เก ม์ สล็อต gclub slot vip สล็อต โจ๊ก เกอร์ แจก เครดิต ฟรี all pgslot เกม เล่น ได้ เงิน จริง ไม่ ต้อง ลงทุน เว็บ สล็อต โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ํา pg slot 198 สล็อต apk สล็อต ค่าย pg แตก ง่าย แจก รหัส ยูสเซอร์ เกมส์ ยิง ปลา โจ๊ก เกอร์ joker123 thailand joker game bz เว ป pussy888 joker1888 ฝาก เงิน ดาว โหลด เกม 918 หมุน วง ล้อ joker โค้ด เครดิต ฟรี 333be vs168 sure สมัคร สล็อต ผล ไม้ แนะ นํา เว็บ สล็อต ออนไลน์ slot joker1234 สล็อต สมัคร รับ ฟรี 100 เกม ฟรี เล่น ได้ เงิน pg slot auto auto jokerth สล็อต ฝาก ถอน ท รู วอ เลท เว็บ สล็อต jdb สล็อต ออนไลน์ ฝาก 1 บาท รับ 100 wwwmm88win รับ เครดิต เดิมพัน ฟรี ผล บอล สด 7m888 ราคา วัน นี้ เว็บ สล็อต pp เข้า สู่ ระบบ joker88 สล็อต เครดิต ฟรี 200 ไม่ ต้อง แชร์ free เครดิต สล็อต เกม สล็อต สิงโต pg slot ท รู วอ เลท sbobet777 ดี ไหม วง ล้อ เสี่ยง โชค ฟรี เกมส์ ตู้ สล็อต ผล ไม้ ออนไลน์ kingkong pg slot epicwin 1234 โปร joker สล็อต ไม่มี บัญชี ธนาคาร เกม สล็อต โรมัน สมัคร สมาชิก ใหม่ เครดิต ฟรี สมัคร สล็อต joker โบนัส 100 โจ ก เกอร์ เกม แจก ฟรี สล็อต เข้า เล่น ufa191 pg 88 slot สล็อต เล่น ผ่าน วอ เลท สูตร บา คา ร่า dg grand สมัคร เล่น เกม ได้ เงิน จริง 123vip สมัคร เกม โร ม่า สล็อต เล่น เกม ได้ เงิน ไม่ ต้อง ลงทุน pgslot login สมัคร สล็อต ท รู วอ ล เล็ ต เครดิต ฟรี slot joker joker 123 th ไลน์ slotxo gold slot pg แตก ง่าย สมัคร สล็อต ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก เว็บ slot ฝาก เงิน ผ่าน วอ เลท สูตร sahacker เกม สล็อต ฝาก ขั้น ต่ำ 50 บาท สมัคร ดั ม มี ออนไลน์ ได้ เงิน จริง 918kiss สมัคร สมาชิก เว็บ สล็อต ฝาก ท รู วอ ล เล็ ต สล็อต เครดิต ฟรี joker pg slot joker เงิน เดิมพัน ฟรี ไม่ ต้อง ฝาก copa88 สมัคร free credit slot 2019 slot โปร วัน เกิด เล่น kiss918 สมัคร สล็อต วอ เลท pgslot 99th pg slot ฝาก 20 รับ 100 เว็บ สล็อต โดยตรง การ เล่น สล็อต ออนไลน์ joker asia gaming สมัคร mafia รับ เครดิต ฟรี pg24 slot ฟรี เงิน เดิมพัน ไม่ ต้อง ฝาก ฝาก ถอน joker สมัคร สล็อต joker โบนัส 100 ทาง เข้า i99pro joker44 slot แนะ นํา เว็บ สล็อต 2020 สล็อต ออนไลน์ รวม ทุก ค่าย slot vip game เว็บ เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน โหลด สล็อต xoth 918 คา สิ โนเว็บ เกม สล็อต สล็อต ไหน แตก ง่าย ดาวน์โหลด โจ๊ก เกอร์ slot joker35 spin999 com สมัคร pg soft slot demo line ufa168 สล็อต ฝาก ทาง วอ เลท สล็อต โอน ผ่าน true wallet เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน ทดลอง สล็อต roma เกม เล่น ได้ เงิน จริง ไม่ ต้อง ลงทุน เว็บ ทดลอง เล่น สล็อต ทาง เข้า joker joker slot gold spin999 com สมัคร ถอนเงิน pussy888 โหลด พุซซี่ 888 โหลด หน้า เกม โจ๊ก เกอร์ รวม สล็อต ทุก ค่าย ดาว slotxo ไม่มี ฝาก ขั้น ต่ํา sagame 1111 สล็อต 4444 เว็บ สล็อต ใหม่ ๆ เครดิต ฟรี ต้อนรับ สมาชิก ใหม่ pg slot1234 สมัคร เกม สล็อต joker ไพ่ป๊อก ได้ เงิน จริง dummy online เงิน จริง สล็อต ออนไลน์ ผ่าน วอ เลท เกม สวี ท โบ นั น ซ่า ทดลอง เล่น วิธี ถอนเงิน slotxo ทดลอง เล่น สล็อต ฟรี joker รู บี้ 888 เกม ยิง ปลา สมัคร ฟรี หมุน วง ล้อ joker เกม สล็อต แปะ แมว ปั่น กงล้อ live22 เกมส์ ยิง ปลา โจ๊ก เกอร์ รวม ค่าย สล็อต ใน เว็บ เดียว เว็บ มังกร 888 big win slotxo เว็บ พุซซี่ 888 สมัคร เว็บ สล็อต เข้า เล่น mafia88 slot รวม ทุก ค่าย slot แคน ดี้ mafia slot 777 เกม เล่น แล้ว ได้ เงิน ไม่ ต้อง ลงทุน เว็บ สล็อต ที่ แตก ง่าย ที่สุด เกม สล็อต โรมัน mafia555 เครดิต ฟรี 50สล็อต คือ slot เติม เงิน วอ เลท โปร สล็อต ฟรี เดิมพัน ฟรี ไม่ ต้อง ฝาก slotxo 45 pid game slot sweet bonanza สมัคร สล็อต 50 รับ 100 สล็อต แจก เครดิต ฟรี 20 บาท โหลด เกมส์ สล็อต 1234 หมุน สล็อต ฟรี 15 ครั้ง ยูสเซอร์ ทดลอง slotxo ดู บอล สด copa69 ฝาก 10 รับ 100 โจ๊ก เกอร์ เว็บ พุซซี่ 888 slot ฝาก ผ่าน ท รู วอ เลท หมุน วง ล้อ live22 สล็อต หมุน วง ล้อ ฟรี แล้ว ได้ เงิน สล็อต หมุน วง ล้อ ฟรี สล็อต apk joker123 โหลด โหลด พุซซี่ เกม ที่ ได้ เงิน จริง ไม่ ต้อง ลงทุน ่ joker168 โหลด เกมส์ สล็อต 22 pg slot ฟรี ขอ เงิน ฟรี 2019 jokergameslot sbobet222 เติม เงิน เกม ส ส ล็ อด สล็อต หมุน วง ล้อ ฟรี แล้ว ได้ เงิน เกม สล็อต หมุน ฟรี ทาง เข้า s joker vegus69 mobile ทาง เข้า โจ๊ก เกอร์ โจ๊ก เกอร์ 123 ทาง เข้า สล็อต ถอน ผ่าน วอ เลท slot pg ฟรี เครดิต ดาวน์โหลด pussy 888 slot โปร วัน เกิด รวม สล็อต ทุก ค่าย ใน เว็บ เดียว สมัคร copa89 joker 999 vip joker1888 สมัคร avenger slot ฟรี เครดิต slot สบาย 99 เว็บ สล็อต playstar โหลด พุ ช ชี่ 888 ฟรี slot slot333 สมัคร สล็อต แจก เค ดิ ต ฟรี slot game 88 slot โปร วัน เกิด แอ พ เกม ออนไลน์ ได้ เงิน จริง สล็อต หมุน วง ล้อ ฟรี แล้ว ได้ เงิน www gtr168bet โปร สล็อต ฟรี joker strike slot joker123th pc สล็อต บน เว็บ เกม สล็อต joker ทดลอง เล่น joker strike slot เล่น เกมส์ 918kiss slotxo 55 เกม ผล ไม้ ได้ เงิน จริง สมัคร สล็อต ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก แนะ นํา เว็บ สล็อต ออนไลน์ เล่น slot ออนไลน์ mafia88 ทดลอง เล่น สูตร dg บา คา ร่า slots 66 casino all slot 999 แจก ทุน ฟรี สล็อต nikigame 777 ฟรี slot ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง สล็อต แตก ดี ที่สุด joker ล็อกอิน เว็บ สล็อต ออนไลน์ เกม ยิง ปลา แจก เครดิต ฟรี 300 ฝาก เงิน ufa168 โหลด แอ พ pussy888 ฟรี เครดิต สล็อต jdb pg slot app joker gaming ผ่าน เว็บ สล็อต ออนไลน์ ฝาก ขั้น ต่ํา 50 ระบบ สมาชิก joker8899 โหลด เกม พุซซี่ 888 ดาว โหลด พุ ช ชี่ 888 royal gclubth สมัคร ยิง ปลา รับ เครดิต ฟรี สล็อต ที่ แตก ง่าย 2020 สล็อต ถอน ไม่มี ขั้น ต่ํา วอ เลท สูตร บา คา ร่า ที่ แม่น ที่สุด 2020 เครดิต ฟรี กด รับ เอง 2020 ทดลอง เล่น สล็อต joker ทุก เกม เกมส์ พนัน ออนไลน์ ได้ เงิน จริง ก่อน ฝาก สมัคร marwin slot ทาง เข้า s joker เกม สล็อต ที่ แตก บ่อย ที่สุด 123 vip casino ตู้ คา สิ โน ฝาก 10 รับ 100 วอ เลท pg slot แคน ดี้ สล็อต ค่าย epic slot online pg soft สวี ท โบ นั น ซ่า ทดลอง เล่น slot คน เล่น เยอะ joker game 2 สูตร บา คา ร่า dg grand สมัคร joker8899 สมัคร เล่น สล็อต เครดิต ฟรี สมัคร joker123net ฝาก 10 รับ 100 โจ๊ก เกอร์ ไม่มี ฝาก ขั้น ต่ํา hungrypurry888 สร้าง โปรแกรม บา คา ร่า สมัคร casinothai168 โหลด เกมส์ สล็อต 1234 เล่น เกม ดั ม มี่ ออนไลน์ เล่น ป๊อก เด้ง ให้ ได้ เงิน สมัคร joker วอ ล เล็ ต โหลด เกมส์ slotxo สล็อต 918 ฟรี เครดิต ฝาก ไม่มี ขั้น ต่ํา สล็อต สล็อต ตัว ไหน ดี หาเงิน จาก สล็อต fifa55 โกง สล็อต 777 ฟรี เครดิต 2019 แจก เครดิต ทดลอง เล่น ฟรี 1000 ถอน ได้ joker ทาง เข้า เกม slot youlike fifa55 m โหลด แอ ป เกม โจ๊ก เกอร์ การ เล่น สล็อต ออนไลน์ joker slot roma demo เกม ยิง ปลา pantipสล็อต ค่าย jiliเว็บ 168 สมัคร ดั ม มี ออนไลน์ ได้ เงิน จริง slotxo agent slot pg soft สูตร บา คา ร่า ออนไลน์ บริการ จาก gclubmember joker slot im big slot 918kiss เครดิต ฝาก 20 รับ 100 ไลน์ fifa555 เล่น โจ๊ก เกอร์ สูตร บา คา ร่า ที่ แม่น ที่สุด 2020 รวม สล็อต ทุก ค่าย โหลด เกม มา รวย 99 ios เกม sweet bonanza อยู่ ค่าย ไหน สล็อต โปร ดี โหลด โจ๊ก เกอร์ live22 ฝาก 9 รับ 100 สล็อต 123goal สมัคร ดั ม มี ออนไลน์ ได้ เงิน จริง slot joker ทดลอง เล่น ฟรี sagame168 th สมัคร เกม ได้ เงิน joker123 ระบบ อัต โน free เครดิต สล็อต เล่น เกม ได้ ตัง จริง ไม่ ต้อง ลงทุน app สล็อต xo slotxo ทดลอง demo slot online pg soft พุซซี่ 888 ดาวน์โหลด 77up sport เกม ฟรี โบนัส ฝาก 15 รับ 100 pg ปั่น สล็อต w88 เกม ไม่ ต้อง ลงทุน ได้ เงิน จริง สล็อต ฝาก ทาง วอ เลท โหลด เกม 777 demo slot pg soft joker gaming asia slot pg auto joker สล็อต 999 เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน เล่น เกม รับ เงิน ฟรี สมัคร joker123net เล่น เกม แล้ว ได้ เงิน ฟรี สล็อต 888 ฟรี เครดิต ไม่ ต้อง ฝาก เล่น เกมส์ ไพ่ ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต หมุน ฟรี เครดิต ถอน ได้ โปร โม ชั่ น วัน เกิด slot pussy888 เกมส์ สล็อต ออนไลน์ สล็อต สนุก ฟรี mafia1688 download joker slot xd gclub slot เล่น ผ่าน เว็บ พุซซี่ 888 ดาวน์โหลด เล่น เกม ได้ เงิน ไม่ ต้อง ลงทุน สมัคร king888 สล็อต ที่ แตก ง่าย สุด เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2019 สล็อต xo เข้า สู่ ระบบ scr888 สล็อต ออนไลน์ สล็อต 999 th เกม สล็อต แตก ง่าย 2020 เล่น เกม ไม่ ต้อง ลงทุน ได้ เงิน จริง mafia สล็อต ทั้งหมด วิธี เล่น sweet bonanza โปร slot 100 ยิง ปลา ท รู วอ เลท slot pg โปร 100 joker 777 slot เกม โบนัส ฟรี เกมส์ สล็อต โจ๊ก เกอร์ สล็อต ดี ที่สุด joker game bz เล่น เกม สล็อต 888 สล็อต 999 th เกมส์ ล็ อ ต 777 เว็บ สล็อต ฝาก 100 slot youlike เว็บ สล็อต ฝาก ผ่าน วอ เลท sweet bonanza ได้ เงิน จริง สล็อต ฝาก ทาง วอ เลท 1234 slot joker slot v pantip สมัคร โจ๊ก เกอร์ xo joker ทดลอง เล่น โหลด แอ พ สล็อต โจ๊ก เกอร์ pantip สล็อต sbobetstep 5 สล็อต ฝาก ผ่าน ท รู วอ ล เล็ ต slot mafia123 slot ไว กิ้ ง สล็อต แบบ เติม วอ เลต แจก เครดิต ฟรี 20 บาท ทดลอง เล่น สล็อต ฟรี 2020 joker สล็อต เม ก้า 888 ฟรี เงิน เดิมพัน ไม่ ต้อง ฝาก สมัคร เกมส์ สล็อต ได้ เงิน จริง ดาว โหลด แอ ป slotxo ขั้น ตอน การ เล่น สล็อต ดาวน์โหลด joker123 pc slot เกมส์ 66 joker โปร รวม ค่าย slot slotjoker เล่น หน้า เว็บ ฝาก 10 รับ 100 ล่าสุด pg แจก เดิมพัน ฟรี รับ ได้ ทันที เกม สล็อต v2 joker สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก เงิน slot 918kiss สมัคร pgslot เข้า เล่น สล็อต ทุน น้อย แตก ง่าย เกม สล็อต สิงโต เกม สล็อต รับ เครดิต ฟรี เกม รับ เงิน จริง สล็อต xo live22สล็อต มาเฟีย 1688 jokerauto slot hmvip159 slot โหลด ตู้ สล็อต ผล ไม้ สล็อต หมุน ฟรี เครดิต ถอน ได้ สมัคร สล็อต joker โบนัส 100 slot โปร ฝาก 10 ได้ 100 การ หมุน สล็อต ให้ ได้ เงิน ตัว เกม xo สมัคร สมาชิก joker123 โหลด แอ ป เกม โจ๊ก เกอร์ slotxo 555 โหลด แอ พ จี คลับ สล็อต 918 เครดิต ฟรี slotjoker 666 โหลด เกม starvegas joker vip เล่น ผ่าน เว็บ ไลน์ เกม สล็อต โหลด เกมส์ สล็อต live22 เว็บ เล่น เกม ได้ เงิน ทดลอง sweet bonanza pussy888 โกง slot ไท เกอร์ www mm88fc vom j0ker gaming pg ฟรี slot แมว สล็อต เว็บ ไหน ดี 2020 แจก ฟรี 300 สล็อต vs168 sure โหลด เว็บ สล็อต สล็อต วอ เลท ไม่มี ขั้น ต่ํา เล่น slot online สล็อต โปร ฝาก 1 บาท รับ 100 happy slot joker เกมส์ ยิง ปลา ส ตา ร์ เว กั ส สล็อต ค่าย pt joker123 ฝาก ถอน ออ โต้ สมัคร เครดิต ฟรี สล็อต slot pg ฝาก 10 ได้ 100 ดาว โหลด พุ ช ชี่ เว ป slotxoสล็อต โจ๊ก เกอร์ 8899 joker gaming ปั่น สล็อต ให้ แตก เกม สล็อต pussy สมัคร โจ๊ก เกอร์ xo การ เล่น สล็อต ออนไลน์ สวี ท โบ นั น ซ่า ค่าย ไหน สมัคร ฟรี สล็อต ไพ่ป๊อก ได้ เงิน จริง เกม สล็อต pussy เกม สล็อต เติม เงิน ผ่าน wallet สล็อต ออนไลน์ แตก ง่าย สล็อต 50 รับ 100 แจก เครดิต ฟรี ยืนยัน เบอร์ เกม เล่น ได้ เงิน ไม่ ต้อง ลงทุน เล่น ป๊อก เด้ง ได้ เงิน จริง สล็อต มือ ถือ ได้ เงิน จริง joker gaming เครดิต ฟรี slot369 joker fifa55 avg โจ๊ก เกอร์ สล็อต เครดิต ฟรี สล็อต โจ๊ก เกอร์ เติม true wallet ไม่มี ขั้น ต่ํา โปร 100 live22 พุ ช ชี่ 888 สล็อต รวม ค่าย เกม ไพ่ แลก เงิน ได้ จริง pg slot ฝาก 10 สล็อต รวม ทุก ค่าย ufa168 slot joker apk slot ufabet mafia88 สล็อตแทง บอล วัน นี้ pg slot apk download pgslot nb โจ๊ก เกอร์ 777 โจ๊ก เกอร์ ออ โต้ วิธี สมัคร sbobet jokergame 777 joker ฝาก 20 สมัคร โจ๊ก เกอร์ ลิงค์ เข้า เล่น www joker123 net โจ๊ก เกอร์ ฝาก 20 รับ 100 สล็อต ที่ ดัง ที่สุด ฝาก ถอน ออ โต้ joker jokergod164 เว็บ เล่น เกมส์ ได้ เงิน สล็อต รวม ทุก ค่าย เกม ไม่ ต้อง ลงทุน สร้าง โปรแกรม บา คา ร่า เติม เกม joker สมัคร joker ปั่น สล็อต w88 slot roma ทดลอง สมัคร เกม สล็อต 888 slot999 joker สมัคร โจ๊ก เกอร์ free สล็อต แอ พ เกม ออนไลน์ ได้ เงิน จริง ทดลอง เล่น ยิง ปลา joker slotxo369 joker ทาง เข้า s joker สล็อต โจ๊ก เกอร์ เติม true wallet ไม่มี ขั้น ต่ํา pgslot 99th สล็อต avenger ทดลอง เล่น ยิง ปลา joker ibcbet nova88 joker1888 สมัคร สมาชิก slotxo 69 เกมส์ ยิง ปลา pantip เครดิต ฟรี mafia slot สล็อต ออนไลน์ โปร โม ชั่ น ฝาก 200 รับ 400 บา คา ร่า joker slot 789th mafia88 เว็บ เล่น เกมส์ ไพ่ ได้ เงิน จริง ไม่ ต้อง ลงทุน เกมส์ fun88 แอ พ สล็อต xo joker168 auto สล็อต เว็บ ไหน ดี www i99pro ทาง เข้า เว็บ ufa191 เดิมพัน ฟรี ไม่ ต้อง ฝาก 2019 สล็อต หมุน ฟรี เครดิต ฟรี เกม แมว สล็อต เว็บ ทดลอง เล่น ฟรี เกม ฟรี เล่น แล้ว ได้ เงิน pg slot ฝาก 100 joker ฝาก 10 รับ 100 วอ เลท mafia88 mobile app แจก เครดิต ฟรี ทดลอง เล่น เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต ที่ แตก ง่าย 2020 เล่น สล็อต ได้ เงิน จริง pantip joker ฝาก ท รู วอ เลท ี ด ฟ 168 แพนด้า 888 nova88 maxbet สล็อต เครดิต ฟรี 20 slot supreme caishen เว็บ สล็อต ฝาก 20 รับ 100 sboonline24 pg slot 78 avenger 777slot เกม สล็อต sa scr888 สล็อต ออนไลน์ เงิน ฟรี สล็อต เม ก้า 888 123xbet เครดิต ฟรี ตัว เกม สล็อต xo mafia650 เครดิต ฟรี ทาง เข้า เล่น ufa191 สมัคร เล่น สล็อต ออนไลน์ ฟรี best88 slot apk สล็อต มี ค่าย ไหน บ้าง สล็อต แบบ เติม วอ เลต pg slot ฝาก วอ เลท ทดลอง เล่น ฟรี สล็อต joker ปัน ส ล๊ อ ต ฟรี สูตร บา คา ร่า ที่ ดี ที่สุด ฟรี โหลด slot joker fifa55 ballsod เล่น แล้ว ได้ เงิน ฟรี สมัคร สล็อต วอ เลท เกม ยิง ปลา pantipสล็อต ค่าย jiliเว็บ 168 joker slot ทดลอง เล่น โจ๊ก เกอร์ 666 โปร สมาชิก ใหม่ ฟรี เครดิต เล่น ป๊อก เด้ง ให้ ได้ เงิน เกม ไพ่ แลก เงิน เดิมพัน ฟรี ไม่ ต้อง ฝาก 2020 ยูสเซอร์ ทดลอง เล่น pussy888 pg slot โปร 100 เว็บ สมัคร สล็อต โหลด fhm99 ตัว เข้า เกม joker สล็อต เครดิต ฟรี 20 เกม ไพ่ป๊อก เด้ง เครดิต ฟรี สล็อต แตก ดี เว็บ ทดลอง เล่น ฟรี ถอน ได้ ไม่มี ขั้น ต่ํา สล็อต สนุก ฟรี เกม สล็อต 365 โหลด เกม ค่า สิ โน ออนไลน์ เว็บ บอร์ด joker game ยูสเซอร์ ทดลอง เล่น live22 เว็บ joker8899 pg slot mobile joker roma slot สูตร บา คา ร่า sa app สูตร บา คา ร่า sa app slotxo agent สมัคร epicwin sticky joker แจก เครดิต ฟรี ยืนยัน ตัว ตน joker2020 slot ufa lion 168 slot5g pg หมุน วง ล้อ สล็อต สล็อต มา ใหม่ 2020 joker vip 789 slot88 joker ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ฟรี เค ดิ ต ไม่ ต้อง ฝาก เงิน เดิมพัน ฟรี 2020 สล็อต joker 69 โหลด แอ พ สล็อต joker สมัคร เกม สล็อต รับ เครดิต ฟรี pg slot เข้า สู่ ระบบ เว็บ เกม เล่น แล้ว ได้ เงิน roma slot joker demo เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต แจก โบนัส slot 333 free credit โปร โม ชั่ น เครดิต ฟรี joker สล็อต ฟรี เครดิต 100 slot เล่น ง่าย dota2 พนัน pg slot free best88 slot apk download ibc9 คือ อะไร sweet bonanza เทคนิค สมัคร heng555 สล็อต joker 69 เว็บ พุซซี่ 888 สล็อต ไหน แตก ดี เว็บ สล็อต ฝาก ท รู วอ ล เล็ ต jokerauto slot sbobet24hr มือ ถือ joker123 สมัคร สมาชิก สล็อต ฟรี 18 บาท สล็อต ค่าย rt แตก ง่าย สล็อต ออนไลน์ แตก ง่าย ทดลอง เล่น สล็อต ออนไลน์ หมุน สล็อต pantip สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ 2019 สล็อต ได้ เครดิต ฟรี สบาย ดี 99 สล็อต โจ๊ก เกอร์ 123 ทาง เข้า ดาว โหลด เกม สล็อต 918 เกม สล็อต ufabet pg slot ฝาก ท รู วอ เลท ทาง โจ๊ก เกอร์ สล็อต แตก ง่าย ล่าสุด สล็อต ที่ เติม วอ เลต ทาง เข้า copa69 โหลด โจ๊ก เกอร์ 123 เว็บ สล็อต winner โปร สมาชิก ใหม่ ฟรี เครดิต เกมส์ ยิง ปลา พัน ทิป ยูสเซอร์ ทดลอง เล่น โจ๊ก เกอร์ 123 net สมัคร copa69 joker123th เล่น ผ่าน หน้า เว็บufaslot all slotv9 สล็อต แบบ เติม วอ เลต โหลด เกม รับ เครดิต ฟรี 2p slot joker เกมส์ pg slot slot mafia888
ace333 เครดิต ฟรี ไม่ ต้อง ฝาก| galaxy เว็บ พนัน| เล่น บา คา ร่า เว็บ ไหน| บา คา ร่า เสมอ| gclub168 ฟรี เครดิต ไม่ ต้อง ฝาก| เว็บ พนัน รับ เครดิต ฟรี| บา คา ร่า ถูก กฎหมาย| เกม ฟรี เครดิต ไม่ ต้อง ฝาก| เครดิต ฟรี fun88| 999 คา สิ โน| rb88 ฟรี เครดิต| เว็บ บา คา ร่า ไทย| บา คา ร่า ใช้ วอ เลท สมัคร| โบนัส คา สิ โน| แทง บา คา ร่า ขั้น ต่ำ 5 บาท| สมัคร sexy gaming| sa casino ทดลอง| sagame88 เครดิต ฟรี 100| เครดิต ฟรี 100 ถอน ได้ 2019| คา สิ โน พม่า pantip| บา คา ร่า แบบ ทดลอง เล่น| เครดิต ฟรี 2019 ถอน ได้| สมัคร ค่า สิ โน ออนไลน์ ไม่มี ขั้น ต่ํา| 123betting เครดิต ฟรี| เครดิต ฟรี ได้ จริง ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| thaibet88 เครดิต| คา สิ โน 369| sbobet คา สิ โน ออนไลน์| แจก ฟรี 300 ไม่ ต้อง ฝาก| ฟรี เครดิต 100 ไม่ ต้อง ฝาก 2019| sa ทดลอง เล่น 50000| lion123 คา สิ โน pantip| webet88 ฟรี เครดิต| รู เล็ ต ตา ละ 5 บาท| บา คา ร่า เติม วอ เลต| เว็บ ไพ่ แค ง| การ ถอนเงิน บา คา ร่า| sa vip 1688| คา สิ โน ออนไลน์ แทง ขั้น ต่ํา 10 บาท| kclubss| royal1688 ผ่าน มือ ถือ| เว็บ พนัน ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก| sa ฟรี เครดิต 300| gtr365bet vip| huc99 เครดิต ฟรี 100| คา สิ โน ฝาก ขั้น ต่ํา 1 บาท| ทดลอง บา คา ร่า sa 50000| ไอ ดี ไลน์ บา คา ร่า| สมัคร บา คา ร่า 50 บาท| เว็บ entaplay| เว็บ แทง บา คา ร่า ขั้น ต่ํา 20 บาท| joker สมาชิก ใหม่ 100| บา คา ร่า ดั ม มี่| บา คา ร่า ดีๆ| 918kiss ฝาก 100 ฟรี 200| ฝาก 50 ฟรี 100 918kiss| เว็บ บา คา ร่า m88| บา คา ร่า สด เว็บ ไหน ดี| แอ ป การ พนัน ออนไลน์| เว็บ ค่า สิ โน ใหม่| เว ป บา คา ล่า| บา คา ร่า ออนไลน์ เครดิต ฟรี 2019| คา สิ โน ฝาก ขั้น ต่ํา 20| ฟรี เครดิต ไม่ ต้อง ฝาก| เว็บ ฟรี เครดิต| ฟรี เครดิต กีฬา|