<video id="G2Teap"><span id="G2Teap"></span></video>

    <thead id="G2Teap"></thead>
      <sub id="G2Teap"></sub>

      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
       
      คา สิ โน xo slot2p 918kiss me 2 http slotxo 918kisshero 8bitslotxo 918thailand สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก เล่น poker gclub888 royal 918kissauto 918 ฝาก ถอน ออ โต้ slotso xo slot 311 fafa855bet เครดิต ฟรี สล็อต ฝาก mafia55 เครดิต ฟรี 50 เทิ ร์ น 1 เท่า slot bet ฟรี เครดิต fifa55 สมัคร 50 ฟรี 100 สล xo mvegus1682 memberbet net chklogin เว็บ บอล ฟีฟ่า 55 สล็อต 1234 ฝาก 10 รับ 100 infinity 888 slot เครดิต ฟรี 133 บาท slotxo77 โจ๊ก เกอร์ ฟรี เครดิต ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา slotxo ฝาก ถอน ไม่มี ขั้น ต่ํา เอ เย่ น 918kiss allbet slotxo เครดิต ฟรี kiss918 918kiss ใหม่ slot888vip วิธี สมัคร databet88 เครดิต ฟรี ไม่ ต้อง ทํา เท ริน ไม่ ต้อง แชร์ 168 slotxo เว็บ ฟีฟ่า 555 แทง ไฮโล sagame66 ดี ไหม golden hoyeah slots เครดิต sahacker ฟรี coduca88 เครดิต ฟรี 918kiss ฝาก 50 ฟรี 50 โป้ ก เกอร์ ufa800 สูตร 168slotxo 2 joker ถอน ไม่มี ขั้น ต่ํา เครดิต ฟรี สล็อต 1234 ฟรี 2020 grand918kiss สมัคร fifa5555 เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ มังกร เสือ คา สิ โน ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ scr888 918kiss download slotxo pc slot mega888 www fifa777 com slotxo ที่ ดี ที่สุด คิง ค อง สล็อต xo mafiaslot88 918kiss download ios ล่าสุด 918 ฝาก ไม่มี ขั้น ต่ํา slot joker mobile โจ๊ก เกอร์ ฝาก ถอน ไม่มี ขั้น ต่ํา kiss918 me slotxo 169 ฟีฟ่า 55bet slot777 เครดิต ฟรี เว็บ ตรง 918kiss slot666 royal 918kiss คิง ค อง xo slot1688 joker slot35 joker ไฮโล บอล เสมือน จริง คือ slot 236 real 918kiss ฝาก 99 ฟรี 300 slotxo เล่น บน เว็บ xo เล่น บน เว็บ auto slot ฝาก 5 บาท ฟรี 99 บาท joker slot 888 ทาง เข้า ฟีฟ่า 8888 sbobet ฟรี เครดิต 2020 mafia ฟรี เครดิต 50 ไฮโล ขั้น ต่ำ 1 บาท 9gspin เครดิต ฟรี slotxo แจก เครดิต ฟรี 2020 918kiss kiss ฟรี เครดิต 918kiss xo slot club ถอนเงิน slotxo mega888 ไม่มี ขั้น ต่ํา หมุน วง ล้อ ออนไลน์ 2xl slot ฟรี ไม่ ต้อง แชร์ lucabet789 เครดิต ฟรี ฝาก เงิน เข้า slotxo ไฮโล ขั้น ต่ำ 1 บาท 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก fifa69 ดี ไหม สล็อต 777 คา สิ โน ออนไลน์ สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิต ฟรี xo ไม่ ต้อง ฝาก slot ไม่มี ขั้น ต่ำ xo ออ โต้ slotxo168 666slot slot joker 69 joker slot เครดิต ฟรี ไม่ ต้อง ฝาก slotxo ถอน ไม่มี ขั้น ต่ํา คา สิ โน ป๊อก เด้ง ออนไลน์ ฟรี เครดิต 200 ไม่ ต้อง แชร์ เครดิต ฟรี ไฮโล รีโมท สี่ หน้า ไฮโล ฝาก ระ ติ๊ บ win55 เครดิต ฟรี kiss918th ไฮโล พม่า 918kiss ฟรี เครดิต scr888 ฝาก ไม่มี ขั้น ต่ำ grand918kiss ไฮโล png หน้า เกม slotxo gclub เครดิต ฟรี fifa55 แจก เสื้อ สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 สมัคร ขอรับ เครดิต ฟรี ace333 ฟรี เครดิต โปร สล็อต ค่าย pg god slot joker slot7777 star slot777 007slotxo slot โปร ฝาก 10 รับ 100 ocean99 เครดิต ฟรี fifa55ez fifa55 palace joker ฝาก ไม่มี ขั้น ต่ํา รู เล็ ต 11 แถว fifa55 prime ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 sco88 เครดิต ฟรี 133 slotxo ล่าสุด 918kiss เครดิต ฟรี 100 บาท slotxo web live22 โปร โม ชั่ น บ่อน ไฮโล ออนไลน์ http mvegus1682 memberbet net slot god 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 สล็อต 168galaxy free allslot999 918 live22 b2y เครดิต ฟรี slotxo g big win 777 slot joker xo ดั ม มี่ คา สิ โน slot demo joker slotxo auto 100 แอ พ ไฮโล เจ้ามือ เข้า slotxo z8 เครดิต ฟรี สมัคร sbobet ฟรี ไม่ ต้อง ฝาก slot casino online slotxo ฝาก ท รู วอ เลท เครดิต ฟรี ใหม่ ๆ aladdin slot ฟีฟ่า 888 11 ไฮโล 2020 918kiss download 2019 slotxo web ถอนเงิน live22 slot v online เว็บ พนัน เล่น ฟรี ได้ เงิน จริง fifa55 god slot 9 joker true wallet ไม่มี ขั้น ต่ํา ocean99 เครดิต ฟรี 918kiss ฝาก 19 918kiss win ไฮ โล 918kiss v8 ufa365 สมัคร 12ww เครดิต ฟรี slotxo เกม ไหน แตก ง่าย โป๊กเกอร์ เงิน จริง king168 slot slot vip789 คา สิ โน ป๊อก เด้ง ออนไลน์ 918kiss เติม true wallet fifa55 รับ โบนัส ฟรี 200 บาท 918kiss แตก ง่าย 2020 9gspin เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ slotxo city เล่น poker เครดิต ฟรี ไม่มี เงื่อนไข 2020 918 ฝาก ถอน ออ โต้ slotxo casino ไฮโล ลูกเต๋า slotv9 มังกร เสือ คา สิ โน ออนไลน์ เครดิต ฟรี 918kiss 918kisswallet joker โปร โม ชั่ น slotxo ฝาก ผ่าน วอ เลท enjoy918kiss slot joker 100 ถอนเงิน xo mbslot j9 slot slotxo โปร 1 บาท winner5555 เครดิต ฟรี เล่น สล็อต xo หน้า เว็บ slotxo 12 เครดิต ฟรี 133 บาท ฝาก 5 บาท ฟรี 99 บาท slotxo69th 918kiss ฟรี 100 เกมส์ ไฮโล samuraixo 77up club joker slot เครดิต ฟรี slot ฝาก 20 ได้ 100 slot488 เครดิต ฟรี ทํา เทิ ร์ น ถอน ได้ official918kiss slotxo234 เกม แทง ไฮโล slot god 2in2 slot ฟรี ไม่ ต้อง ฝาก ก่อน slotxopug gclub888 royal xe88 slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน exp slotxo fifa ทาง เข้า siamslotxo เล่น ไพ่ แบ ล็ ค แจ็ ค เข้า เล่น สล็อต xo mafia888 slot fifa55 โปร โม ชั่ น b2y เครดิต ฟรี easy slotxo โป เกอร์ slotxo ฝาก 9 บาท รับ 100 ล่าสุด คา สิ โน ออนไลน์ 918kiss slotxo playlive88 fifa555 cash 3win8 casino เติม เครดิต slotxo slot dreamtech เข้า ฟีฟ่า 555 918kiss เครดิต ฟรี ไม่ ต้อง แชร์ slot game lobby free spin slot 191slot รวย ดี slot big joker slot ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา golden monkey slot slot55 819 kiss download คา สิ โน ป๊อก เด้ง เครดิต ฟรี 50 บาท ฟรี เครดิต ไม่ แชร์ gaming world slot ไฮโล 3d mm88bet login slotxo ที่ ดี ที่สุด ผล บอล เกม เสมือน จริง สล็อต xo ฝาก วอ เลท 1234slotxo 918kiss พี่ เสือ ไพ่ เสือ มังกร ออนไลน์ 918kiss me 2 slotxo ออนไลน์ slotxo king189 ไฮโล 11 1688 slot 899slot เครดิต ฟรี 50 บาท slot ฝาก ถอน ไม่มี ขั้น ต่ํา ดู ไฮโล joker xo th live22 ฟรี เครดิต ไฮโล ขึ้น คู่ joker game slot ฝาก 1 บาท ฟรี 50 บาท เครดิต ฟรี ไม่ หลอก แชร์ q9win ฟรี เครดิต ไม่ ต้อง แชร์ เครดิต ฟรี สล็อต xo easy live22 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สล็อต xo777 slot ฝาก 20 ได้ 100 fifa69 ดี ไหม สมัคร เว็บ ฟีฟ่า 555 mm88bet ฝาก slot win ฟรี เครดิต 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ fifa55 ฝาก 20 ฟรี 100 slotxo joker123 44th slot slot ฝาก 10 รับ 100 สมัคร เครดิต ฟรี 200 โปร 100 918kiss slot007 xo queen slot joker world 1688 slot slotxo ทั้งหมด เว็บ พนัน ออนไลน์ ป๊อก เด้ง exp slotxo kiss918 me mafia เครดิต ฟรี 50 สล็อต xo 999 สล็อต xo191 slot488 fifa55 mobile gclub 918 fifa55 เครดิต ฟรี 2020 slotxo 24 fifa ทาง เข้า slotxo 168 gaming slot super999 สล็อต โร ม่า เครดิต ฟรี slotxo08 918kiss superman joker slotxo 24th slotxo ฝาก wallet สมัคร databet88 fifa55fifa555 q9win ฟรี เครดิต ทาง เข้า fifa55m slotxo ฝาก ถอน ออ โต้ shangri la slot game tss911 เครดิต ฟรี สล็อต xo อี ซี่ gclub ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ฟีฟ่า 1688 เครดิต ฟรี ถอน ไม่ อั้น vscr888 slotxo 100 1 เทิ ร์ น ฟรี เครดิต 50 ไม่ ต้อง ฝาก เติม สล็อต xo slotxo 11 ฟรี ไม่ ต้อง ฝาก ก่อน xo slot 168 mario slotxo slot cat888 ไฮโล รีโมท 3win8 ฟรี เครดิต slotxo 4u สูตร บา คา ร่า ufa800 kiss me 918 kingbets88 cherry slot fifa55crown live22 โปร โม ชั่ น สล็อต xo เติม true wallet ไม่มี ขั้น ต่ํา 2020 slotxo ฝาก 10 รับ 100 ล่าสุด สล็อต xo easy xo slot cafe slotxo 777 th slot joker 1234 world1688s slot 918kiss ระบบ ออ โต้ mafia88 เครดิต ฟรี ไม่ ต้อง แชร์ slotxo88 download แจก เครดิต ฟรี 918kiss nikigame789 slotxo ฝาก 10 บาท ฟรี 90 บาท ไม่ ต้อง ฝาก open365 ฟรี เครดิต หมุน วง ล้อ joker123 ไฮโล ของ slotv9 live22 มาเฟีย 123 เครดิต ฟรี สล็อต xo 888 เครดิต ฟรี mega888 ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 100 145 ฟรี เครดิต slot5g all slot auto slotxo แจก เครดิต ฟรี สล็อต 999 คา สิ โน ออนไลน์ 918kiss kiss joker123 ฟรี เครดิต ไม่ ต้อง ฝาก slotxo โปร วัน เกิด slotxo98 918kissworld slot ยืนยัน ตัว ตน รับ เครดิต ฟรี fifa55u ดู บอล mafiaslot88 เว็บ 918 slot311 เว็บ fifa555 web slot ไฮโล ออนไลน์ 888 918kiss me ฟรี เครดิต slotgame99 ไพ่ ออนไลน์ slot joker เครดิต ฟรี slotxo เติม เงิน ผ่าน วอ เลท 918kiss demo สล็อต ได้ เงิน จริง เข้า บัญชี จริง มังกร เสือ คา สิ โน ออนไลน์ joker918kiss g9 slot roma slotxo ฝาก 1 บาท ฟรี 99 บาท gclub ฟรี สมัคร 300 ฟรี 300 happyslot88v1 918kiss เว็บ ไหน ดี หมุน วง ล้อ ออนไลน์ fifa555 sport เข้า slotxo vegus16 เติม slotxo เว็บ fifa555 slot joker demo ป๊อก เด้ง คา สิ โน ออนไลน์ slot joker168 gclub ฟรี เครดิต ไม่ ต้อง ฝาก 2019 all slot www slotxo88 com home เล่น xo ผ่าน เว็บ เครดิต ฟรี ระบบ ออ โต้ slotxo456 สล็อต 168galaxy bbet99 เครดิต ฟรี ป๊อก เด้ง ขั้น ต่ำ 10 บาท 168 สล็อต xo 918kiss เวอร์ชั่น ใหม่ fifa55 ฟีฟ่า 888 slotxo ฟรี ไม่ ต้อง ฝาก ก่อน slotxo โอน เงิน slotxo928 918tiger2 918kiss ฝาก joker gaming โปร โม ชั่ น golden 678 slot slotxo ฝาก 30 รับ 100 star slot777 ฟรี เครดิต 918kiss เล่น slotxo หน้า เว็บ fifa555bonus คา สิ โน ออนไลน์ 918 เครดิต ฟรี 18 บาท สล็อต xo 44 slotxo เติม เงิน fifa ทาง เข้า c8 slot mafia191 เครดิต ฟรี แทง รู เล็ ต c9bet slot sg เครดิต ฟรี เว็บ 918kiss golden hoyeah slot slot joker true wallet ไม่มี ขั้น ต่ํา fifa55 hot เล่น ไพ่ แบ ล็ ค แจ็ ค slot โปร สมาชิก ใหม่ 918kiss money โกง ไฮโล tiger slot 888 918kiss slots เสือ มังกร ออนไลน์ มือ ถือ แอ พ คำนวณ รู้ เล็ ต xo slot วอ เลท mafia678 slot เล่น sbobet ฟรี slotxo หน้า เว็บ slot ฝาก 50 ได้ 100 slotxo678 joker kiss 888 โจ๊ก เกอร์ ฟรี เครดิต 333be โค๊ ด ฟรี 133 slot house ufa365 ดี ไหม tss911 เครดิต ฟรี vegus168 win fifa55 เครดิต ฟรี 200 joker hunter 888 เข้า slotxo ไพ่ เงิน จริง 918kiss ฟรี 1000 slot เครดิต ฟรี fifa55boom enjoy918kiss 918kiss69 เครดิต ฟรี 133 บาท slot joker 1234 joker ฝาก ไม่มี ขั้น ต่ํา fm99bet เครดิต ฟรี เกม ส ล็ slotxo 289 joker slot ฝาก 10 รับ 100 slotxo game 66 slot ฝาก 50 ฟรี 50 สมัคร สล็อต ง่ายๆ slotxo roma fortuna slots vegus68 เล่น sbobet ฟรี แอ พ การ พนัน ได้ เงิน จริง mafia ฟรี เครดิต ไม่ ต้อง แชร์ happyslot88v1 เล่น หน้า เว็บ http www slotxo com casa98 ฟรี เครดิต slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo แจก เครดิต ฟรี 50 slot007 เครดิต ฟรี ไพ่ แบ ล็ ค แจ็ ค betway เครดิต ฟรี แทง ไฮโล ออนไลน์ ให้ ได้ เงิน 918kiss win ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา superslot999 xo แอ พ ไฮโล สั่ง ได้ fifa55 ทดลอง เล่น mvegus1682 memberbet net logincontroller 168slotxo auto starslot777 slo xo ไฮโล ของ scr888 ฝาก ไม่มี ขั้น ต่ำ vegus168 gold slot machines by igg ไฮโล ลูกเต๋า joker slot เครดิต ฟรี slot1888 8 bit slot xo slotxo 777 th winner55 เครดิต ฟรี บอล เสมือน จริง คือ wms slot เครดิต ฟรี 50 บาท slot fafafa2 สล็อต xo 99 สมัคร mega888 ฟรี เครดิต 918 คิ ส 918kiss royal โกง ไฮโล ฝาก 100 ฟรี 500 wwwufa24h star slot 1688 kinglive22 slotxo 918kiss พี่ เสือ bein sport 1 fifa55 เครดิต ฟรี ทํา เทิ ร์ น น้อย 918 เครดิต ฟรี 918kiss ถอน ไม่มี ขั้น ต่ํา payslot slotxo 79 agent 918kiss 918kiss ฝาก ไม่มี ขั้น ต่ํา คา สิ โน ออนไลน์ เสือ มังกร tiger slot slotxo 639 918kiss พี่ เสือ fifa55 line vivo slot game 11 ไฮโล gclub8 line slot365 gucci slotxo win55 เครดิต ฟรี slot ฝาก ไม่มี ขั้น ต่ํา monster joker slot 2pigs 918kiss joker slot 911 slotxo asia 777 fifa55 1234 slotbonus ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ double casino free slots 918kiss ฝาก 50 ฟรี 50 vegus16 เว็บ พนัน บอล ดี ที่สุด 2021 slot win xo allbet รู เล็ ต สด slotxo09 xe88 เครดิต ฟรี safari gold megaways 918kissvip slotplay88 slotxo 11 slot ฝาก 20 บาท รับ 100 เฮง เฮง เฮง เครดิต ฟรี xo โบนัส 100 918kiss ฝาก true wallet เครดิต ฟรี mafia 2020 เครดิต ฟรี ไม่ ต้อง แชร์ 918 918tiger2 slotxo โปร 1 บาท slotv9 joker ไฮโล สูง ต่ำ slot44th เครดิต ฟรี แชร์ ไลน์ 3xbet เครดิต ฟรี slotxo ฝาก 10 ไม่ ต้อง แชร์ slot 345 ggbet168 เครดิต ฟรี ไพ่ แบ ล็ ค แจ็ ค slotxo พัน ทิป เกม slotxo fruit slot 918kiss allbet สล็อต สมัคร ง่าย xoslot69 เว็บ แทง บอล fifa55 xo slot 123 slotxo เติม เงิน เล่น sbobet ฟรี 918 live22 ยิง ปลา บา คา ร่า บา คา ร่า mclub xo วอ เลท 8bitslotxo ทาง เข้า ฟีฟ่า 55u fifa55 เข้า ไม่ ได้ ฟรี 200 ไม่ ต้อง ฝาก 918kiss v เกม สล็อต ไลน์ 22 slot ฝาก 10 รับ 100 lucky slot 918 า ร ห ห รีโมท ไฮโล 918 live22 918kiss v1 m918kiss เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 slot joker91 สล็อต ออนไลน์ ฝาก ถอน ไม่มี ขั้น ต่ำ เครดิต ฟรี ไม่ แชร์ เครดิต ฟรี โจ๊ก เกอร์ ไม่ ต้อง ฝาก slot joker69 เข้า เล่น fifa55 slotxo ล่าสุด 1xbet slot เข้า slotxo fifa555 สมัคร slot โปร ฝาก 10 รับ 100 slot hd 8b slotxo slot s9 เกม ส ล็ wilderland slot lucky god slot 918kiss ฝาก ไม่มี ขั้น ต่ํา african simba ทาง เข้า fifa888 เกม xo สล็อต slot123 auto slotxo web slot เล่น สล็อต live22 slotxo pro 918kiss ฟรี 100 super big win สล็อต เอก โอ slot million ฝาก 20 รับ 100xo สล็อต xo ฝาก ขั้น ต่ำ 50 บาท live22 slot auto กีฬา เสมือน จริง เครดิต ฟรี ใช้ บัตร ประชาชน slot1888 superlot999 เครดิต ฟรี agent scr888 pgslot789 joker89auto slot โบนัส 4ux slot เล่น โป ก เกอร์ ออนไลน์ siam slot เครดิต ฟรี ระบบ ออ โต้ เครดิต ฟรี มาเฟีย 555 best slotxo official918kiss slotxo png http mvegus 1682 memberbet net slot online joker123 สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 เครดิต ฟรี วัน เกิด ไม่มี เงื่อนไข 145 ฟรี เครดิต สล็อต xo 888 ไพ่ โป ก เก อ jokerauto 888 เกมส์ ไฮโล ออนไลน์ เกม สล็อต roma vegus68 slot1234 ฝาก 10 รับ 100 sunbet slot hack918kiss slotxo เติม true wallet slot dreamtech 918 ฟรี เครดิต slot ฝาก 20 บาท รับ 100 slot15 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ไพ่ โป ก เก อ slot ฝาก 15 ได้ 100 slot ไม่มี ขั้น ต่ํา 918kiss ออนไลน์ ลิ้ ง slotxo slot33 ดา ฟา เบ ท เครดิต ฟรี เล่น โป ก เกอร์ เล่น หน้า เว็บ slotxo live777slot scr888th v5 สยาม โป็ ก เกอร์ slotxo แตก ง่าย ufa800 บา คา ร่า www918kiss grand918kiss เกม ออนไลน์ ไฮโล bonus slotxo 999 slot เครดิต ฟรี ไม่ หลอก แชร์ 35 slotxo สมัคร ฟรี เครดิต ไม่ ต้อง แชร์ ไพ่ เงิน จริง 918kiss 333 บ่อน ไฮโล ออนไลน์ empire slot fifa55 god 918kiss ฟรี 100 scr888 918kiss download เล่น ไพ่ ได้ เงิน จริง 2019 เล่น poker เงิน จริง ไฮโล พม่า slotxo member slot house หน้า ไฮโล slotxo ฝาก ผ่าน ท รู วอ เลท 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2019 สมัคร ฟีฟ่า 888 918kiss kiss ไฮโล 456 918kiss line 918kiss auto เครดิต ฟรี sbobet ฟรี เครดิต 2020 www 77up live kiss918 allbet free เครดิต เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน เกมส์ สล็อต ออนไลน์ joker 2pigsslot v88slot slot team pg slot โปร ทุน น้อย slot kiss918 คา สิ โน ออนไลน์ เสือ มังกร mega888 download 2019 ฟีฟ่า 888 download 918kiss ล่าสุด บา คา ร่า mclub gclub royal1688 เครดิต ฟรี xo slot 777 slotxo เกม ไหน แตก ง่าย xo allbet slotxo แตก บ่อย slotxo ฝาก ถอน อัตโนมัติ vegus168 lucky vegus168ag ดู ทีวี ออนไลน์ fifa55 slot2p sunbet slot extra slot slot ใหม่ ไลน์ ฟีฟ่า 55 ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ฝาก ขั้น ต่ํา 100 xo slot club live22 ฟรี เครดิต mm88bet sport & casino fifa55u ดู ทีวี ออนไลน์ slot 66 chomikuj slot epic win สล็อต 1688xo slotxo เล่น xo roma เล่น แบ ล็ ค แจ็ ค fifa55na สมัคร ขอรับ เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง แชร์ slotxo โปร 10 รับ 100 เครดิต ฟรี mafia 2020 mafia678 slot joker xo โปร ทุน น้อย slotxo สมัคร เครดิต ฟรี 2019 spinomenal slot slotxo sb gclub เครดิต ฟรี ถอน ได้ 2020 สล็อต xo11 สมัคร สมาชิก fifa55 เข้า xo สล็อต xo777 slot sanook สล็อต xo true wallet mm88bet login slot ฝาก 20 รับ 100 ww เครดิต ฟรี slot33 slotxo456 ไฮโล apk ฝาก 100 ฟรี 100 bbet99 เครดิต ฟรี ทาง เข้า ฟีฟ่า 55 มือ ถือ เข้า เล่น fifa55 ฟรี เครดิต เดือน เกิด ดู บอล fifa55 19slot slotxo กับ joker อัน ไหน ดี กว่า เกม สล็อต ไลน์ 22 ace333 slot pay96 slot slotxo logo png 918kiss อั่ ง เปา สล็อต xo 369 918kiss me ฟรี เครดิต slotxo allbet asia com fifa55fifa555 slot98 เล่น blackjack fifa55u ทาง เข้า slot joker 1668 แทง ไฮโล ออนไลน์ slot 66 slotxo ฝาก ถอน วอ เลท slotv9 joker samuraixo ดู บอล fifa55 สล็อต xo 1234 ฝาก 1 บาท ฟรี 99 บาท slotxo joker123 สล็อต 77 คา สิ โน ออนไลน์ สมัคร fifa888 joker89auto เล่น แบ ล็ ค แจ็ ค ออนไลน์ slotxo 22th slot2499 899slot 918kiss me 2 www 77up me slotxo 88888 918kiss v8 slot auto 11 ไฮโล คือ ไพ่ เสือ มังกร ออนไลน์ slot promotion คูปอง เครดิต ฟรี สล็อต xo ทุน น้อย เครดิต ฟรี ถอน ไม่ อั้น joker ฝาก ถอน ไม่มี ขั้น ต่ํา สล็อต xo th 918kiss v1 slotxo456 918kiss เครดิต ฟรี ล่าสุด 69slot mafia01 เครดิต ฟรี slotxo1 fifa55 rmcc slotxo slotjoker คา สิ โน ออนไลน์ ป๊อก เด้ง slotxo เติม เงิน วอ ล เล็ ต 333be เครดิต ฟรี 133 bn slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ ไม่ ต้อง ฝาก 5g slot joker บ้าน บอล fifa55 เครดิต ฟรี ทํา เทิ ร์ น joker slot 69 918 คือ c9bet slot เว็บ fifa555 ไฮโล คลาสสิค slotxo aec999 live22 โปร โม ชั่ น เว็บ ตรง 918kiss สล็อต เอ็ ก โอ joker slot 888 v1 918thailand slotxo โจ๊ก เกอร์ เติม slotxo 55slot 198 kiss download หา เครดิต ฟรี ไม่ ต้อง แชร์ joker 2pigsslot slot เครดิต ฟรี 50 บาท slot6996 เครดิต ฟรี ไม่ ต้อง โอน ก่อน สล็อต xo game slot33 918kiss เครดิต ฟรี ล่าสุด เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด xo slot cafe mbk slot fifa55 ฝาก 20 ฟรี 100 fifa55 truemoney เครดิต ฟรี 3000 live22 ฟรี เครดิต ไม่ ต้อง ฝาก slotxo joker เล่น ไพ่ เก้า เก ออนไลน์ ได้ เงิน จริง เครดิต ฟรี kiss918 สมัคร ฟีฟ่า 55 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2019 918 ฝาก ถอน ไม่มี ขั้น ต่ํา เครดิต ฟรี 918 2mbet เครดิต ฟรี เครดิต ฟรี sbobet สล็อต ufa365 ทาง เข้า ff55 เครดิต sahacker ฟรี slot35 คา สิ โน ป๊อก เด้ง mafia999 slot slot ฝาก 50 รับ 100 slotxo ฝาก ถอน อัตโนมัติ slot เครดิต ฟรี 100 slotxo lucky god 2 slot hd slot 66 chomikuj slotcafe slot2pig boxing slot slot375 ไฮโล xo thai888 ลูกเต๋า ไฮโล gclub ฟรี 918kiss ท รู วอ เลท 2019 918kiss โปร ทุน น้อย slotxo 666 สล็อต xo ทุน น้อย ไฮโล ส กิ ด 3 หน้า ราคา เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss slotxo 111 918kiss แตก ง่าย 2020 slot6996 golden monkey slot อัป เด ต slotxo เกม ไฮโล ฟรี 918kiss line บอล เสมือน จริง royalbet777 เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด joker918kiss fifa55 เครดิต ฟรี 2020 xo slot mobile สล็อต xo888 twin79 เครดิต ฟรี slot joker ฝาก ไม่มี ขั้น ต่ํา ฝาก 100 ฟรี 100 2020 lucky slot 888 5g slotxo ไฮโล ทอย ลูกเต๋า ufa800 สูตร เสือ มังกร ออนไลน์ xo live22 ฟรี เครดิต 200 slot joker โปร โม ชั่ น สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 เครดิต ฟรี 50 ล่าสุด ถอนเงิน slotxo 11 เครดิต ฟรี 3000 55slot joker roma slotxo 918slot ฝาก ไม่มี ขั้น ต่ำ ถอน ไม่มี ขั้น ต่ํา slot168 galaxy เล่น แบ ล็ ค แจ็ ค ออนไลน์ เว็บ พนัน บอล fifa55 w168club เครดิต ฟรี v slot casino slot mafia928 slot star99 live22 slot auto slot 311 slot168 เครดิต ฟรี เครดิต ฟรี joker slotxo โอน วอ เลท ฝาก 1 บาท ฟรี 99
      วิเคราะห์ บอล สด วัน นี้ 100| ทีเด็ด บอล ฟัน ธง คืน นี้| ama935 baccarat| ทีเด็ด บอล 7 ดาว เต็ง จาก ต่าง ประเทศ| วิเคราะห์ ผล บอล วัน นี้ ล้ม โต๊ะ| สูตร บา คา ร่า king| สูตร เด็ด บา คา ร่า 2020| แจก เงิน ฟรี 500| ทีเด็ด ฟุตบอล sbo| บอล วัน นี้ 888 ทีเด็ด| tded club| 4 เทพ ส เต็ ป เซียน| สูตร พิชิต บา คา ร่า ฟรี| สูตร บา คา ร่า sa th88| เซียน บา คา ร่า 1688| สูตร เซียน 2020| 7step บอล| วิเคราะห์ บอล คืน นี้ ฟัน ธง| ผล บอล เด็ด คืน นี้| สูตร แทง ทบ| สูตร บา คา ร่า ฟรี lsm99| ทีเด็ด บอล เต็ง ส เต็ ป 2 3| ผล บอล สด ฟัน ธง| สูตร บา คา ร่า 4 ไม้| สูตร บา คา ร่า sa gaming 2020 ล่าสุด| ทีเด็ด บอล soccersuck| ข่าว ฟุตบอล พรีเมียร์ ลีก อังกฤษ วัน นี้| baanpolball vip| ทีเด็ด บอล ชุด สปอร์ต พูล วัน นี้| การ เดิน เงิน| สูตร บา คา ร่า ใหม่ ฟรี| วิเคราะห์ บอล แม่น ๆ นะ ครับ คืน นี้| ที เดด บอล ชั ว| ทรรศนะ บอล วัน นี้ 888| ข่าว กีฬา แมน ซิตี้| วิเคราะห์ บอล วัน นี้ สกอร์ สูง ต่ํา| joker ฟรี| ทีเด็ด บอล โก เด้ น| sanook ข่าว กีฬา| สูตร บา คา ร่า ใช้ได้ จริง ไหม pantip| ทีเด็ด บอล เซียน นอก| ข่าว กีฬา ฟุตบอล ลิเวอร์พูล วัน นี้ ล่าสุด| ข่าว กีฬา ฃ| สูตร sa gaming 2020| joker slot ฝาก 20 รับ 100| goldenslot ฟรี เครดิต ไม่ ต้อง ฝาก| ขาว ฟุตบอล| สูตร sagame66 ฟรี| บอล วัน นี้ ส เต็ ป 7| สปอร์ต พูล ออนไลน์| lucabet168 สูตร| ทีเด็ด บอล โลก| สูตร บา คา ร่า อาจารย์ คิ ม| วิเคราะห์ บอล ส เต็ ป วัน นี้ 100 เปอร์ เซ็น| ทีเด็ด ฟุตบอล sbo| สูตร บา คา ร่า เด็ด 789| ทีเด็ด บอล 3 ไม้| สล็อต โจ๊ก เกอร์ 123| สูตร บา คา ร่า เฮง เฮง เฮง| ข่าว สยาม กีฬา วัน นี้ ล่าสุด| สูตร ล้ม โต๊ะ บา คา ร่า ฟรี| สูตร บา คา ร่า ฟรี mm88| ล้ม โต๊ะ บอล ชุด วัน นี้| บา คา ร่า ฟรี 2019| สูตร บา คา ร่า winner55| ฟัน ธง ฟุตบอล คืน นี้|