<nobr id="any9z6J"></nobr>

      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
       
      918kiss ฟรี เครดิต สล็อต โร ม่า เครดิต ฟรี win88 เครดิต ฟรี slotxo24 918kiss888 slot898 slot god โปร ทุน น้อย slot pgthai888 sunbet slot ro slotxo สล็อต xo easy ฝาก 20 รับ 100xo slot111 slot123 slot189 vegus168 member gclub slot ฟรี เครดิต เครดิต ฟรี sbobet เครดิต ฟรี 918kiss ไฮโล มี กี่ หน้า สล็อต xo เติม true wallet ไม่มี ขั้น ต่ํา อั่ ง เปา 918kiss ฝาก 1 บาท ฟรี 50 fifa55 เข้า ระบบ เว็บ kiss918 เว็บ โจ๊ก เกอร์ 888 slot game siamslotxo รู เล็ ต เครดิต ฟรี ป๊อก เกอร์ โป๊กเกอร์ ออนไลน์ 918 ออ โต้ เครดิต ฟรี 500 ล่าสุด 2020 scr918kiss th vegus168 ติดต่อ แทง ไฮโล ให้ ได้ เงิน เว็บ ฟีฟ่า 555 slotxo blue 918kissworld 918kiss ฝาก ถอน ออ โต้ รู เล็ ต เครดิต ฟรี https slotxo vip เครดิต ฟรี โจ๊ก เกอร์ ไม่ ต้อง ฝาก 4u slotxo xo slot 1688 แอ พ fifa55 qtech slot 369slot ฟีฟ่า 55 โปร แจก เครดิต ฟรี xo slotxo กับ joker อัน ไหน ดี กว่า game slot 789 boxing slot 2xl slot joker xo slot 888 918kiss starvegasgame grand918kiss 918 auto slot bet ยิง ปลา บา คา ร่า fifa55net slot375 slot joker xo slotxo s9 มาเฟีย เครดิต ฟรี ไม่ ต้อง แชร์ joker god slot 918kissthailand สล็อต xo แจก เครดิต ฟรี slot7 918ki ไม่ ต้อง แชร์ สมัคร fifa9999 pay69 slot ส ล๊ อ ต xo1234 สมัคร เอเย่นต์ fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 150 918kiss ผ่าน เว็บ sbobet slot game 8richd เครดิต ฟรี เครดิต ฟรี 2563 slotxo 1168 สมัคร fifa777 black mamba slot 918kissauto alert เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก สล อ ต เอก โอ slot12 aec999 slot joker slot 456 xoslot69th slot cat777 slotxo แจก เครดิต ฟรี 50 เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ slotxo โบนัส 100 เทิ ร์ น 2 เท่า slotxo เว็บ เครดิต ฟรี 918kiss ไฮโล ออนไลน์ เดิมพัน ขั้น ต่ำ 10 xo game slot สมัคร ฟีฟ่า 888 หมุน วง ล้อ xo 918kissbig slotxo vip88 เครดิต ฟรี ไม่ ต้อง เทิ ร์ น ace333 slot slot222 slotxo กับ joker อัน ไหน ดี กว่า fifa55 ฝาก ขั้น ต่ํา 50 สล็อต ฝาก สมัคร เอเย่นต์ fifa55 99slot mario xo slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ ถอนเงิน live22 v88slot ฟรี เครดิต 918kiss 918kiss true wallet ไม่มี ขั้น ต่ํา kiss918 เครดิต ฟรี red slot mafia789 เครดิต ฟรี safari gold megaways demo mm88bet com deposit fifa55 mini fifa55 เข้า ระบบ ไฮโล ขั้น ต่ำ 5 บาท สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ slot xo007 red tiger slot sbobet ฟรี เครดิต ล่าสุด coduca88 เครดิต ฟรี slot fun888 918kiss 168 เครดิต ฟรี ออ โต้ slotxo ฝาก 10 บาท รับ 100 สล็อต xo โร ม่า royal เครดิต ฟรี สล็อต xo ฝาก ถอน ไม่มี ขั้น ต่ำ slotxo ฟรี เครดิต 300 918kiss starvegasgame slot 888 casino kinglive22 slotxo scr888 918kiss download สล็อต 999 คา สิ โน ออนไลน์ joker true wallet ไม่มี ขั้น ต่ำ slotxo spin999 สล็อต xo เติม เงิน ผ่าน wallet slot free credit 2020 918kiss วอ ล เลท 918kiss ฟรี 100 slotxo24th ฟีฟ่า 1688 morgana megaways แอ พ คำนวณ รู เล็ ต slot x0 168galaxy joker slot ฝาก 10 บาท ได้ 100 ไฮโล ลูกเต๋า slotxo ที่ ดี ที่สุด เล่น เกม สล็อต xo fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 2019 slot ไม่มี ขั้น ต่ำ เครดิต ฟรี ไม่ ต้อง แชร์ 918 slotv9 xo super slotxo slotxo แจก เครดิต ฟรี 2019 คา สิ โน xo สล็อต xo 369 ro slotxo slotxo ฝาก ท รู วอ เลท slot vip 99 ราคา รู เล็ ต ถอนเงิน fifa55 ไม่ ได้ 918kissworld live22 ฝาก ไม่มี ขั้น ต่ำ โจ๊ก 888 slotxo xo joker โบนัส 100 auto money mouse slot slot โปร ฝาก 1 บาท 981kiss เครดิต ฟรี บ่อน ไฮโล ออนไลน์ slot4 slotxo ฟรี เครดิต ไม่ ต้อง ฝาก 2019 198 kiss download slot mario fifa9999 login slotxo 24 th โกง เกม ไฮโล สมัคร 300 ฟรี 300 pussy888 bettopfive เครดิต ฟรี 20 ไม่ ต้อง แชร์ โจ๊ก เกอร์ เครดิต ฟรี slotwin888 scr888 free spin slot 11 ไฮโล 2020 สมัคร vegus168 xoslot123 mvegus1682 memberbet net ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท สมัคร 300 ฟรี 300 บ้าน บอล fifa55 918kiss download 2019 pc slotxo ฝาก ท รู วอ เลท slotxo png vegus168 memberbet net chklogin 35 joker slot เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ 918kiss โอน ผ่าน วอ เลท 35 slotxo joker slot mobile slotxo ฝาก 10 คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ เว็บ 77up thai918kiss heng888 เครดิต ฟรี slotxo ฟรี เครดิต slot game 888 slotxo69th slot joker xo ไพ่ โป๊ก เก อ 918kissauto alert สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 slot ไม่มี ขั้น ต่ำ ฝาก 99 ฟรี 300 918kiss download 2019 pc เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก 2020 ยิง ปลา บา คา ร่า 918kiss slots ป๊อก เด้ง ขั้น ต่ำ 10 บาท slotx0 ไฮโล คลาสสิค winner555 เครดิต ฟรี www918kiss fifa55 ฝาก 20 ฟรี 100 คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ slot cat888 mega888 เครดิต ฟรี live22 ไม่มี ขั้น ต่ํา http slotxo ึึ 77up ไฮโล ออนไลน์ w88 slot91 slotxo บน เว็บ ทาง เข้า vegus168 sure สล็อต xo เอเชีย slotvip789 เครดิต ฟรี คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ fifa555 เครดิต ฟรี slot ฝาก 15 รับ 100 ไฮโล 2014 monster joker slot ab24hr สล็อต เอก โอ โป๊กเกอร์ เงิน จริง slot joker mobile ยู ส เท ส 918kiss slotxo77 slotxo 236 slot cq9 free spin slot slotso เข้า เล่น slotxo ป๊อก เด้ง ขั้น ต่ำ 10 บาท jackpotxo joker 168slotxo joker เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ 918kiss v mm88bet com deposit ติดต่อ ufa365 slotxo ถอน ไม่มี ขั้น ต่ํา slot4 666slot เล่น สล็อต โร ม่า ฟรี 918kisstm ดั ม มี่ คา สิ โน slot red slotxo 79 mafia928 เครดิต ฟรี แอ พ เครดิต ฟรี 918kissscr888 slots 500 เกมส์ ไฮโล เหมือน จริง สยาม โป็ ก เกอร์ winner55 ฟรี เครดิต 55slotxo lucabet789 เครดิต ฟรี best slot 918kiss android สล็อต เอ็กซ์ โอ 918kiss33 slotxo2 z8 slot slot777 เครดิต ฟรี live22 ฟรี เครดิต ไม่ ต้อง ฝาก สล็อต ufa365 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2019 slot machine free fifa69 ทาง เข้า slotxo ถอนเงิน เล่น xo slot 918kiss android android เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด gclub royal1688 ฟรี เครดิต สล็อต xo เล่น ผ่าน เว็บ แอ พ ไฮโล ฟรี เครดิต 100 ไม่ ต้อง ฝาก 2563 joker spy slot สล็อต xo311 xo slot 123 เกมส์ ไฮโล เหมือน จริง slot198 2pj slot slot c 918kiss download 2019 pc เข้า ฟีฟ่า 55 slot199 jack slot slotxo ฝาก 10 ได้ 100 สล็อต xo โร ม่า vegus168 ถอนเงิน สมัคร live22 auto databet88 สมัคร avenger98 เครดิต ฟรี แอ พ ไฮโล เจ้ามือ 918kiss 168 1xbet slot เล่น แบ ล็ ค แจ็ ค ออนไลน์ 918kiss slotxo ufa365 ฝาก เงิน godslotxo เครดิต ฟรี dada99thai 918kiss เจ้า ไหน ดี mvegus1682 memberbet net fifa55 hot happyslot88v1 vegus168 สมัคร slot x0 fifa55 easy slotxo เล่น ใน เว็บ สมัคร ได้ เครดิต ฟรี mm88bet ฝาก เงิน สล็อต xo เกม slot xo007 918kiss th red365 เครดิต ฟรี slot 35x ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ํา 918kiss ฝาก ขั้น ต่ำ 100 slot11 slot24th joker super slot999 เล่น ไพ่ โป ก เกอร์ ฟรี เครดิต gclub live22 ฝาก ไม่มี ขั้น ต่ํา slotxoth888 vikings slot mafia ไม่ ต้อง แชร์ เสือ มังกร ออนไลน์ 918 slot online ฟุตบอล เสมือน จริง slot 888 v1 918kiss download 2019 slot โบนัส 100 ฟรี เครดิต 918kiss slotxo joker123 joker ฝาก ถอน ไม่มี ขั้น ต่ำ 168 gaming xo jokerslot168 www 77up live ไฮ โล slotxo ฝาก 19 รับ 100 ไฮโล ขั้น ต่ำ 1 บาท joker slot 666 รู เล็ ต 11 แถว slotxo เล่น ใน คอม play8oy agent เครดิต ฟรี ไม่ ฝาก ไม่ แชร์ 2020 สมัคร ฟรี เครดิต slotxo live22 888 โจ๊ก เกอร์ mafia888 slot vegus168 สมัคร ฝาก 5 บาท ฟรี 99 บาท สล็อต xo easy xo slot mobile mega joker free extra slot สูตร บา คา ร่า ufa800 ไฮโล ทอย ลูกเต๋า slot35 joker joker slot 69 เครดิต ฟรี ฝาก 20 ไฮโล png slotxo แจก 1000 918kiss ท รู วอ เลท 2019 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด เกม สล็อต xo 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก joker slot 666 w88 โป๊กเกอร์ slotxo allbet sp918kiss vip slotxo 918kiss money 918ki slotxo 10 บาท slotxo สล็อต ไพ่ แค ง เล่น ได้ เงิน จริง เกม ไฮโล joker mobile slot pg slot โปร ทุน น้อย mega888 download 2019 เสียง ไฮโล pg168 slot คา สิ โน สล็อต ออนไลน์ เล่น โป ก เกอร์ ออนไลน์ สล็อต xo 191 ยิง ปลา ฝาก ขั้น ต่ํา 50 mafia เครดิต ฟรี ไม่ ต้อง แชร์ ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา bonus slotxo แจก เครดิต ฟรี slotxo slot เครดิต ฟรี 2020 www918kiss world 1688 slot เว็บ ฟีฟ่า 55 fifa55na เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufa slot เครดิต ฟรี เครดิต ฟรี ไม่มี เงื่อนไข slotxo 899 kiss slot world 1688 slot slot ฝาก 100 รับ 300 golden hoyeah slot เครดิต ฟรี 1234 ts911 games fifa55 ฝาก 50 joker slot 9889 ฝาก ถอน 918kiss slot4you sagame66 ดี ไหม slot ฝาก 9 บาท ได้ 100 vegus168 ติดต่อ 35xo slot สล็อต xo 1688 แทง ไฮโล 1234 live22 mafia55 เครดิต ฟรี 50 slotxo star slotxo ผ่าน วอ เล็ ต เล่น สล็อต roma เครดิต ฟรี ออ โต้ เล่น poker เงิน จริง 918kiss ระบบ ออ โต้ win three card joker123 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ไพ่ โป๊กเกอร์ เล่น โป ก เกอร์ ออนไลน์ slot96 slot222 678slot 22thxo 918kiss ท รู วอ เลท xoslotz1688 joker123 slotxo joker1919 gaming ไฮโล 2014 slot44th xojackpot สมัคร เครดิต ฟรี 200 เข้า เล่น สล็อต xo fifa55new slotxo ฝาก 20 บาท รับ 100 สมัคร เครดิต ฟรี 2020 fifa55 ถอนเงิน ไม่ ได้ sn888 kiss review slot super twin79 เครดิต ฟรี เข้า เว็บ ฟีฟ่า 55 slotxo pro slot auto alert 918kiss me 2 เติม slotxo ไฮโล ลูกคู่ xo 10 รับ 100 สล็อต xo ฝาก ผ่าน true wallet slot playlive88 พนัน ออนไลน์ ฟรี เครดิต fifa55 200 บาท joker slotxo luk666 คา สิ โน ออนไลน์ คา สิ โน 918kiss slotxo98 slot777 ไฮโล เครดิต ฟรี เข้า xo 2pj slot ยู ส เท ส slotxo slot168 เครดิต ฟรี gclub 918 slotxo ฝาก น้อย joker slot 69 สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss ออ โต้ อัป เด ต slotxo slotxo เติม เงิน รู เล็ ต ออนไลน์ มือ ถือ fifa55 ดี ไหม สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 slotxo mafia slot99 918kiss win empire slot slot galaxy เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ ้ เครดิต ฟรี slotxo โปร 1 บาท 168 gaming xo slotxo web slot v online casino 918kiss ฟรี 1000 สล็อต โจ๊ก เกอร์ xo fifa55best mb slotxo joker slot1234 slot joker ฝาก 20 รับ 100 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก fifa555 sport slot68 slot 2499 slotxo มา ใหม่ slotxo ฝาก ถอน ไม่มี ขั้น ต่ํา เครดิต ฟรี epic fifa55ag z8 เครดิต ฟรี เว็บ 77up live22 easy slot vip 99 slotxo ลอง เล่น ไพ่ โป๊กเกอร์ 168 gaming slotxo live777slot slot33 เครดิต ฟรี 555 918kiss ฟรี 1000 world1688s slot sn888 kiss review 918kiss โปร โม ชั่ น slotxo 6 สล็อต xo เครดิต ฟรี 50 บาท เล่น ได้ 200 ถอน ได้ 100 เกม ไพ่ แบ ล็ ค แจ็ ค 918kiss ระบบ ออ โต้ kingslotxo เครดิต ฟรี 999 slotjoker888 3win8 casino fifa55v joker ถอน ไม่มี ขั้น ต่ํา ไฮโล เงิน จริง kingbets88 ร้องเรียน slotxo wilderland slot slotxo456 ฟรี เครดิต 200 918kiss 55com 777slotvip slot 289 slot โปร ฝาก 10 บาท slot 888 casino slot999 xo winner99 เครดิต ฟรี ไม่ ต้อง ฝาก slotv9 live22 77up club slotxo online รู เล็ ต เคล็ด ลับ all slot555 slot1688 slotxo วอ ล เล็ ต slots 500 www fifa55bet com slotxo แจก เครดิต ฟรี 2019 918kiss slot auto 928kiss joker123 ไม่มี ขั้น ต่ํา ด ค ร ดิ ต ฟรี jackpotxo joker xo live22 8bit slotxo ไฮโล สูง ต่ํา super slot999 สมัคร ฟรี เครดิต ฟรี slot vip 888 line 918kiss ฟรี เครดิต 20 slot joker689 ป๊อก เกอร์ vegus168 ติดต่อ slotv9 web slot ถอนเงิน xo เครดิต ฟรี 50 ไม่ ต้อง แชร์ เครดิต ฟรี fifa55ez joker slot ฝาก 10 รับ 100 xo slot007 slotxo roma slot ทุน น้อย slot jackpotxo สูตร บา คา ร่า ufa800 สมัคร สมาชิก fifa55 ไพ่ แค ง เล่น ได้ เงิน จริง ufa800 ไฮโล slotxo45 เครดิต ฟรี 50 ไม่ ต้อง ฝาก 918 auto shangri la slot game สล็อต ฝาก อัตโนมัติ ไฮโล เงิน จริง 918kiss918kiss สมัคร mega888 ฟรี เครดิต ฟรี เครดิต 20 slot168 xo slot house zap918kiss เกมส์ สล็อต มือ ถือ jack88 slot 9gspin เครดิต ฟรี สล็อต ออนไลน์ ฝาก ถอน ไม่มี ขั้น ต่ำ fifa55ag slot cat666 ด ค ร ดิ ต ฟรี star slot777 ฟุตบอล เสมือน จริง saba joker slot 888 easy live22 รู เล็ ต สายฟ้า dafabet slot ไม่มี ขั้น ต่ํา slotxo เว็บ ไหน ดี 918kiss ท รู วอ เลท 2019 เติม เกม slotxo 888 slot th 918kiss me ฟรี เครดิต sn888 kiss review สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 918kissstar ไฮโล 641 slotxo sl โปร โม ชั่ น slot สล็อต xo 007 live22 ฝาก ถอน ไม่มี ขั้น ต่ำ xo ฝาก ผ่าน วอ เลท fifa55 สมัคร 50 ฟรี 100 ไฮโล ออนไลน์ w88 slotxo mvp slotxo ฝาก ถอน วอ เลท แทง ไฮโล ให้ ถูก slot sagame66 big win 777 แอ พ fifa55 เครดิต ฟรี ไม่ ต้อง เทิ ร์ น slot thai888 slot mafia88 fifa55 truemoney slotxo 666 แทง ไฮโล ให้ ได้ เงิน ufa365 เข้า ไม่ ได้ slotplay88 สล็อต xo 1688 แทง ไฮโล ขั้น ต่ํา 10 บาท 918kiss monkey best joker slot เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ slotv9 xo http mvegus 1682 memberbet net fifa55 ฝาก 50 ฟรี 100 kiss918 slot huga slot slotxo 22 best 888 slots ไพ่ แบ ล็ ค แจ็ ค เกม slot 55slotxo สล็อต xo เอเชีย เครดิต ฟรี pussy888 www fifa8888 สล็อต xo v9 joker123auto เครดิต ฟรี all slot555 มังกร เสือ คา สิ โน ออนไลน์ 918kisshero ทาง เข้า 55 slot1234 joker jackpotxo live22 เครดิต ไม่ ต้อง ฝาก ก่อน เล่น ไพ่ เงิน จริง เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ slot ฝาก ถอน ไม่มี ขั้น ต่ํา คิง ค อง สล็อต xo เกม ไฮโล pc fifa55st โกง ไฮโล ออนไลน์ joker true wallet ไม่มี ขั้น ต่ำ slot xo168 mario xo slot 168 gaming xo ace333 ฟรี เครดิต ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ double casino free slots slotxo 1168 918kiss ฝาก ถอน slotxo 331 เครดิต ฟรี ไม่ ต้อง แชร์ 918 แจก เครดิต ฟรี 918kiss 918 allbet slotxo24 เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด สมัคร โจ๊ก เกอร์ 888 fifa55 โดน จับ โป๊กเกอร์ มังกร เสือ คา สิ โน ออนไลน์ joker123 ไม่มี ขั้น ต่ํา รู เล็ ต สายฟ้า dafabet slot king99 เครดิต ฟรี ไม่ หลอก แชร์ เครดิต ฟรี ไม่มี เงื่อนไข 2020 สล็อต โร ม่า เครดิต ฟรี xo เล่น ผ่าน เว็บ gclub ฟรี เครดิต ไพ่ เงิน จริง ไฮ โล mega888 slot 918kiss แจก เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss ios ล่าสุด เกม slotxo เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ เว็บ โจ๊ก เกอร์ 888 แอ พ พนัน เงิน จริง คา สิ โน ออนไลน์ ป๊อก เด้ง joker true wallet ไม่มี ขั้น ต่ำ 168slotxo 2 xoslotz1688 win88 เครดิต ฟรี รู เล็ ต เครดิต ฟรี ฟีฟ่า 1688 mafia ไม่ ต้อง แชร์ ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ฝาก ขั้น ต่ํา 100 joker ฝาก ไม่มี ขั้น ต่ํา สมัคร เครดิต ฟรี 200 fifa55 ฝาก 20 ฟรี 100 918kiss ฟรี fifa55 เครดิต ฟรี 1000 slot2p slotxo77 joker918kiss เครดิต 50 คา สิ โน ป๊อก เด้ง mafia555 slot xo24hr สล็อต xo 191 เครดิต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ค่าย xo slotxo ฝาก ถอน อัตโนมัติ ทาง เข้า ฟีฟ่า 55 คิง fafa855bet เครดิต ฟรี เกม สล็อต xo แตก ง่าย slot ยืนยัน ตัว ตน รับ เครดิต ฟรี รู เล็ ต ออนไลน์ 2xl slot 918kiss ฝาก ถอน ไม่มี ขั้น ต่ำ slotxo star pyramid slot slot 10 เกม สล็อต slotxo slot007 xo โป็ ก เกอร์ ออ น ไล pay96 slot slot true wallet ไม่มี ขั้น ต่ํา ufa800 สูตร xo บน เว็บ vegus168 lucky 35 slotxo สล็อต สมัคร ง่าย โป็ ก เกอร์ ออ น ไล slot456 bet365 เครดิต ฟรี ไพ่ poker 918kiss android ล่าสุด slot918 slotxo แจก เครดิต ฟรี 2019 เข้า slotxo โป๊กเกอร์ เงิน จริง คา สิ โน xo slot v online xo slot 777 สล็อต xo311 slot555 เกม พา รวย slotxo แจก เครดิต ฟรี 2020 เว็บ ยิง ปลา ฟรี เครดิต 918kiss44 hungry 918kiss fifa55 mobile เว็บ พนัน ออนไลน์ ป๊อก เด้ง slotxo 5g fifa555 truemoney slotso 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก ฝาก เงิน ufa365 xo live22 918 แจก เครดิต ฟรี slot joker vip 918kisskingdom vip kiss918 เครดิต ฟรี 918kiss 1234 เล่น ออนไลน์ ได้ เงิน slot win ไฮโล 2020 joker888 เครดิต ฟรี www fifa555 ทาง เข้า ป๊อก เด้ง ขั้น ต่ำ 10 บาท หมุน วง ล้อ joker123 ไพ่ เงิน จริง slotxoth888 fifa55 idea 918kiss โปร โม ชั่ น fifa8888 login slotxo kiss918 slot889 ฝาก 5 บาท ฟรี 99 บาท เล่น ไพ่ โป ก เกอร์ ออนไลน์ ที่ไหนได้ เงิน จริง slot gold s9 slotxo 918 เครดิต ฟรี คา สิ โน ออนไลน์ สุด ฮิต simple play slot taibet88 เครดิต ฟรี slot live22 918kiss เวอร์ชั่น ล่าสุด kiss918 auto แอด มิ น 918kiss 918kiss ฟรี เครดิต เล่น แบ ล็ ค แจ็ ค 168 slot 918kiss แจก เครดิต ฟรี ไม่ ต้อง แชร์ เว็บ พนัน บอล fifa55 5gslot www fifa777 com slotxo 91 สมัคร เครดิต ฟรี ava slot ฟรี เครดิต 200 สล็อต xo ท รู วอ ล เล็ ต xoclub99 slot joker auto mafia ไม่ ต้อง แชร์ slotxo35 เกม สล็อต 1234 สล็อต โร ม่า เครดิต ฟรี gclub ฟรี 500 35 slotxo live22 ฝาก ไม่มี ขั้น ต่ํา ทาง เข้า ฟีฟ่า 55 มือ ถือ slot house เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ win55 เครดิต ฟรี สล็อต ออนไลน์ 22 ฝาก 100 ฟรี 500 mm88bet com deposit slotxo aec999 jack88 slot jack slot 918kiss 100 ฟรี 100 slotxo 48 เว็บ live22 slot375 ไพ่ โป ก เกอร์ scr888 918kiss download slotxo เกม ไหน แตก ง่าย 2020 lucky slot 888 mega joker free สล็อต xo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot free credit no deposit หมุน วง ล้อ joker123 slotxo ทุน น้อย mafia928 เครดิต ฟรี slot joker ไม่มี ขั้น ต่ํา xoclub99 เครดิต ฟรี gclub www 77up bet net http slotxo fifa55 rmuajj b2y เครดิต ฟรี สมัคร เครดิต ฟรี 200 scr888 sn888 fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 2020 เกม ไฮโล pc joker slot เครดิต ฟรี 10 รับ 100 xo joker ฝาก ไม่มี ขั้น ต่ำ เข้า เว็บ fifa55 918 ฝาก ไม่มี ขั้น ต่ํา fifa69 ดี ไหม 168 สล็อต xo allbet slotxo ไม่ ฝาก ไม่ แชร์ slot 1668 ไฮโล ส กิ ด 3 หน้า ราคา เครดิต เล่น ฟรี ทาง เข้า ฟีฟ่า 55 คิง 918kiss live22 86slot 918kiss royal slot house เล่น slotxo ฟรี ufa800 สูตร ผล บอล เสมือน จริง ฟีฟ่า 20 slot4you 168slotxo pantip www fifa55hd com ลูกค้า เข้า ผ่าน google chrome นะ คะ เว็บ xo slot slot4u เครดิต ฟรี ถอน ได้ 500 mm88bet com deposit slot2499 88 kiss download slotxo ฝาก 1 รับ 100 slot ฝาก ถอน ไม่มี ขั้น ต่ํา สล็อต ฝาก เข้า slotxo mafia88 slot 918kiss ฝาก ไม่มี ขั้น ต่ํา xo 10 รับ 100 joker xo th kingbets88 slot7 riches777 เครดิต ฟรี v9slot ace333 เครดิต ฟรี เติม เงิน live22 joker slot 77 fifa55 tv online ฝาก ถอน 918kiss เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก 2020 ไม่ ต้อง แชร์ เครดิต ฟรี เสือ มังกร ออนไลน์ เสียง ไฮโล free allslot999 fifa555 truemoney ไฮโล ออนไลน์ w88 slot ฝาก 20 บาท รับ 100 slot999 xo สล็อต 1688xo 19slot slot4you live22 ฟรี เครดิต แทง รู slotxo246 เข้า slotxo dafabet เครดิต ฟรี 2018 918kiss allbet asia สมัคร databet88 ฟรี เครดิต ไม่ ต้อง แชร์ เครดิต sahacker แอ พ ไฮโล star slot777 www918kiss slot star slotxo ฝาก 30 รับ 100 เว็บ บอล ufa365 hack918kiss fifa55 link ึึ 77 up joker ฝาก ไม่มี ขั้น ต่ํา bonus slotxo 918slot 918kiss bettopfive scr888th game สมัคร fifa5555 slot928 เว็บ xo ฝาก 10 รับ 100 slotxo world1688s slot เติม เงิน live22 918kiss ล่าสุด fifa55 รับ โบนัส ฟรี 200 บาท slot ฟรี เครดิต 100 8 bit slot xo แอ พ ไฮโล เจ้ามือ live22 xo joker123 allbet asia slotxo678 slotxo ฝาก 1 บาท xo slot168 24th slot เกม 168slotxo เล่น ไพ่ ได้ เงิน จริง 2019 www fifa555 ทาง เข้า vegus168 ถอนเงิน 819 kiss download
      สมัคร gclub88| เว็บ บา คา ร่า ถอน ขั้น ต่ํา 100| สมัคร royal slot| เว็บ บา คา ร่า ลุ้น ไพ่ เอง| เว็บ ยู ฟ่า บา คา ร่า| ห้อง ทดลอง เล่น บา คา ร่า| dada99 เครดิต ฟรี| ค่า สิ โน ขั้น ต่ำ 50| รู เล็ ต ตา ละ 5 บาท| ฟรี เครดิต ถอน ได้ ไม่ ต้อง ฝาก| เว็บ บา คา ร่า ฝาก ถอน เร็ว| เว็บ แจก เครดิต ฟรี 200| royal online v2 เล่น ผ่าน เว็บ| sa ทดลอง เล่น บา คา ร่า| บา ค่า ร่า ฝาก 100 ฟรี 300| ทดลอง sa vip| เว็บ 888 บา คา ร่า| เว็บ พนัน ฝาก ขั้น ต่ํา 50 บาท| 138 เครดิต ฟรี 300| kclubss| เครดิต ฟรี 2020 แค่ ยืนยัน เบอร์| บา ค่า ร่า เครดิต ฟรี 2020| โปร โม ชั่ น บา คา ร่า ฟรี เครดิต| บา คา ร่า star| ทดลอง เล่น sa vip| สมัคร บา คา ร่า ufa365| wm casino เว็บ ตรง| sagame66 เข้า ไม่ ได้| ufa8899 บา คา ร่า| mm88thorg| คา สิ โน ฝาก ขั้น ต่ํา 100| เครดิต ฟรี แค่ ยืนยัน เบอร์ 2020 ล่าสุด| เว็บ บา คา ร่า 356| royalwin99 เครดิต ฟรี| m บา คา ร่า| บา คา ร่า โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ํา| ฝาก 100 ได้ 100| เครดิต ฟรี แค่ ยืนยัน ตัว ตน 2020| เครดิต ฟรี ไม่ ต้อง ฝาก แค่ ยืนยัน ตัว ตน| web บา คา ร่า| ไพ่ บา คา ร่า ออนไลน์| เว็บ บา คา ร่า โปร โม ชั่ น| เครดิต ฟรี 500 ถอน ได้ 2019| scr888th แจก เครดิต ฟรี| เกม ค่า สิ โน 888| คา สิ โน ออนไลน์ ฝาก ถอน ออ โต้| เว็บ บา คา ร่า ฟรี| บา คา ร่า ฟรี ไม่ ต้อง ฝาก| เว็บ เกมส์| แจก เครดิต 300| biobet55| บา คา ร่า ตา 5 บาท| พนัน true wallet| สมัคร บา คา ร่า พร้อม สูตร| บา คารา 88| แจก เว็บ เครดิต ฟรี| เว็บ king99| แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020| บา คา ร่า แจก เครดิต ฟรี ไม่ ต้อง ฝาก| pussy888 ฝาก 100| เครดิต ฟรี แค่ สมัคร ยืนยัน ตัว ตน| lsm99 เครดิต ฟรี| เครดิต ฟรี ไม่ ต้อง ฝาก ใหม่ ล่าสุด| next88 ฟรี เครดิต| เกม บา คา ร่า ฟรี เครดิต| ฟีฟ่า คา สิ โน|