<nobr id="4Ly1DOJ"><meter id="4Ly1DOJ"><listing id="4Ly1DOJ"></listing></meter></nobr>
<track id="4Ly1DOJ"><span id="4Ly1DOJ"><big id="4Ly1DOJ"></big></span></track>

            <track id="4Ly1DOJ"><big id="4Ly1DOJ"><nobr id="4Ly1DOJ"></nobr></big></track>

                <track id="4Ly1DOJ"><form id="4Ly1DOJ"><noframes id="4Ly1DOJ">

                      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
                       
                      ไท เกอร์ สล็อต สล็อต เกมส์ ไหน ดี สล็อต ฝาก เงิน ท รู วอ เลท สล็อต ที่ แตก มาก ที่สุด slot ufabet joker pg888 slot เว็บ สล็อต ฝาก 100 โบ นั น ซ่า สล็อต หมุน วง ล้อ live22 เล่น mafia88 เล่น สล็อต มือใหม่ โปร เว็บ สล็อต xoslot ทาง เข้า เครดิต ฟรี สล็อต ออนไลน์ สูตร บา คา ร่า ที่ ดี ที่สุด ฟรี joker slot funny wwwufascrcom เล่น เกม สล็อต ออนไลน์ ฟรี โค้ด เครดิต ฟรี 333be ufagoal168 joker ฟรี ส ปิ น agen pg slot เกม สล็อต ทํา เงิน สมัคร epic slot เว็บ สล็อต โดยตรง www sbobetonline 24เว็บ พนัน ถอน ขั้น ต่ำ 100 slot 999 vip slot joker lucky god สล็อต บน มือ ถือ เว็บ รวม สล็อต ทุก ค่าย ยูสเซอร์ 918kiss โจ๊ก เกอร์ 1668 slotxo 168 ฝาก 100 รับ 250 slotgame66 สูตร เล่น โจ๊ก เกอร์ โล เยน สล็อต ฟรี เงิน เดิมพัน 2020 epicwin slot online slot roma demo putsy888 สล็อต ให้ ทุน ฟรี joker สล็อต 8899 sagame1111 com xo joker slotxo 69 เกม ออนไลน์ ได้ เงิน จริง 2019 joker ฝาก 20 j0ker slot 918 คา สิ โนเว็บ เกม สล็อต สล็อต pg ที่ ดี ที่สุด เข้า ระบบ slotxo panda888 slot slot mafia1688 slotjoker 35 slotxo เข้า ระบบ สล็อต สาย ฟรี line joker123 joker28 game สมัคร ดั ม มี ออนไลน์ ได้ เงิน จริง สล็อต avenger โบ นั น ซ่า สล็อต live22 แตก ง่าย joker auto slot highway kings คือ สมัคร marwin slot เล่น โจ๊ก เกอร์ เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2018 รับ เครดิต เล่น ฟรี ลิ้ ง โจ๊ก เกอร์ 123 เกม ไม่ ต้อง ลงทุน เว็บ สล็อต เติม วอ เลต ฝาก 10 รับ 100 บา คา ร่า ทาง เข้า สล็อต 168 สล็อต ฝาก ด้วย วอ เลท scr888 สล็อต ออนไลน์ แจก เค ดิ ต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ joker123 club สล็อต ทดลอง เล่น joker jdb ค่าย เกมส์ ufa191 ถอนเงิน ไม่ ได้ live22 แตก ง่าย game slot789 ฝาก 10 รับ 100 ฟรี เครดิต สล็อต ออนไลน์ เครดิต ฟรี กด รับ เอง ล่าสุด สล็อต เครดิต ฟรี 50 ไม่ ต้อง แชร์ demo slot pg soft mafia 88 slot ซื้อ ส ปิ น joker เกม สล็อต เติม ผ่าน วอ เลท ตี ตุ่น เครดิต ฟรี pg slot ฝาก 100 เว็บ สล็อต ฝาก 20 รับ 100 เกม ส็ ลอด joker44 slot สมัคร สวี ท โบ นั น ซ่า เล่น สล็อต ได้ เงิน จริง pantip ดาว โหลด แอ ป slotxo mafia1688 เครดิต ฟรี สูตร บา คา ร่า ที่ ดี ที่สุด ฟรี slot ท รู วอ เลท ฝาก 20 บาท รับ 100 วอ เลท ทาง เข้า nova88 สล็อต caishen รับ เครดิต ฟรี mafia skyslot88 joker สล็อต เติม ท รู วอ เลท บา คา ร่า ถอน ขั้น ต่ำ 300เกม ออนไลน์ 666 แพนด้า 888 สูตร บา คา ร่า sa app เกมส์ ตู้ สล็อต ผล ไม้ ออนไลน์ ts911 logo slot ฝาก 10 บาท ฟรี 90 บาท 2020 live22 สมัคร สมาชิก ใหม่ ฟรี เครดิต เกมส์ ยิง ปลา pantip slot galaxy 168 jokerslotth viewbet 888 เว็บ หมุน สล็อต เกม ออนไลน์ ฝาก ไม่มี ขั้น ต่ํา สล็อต ฝาก ด้วย วอ เลท สล็อต เล่น ง่าย ได้ เงิน joker1888 สมัคร สมาชิก เติม เกม joker สล็อต ที่ แตก ดี ที่สุด สล็อต โจ๊ก เกอร์ ฝาก ผ่าน วอ เลท เว็บ เล่น slot betflix24 line เกม สวี ท โบ นั น ซ่า ufa191 ดู บอล หมุน slot joker ใหม่ ล่าสุด สล็อต เล่น ง่าย แตก ไว ดาวน์โหลด เกมส์ สล็อต เว็บ เล่น เกม ได้ ตัง เว็บ สล็อต วอ เลท pg soft mahjong สล็อต xo live22สล็อต มาเฟีย 1688 slot gold 789 ส โบ เบ็ ต 888 สล็อต casino 1988 โหลด เกม slot1234 pg slot ฝาก ถอน ไม่มี ขั้น ต่ำ สล็อต เครดิต ฟรี 50 ไม่ ต้อง แชร์ สล็อต ทุน น้อย ล่าสุด สล็อต แตก ง่าย สุด slot ออนไลน์ epic journey joker สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก เงิน เกม ที่ ได้ เงิน ฟรี สล็อต ออนไลน์ 222 slot joker easy sn888 game online ดาวน์โหลด สล็อต 888 slotjoker 100 pg slot games โหลด เกม ตู้ สล็อต สล็อต ท รู วอ ล เล็ ต ไม่มี ขั้น ต่ํา โหลด เว็บ โจ๊ก เกอร์ สล็อต airpay เข้า สู่ ระบบ โจ๊ก เกอร์ เข้า เล่น เกม live22 สล็อต ค่าย epic ยูสเซอร์ ทดลอง เล่น 918kiss gclub slot download android เว็บ สล็อต ไหน ดี โหลด โจ๊ก เกอร์ xo ยิง ปลา แตก ง่าย pantip ดาว โหลด เกม 918 slot ฝาก ท รู joker123 joker888 slot เครดิต xo slot เข้า สู่ ระบบ joker สล็อต 888v1 slot คน เล่น เยอะ เกมส์ fun88 สล็อต แจก ฟรี 200 ทดลอง เล่น สล็อต ฟรี joker พุซซี่ 888 ดาวน์โหลด ufax10 ฝาก 20 บาท รับ 100 วอ เลท joker vip เล่น ผ่าน เว็บ joker casino slots สล็อต ฝาก ท รู วอ ล เล็ ต joker slot 1234 ฝาก 50 ฟรี 150 แจก user ทดลอง เล่น ฟรี ถอน ได้ 2019 สล็อต สวี ท โบ นั น ซ่า เล่น เกม ได้ เงิน จริง 2018 ป๊อก เด้ง ออนไลน์ แจก เครดิต ฟรี ส รู สล็อต แทง บอล ส เต็ ป วัน นี้ สล็อต โจ๊ก เกอร์ ฟรี เครดิต สมัคร joker123th ไลน์ joker เว็บ ทดลอง เล่น ฟรี ufa888 เร็ว slotjoker 100 v9 slot joker slotgame66 ทดลอง เล่น โจ๊ก เกอร์ game ซื้อ ส ปิ น joker เล่น สล็อต ฟรี ได้ เงิน จริง ไหม สล็อต ฝาก เงิน ผ่าน วอ เลท slot โปร ฝาก 1 บาท รับ 100 เข้า ระบบ slotxo the great icescape slot เกม สล็อต ufabet lucky777 ถอนเงิน magix99 joker slot168 vip ดาว โหลด เกม สล็อต 918 สล็อต ฝาก ถอน วอ ล เล็ ต avenger slot ฟรี เครดิต 2020 เว็บ สล็อต ออนไลน์ สล็อต แจก ฟรี 200 pg slot ฝาก 10 รับ 100 ล่าสุด สล็อต 1 บาท ก็ ฝาก ได้ 123 vip casino เกม ออนไลน์ 123 รับ เครดิต ฟรี ยิง ปลา เกม คา สิ โน ออนไลน์ ฟรี เครดิต ufa slot แตก ง่าย สมัคร ขั้น ต่ำ 50 เกม สล็อต 365 winner88 club เกมส์ สล็อต โจ๊ก เกอร์ 888 pg slot xo สล็อต วอ เลท ไม่มี ขั้น ต่ํา pantip สล็อต pg soft slot demo ฝาก 10 รับ 100 ล่าสุด pg แทง บอล ส เต็ ป วัน นี้ 188bet แจก ฟรี เครดิต เล่น เกม ไม่ ต้อง ลงทุน ถอนเงิน joker888 แจก user ทดลอง เล่น ฟรี slot game 444 สล็อต avenger เข้า เว็บ สล็อต joker gaming 777 joker slot free game ป๊อก เด้ง ออนไลน์ แจก เครดิต ฟรี slotxo เกมส์ ไหน ดี เกม โบนัส ฟรี https joker slot auto com register สมัคร สล็อต joker joker168 slot สมัคร สล็อต โจ๊ก เกอร์ สมัคร เกม 888ยิง ปลา jdb ufaonline24 สมัคร สมาชิก fifa555 สมัคร สล็อต ไม่มี ขั้น ต่ำ วัน นี้ สล็อต ตัว ไหน แตก joker888 auto เล่น เกม สล็อต 888 joker28 game โหลด เกมส์ สล็อต ฟรี เว็บ รวม สล็อต ทุก ค่าย avenger 777slot เม กา 888 สมัคร slot เครดิต ฟรี สล็อต รับ 100 เว็บ เล่น เกม ได้ ตัง สล็อต gp la galaxy888 เกม สล็อต เติม ผ่าน วอ เลท joker123 ฝาก เงิน แจก เครดิต ฟรี mafia โปร slot 100 เกม สล็อต ไหน แตก ดี โจ๊ก เก้อ เกม โหลด เกมส์ scr888 สล็อต ที่ แตก มาก ที่สุด mafia88 mobile slot ยอด ฮิต ทาง เข้า joker mobile เว็บ สล็อต playstar โหลด 918kiss ใน คอม pg soft slot free play สล็อต ฝาก ทาง วอ เลท slot online pg soft โจ๊ก เกอร์ สล็อต เครดิต ฟรี เกม ออนไลน์ ได้ เงิน ไม่ ต้อง ลงทุน ปั่น สล็อต w88 สล็อต ที่ ดี ที่สุด ตอน นี้ web joker slot 9889 download android 123xbet เกมส์ slot machine ฟรี เครดิต ฟรี nxcasino สลอด เกม 66 gclub slot vip สมัคร สมาชิก joker ติด ตั้ง โจ๊ก เกอร์ 123 โจ๊ก เกอร์ สล็อต 89 ทดลอง เล่น สล็อต joker ทุก เกม เว็บ หมุน สล็อต live22 สมัคร สมาชิก ใหม่ ฟรี เครดิต เกม slot แตก ง่าย pg slot ฝาก 1 รับ 100 เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2019 สล็อต ถอน เข้า วอ เลท โปร slot 100 pg slot png สล็อต 10 ฟรี 100 สมัคร เกมส์ สล็อต ออนไลน์ โจ๊ก เกอร์ vip สล็อต วี 9 สล็อต โจ๊ก เกอร์ แจก เครดิต ฟรี สล็อต ใน เว็บ สล็อต ส โบ เบ็ ต สล็อต แตก ดี เกม ออนไลน์ 123 สล็อต ออนไลน์ 77 สล็อต เติม ผ่าน วอ เล็ ต สล็อต ไม่มี ขั้น ต่ำ ยอด นิยม pg slot 978 เกมส์ อะไร เล่น แล้ว ได้ เงิน จริง โหลด โจ๊ก เกอร์ 123 เกม สล็อต ใหม่ ๆ slot avenger bet2you สล็อต เว็บ สล็อต jdb สล็อต ฝาก เงิน ผ่าน ท รู วอ เลท เกม ผล ไม้ ได้ เงิน จริง avenger game slot สมัคร สมาชิก โจ๊ก เกอร์ 123 slotxo ยิง ปลา th8joker เล่น เกม ได้ เงิน จริง ไม่ ต้อง ฝากเกม สล็อต ฟรี เครดิต โปร สล็อต เครดิต ฟรี ส ล้อ ต 168 โหลด เกม ตู้ สล็อต ufa191 ถอนเงิน ไม่ ได้ joker สล็อต 999 แจก user ทดลอง เล่น ฟรี สล็อต ฝาก ท รู วอ เลท ไม่มี ขั้น ต่ํา joker123 เกม ทาง เข้า เกม joker เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2019 หมุน วง ล้อ live22 ผล บอล แม่น ยํา ล่าสุด สมัคร เกม โจ๊ก เกอร์ slot พา รวย เว็บ พุซซี่ 888 slot pg ฝาก 10 ได้ 100 สมัคร fifa1234 slot joker 96 ฝาก ขั้น ต่ำ 50 slot ufabet joker ทาง เข้า joker gaming เข้า สู่ ระบบ ufa191 ทาง เข้า โจ๊ก เกอร์ 1234 สล็อต qq ace333auto ฟีฟ่า 55 เครดิต ฟรีสล็อต 888 คา สิ โน ออนไลน์ ดาว slotxo ทดลอง เล่น สล็อต เครดิต ฟรี การ เล่น เกม สล็อต โหลด เกม เล่น แล้ว ได้ เงิน agen slot pg soft หมุน สล็อต pantip สล็อต โจ๊ก เกอร์ แตก ง่าย โปร ฟรี สล็อต jokerking99 เกม ค่าย joker slotxo ทดลอง เล่น ฟรี 25club แจก ฟรี เครดิต mobile joker slot sweet bonanza ได้ เงิน จริง 44thjoker ufa007 ดี ไหม โหลด เกม joker games ทดลอง sweet bonanza slot mafia ฟรี เครดิต slot joker 899 ทดลอง เล่น ฟรี สล็อต joker เว็บ เล่น เกม ได้ เงิน จริง slot ฝาก ท รู เกม ยิง ปลา สมัคร ฟรี joker123 pc slotgame66 เข้า ไม่ ได้ เล่น เกม สล็อต 888 joker สล็อต ทดลอง เล่น ฟรี สล็อต roma ทดลอง สล็อต เติม 1 บาท ได้ 100 เว็บ ที่ มี สล็อต ทุก ค่าย joker gaming สมัคร เล่น เกม ฟรี ได้ เงิน จริง 2020 slot joker688 เล่น 918 ทาง เข้า ufa slot ส รู สล็อต กงล้อ ปั่น ฟรี 55 slotxo เกม สล็อต ฝาก 10 รับ 100 slot เครดิต สล็อต เติม ท รู วอ เลท joker mvp gaming เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2019 scr888 สล็อต ออนไลน์ เกม ใหม่ pg สมัคร เว็บ slot ร่วม เว็บ ค่าย jdbเกม ฟรี ได้ เงิน จริง สมัคร เครดิต ฟรี สล็อต ผล ไม้ โชค ดี เว็บ ค่า สิ โน รวม สล็อต ทุก ค่าย joker vip th สล็อต 777 ฟรี เครดิต 2019 สล็อต หมุน วง ล้อ ฟรี เล่น เกม ฟรี ได้ เงิน จริง 2020 918 joker ส ล๊ อ ต 168 สมัคร เกม joker โปร แฮก สล็อต สล็อต สาย ฟรี สล็อต ออนไลน์ ฝาก ขั้น ต่ำ 50 พุ ช ชี่ 888 สล็อต joker เครดิต ฟรี เกม ยิง ไข่ ได้ เงิน จริง สล็อต เครดิต ฟรี 20 playlive88 pg ibet789 สล็อต หมุน สล็อต ฟรี 15 ครั้ง ยูสเซอร์ 918kiss ส โบ เบ็ ต 888 สล็อต ดาว โหลด joker slot slot โปร วัน เกิด กงล้อ ปั่น ฟรี ทดลอง เล่น สล็อต sweet bonanza mm88win v8 ทาง เข้า เว็บ https www uro168club com mafia77 slot joker แตก บ่อย ฟรี เดิมพัน ไม่ ต้อง ฝาก หน้า เว็บ โจ๊ก เกอร์ เว็บ สล็อต ที่ ดี ที่สุด 2019 ace333auto kiss918 โหลด สมัคร เว็บ slot สล็อต ไหน แตก ดี โหลด jokergame slot โปร โม ชั่ น 100 เว็บ ที่ สล็อต แตก ง่าย สมัคร เล่น ไพ่ ดั ม มี่ ออนไลน์ ได้ เงิน จริง slot joker35 helloslotjoker สมัคร เกมส์ สล็อต ได้ เงิน จริง สล็อต เว็บ ไหน ดี 2020 สล็อต 918 ฟรี เครดิต joker game โจ๊ก เกอร์ เกมส์ เกมส์ slot แบรนด์ pragmatic play สมัคร เกม ยิง ปลา เครดิต ฟรี sweet bonanza ทดลอง เล่น เกม สวี ท โบ นั น ซ่า dafabet สล็อต แตก ง่าย สล็อต ฝาก วอ ล เลท สล็อต แจก เครดิต ฟรี 20 บาท joker888 สมัคร jokerslotabc เกม แคน ดี้ ไม่มี ขั้น ต่ำ สล็อต ออนไลน์ ฝาก 1 บาท รับ 100 เว็บ สล็อต ฝาก 20 รับ 100 ทาง เข้า ufa191 เกม สล็อต คน เล่น เยอะ สมัคร xe88 slot joker ทดลอง เล่น ทดลอง ยิง ปลา joker slot แตก ง่าย 2020 ทาง เข้า xoslot joker slot casino slot55 joker เว็บ โจ๊ก เกอร์ 89 joker8899 download pg888 slot pg slot free joker1888 สมัคร สมาชิก โหลด โจ๊ก เกอร์ 888 joker slot im สมัคร โจ๊ก เกอร์ xo เล่น epicwin สมัคร joker game โหลด fhm99 โจ๊ก เกอร์ เกม 123 เกมส์ ตู้ สล็อต ผล ไม้ ออนไลน์ เกม สล็อต joker ทดลอง เล่น ฟรี slot slot ค่าย ไหน แตก ง่าย เว็บ สล็อต ที่ ดี ที่สุด 2019 โหลด แอ พ สล็อต joker เล่น สล็อต เกมส์ ไหน ดี ยิง ปลา มี รา วา ส สล็อต xo live22สล็อต มาเฟีย 1688 สล็อต แตก บ่อย 2020 สล็อต 50 รับ 100 เว็บ pg avenger แจก เครดิต ฟรี slotxoth 918kiss sweet bonanza xmas ทดลอง เล่น ดาว โหลด pgslot สล็อต ออนไลน์ ใหม่ slot joker v9 ๋ joker123 สล็อต ไว กิ้ ง สล็อต ทุน น้อย ล่าสุด web joker slot 9889 918kiss ios เล่น ไม่ ได้ สมัคร sbobet 888 ฝาก 20 บาท รับ 100 วอ เลท โปร ฟรี สล็อต http www joker123 net gameindex สล็อต ฝาก วอ เลต ไม่มี ขั้น ต่ํา demo slot mahjong ways ดาว โหลด เกม สล็อต live22 golden joker slot สล็อต 168 เครดิต ฟรี ทดลอง เล่น สล็อต ออนไลน์ ฟรี joker บา คา ร่า all slot 999 pg slot ฝาก ผ่าน วอ เลท ถอน ขั้น ต่ํา 50 ทาง เข้า joker vip เกมส์ ที่ ได้ เงิน จริง 2019 สมัคร joker123net pussy888 allbet สมัคร สมาชิก ใหม่ ฟรี เครดิต ไม่ ต้อง ฝาก pg สล็อต เครดิต ฟรี สล็อต ออนไลน์ ทดลอง เล่น ฟรี สล็อต ais โหลด เกม joker วิธี ยิง ปลา slotxo โจ๊ก เก้อ เกม เกม ผล ไม้ ได้ เงิน จริง รวม สล็อต ทุก ค่าย เครดิต ฝาก 20 รับ 100 slot avenger สล็อต ฝาก ถอน ผ่าน วอ เลท สมัคร ฟรี สล็อต pg soft slot demo สล็อต เติม 1 บาท ได้ 100 แจก ทุน ฟรี ไม่ ต้อง ฝาก ฟรี เค ดิ ต ไม่ ต้อง ฝาก บอล สกอร์ สูง คืน นี้ joker89 download เล่น เกม ไม่ ต้อง ลงทุน ได้ เงิน จริง โหลด 918kiss ลง คอม winner88 club com สล็อต ฟรี 2000 fun88 สล็อต เกม คา สิ โน 88 เกม สล็อต ใหม่ ๆ ทดลอง sweet bonanza กระสุน ฟรี 300 รับ เครดิต ฟรี slot sn888 game online สล็อต ไม่ ต้อง ทํา เท ริน ufa เครดิต ฟรี 100 เกม สล็อต ออนไลน์ ที่ ดี ที่สุด สล็อต ฝาก เงิน ท รู วอ เลท jokergameslot ทดลอง เล่น ฟรี สล็อต joker game demo slot pg soft joker99 slot เว็บ สล็อต ออนไลน์ ฟรี สล็อต ค่าย epic เกม ไพ่ แลก เงิน เกมส์ ฝาก ไม่มี ขั้น ต่ํา เกม สล็อต ที่ แตก บ่อย ที่สุด สมัคร สมาชิก joker gaming หมุน สล็อต ฟรี 15 ครั้ง สมัคร slot 1688 app สล็อต slotxo 365 roma joker demo สล็อต pussy 888 slot007 บน เว็บ แท่ง บอล 3m sbobet222 เติม เงิน เกม สล็อต โบนัส ฟรี slot1688 สล็อต ออนไลน์ ดาวน์โหลด joker123 pc wwwmm88win มา รวย 99 apk เกมส์ ไว กิ้ ง สล็อต สมัคร เล่น sbobet ขอ เงิน ฟรี 2019 joker ทดลอง เล่น ฟรี เกมส์ อะไร เล่น แล้ว ได้ เงิน จริง เกม sweet bonanza อยู่ ค่าย ไหน joker123 auto v2 แจก เครดิต ทดลอง เล่น ฟรี โหลด เกมส์ คา สิ โน สมัคร เกมส์ สล็อต ได้ เงิน จริง สมัคร ubet89 ปั่น สล็อต แตก ทดลอง เล่น สล็อต ค่าย joker สูตร บา คา ร่า sa ออ โต้สูตร เฮีย ขวาน เสือนอนกิน ทาง pgslot สล็อต รู เล็ ต joker slot 9988 เข้า joker 168jk slot ufagoal168 สล็อต joker แตก บ่อย ฝาก 9 บาท รับ 100 live22 g2win slot โหลด สล็อต xoth โหลด เกม ace333 fifa7777com ดาว โหลด เกม pussy888 โหลด เกม ตู้ สล็อต เกม สล็อต แตก บ่อย เกมส์ ยิง ปลา ส ตา ร์ เว กั ส joker123 ฝาก ถอน ออ โต้ เว็บ สล็อต ที่ ดี ที่สุด 2019 เว็บ ตู้ สล็อต สมัค โจ๊ก เกอร์ 123 sbobetstep แจ้ง ฝาก joker gaming auto epicwin slot ทาง เข้า เว็บ ทดลอง เล่น ฟรี สล็อต ทดลอง เล่น joker เกมส์ สล็อต fifa55 ปั่น สล็อต แตก โจ๊ก เกอร์ 777 ดาวน์โหลด โจ๊ก เกอร์ สล็อต สล็อต ไม่มี ขั้น ต่ำ ยอด นิยม pg slot logo joker slot 98 ทาง เข้า fifa55hd พนัน dota2 เกมส์ สล็อต sa สล็อต ไม่มี ขั้น ต่ํา ฟรี โบนัส 2020 สมัคร สมาชิก pgslot fifa55 avg live22th joker slot007 download jokerth vip สล็อต ฝาก ผ่าน ท รู วอ ล เล็ ต goldclubslot ปั่น สล็อต 100 บาท slot โปร โม ชั่ น 100 ดาวน์โหลด เกม pussy joker gaming joker slot 44th โหลด เกม swin99th joker โหลด เกม เว็บ มังกร 888 แพนด้า 888 ฝาก วอ เลท 168 superslot 123xbet โปร โม ชั่ น เครดิต ฟรี ufa147 แจก เครดิต ฟรี โปร โม ชั่ น เครดิต ฟรี สล็อต ฝาก ผ่าน วอ เล็ ต ออนไลน์ สล็อต ยิง ปลา ยิ่ง มี รา วา ส เล่น epicwin สล็อต เครดิต ฟรี 50 ไม่ ต้อง แชร์ royal gclubth เข้า ระบบ live22 เกมส์ ยิง ปลา พัน ทิป joker ซื้อ ฟรี ส ปิ น สล็อต ต่าง ประเทศ slot แจก เครดิต joker ออ โต้ slot คน เล่น เยอะ สล็อต ฝาก เงิน ผ่าน ท รู วอ เลท เกม ยิง ปลา กระสุน ฟรี 300joker สล็อต 123 slotxo 24h เกม 88 joker gclub slot vip kingkong pg slot ทาง เข้า fifa55asia sweet bonanza ได้ เงิน จริง ไหม slot mafia123 epicwin 777 เกม ยิง ปลา เว็บ ไหน ดี สุดKeyword สล็อต สนุก ฟรี ดาว โหลด เกม pg slotxo slotjokerufascr สล็อต เติม ผ่าน true wallet สมัคร slot 1688 pg slot xo เว็บ สล็อต jdb แจก ทุน ฟรี สล็อต v9slot pg วิธี เล่น sweet bonanza เล่น เกม ได้ เงิน จริง 2018 สมัคร mafia888 เกมส์ ยิง ปลา ส ตา ร์ เว กั ส เกม เล่น ฟรี แล้ว ได้ เงิน สล็อต ออนไลน์ ท รู วอ เลท สล็อต ที่ มี คน เล่น มาก ที่สุด โจ๊ก เกอร์ 1234 เกม เล่น แล้ว ได้ เงิน ฟรี โหลด jokergame แจก ฟรี 300 สล็อต พุ ช ชี่ 888 pg slot เว็บ ตรง เล่น สล็อต ได้ เงิน จริง pantip epicwin bet ทาง เข้า nova88 รวม ค่าย เกม สล็อต โหลด jack88 ts911 asia ปั่น สล็อต ให้ แตก สมัคร joker mvp 25club แจก ฟรี เครดิต sweet bonanza สมัคร โหลด แอ ป เกม โจ๊ก เกอร์ ค้นหา เกม สล็อต เกมส์ ตู้ สล็อต ผล ไม้ ออนไลน์ fifa55dna เครดิต ฟรี mafia slot โจ๊ก เกอร์ 1234 สล็อต ใช้ วอ เลท สมัคร เกม สล็อต 981 โหลด แอ พ สล็อต โจ๊ก เกอร์ สล็อต นาง เงือก เกม สล็อต sa สลอด เกม 66 เล่น เกม ค่าย pg ทดลอง เล่น เกม sweet bonanza 168 reddragon88 เว็บ ทดลอง เล่น สล็อต ฟรี เล่น เกม ได้ เงิน ไม่ ต้อง ลงทุน slotxo 567 ทาง เข้า joker 123 th joker slot roma demo สล็อต ถอน เข้า วอ เลท สล็อต ออนไลน์ ฟรี เครดิต ถอน ได้ joker games โหลด เกม ซื้อ ส ปิ น joker ufa888 เร็ว เกม สล็อต แตก บ่อย ดาว โหลด slot xo สล็อต ได้ ง่าย ยิง ปลา ยิ่ง มี รา วา จ เกมส์ เล่น ได้ เงิน จริงๆ สล็อต แตก ง่าย joker ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ไว กิ้ ง slot slot168 gaming สล็อต ค่าย sg ทดลอง joker 123 สล็อต 168 ufa slot เค ดิ ต ฟรี ไม่ ต้อง ฝาก สล็อต ไม่ เสีย เงิน slot youlike ufa แจก เครดิต ฟรี 100 joker slot free credit สล็อต เกมส์ ไหน ดี โบนัส แตก บ่อย joker ไลน์ เกม สล็อต สล็อต 1 บาท ก็ ฝาก ได้ วิธี เล่น slotxo download pgslot joker game winner55 vscr888 ios โปร โม ชั่ น เครดิต ฟรี ทาง เข้า xoslot สล็อต 1 บาท ก็ ฝาก ได้ joker aec999 เว็บ ค่า สิ โน รวม สล็อต ทุก ค่าย เกม สล็อต ฝาก ขั้น ต่ำ 50 บาท สบาย ดี 99 สล็อต เว็บไซต์ โจ๊ก เกอร์joker สล็อต 888 ค่าย พี จี โหลด เกม joker123 หมุน สล็อต เครดิต ฟรี สมัคร sweet bonanza ยู ส ทดลอง slotxo เว็บ สล็อต 66 สล็อต ฝาก เงิน ผ่าน ท รู วอ เลท รวม เกม สล็อต ทุก ค่าย slot เกม ฟรี ดาว โหลด เกม พุ ช ชี่ 888 หมุน สล็อต ฟรี ไม่ ต้อง ฝาก pg slot test ฝาก 20 บาท รับ 100 วอ เลท ดาว โหลด พุ ช ชี่ 888 ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ทาง joker เกม ยิง ปลา แจก เครดิต ฟรี 300 joker slot 95 agen pg slot ดาว slotxo เว็บ หมุน สล็อต ยูสเซอร์ ทดลอง เล่น mega888 โหลด เกมส์ สล็อต live22 โหลด เกม jokergame เว็บ joker888 สมัคร เล่น สล็อต ไม่มี ขั้น ต่ํา เครดิต ฝาก 20 รับ 100 jokerxo24th pg epicwin โปร โม ชั่ น เกม สล็อต ใหม่ ๆ kingkong pg slot เกม ฟรี เล่น ได้ เงิน 20 รับ 100 live22 ฝาก ผ่าน ท รู วอ ล เล็ ต โล เยน สล็อต เกม พุซซี่ 888 สมัคร สล็อต ท รู วอ เลท happyluke999 สล็อต joker แตก ง่าย เกม สล็อต ไว กิ้ ง สมัคร ยิง ปลา ฟรี เครดิต เว็บ สล็อต โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ํา best88 slot apk ถอนเงิน จาก เกม สล็อต 123 vip casino ดาวน์โหลด โจ๊ก เกอร์ สล็อต pg slot ฝาก 50 รับ 100 หมุน สล็อต ฟรี ได้ เงิน จริง pgslot nb เว ป pussy888 ทาง เข้า nova88 joker888 เข้า สู่ ระบบ slot เค ดิ ต ฟรี ไม่ ต้อง ฝาก slot รวม ค่าย slot joker 7788 แนะ นํา สล็อต แตก ง่าย ฝาก เงิน ufa168 joker เว็บ ไหน ดี สล็อต ทุน น้อย ล่าสุด สล็อต ผ่าน วอ ล เล็ ต mafia1688 เข้า สู่ ระบบ เว็บ สล็อต 555 แจก โบนัส สล็อต เดิมพัน ฟรี ไม่ ต้อง ฝาก สูตร บา คา ร่า เข้า ทุก ไม้ สล็อต ufa100 avenger slot download สูตร บา คา ร่า ที่ แม่นยำ ที่สุด เกม สล็อต jdbaa ติด ตั้ง สูตร บา คา ร่า slot เกมส์ 66 โจ๊ก เกอร์ 789 แอ ป สล็อต ได้ เงิน จริง สล็อต วี 9 ทาง เข้า เว กั ส 168 joker สล็อต ฟรี เครดิต 100 vegus69 สมัคร slot ท รู วอ เลท download pgslot โหลด แอ พ สล็อต รับ เครดิต ฟรี เว็บ สล็อต แตก ง่าย ล่าสุด เกม สล็อต ufa ทาง เข้า เว กั ส 168 เกม ยิง ปลา สมัคร ฟรี ทดลอง เล่น สวี ท โบ นั น ซ่า ฟรี หมุน สล็อต ทุน น้อย โปร โม ชั่ น pg slot joker 123 บอล ต่อ น่า เล่น วัน นี้ เกม เล่น แล้ว ได้ เงิน จริง ไม่ ต้อง ลงทุน fifa55 สมัคร 50 ตัว เกม สล็อต xo ทาง เข้า โจ๊ก เกอร์ 123 ผ่าน หน้า เว็บ slot ฝาก ท รู วอ ล เล็ ต pg888 slot เกม ออนไลน์ ได้ เงิน จริง 2019 เข้า สูตร บา คา ร่า ฟรี ruby888 กระเป๋า เงิน ฝาก 100 รับ 250 xoth joker สูตร บา คา ร่า ที่ แม่น ที่สุด 2020 เล่น ไพ่ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง เล่น roma แจก ฟรี เครดิต ทดลอง เล่น โหลด joker game สมัคร สมาชิก joker123 เกม สล็อต โบนัส ฟรี สล็อต เว็บ ไหน ดี pussy888 ดาวน์โหลด ดาว โหลด พุซซี่ สล็อต ไม่มี ขั้น ต่ํา ฟรี โบนัส 2020 โปร ฝาก 1 บาท รับ 100 casino1988 แจ้ง ฝาก ยูสเซอร์ 918kiss โค้ด เครดิต ฟรี 333be ฝาก 20 รับ 100 ท รู วอ เลท หมุน ฟรี 15 ครั้ง joker gaming สมัคร โจ๊ก เกอร์ 123 ทาง เข้า เดิมพัน ฟรี ไม่ ต้อง ฝาก 2020 พุ ช ชี่ 888 พุ ช ชี่ 888 วอ เลท เว็บ สล็อต โดยตรง หมุน วง ล้อ joker joker slot 6688 joker th888 เอ เย่ น joker slot เค ดิ ต ฟรี ไม่ ต้อง ฝาก joker mvp gaming เกม สล็อต ฟรี โบนัส สมัคร เล่น สล็อต ไม่มี ขั้น ต่ํา ดาว โหลด live22 joker สล็อต ฟรี เครดิต 100 เว็บ สล็อต ที่ ดี ที่สุด 2019 เกม 88 joker บา คา ร่า ฝาก 20 รับ 100 สมัคร เกม ออนไลน์ ได้ เงิน จริง รอยัล สล็อต เครดิต ฟรี game slot letou สล็อต 777 ฝาก ขั้น ต่ํา 100 918kiss สล็อต ออนไลน์ รวม เกม สล็อต ทุก ค่าย สมัคร slot online th เกม ส โจ๊ก เกอร์ ฟัน สิงโต โร ม่า เกม sweet bonanza อยู่ ค่าย ไหน ถอนเงิน จาก เกม สล็อต ดาว โหลด เกมส์ live22โหลด slot1234 game slot letou เกม สล็อต เติม ผ่าน วอ เลท สล็อต ที่ แตก ง่าย ที่สุด 2020 รับ เครดิต ฟรี mafia สล็อต รวม ทุก ค่าย สล็อต ไม่ ต้อง ทํา เท ริน สล็อต ออนไลน์ ท รู วอ เลท มาเฟีย สล็อตslotxo88 สล็อต เว็บ ไหน แจก joker slot เข้า เล่น โจ๊ก เกอร์ ออ โต้ 123เกม ยิง ปลา ได้ ตัง เบอร์ โทร ส โบ เบ็ ต สล็อต ออนไลน์ w88 game demo slot pg soft สมัคร สวี ท โบ นั น ซ่า สล็อต pussy 888 1xbet ฟรี 300 เล่น เกม ออนไลน์ ฟรี ได้ เงิน โปร สมาชิก ใหม่ ฟรี เครดิต 188bet ฟรี เครดิต สมัคร เกม โจ๊ก เกอร์ เกม ออนไลน์ ได้ เงิน ไม่ ต้อง ลงทุน joker ซื้อ ฟรี ส ปิ น แจก user ทดลอง เล่น ฟรี 250 slot เติม เงิน วอ เลท copa69 reward epicwin โปร โม ชั่ น ป๊อก เด้ง ออนไลน์ มือ ถือ ได้ เงิน จริง สูตร บา คา ร่า ห้อง sa เกม เล่น แล้ว ได้ เงิน จริง ไม่ ต้อง ลงทุน ไม่มี ทุน เล่น สล็อต joker123th pc พุซซี่ 888 ดาวน์โหลด ส ล๊ อ ต 168 โปร โม ชั่ น ฝาก 10 บาท ได้ 100 jokerth vip สล็อต ฝาก เงิน ผ่าน ท รู วอ เลท slot joker688 fifa55 pantip ทาง เข้า joker69 123 vip casino sweet bonanza ทดลอง เล่น หมุน วง ล้อ สล็อต slot ปั่น ฟรี game demo slot pg soft royal1688 เล่น ผ่าน โทรศัพท์ ระบบ ฝาก ถอน joker แจก เดิมพัน ฟรี รับ ได้ ทันที เติม เงิน joker123 pg slot ท รู วอ เลท สมัคร scr99th jokerxoth pgslot แจก เครดิต ทดลอง เล่น ฟรี ถอน ได้ joker 777 slot pg slot ฟรี pussy888 เข้า เล่น slot999 joker slot ฝาก ท รู วอ เลท ดาว โหลด ฟุ ด ชี้ 888 mafia slot เล่น ผ่าน เว็บ สล็อต 66 ฟรี เครดิต ufavip848 แจก เครดิต ฟรี slotxo369 joker ทดลอง เล่น สล็อต ได้ เงิน จริง สมัคร sbobet 888 slot vip 168 ถอนเงิน bet2you โปร สล็อต ใหม่ ล่าสุด slotxo 888th joker สมัคร แจก สูตร สล็อต xo เล่น slot ออนไลน์ web joker slot 9889 download android เกม sweet bonanza ได้ เงิน จริง ไหม สล็อต เติม true wallet ฝาก 10 รับ 100 pgslot download แจก user ทดลอง เล่น ฟรี 250 เกม 888 โล โย ออ น ลาย joker1788 slot nova88 maxbet 5 เกม สล็อต ยอด นิยม สล็อต เล่น ฟรี ไม่ ต้อง ฝาก panda888 slot ให้ ทุน เล่น สล็อต
                      live22 เครดิต ฟรี 100| สมัคร 168slotxo| fifa8888| ufabet v4| บา คา ร่า 6 แต้ม| เครดิต ฟรี ล่าสุด 2019| ไฮโล ufabet| sa gaming เข้า เล่น| sa66 คา สิ โน| sa ฟรี| ufabet007| ทาง เข้า slotxovip| live22 เครดิต ฟรี| ufax10 เครดิต ฟรี| ทาง เข้า เกม xo| ทาง เข้า slotxoz| sa gaming 50 รับ 150| fifa55atm| ligaz888| ดาว โหลด ส ล็ ต xo| เครดิต ฟรี 100 ล่าสุด| download slotxo| mm88gol| บา คา ร่า ไลน์| sa1688 game| เว็บ ยู ฟ่า 369| slotxo ฟรี เครดิต 50 ไม่ ต้อง ฝาก| เว็บ ufa24h| ufabet45| ดาวน์โหลด slot007| ufabet cn| โหลด สล็อต live22| live22 ติดต่อ| เครดิต ฟรี ไม่ ฝาก| ufabet ฝาก 100 ฟรี 100| ufabet z4| ufabet png| ufabet168| ดาวน์โหลด slotxo ios| sa แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| ี ufa007| ufa goal168| รับ เครดิต ฟรี 300 ไม่ ต้อง ฝาก| เล่น ufa| slotxo ฝาก ครั้ง แรก 100| ufabet728| slot ฝาก 1 บาท รับ 50| ufabet 56| เครดิต ไม่ ต้อง แชร์| สมัคร ufabet168| เครดิต ฟรี ล่าสุด 2019| สมัคร สล็อต ออนไลน์| เว็บ พนัน ออนไลน์ uefa| แทง บอล 1x2| ufabet เข้า ไม่ ได้| ดาวน์โหลด slotxo mobile| rt slot เครดิต ฟรี| ufabet68| มาเฟีย เครดิต ฟรี ล่าสุด| ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| ทาง เข้า ufabet888| sa gaming 36th| ี ufa1688| เข้า เกม slotxo| ฟ่า เบ ท| ยู ฟ่า เบ ท 191|