• <nobr id="5u1T"><input id="5u1T"></input></nobr>

  • <menuitem id="5u1T"><delect id="5u1T"></delect></menuitem>
    <meter id="5u1T"></meter>
    1. <strong id="5u1T"></strong>
      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
       
      1xbet slot เครดิต sahacker ฟรี ไม่ ฝาก ไม่ แชร์ ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ 918kiss ios ล่าสุด vegus168 memberbet hacker slot45 joker slot ไม่มี ขั้น ต่ํา slot epic win sunbet slot live22 888 เครดิต ฟรี xo slot ถอนเงิน slot vip 888 สมัคร เครดิต ฟรี 300 fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก เว็บ live22 cq9 gaming betway เครดิต ฟรี ฝาก ถอน 918kiss แทง ไฮโล ขั้น ต่ํา 10 บาท slotxo55 slot xe88 เล่น ได้ 200 ถอน ได้ 100 mega888 slot สล็อต 77 คา สิ โน ออนไลน์ 918kiss 100 ฟรี 100 slotm168 line 918kiss รู เล็ ต เคล็ด ลับ 918kissgrand xo slot168 11 ไฮโล มี กี่ หน้า เครดิต ฟรี เล่น ได้ ถอน ไป เลย 8bit slotxo ไลน์ slotxo slotxo 191 slot ฝาก wallet เติม สล็อต xo ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 789 game slot slot 918 monday 918kiss superslot999 xo fox88 ฟรี เครดิต joker slot999 เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ ส รู ตรู เล็ ต wwwfifa69 918kiss ฝาก ถอน ออ โต้ เล่น ไพ่ ได้ เงิน จริง 2019 วิธี เล่น databet88 ไฮโล โทรศัพท์ mega888 download pc ufa365 หนัง slot ฝาก 1 บาท คา สิ โน ป๊อก เด้ง เกม สล็อต slotxo ufa24h register slot ถอน ไม่มี ขั้น ต่ํา 888 โจ๊ก เกอร์ slot bet ฟรี เครดิต เว กั ส 168 hd slot ใหม่ สล็อต 999 คา สิ โน ออนไลน์ โจ๊ก เกอร์ ฝาก ถอน ไม่มี ขั้น ต่ํา เครดิต ฟรี 918kiss slot house slotxo 96 kiss918 เครดิต ฟรี slot joker123 auto สล็อต xo 99 สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 หาเงิน จาก คา สิ โน pg168 slot queen slot สล็อต xo ฝาก วอ เลท slot1234 เครดิต ฟรี slotxo pgslot แทง ไฮโล ออนไลน์ ให้ ได้ เงิน slot777 เครดิต ฟรี joker slot โปร 100 918 auto สมัคร live22 auto slot ฝาก 20 บาท รับ 100 เครดิต ฟรี 300 ไม่ ต้อง แชร์ slot king99 winner55 เครดิต ฟรี slot xo888 เกม ไฮโล pc ไฮโล ไฮเทค คือ เครดิต ฟรี 300 ไม่ ต้อง แชร์ slot free credit no deposit 2020 ไฮโล ขั้น ต่ำ 1 บาท fifa55 คา สิ โน mbslot joker slot 444 fifa55 prime ถอน เงิน slotxo เกม ออนไลน์ ไฮโล slotgame88 slotxo567 slot โปร 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 b2y เครดิต ฟรี fifa5599 สล็อต 999 คา สิ โน ออนไลน์ 918kiss ผ่าน เว็บ ไฮโล ทอย ลูกเต๋า slotxo 9 ขอรับ เครดิต ฟรี slot ฟรี 100 สล็อต xo live22 slot969 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2019 slotxo mobile สมัคร เครดิต ฟรี 300 เครดิต ฟรี ใช้ บัตร ประชาชน slotxo234 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2019 mm88bet login 678slot 918kiss เวอร์ชั่น เก่า databet88 ดี ไหม slot s9 แอ พ ไฮโล เจ้ามือ โป๊กเกอร์ เงิน จริง slot kiss918 ป๊อก เด้ง คา สิ โน เว็บ โจ๊ก เกอร์ 888 fifa55run slot joker89 winner55 เครดิต ฟรี เล่น สล็อต โร ม่า ฟรี vegus68 slotxo ฝาก 10 รับ 100 ล่าสุด 918kiss allbet asia 918kiss royal fifa55 โดน จับ เล่น xo ผ่าน เว็บ top slot333 เครดิต ฟรี 20 บาท vscr888 สล็อต xo ฝาก วอ เลท สมัคร ฟรี ไม่ ต้อง ฝาก บอล เสมือน จริง สด slot1988 เครดิต ฟรี 918kiss สมัคร 918kiss ฟรี บา คา ร่า mclub ไฮโล ออนไลน์ 5 บาท เล่น สล็อต live22 slot vip 777 easy slot เล่น เกม slot 918kiss download 2019 pc slot online ไม่มี ขั้น ต่ํา slot joker89auto joker slot 555 fifa555god ฝาก 500 ได้ 500 918kiss เว็บ ไหน ดี 4u slotxo scrslot918 live22 ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo z slotxo x ไฮโล ออนไลน์ w88 เว กั ส 168 hd โปร โม ชั่ น ยิง ปลา ไพ่ black jack 555 slotxo live22 joker slotxo pro slot fun888 slot เครดิต ฟรี 2020 ไม่มี เงื่อนไข slot ฟรี เครดิต 50 เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ g9 slot slot ฝาก 19 ได้ 100 aba918kiss คา สิ โน ดั ม มี่ 918tiger2 918kiss ฝาก ฟีฟ่า 55 ยู wbc slot slot exp slotxo lord918kiss 1xbet slot joker สล็อต xo mafia เครดิต ฟรี ไม่ ต้อง แชร์ ถอนเงิน xo 918kisskingdom www555 เครดิต ฟรี 918kiss team slotxo 8855 sbobet ฟรี เครดิต ล่าสุด 5g slotxo 918kiss allbet asia 918kiss royal 918kiss เว็บ ไหน ดี win88 เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด ไฮโล ออนไลน์ เดิมพัน ขั้น ต่ำ 10 เสือ มังกร ออนไลน์ มือ ถือ scr888 918kiss download เว็บ พนัน fifa55 xo ผ่าน เว็บ slot555 joker joker123auto เครดิต ฟรี เกม ออนไลน์ xo slot mafia928 slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา 918kiss แจก เครดิต ฟรี 100 ไฮโล ออนไลน์ w88 ไพ่ เงิน จริง scr99th 918kiss ไฮโล เจ้ามือ xo บน เว็บ xo slot1234 slot007 เครดิต ฟรี joker xo th slotxo 169 slot top game joker35 slot joker slot โปร โม ชั่ น สล็อต xo777 ไฮโล ขั้น ต่ำ 5 บาท slotxo ฝาก 1 บาท xo slot mobile https 168 slotxo slotxopug fin slotxo สล็อต xo35 สล็อต xo311 คา สิ โน 918 สมัคร mm88bet live22 โปร 100 slotxo free credit สล็อต โร ม่า เครดิต ฟรี โกง ไฮโล ออนไลน์ slot 888 online เว็บ เกม สล็อต xo slot ฝาก ถอน ไม่มี ขั้น ต่ํา 918kiss บน pc สล็อต เอ็ ก โอ 918kiss พี่ เสือ king168 slot เว็บ บอล 55 barney slots winner5555 เครดิต ฟรี 918kissyou slotplay88 live22 1234 ไพ่ โป๊ก เก อ สล็อต xo 007 เครดิต ฟรี 150 โปร slot 918kaya เครดิต ฟรี royal เครดิต ฟรี เครดิต ฟรี gclub ้ ค ร ดิ ต ฟรี สล็อต xo777 mafia789 เครดิต ฟรี 918kiss เว็บ ไหน ดี real 918kiss ไฮโล ลูกเต๋า slots casino slot ฝาก 19 ได้ 100 สล็อต xo โจ๊ก เกอร์ เครดิต ฟรี ล่าสุด 2020 vegus168 ถอนเงิน slotlive222 all slot 918kiss royal slotxo slotjoker คิง ค อง สล็อต xo winner99 เครดิต ฟรี ป๊อก เด้ง ขั้น ต่ำ 10 บาท fifa55 memberbet โปร live22 slotxo lucky god2 30 ฟรี เกม slot rmuaab555 fifa1234 log mega888 ไม่มี ขั้น ต่ํา fifa555 สมัคร best joker slot สล็อต xo 007 เครดิต ฟรี 188 บาท ฝาก xo slot 10 casino slot all เกม สล็อต slotxo หาเงิน จาก คา สิ โน mafia เครดิต ฟรี 2020 918kiss ผ่าน เว็บ xo คา สิ โน fifa55 คา สิ โน 5g slot joker aec999 เครดิต ฟรี ไฮโล sicbo ไพ่ แค ง เล่น ได้ เงิน จริง เครดิต ฟรี ล่าสุด 2020 เล่น blackjack ออนไลน์ vegus168 สมัคร เซียน รู เล็ ต slot5g joker 918kiss โปร ทุน น้อย vegus168 ถอนเงิน โปร โม ชั่ น ยิง ปลา 2xs slot ไลน์ fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ts911 games 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา slot999 xo slotxo ยอด นิยม mega888 download 2019 5g slotxo สล็อต xo เกม ไฮโล ออนไลน์ ได้ เงิน จริง sbobet เครดิต ฟรี 35xo slot slotxo ฝาก วอ ล เลท 918kiss line 918kiss เครดิต ฟรี ล่าสุด เครดิต ฟรี ถอน ไม่ จํา กัด mafia191 เครดิต ฟรี slot 1168 สล็อต live22 เครดิต ฟรี ไม่ ทํา เทิ ร์ น 918kiss download ios ล่าสุด pg slot โปร ทุน น้อย slot1234 slotxo สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ เล่น สล็อต โร ม่า mvegus1682 memberbet net xo บน เว็บ 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก แจก เครดิต ฟรี slotxo เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด 918 auto fifa55 เข้า ไม่ ได้ รู เล็ ต คือ 918kiss แจก เครดิต ฟรี 100 เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss mafia55 เครดิต ฟรี 50 testament slot slot xo 777 ขอรับ เครดิต ฟรี ครับ joker slotxo auto slot true wallet ไม่มี ขั้น ต่ํา 77up app เกม xo สล็อต slotxo เติม เงิน แจก เครดิต ฟรี 918kiss 918kiss เครดิต ฟรี ล่าสุด ทาง fifa55 slotxo แตก ง่าย 2020 god slot joker วงกลม รู เล็ ต สมัคร vegus168 เกมส์ สล็อต 918kiss แตก ง่าย 2020 เล่น สล็อต xo ฟรี slot5g xo เล่น บน เว็บ 918kissgrand โปร ทุน น้อย slot fifa55fifa555 slotxo ถอนเงิน 918kiss พี่ เสือ ไฮโล ออนไลน์ มือ ถือ สล็อต xo เกม fifa555fc jackpotxo live22 เครดิต ฟรี สมัคร ใหม่ เเ ป น ไฮโล 88 kiss download slot super999 เครดิต ฟรี ทํา เทิ ร์ น น้อย วิธี สมัคร databet88 918kiss android world 1688 slot เครดิต ฟรี 120 xoslot69 เครดิต ฟรี ถอน ได้ 500 เกม ไฮโล pc ฟรี เครดิต 20 joker slotxo 24th fifa555 cash joker123 slotxo ฟรี เครดิต gclub sbobet ฟรี เครดิต ล่าสุด kingslotxo 918kissauto alert slotxo ผ่าน วอ เลท slot 1688 slotxo ทาง เข้า เว็บ fifa555 เครดิต ฟรี 3000 เว็บ slotxo44 slotjoker888 เครดิต ฟรี ออ โต้ 918kiss star v2 77up football ไพ่ โป ก เกอร์ ออนไลน์ slotxo 96 testament slot databet88 ดี ไหม 11 ไฮโล 2020 world 1688 slot slot ถอน ไม่มี ขั้น ต่ํา สล็อต xo เติม วอ ล เล็ ท คา สิ โน ออนไลน์ ป๊อก เด้ง slotxo lucky god2 30 ฟรี เกม best joker slot วิธี สมัคร databet88 1668slot winner55 ฟรี เครดิต 77up ดี ไหม gclub เครดิต ฟรี ถอน ได้ 2020 slotxo ทุน น้อย star slot777 joker hunter 888 mega888 ไม่มี ขั้น ต่ํา เกม slotxo slot678 vegus168 ติดต่อ fm99bet เครดิต ฟรี joker slot 9889 โปร สล็อต ค่าย pg slotlive222 fifa55 ทดลอง เล่น bein sport 1 fifa55 slot online th เล่น ไพ่ เงิน จริง game 777 69slot wwwufa24h 918kiss33 โป๊กเกอร์ ออนไลน์ 918kiss star v2 open365 ฟรี เครดิต เกม สล็อต slotxo black jack ออนไลน์ เครดิต ฟรี 50 ล่าสุด 777 slots casino 999 super slot slots v ib888 slot 918kiss ถอน ไม่มี ขั้น ต่ํา slot ฝาก ไม่มี ขั้น ต่ํา วอ เลท asiagaming tss911 เครดิต ฟรี วิธี เล่น databet88 555slot slot sagame66 ึึึึ 77up ไพ่ แค ง เครดิต ฟรี slot golden hoyeah แทง รู เล็ ต คูปอง เครดิต ฟรี ฝาก 1 บาท ฟรี slot vegus168 ดี ไหม slot 345 slot โบนัส slot ฝาก 10 finn slot slotxo ฝาก 20 ได้ 100 เว็บ vegus168 slot 999 kingbets88 หน้า เว็บ slotxo jokerslot99 เครดิต ฟรี เสือ มังกร ออนไลน์ มือ ถือ เว็บ บอล ฟีฟ่า 55 slotxo ผ่าน วอ เล็ ต fifa55casino v7slot ฝาก xo ไฮโล ออนไลน์ โบนัส ฟรี รู เล็ ต สายฟ้า dafabet 4ux slot slot2you slotxocom b2y เครดิต ฟรี sagame66 slot 919kiss vegus168ag slot king99 slotxo 6 ไม่ ต้อง แชร์ เครดิต ฟรี slot24hr slotxo mvp สมัคร ครั้ง แรก ฟรี เครดิต jokerslot99 เครดิต ฟรี slotxo ดี ไหม gclub8 line live22 ฝาก 1 บาท slotxo v1 918kiss69 fifa555bonus slot ฝาก 9 บาท รับ 100 สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 เกม ออนไลน์ ไฮโล รวย ดี slot ไฮโล 11 fifa55 ดู บอล slotxo สล็อต 145 ฟรี เครดิต 191slot เล่น xo slot ทาง เข้า fifawin365 918kiss ระบบ ออ โต้ scr888 slot บ่อน ไฮโล ออนไลน์ slotxo เติม เงิน wallet slot123 โป เกอร์ เว็บ บอล fifa slotxo โมบาย ทาง เข้า ฟีฟ่า 69 สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ฟุตบอล เสมือน จริง สยาม โป็ ก เกอร์ slotxo ฟรี เครดิต 100 monster joker slot ufa800 บา คา ร่า sicbo คือ slot48 ไฮโล ขั้น ต่ำ slotlive22 ฟรี เครดิต เดือน เกิด slotxo บน เว็บ สล็อต 999 คา สิ โน ออนไลน์ mm88bet sport & casino 918kiss 100 ฟรี 100 918kiss download ios joker123 allbet asia slotxo auto เข้า เว็บ ฟีฟ่า 55 fifa5599 xo slot apk shangri la slot เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ slotxo ฝาก ผ่าน วอ ล เลท fifa55 เข้า ระบบ ทาง เข้า ฟีฟ่า 8888 fifa55 prime เครดิต ฟรี ล่าสุด 2020 ดา ฟา เบ ท เครดิต ฟรี joker918kiss xo slot 777 สมัคร ฟีฟ่า 888 แทง รู betslotxo วง ล้อ คา สิ โน joker slot 666 ไลน์ fifa55 เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ ไพ่ โป ก เกอร์ 1 mega888 malaysia slotxo อัน ไหน แตก ง่าย แทง ไฮโล ออนไลน์ scr888 สมัคร ฟรี เครดิต scr888th game 918kiss download ios เครดิต ฟรี ระบบ ออ โต้ all slot777 slot joker 100 918 slot scrslot918 ฟีฟ่า 55 โปร fifa55 easy เครดิต ฟรี 50 บาท 9118kiss fin888 เครดิต ฟรี สมัคร fifa55 ฝาก ขั้น ต่ํา 50 เครดิต ฟรี 200 ไม่ ต้อง แชร์ สล็อต xo วอ ล เลท 918kiss ฝาก ท รู วอ เลท slot99 slot dreamtech slot 2499 aladdin 69 slot slot 20 รับ 100 thaislot888 jokerslot888v1 168galaxy joker เข้า slotxo sbobet ฟรี เครดิต fruit slot slot91 ป๊อก เด้ง ขั้น ต่ำ 10 บาท slotxo 1168 สล็อต xo คิง ค อง สมัคร gclub ฟรี เครดิต vegus168 gold เสือ มังกร ออนไลน์ แบ ล็ ค แจ็ ค เครดิต ฟรี ทํา เทิ ร์ น 918kissauto 2 winner55 เครดิต ฟรี ฟีฟ่า 55 โปร joker slot 444 เกมส์ สล็อต สล็อต xo ฟรี slot xo168 12ww เครดิต ฟรี ผล บอล ฟุตบอล เสมือน จริง ป๊อก เด้ง คา สิ โน ออนไลน์ บอล เสมือน จริง สด สล็อต xo 369 ไฮโล ลูกเต๋า บ้าน บอล fifa55 ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ฝาก ขั้น ต่ํา 100 fin slotxo winner99 เครดิต ฟรี ไม่ ต้อง ฝาก gclub เครดิต ฟรี ถอน ได้ 2020 9118kiss slot vip 99 slotxo cool 918kiss pantip slot online th slotxo auto 100 198 kiss download 918 ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo roma ไฮโล ส กิ ด เล่น sbobet ฟรี slot โบนัส 918kissauto live22 ฝาก ไม่มี ขั้น ต่ำ slot555 เกม พา รวย slot6996 สล็อต xo ฝาก ขั้น ต่ำ 50 บาท 918kiss ฟรี 1000 slot cat888 โป ก เกอร์ ถอนเงิน fifa55 ไม่ ได้ coduca88 เครดิต ฟรี ไฮโล พม่า 888 โจ๊ก เกอร์ slot god xo 55slot ร้องเรียน slotxo slotxo 100 1 เทิ ร์ น slot galaxy ฟรี เครดิต ไม่ ต้อง แชร์ slot ถอน ไม่มี ขั้น ต่ํา slot1234pg 918kiss ฝาก ขั้น ต่ำ 100 ค ริ ส 918 slotxo ออนไลน์ slotxo928 918kissyou xo live22 ufa365 net สมัคร 300 ฟรี 300 เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด genie jackpot 918kiss v8 เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ แอ พ 918 winner55 ฟรี เครดิต slot91 slot ฝาก 1 บาท ฟรี 99 บาท 2020 918kissauto ไฮโล สมจริง slot cq9 slot เครดิต 100 winner555 เครดิต ฟรี luk666 คา สิ โน ออนไลน์ www fifa8888 slot ฝาก 1 บาท ได้ 100 คา สิ โน ออนไลน์ 918 sanook xo slot 35 xo slot slots v 35 slotxo slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา 918kiss เครดิต ฟรี ล่าสุด gom88bet ไฮโล ส กิ ด สล็อต xo แจก เครดิต ฟรี xo slot 1688 slotxo อัน ไหน แตก ง่าย gclub royal1688 ฟรี เครดิต slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slotxo ดี ไหม slotbet168 vegus168 สมัคร ป๊อก เด้ง ขั้น ต่ำ 10 บาท star slot777 2pslot slotxo area89 vegus168 gold queen slot joker เครดิต ฟรี ไม่ ต้อง ทํา เท ริน slotxo เติม true wallet live slot slot punpun แอ พ เครดิต ฟรี bn slotxo ไลน์ mm88bet สล็อต x0 joker168 ฟรี เครดิต สล็อต xo 007 35 slotxo สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก slot888vip รู เล็ ต เคล็ด ลับ 3win8 casino spin 777 บอล เสมือน จริง slotxo เล่น ใน คอม slotxo 888 มาเฟีย เครดิต ฟรี 50 เล่น สล็อต roma ฟรี black mamba slot mega888 download pc slotxo credit ufa800 บา คา ร่า https www slot12 com member slotxo fifa55 แจก เครดิต ฟรี ลูกค้า เก่า luk666 คา สิ โน ออนไลน์ fifa55v เล่น xo slot 918kiss วอ ล เลท jackpotxo สมัคร เว็บ บอล ufa365 slotxo 828 พนัน ออนไลน์ ฟรี เครดิต fifa55 200 บาท slot 66 918kiss ท รู วอ เลท 2019 joker123 auto 2 ฝาก 500 ฟรี 200 slotxo exp ฟรี เครดิต ไม่ แชร์ 918kiss คืน ยอด เสีย xo allbet kingkongxo กงล้อ สล็อต xo123 slot89 หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo 79 ฝาก 1 บาท รับ 99 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 slot team ฟรี ไม่ ต้อง แชร์ 918kiss เครดิต ฟรี ล่าสุด เล่น poker slot ฟรี เครดิต 100 slot win เครดิต ฟรี sg 918kiss2you slot2p ดู ทีวี ออนไลน์ fifa55 slot kiss918 fifa55hot เล่น poker ออนไลน์ ggbet168 เครดิต ฟรี 918kiss อั่ ง เปา 918kiss team betway เครดิต ฟรี ไฮโล sicbo เล่น เกม slotxo 1234slotxo fifa55 memberbet net slot ฝาก 20 ได้ 100 slot555 joker ป๊อก เด้ง ขั้น ต่ำ 10 บาท เครดิต ฟรี ค่าย cq9 joker ฝาก ไม่มี ขั้น ต่ํา scr888th game 919kiss xo 10 รับ 100 slotxo สล็อต joker โบนัส 100 auto 2in2 slot ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 slotxo v1 slotxo ฝาก wallet slotxo area89 live22 1234 slotxo24 live22 ฝาก ถอน ไม่มี ขั้น ต่ํา เว็บ 918kiss คา สิ โน ดั ม มี่ เล่น slotxo queen slot 999 รวย ดี slot slot dreamtech jokerslot888 ฟีฟ่า 55 hd เล่น ได้ 200 ถอน ได้ 100 slot joker89 joker89auto slot free credit slot team เว็บ บอล fifa fifa55 ถอนเงิน ไม่ ได้ slotxo24h slot789th แจก เครดิต ฟรี slotxo แทง ไฮโล ขั้น ต่ํา 10 บาท กีฬา เสมือน จริง fifa5u เว็บ พนัน บอล fifa55 the joker slot ro slotxo slotxo 2xl slotxo 918kiss slotxo กับ joker อัน ไหน ดี กว่า joker slot 168 สล็อต xo คิง ค อง โป เกอร์ เว็บ ตรง 918kiss slot million slotxo ฟรี เครดิต ไม่ ต้อง ฝาก 2019 fifa55 truemoney 86slot slotxo69 slotxo ฝาก ถอน วอ เลท mm88bet ฝาก 35 slot joker true wallet ไม่มี ขั้น ต่ำ 918kissbet สมัคร สมาชิก fifa55 xoslot123 เครดิต ฟรี live22 slot 236 slotxo 999 slotxo v1 สมัคร เครดิต ฟรี slot house คิง ค อง สล็อต xo ทาง เข้า เว็บ fifa55 slotxo เล่น ใน เว็บ สล็อต 77 คา สิ โน ออนไลน์ 918 ฝาก ไม่มี ขั้น ต่ํา slot168 slotxo ฝาก ผ่าน วอ เลท joker slot 888 สล็อต xo 369 บอล เสมือน จริง joker slot 555 slotxo 828 isc888 เครดิต ฟรี เติม เงิน live22 slot ยืนยัน ตัว ต้น รับ เครดิต ฟรี fifa55 ดี ไหม slotxo lucky god 2 slot free slotxogame168 ไม่ ฝาก ไม่ แชร์ เล่น สล็อต roma 918kiss โปร โม ชั่ น สล็อต xo อี ซี่ เว็บ พนัน บอล fifa55 918kiss แตก ง่าย skyslot7 slotxo fun fifa55 sport casino เล่น ไพ่ โป ก เกอร์ ออนไลน์ fifa55 โปร โม ชั่ น pragmatic play ฟรี เครดิต slotjoker888 เกม ไฮโล ฟรี joker ถอน ไม่มี ขั้น ต่ํา joker slot โปร 100 slotlive22 xo slot168 slot x0 fifa55 sport casino ไฮโล ฟรี โปร โม ชั่ น slotxo www555 เครดิต ฟรี poker ไพ่ slot joker123 auto 918kiss อั่ ง เปา gclub royal1688 ฟรี เครดิต black mamba slot fifa55hot live22 ถอนเงิน วง ล้อ คา สิ โน เติม เงิน เข้า สล็อต joker xo สมัคร fifa55 ฝาก ขั้น ต่ํา 100 สล็อต xo11 slot8888 918kiss ผ่าน เว็บ scr918kiss th slot โปร ทุน น้อย fifa55 sport casino kiss918 ฟรี เครดิต twin79 เครดิต ฟรี slot jackpotxo red tiger slot เครดิต ฟรี kiss918 joker681 เครดิต ฟรี เข้า สล็อต xo slot3k เครดิต ฟรี เล่น ได้ เลย ไพ่ โป ก เก อ slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ไฮโล ส กิ ด 3 หน้า ไฮโล ออนไลน์ 888 joker123 slotxo เว็บ slotxo fifa55 truemoney 918kiss max red slotxo slot joker91 สล็อต 888 คา สิ โน ออนไลน์ fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก เกม ออนไลน์ ไฮโล scr888 เครดิต ฟรี 918kiss เวอร์ชั่น ล่าสุด ฝาก เงิน เข้า slotxo เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด joker demo สล็อต ยู ฟ่า 777 slot246 ป๊อก เด้ง ออนไลน์ เงิน จริง pantip slotxo เติม เงิน ผ่าน วอ เลท slotxo coco xo24hr 999 slot 888 โจ๊ก เกอร์ slotxo ฝาก ถอน อัตโนมัติ slotxo ฝาก 1 บาท สล็อต xo ฟรี เติม slotxo joker slot 456 slot 10 918kiss slot game jokerslot888 แอ พ การ พนัน ได้ เงิน จริง สมัคร mm88bet mas888 ฟรี เครดิต slot เครดิต ฟรี 50 gclub ฟรี 918kiss พี่ เสือ สมัคร ฟรี ไม่ ต้อง ฝาก joker slot 77 slotxo ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo ฝาก ผ่าน วอ เลท live22 ฝาก 1 บาท ฟรี 99 live22 ฝาก 1 บาท สล็อต xo คิง ค อง ไฮโล ลูกคู่ 918kissworld big win 777 slotxo234 slotxo โปร 10 รับ 100 bein sport 1 fifa55 xo slot cafe แอ พ เครดิต ฟรี mafia555 slot สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ถอนเงิน ได้ เครดิต ฟรี ไม่ หลอก แชร์ 918kiss โปร ทุน น้อย xo เล่น บน เว็บ ไฮโล สมจริง เครดิต ไม่ ต้อง ฝาก ก่อน joker true wallet ไม่มี ขั้น ต่ำ ผล บอล เสมือน จริง ฟีฟ่า 20 joker ถอน ไม่มี ขั้น ต่ํา slot4you xo slotxo 918kiss เวอร์ชั่น ล่าสุด slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา สมัคร fifa55u slotxo allbet asia com เว็บ พนัน บอล ดี ที่สุด 2021 spin 777 918kiss free kiss918 th hacker slot45 เครดิต ฟรี ไม่ ต้อง แชร์ 918 หน้า เว็บ slotxo slot love918kiss world 1688 slot 918kisskingdom สล็อต 888 คา สิ โน ออนไลน์ slotxo123 slotvip789 เครดิต ฟรี xo slot168 mvegus1682 memberbet net chklogin v9 slotxo 918kiss โอน ผ่าน วอ เลท แอ พ โกง ไฮโล joker123slotthai
      ผล บอล บ้าน ผล บอล วัน นี้| เล่น สูตร บา คา ร่า| สูตร บา คา ร่า ฟรี 99.99| สูตร บา ค่า ร่า vip| สูตร บา คา ร่า ts191| 345 ทีเด็ด บอล| ทีเด็ด บอล วัน นี้ vip| วิเคราะห์ บอล เด็ด ๆ แม่น ๆ| ทีเด็ด บอล ตัว เดียว วัน นี้| วิเคราะห์ บอล คืน นี้ แม่น ๆ 4 เซียน| สูตร บา คา ร่า อั ลก อริ ทึม 2019| slot เครดิต ฟรี ไม่ ฝาก ไม่ แชร์| ทีเด็ด บอล 5 คู่ 100| ที่ เด็ด บอล เต็ง 5 เซียน| fifa สูตร บา คา ร่า| mafia44 เครดิต ฟรี| ทีเด็ด บอล ฟัน ธง คืน นี้| ที่ เด็ด บอล นอก| ฝาก 50 รับ 150 xo| อัตรา ต่อ รอง ฟุตบอล วัน พรุ่งนี้| บอล ชุด 3 4 5 สปอร์ต พูล ราคา| ข่าว ฟุตบอล ลา ลี กา| ทํา นาย บอล ชุด| ซื้อ ฟรี ส ปิ น slot| บอล สด ทีเด็ด| ข่าว กีฬา ใหม่| สูตร บา คา ร่า ฟรี apk| ข่าว กีฬา ทั่ว โลก| ทีเด็ด บอล นอก vip| สูตร เซียน 2020| ราคา บอล วัน นี้ 7m| อัตรา ต่อ รอง ฟุตบอล วัน พรุ่งนี้| ข่าว กีฬา ฟุตบอล ต่าง ประเทศ ล่าสุด| slot ฝาก 19 บาท| ทีเด็ด บอล วัน ทู บอล| chokdee777 เครดิต ฟรี| ทรรศนะ บอล วัน นี้ เทพ ทีเด็ด| ตาราง บา คา ร่า sa| slot ฝาก 10 บาท ฟรี 99 บาท| ทีเด็ด บอล เต็ง 1 ตัว สูง ต่ำ| ทีเด็ด บอล อังกฤษ| ี ทีเด็ด บอล ชุด| วิเคราะห์ บอล วัน นี้ คืน นี้ ทีเด็ด วิเคราะห์| สปอร์ต พูล บอ บู๋ ล่าสุด| สูตร บา คา ร่า แม่นยำ| ทีเด็ด บอล ลีก เล็ก| โปรแกรม บา คารา| ดู บอล สด 7m เทพ ทีเด็ด| ที่ เด็ด บอล ทุก ลีก| ที่ เด็ด บอล เต็ง 100| สูตร บา คา ร่า fin88| วิ เค ราะ บอล ล้ม โต้| โปรแกรม คํา น วณ บา คา ร่า pantip| สูตร mm88| ข่าว บา ซ่า สยาม สปอร์ต| สูตร fastbet98| ทีเด็ด บอล แมน ๆ| odd บา คา ร่า ด อ ท คอม| สูตร บา คา ร่า dna พา รวย| slot ฝาก 9 บาท| แทง ทบ บา คา ร่า| สี่ เซียน ฟัน ธง| ที เดั ด บอน วัน นี้| บอล เต็ง 4 คู่ เด็ด ๆ| ล้ม โต๊ะ 7 เซียน| ข่าว กีฬา ฟุตบอล ลิเวอร์พูล วัน นี้ ล่าสุด|