<del id="2iH"></del>

      <nav id="2iH"></nav><tr id="2iH"><source id="2iH"><option id="2iH"></option></source></tr>
        <sub id="2iH"></sub>
          <nav id="2iH"><code id="2iH"></code></nav>
          A playground for University of Bologna Students and a 6-days seminar about digital tools.

          Digital generative tools are a very important part of architectural education. Andrew Kudless during his conference at SimAE was telling about chinese traditional woodcraftsmen: they spend their first two years of apprentice in making their own tools. Today, we have a large pool of digital ready made tools, built to respond to more or less specific problems or tasks, while keeping a level of flexibility and personalization. The majority of these tools have hidden capabilities, which can only be accessed bypassing the conventional interface and getting close to the machine logic of programming or building parametric components which generate shapes. Thus, seriality, differentiation, complexity can be implemented in architectural projects through code, in order to exploit the power of algorithmic based complex systems which are the basis of biological systems.


          But, before going through such complexity, we must start with simple tasks and simple rules. Before playing seriously we need practice. This is the playground where a bunch of students will start to practice, a pool where they will share their results and questions. Maybe the stuff here that will be posted will seem obvious or naive to the navigated code-monkey, but, as I mentioned before, we all start from the basics and this is intended as a place to start. However, any comment and contribution is appreciated.

          Playground is open, let's play! _ Alessio

          2.11.09

          L-system [test]

          Working on the same principles of my last post I realized a new script based on self-learning system.
          The concept is easy. A simple L-system start to grown randomly from a seed, and after every generation it try to touch other L-systems, that are growing from different one seed.

          [edit]
          I forgot to explain some aspects. In this script singles L-system recive a feedback from others, because configuration of every generation depend on configuration of previous one.
          Unlike my previous script there isn't only one final perfect configuration, but infinity ones... because every random event of system "A" affects other systems in next generation, thus itself in following one.
          [/edit]


          Option Explicit
          ' Script written by Alessandro Zomparelli
          ' alessandro.zomparelli@gmail.com
          ' http://alessandrozompa.altervista.org/
          ' Script version domenica 1 novembre 2009 14.40.18

          Call Main()
          Sub Main()
          'picking seed points
          Dim arrSeed, arrSub
          ReDim arrSeed(0)
          arrSeed(0)=Rhino.GetObjects("pick seed points",1)

          'defining number of branch
          Dim dblBrN
          dblBrN=Rhino.GetInteger("number of branches",2,1)

          'defining number of branch generation
          Dim dblBranch
          dblBranch=Rhino.GetInteger("number of branch generation",3,1)
          ReDim Preserve arrSeed(dblBranch)

          Dim arrData, dblVote, arrVote
          ReDim arrData(dblBranch), arrVote(0)

          'defining number of generations and amount of mutation between following generations
          Dim dblGen, dblMut, strLine
          dblGen=Rhino.GetInteger("set number of generations",100,2,10000)
          dblMut=Rhino.GetReal("set mutation value",2,0.1,100)

          Call Rhino.EnableRedraw(False)

          'starting evolution system
          Dim i,j,z,k,y,m,a

          Dim dblDis, arrDist, strC1, strC2
          ReDim arrDist(0)

          'generation of different layers
          Dim strL1: strL1="lines"
          Call Rhino.AddLayer(strL1)

          'evaluation of distance between seed points for a better L-System scale
          dblDist=Rhino.Distance(Rhino.PointCoordinates(arrSeed(0)(0)),Rhino.PointCoordinates(arrSeed(0)(1)))
          For i=0 To ubound(arrSeed(0))
          For j=0 To ubound(arrSeed(0))
          If i<>j Then
          If Rhino.Distance(Rhino.PointCoordinates(arrSeed(0)(i)),Rhino.PointCoordinates(arrSeed(0)(j)))<>0 Then
          arrSeed(i)=arrSub
          End If
          arrData(i)=arrSub
          For j=0 To ubound(arrSeed(i))
          arrData(i)(j)=array(0,array(0,0,0),array(0,0,0),dblDis)
          Next
          Next


          For z=0 To dblGen-1
          Call Rhino.Print(int(z*100/(dblGen-1))&"%")
          For i=1 To dblBranch
          'generation of branches
          For j=0 To ubound(arrSeed(i-1))

          For y=0 To dblBrN-1
          'defining vector scattering direction
          arrData(i)(j*(dblBrN)+y)(2)=array(arrData(i)(j*(dblBrN)+y)(1)(0)+dblMut*(dblGen-z)/dblGen*(rnd-rnd),arrData(i)(j*(dblBrN)+y)(1)(1)+dblMut*(dblGen-z)/dblGen*(rnd-rnd),arrData(i)(j*(dblBrN)+y)(1)(2)+dblMut*(dblGen-z)/dblGen*(rnd-rnd))

          'propotional scaling factor
          arrData(i)(j*(dblBrN)+y)(2)=Rhino.VectorUnitize(arrData(i)(j*(dblBrN)+y)(2))
          arrData(i)(j*(dblBrN)+y)(2)=Rhino.VectorScale(arrData(i)(j*(dblBrN)+y)(2),arrData(i)(j*(dblBrN)+y)(3)/i/3)
          arrSeed(i)(j*(dblBrN)+y)=Rhino.CopyObject(arrSeed(i-1)(j),arrData(i)(j*(dblBrN)+y)(2))

          'drawing last generation
          If z=dblGen-1 Then
          strLine=Rhino.AddLine(Rhino.PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)))
          Call Rhino.objectlayer(strLine,strL1)
          If i=1 Then
          strC1=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i-1)(j)(3)/20/i)
          Else
          strC1=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i-1)(j)(3)/40/(i-1))
          End If
          strC2=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i)(j*(dblBrN)+y)(3)/40/i)
          Call Rhino.AddLoftSrf(array(strC1,strC2))
          If i=1 Then
          Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i-1)(j)(3)/20/i)
          'Else
          ' Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i-1)(j)(3)/30/(i-1))
          End If
          Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),arrData(i)(j*(dblBrN)+y)(3)/40/i)
          Call Rhino.DeleteObjects(array(strC1,strC2))
          End If

          'for display colors of different generation
          'If z/10=int(z/10) Then
          ' strLine=Rhino.AddLine(Rhino.PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i)(j*2+y)))
          ' Call Rhino.ObjectColor(strLine, RGB(255-255/dblGen*z,0,255/dblGen*z))
          'End If
          Next
          Next

          'recordn data of individual branches
          For j=0 To ubound(arrSeed(i-1))
          For y=0 To dblBrN-1
          a=-1
          'defining votes for branches generated from different seeds
          For k=0 To ubound(arrSeed(i-1))
          If int(k/(dblBrN^(i-1)))<>int(j/(dblBrN^(i-1))) Then
          For m=0 To dblBrN-1
          a=a+1
          ReDim Preserve arrVote(a), arrDis(a+1)
          'defining a vote for element efficiency
          arrVote(a)=(Rhino.Distance(PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i-1)(k)))-Rhino.Distance(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),Rhino.PointCoordinates(arrSeed(i-1)(k))))
          'recording distance from detected points
          arrDist(a)=Rhino.Distance(PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i-1)(k)))
          Next
          End If
          Next
          dblVote=Rhino.Max(arrVote)

          'recording dist for nearest point
          For k=0 To ubound(arrVote)
          If arrVote(k)=dblVote Then
          arrDist(a+1)=arrDist(k)
          End If
          Next

          'recording data about the new element
          If dblVote>arrData(i)(j*(dblBrN)+y)(0) Then
          arrData(i)(j*(dblBrN)+y)(0)=dblVote
          arrData(i)(j*(dblBrN)+y)(1)=arrData(i)(j*(dblBrN)+y)(2)
          arrData(i)(j*(dblBrN)+y)(3)=arrDist(a+1)
          End If
          Next
          Next

          Next
          For i=1 To dblBranch
          Call Rhino.DeleteObjects(arrSeed(i))
          Next

          Next
          Call Rhino.LayerVisible(strL1,False)
          Call Rhino.EnableRedraw(True)
          Call Rhino.Print("100%")

          End Sub

          31.10.09



          Like human body and ant colony, later generations reduce scattering for a more accurate configuration. Studying countless generations, the family should reach the target specified.

          Specifying different rules for worms should be possible to study emergent systems whose behavior is not predictable from the study of individual elements, like organic complexity L-systems.




          Option Explicit
          ' Script written by Alessandro Zomparelli
          ' alessandro.zomparelli@gmail.com
          ' http://alessandrozompa.altervista.org/
          ' Script version venerdì 30 ottobre 2009 16.59.03

          Call Main()
          Sub Main()
          Dim strTarget, arrFamily, arrTarget, n
          n=Rhino.GetInteger("set number elements",20,2,100)

          ReDim arrFamily(n), arrTarget(2)
          arrFamily(0)=Rhino.GetObject("pick starting point")
          'check for starting point
          If Rhino.IsPoint(arrFamily(0))=False Then
          Exit Sub
          End If
          strTarget=Rhino.GetObject("pick target point")
          'check for target point
          If Rhino.IsPoint(strTarget)=False Then
          Exit Sub
          End If
          arrTarget=Rhino.PointCoordinates(strTarget)

          Dim dblDist
          dblDist=Rhino.Distance(Rhino.PointCoordinates(arrFamily(0)),arrTarget)

          'defining number of generations and amount of mutation between following generations
          Dim dblGen, dblMut
          dblGen=Rhino.GetInteger("set number of generations",100,2,1000)
          dblMut=Rhino.GetReal("set mutation value",2,0.01,100)

          'defining an array to collect data about different family
          Dim arrData
          ReDim arrData(n)

          'defining a value for better step-element of different family
          Dim dblVote

          'defining counters, array for data recording and an array for scattering direction
          Dim i, j, arrVect, arrVect0, arrRec
          ReDim arrVect(2), arrVect0(2), arrRec(1)

          'defining random data for first generation
          For j=1 To n
          arrVect=array(rnd-rnd,rnd-rnd,rnd-rnd)
          dblVote=0
          arrData(j)=array(dblVote,arrVect)
          Next

          Dim strLine

          'starting evolution system
          For i=0 To dblGen-1

          Call Rhino.EnableRedraw(False)
          'starting family growning
          For j=1 To n
          arrRec=arrData(j)
          arrVect0=arrRec(1)
          arrVect=array(arrVect0(0)+dblMut*(dblGen-i)/dblGen*(rnd-rnd),arrVect0(1)+dblMut*(dblGen-i)/dblGen*(rnd-rnd),arrVect0(2)+dblMut*(dblGen-i)/dblGen*(rnd-rnd))
          arrVect0=Rhino.VectorUnitize(arrVect)
          arrVect=Rhino.VectorScale(arrVect0,dblDist/n)
          'generation of new element of the family
          arrFamily(j)=Rhino.CopyObject(arrFamily(j-1),arrVect)
          strLine=Rhino.AddLine(Rhino.PointCoordinates(arrFamily(j-1)),Rhino.PointCoordinates(arrFamily(j)))
          Call Rhino.ObjectColor(strLine, RGB(255-255/dblGen*i,0,255/dblGen*i))

          If Rhino.Distance(Rhino.PointCoordinates(arrFamily(j)),arrTarget)arrRec(0) Then
          arrData(j)=array(dblVote,arrVect)
          End If
          End If
          Next
          For j=1 To n
          Call Rhino.DeleteObject(arrFamily(j))
          Next

          Call Rhino.EnableRedraw(True)
          Next

          End Sub

          12.6.09

          tens.tesselation


          Here some other surface tesselation experiments, I have already posted the first one but now it is fixed (no more Rhino.command!). Anyway there is not a relevant physics accuracy in both scripts, take them just as tries.





















          ' CASE 10 SURFSTARS

          Sub surfstars(strsurf,upar,vpar)
          upar = upar*5
          vpar = vpar*5
          Dim dblheight : dblheight = rhino.getreal("extrusion height?" ,.05)
          If isnull (dblheight) Then Exit Sub
          Dim attrpoint : attrpoint = rhino.getobject("point attractor",1)
          Dim arrpoint : arrpoint = rhino.PointCoordinates(attrpoint)
          Call rhino.enableredraw(False)
          Dim i, j
          Dim uvalone(1), uvaltwo
          Dim arrUone, arrVone
          Dim arrpttemp, pointtwo
          Dim pt1, pt2, pt3, pt4, pt5, pt6, PT7, Pt8, pt5b, pt6b, pt7b, pt8b, ptc1, ptc2, pt1c, pt2c, pt3c, pt4c
          ReDim matrix (upar, vpar)
          Dim tempt
          arruone = array (0,0)
          arrVone = array (0,0)
          Dim strcell, arrct, arrptsurf, arrnorm, arrnormend,arrnormenddown, arrline, strcell2
          Dim pt1b,pt2b,pt3b,pt4b
          If rhino.IsSurface(strsurf) Then
          arruone = rhino.surfacedomain(strsurf,0)
          arrVone = rhino.surfacedomain(strsurf,1)
          End If
          For i=0 To upar
          For j=0 To vpar
          uvalone(0)= ((arruone(1)-arruone(0))/upar)*i
          uvalone(1) = ((arrVone(1)-arrVone(0))/vpar)*j
          arrpttemp = rhino.EvaluateSurface(strsurf,uvalone)
          matrix(i,j) = arrpttemp
          Next
          Next
          Dim oct1, oct2, oct3, oct4, arrlinehuge, arrel1, arrel2, arrdom, midplane, midcircle1, midcircle2
          Dim rn, crvtemp, dbldist

          For i = 1 To upar-1
          For J=0 To vpar-1
          pt1 = matrix(i,j)
          pt2 = matrix(i+1,j)
          pt3 = matrix(i,j+1)
          pt4 = matrix(i+1,j+1)
          pt5 = array( (pt1(0)+pt2(0))/2,(pt1(1)+pt2(1))/2,(pt1(2)+pt2(2))/2)
          pt6 = array( (pt2(0)+pt4(0))/2,(pt2(1)+pt4(1))/2,(pt2(2)+pt4(2))/2)
          pt7 = array( (pt3(0)+pt4(0))/2,(pt3(1)+pt4(1))/2,(pt3(2)+pt4(2))/2)
          pt8 = array( (pt1(0)+pt3(0))/2,(pt1(1)+pt3(1))/2,(pt1(2)+pt3(2))/2)
          ptc1 = array( (pt5(0)+pt7(0))/2,(pt5(1)+pt7(1))/2,(pt5(2)+pt7(2))/2)
          ptc2 = array( (pt6(0)+pt8(0))/2,(pt6(1)+pt8(1))/2,(pt6(2)+pt8(2))/2)
          dbldist = rhino.Distance(ptc1,arrpoint)
          dbldist = Rhino.Log10 (dbldist*3)
          If dbldist<1 dbldist ="">
          pt5b = array( pt5(0)+(ptc1(0)-pt5(0))/(dbldist),pt5(1)+(ptc1(1)-pt5(1))/(dbldist),pt5(2)+(ptc1(2)-pt5(2))/(dbldist))
          pt6b = array( pt6(0)+(ptc2(0)-pt6(0))/(dbldist),pt6(1)+(ptc2(1)-pt6(1))/(dbldist),pt6(2)+(ptc2(2)-pt6(2))/(dbldist))
          pt7b = array( pt7(0)+(ptc1(0)-pt7(0))/(dbldist),pt7(1)+(ptc1(1)-pt7(1))/(dbldist),pt7(2)+(ptc1(2)-pt7(2))/(dbldist))
          pt8b = array( pt8(0)+(ptc2(0)-pt8(0))/(dbldist),pt8(1)+(ptc2(1)-pt8(1))/(dbldist),pt8(2)+(ptc2(2)-pt8(2))/(dbldist))

          Call rhino.AddCurve(array(pt1,pt2,pt4,pt3,pt1),1)
          strcell = rhino.addcurve(array(pt1,,pt5b, pt2,pt6b, pt4, pt7b,pt3,pt8b,pt1),1)

          arrct = array( (pt4(0)+pt1(0))/2,(pt4(1)+pt1(1))/2,(pt4(2)+pt1(2))/2)
          arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
          arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
          arrnorm = rhino.VectorScale(arrnorm, dblheight)
          arrnormend = rhino.PointAdd(arrct,arrnorm)
          arrnormenddown = rhino.Pointsubtract(arrct,arrnorm)
          crvtemp = rhino.AddSrfPt(array(pt1,arrnormend,pt5b))
          crvtemp = rhino.AddSrfPt(array(pt5b,arrnormend,pt2))
          crvtemp = rhino.AddSrfPt(array(pt2,arrnormend,pt6b))
          crvtemp = rhino.AddSrfPt(array(pt6b,arrnormend,pt4))
          crvtemp = rhino.AddSrfPt(array(pt4,arrnormend,pt7b))
          crvtemp = rhino.AddSrfPt(array(pt7b,arrnormend,pt3))
          crvtemp = rhino.AddSrfPt(array(pt3,arrnormend,pt8b))
          crvtemp = rhino.AddSrfPt(array(pt8b,arrnormend,pt1))

          crvtemp = rhino.AddSrfPt(array(pt1,arrnormenddown,pt5b))
          crvtemp = rhino.AddSrfPt(array(pt5b,arrnormenddown,pt2))
          crvtemp = rhino.AddSrfPt(array(pt2,arrnormenddown,pt6b))
          crvtemp = rhino.AddSrfPt(array(pt6b,arrnormenddown,pt4))
          crvtemp = rhino.AddSrfPt(array(pt4,arrnormenddown,pt7b))
          crvtemp = rhino.AddSrfPt(array(pt7b,arrnormenddown,pt3))
          crvtemp = rhino.AddSrfPt(array(pt3,arrnormenddown,pt8b))
          crvtemp = rhino.AddSrfPt(array(pt8b,arrnormenddown,pt1))
          arrline = rhino.AddLine(pt1,pt2)
          arrdom=rhino.CurveDomain(arrline)
          midplane=rhino.CurvePerpFrame(arrline,arrdom(0))
          midcircle1=rhino.AddCircle(midplane,0.09)
          midplane=rhino.CurvePerpFrame(arrline,arrdom(1))
          midcircle2=rhino.AddCircle(midplane,0.09)
          Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
          arrline = rhino.AddLine(pt3,pt4)
          arrdom=rhino.CurveDomain(arrline)
          midplane=rhino.CurvePerpFrame(arrline,arrdom(0))
          midcircle1=rhino.AddCircle(midplane,0.09)
          midplane=rhino.CurvePerpFrame(arrline,arrdom(1))
          midcircle2=rhino.AddCircle(midplane,0.09)
          Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))

          Next
          Next

          Call rhino.deleteobject(strsurf)
          Call rhino.EnableRedraw(True)
          End Sub



          '----- CASE 11 SURFholetens -----


          Sub SURFholetens (strsurf,upar,vpar)
          Dim dblheight : dblheight = rhino.getreal("elements height?" ,.6)
          Dim attrpoint : attrpoint = rhino.Getobject("attractor",1)
          Dim attrpointcoord : attrpointcoord= rhino.pointcoordinates(attrpoint)
          If isnull (dblheight) Then Exit Sub
          Call rhino.enableredraw(False)
          Dim i, j
          Dim uvalone(1), uvaltwo
          Dim arrUone, arrVone
          Dim arrpttemp, pointtwo
          Dim pt1, pt2, pt3, pt4, pt5, pt6, pta, ptb, ptc,ptd
          ReDim matrix (upar, vpar)
          Dim tempt
          arruone = array (0,0)
          arrVone = array (0,0)
          Dim arrct, arrptsurf, arrnorm, arrnormend, arrline
          If rhino.IsSurface(strsurf) Then
          arruone = rhino.surfacedomain(strsurf,0)
          arrVone = rhino.surfacedomain(strsurf,1)
          End If
          For i=0 To upar
          For j=0 To vpar
          uvalone(0)= ((arruone(1)-arruone(0))/upar)*i
          uvalone(1) = ((arrVone(1)-arrVone(0))/vpar)*j
          arrpttemp = rhino.EvaluateSurface(strsurf,uvalone)
          matrix(i,j) = arrpttemp
          Next
          Next
          Dim dbldist
          Dim strquad1,strcentr,strquad2,strcell, midline,midcircle1,midcircle2, midplane,arrdom,ptmid
          Dim midp1,midpoint1
          Dim midp2,midpoint2
          For i = 1 To upar-2 Step 3
          For J=0 To vpar-2 Step 4
          pt1 = matrix(i,j)
          pt2 = matrix(i+1,j)
          pt3 = matrix(i+2,j+1)
          pt4 = matrix(i+1,j+2)
          pt5 = matrix(i,j+2)
          pt6 = matrix(i-1,j+1)
          pta = matrix(i-1,j)
          ptb = matrix(i+2,j)
          ptc = matrix(i+2,j+2)
          ptd = matrix(i-1,j+2)
          strcell = rhino.AddCurve(array(pt6,pt1,pt2,pt3,pt4,pt5,pt6),2)
          strquad1 = rhino.AddCurve(array(pta,ptb,ptc,ptd,pta),1)
          Call rhino.objectcolor(strquad1,rgb(255,255,255))'bianco
          arrct = array( (pt6(0)+pt3(0))/2,(pt6(1)+pt3(1))/2,(pt6(2)+pt3(2))/2)
          arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
          dbldist=rhino.Distance(arrct,attrpointcoord)
          dbldist = Rhino.Log10 (dbldist*7)
          If dbldist < dbldist ="">
          strcell = rhino.scaleobject(strcell,arrct,array(0.95/dbldist,0.95/dbldist,0.95/dbldist))
          arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
          arrnorm = rhino.VectorScale(arrnorm, dblheight)
          arrnormend = rhino.PointAdd(arrct,arrnorm)
          arrline = rhino.AddLine(arrct,arrnormend)
          Call rhino.AddLoftSrf(array(strcell,strquad1))
          strquad2=rhino.copyObject(strquad1,arrct,arrnormend)
          strcentr=rhino.copyobject(strcell,arrct,arrnormend)
          Call rhino.addloftsrf(array(strquad2,strcentr))
          Call rhino.addloftsrf(array(strquad2,strquad1))
          Call rhino.addloftsrf(array(strcentr,strcell))

          midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
          midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
          ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
          midpoint1=rhino.addpoint(midp1)
          midpoint2=rhino.AddPoint(midp2)
          Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
          midp1=rhino.PointCoordinates(midpoint1)
          midp2=rhino.PointCoordinates(midpoint2)
          midline = rhino.AddLine(midp1,midp2)
          arrdom=rhino.CurveDomain(midline)
          midplane=rhino.CurvePerpFrame(midline,arrdom(0))
          midcircle1=rhino.AddCircle(midplane,dblheight/6)
          midplane=rhino.CurvePerpFrame(midline,arrdom(1))
          midcircle2=rhino.AddCircle(midplane,dblheight/6)
          Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
          Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
          Next
          Next
          For i = 2.5 To upar-2 Step 3
          For J=2 To vpar-2 Step 4
          pt1 = matrix(i,j)
          pt2 = matrix(i+1,j)
          pt3 = matrix(i+2,j+1)
          pt4 = matrix(i+1,j+2)
          pt5 = matrix(i,j+2)
          pt6 = matrix(i-1,j+1)
          pta = matrix(i-1,j)
          ptb = matrix(i+2,j)
          ptc = matrix(i+2,j+2)
          ptd = matrix(i-1,j+2)
          strcell = rhino.AddCurve(array(pt6,pt1,pt2,pt3,pt4,pt5,pt6),2)
          strquad1 = rhino.AddCurve(array(pta,ptb,ptc,ptd,pta),1)
          Call rhino.objectcolor(strquad1,rgb(255,255,255))'bianco
          arrct = array( (pt6(0)+pt3(0))/2,(pt6(1)+pt3(1))/2,(pt6(2)+pt3(2))/2)
          arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
          dbldist=rhino.Distance(arrct,attrpointcoord)
          dbldist = Rhino.Log10 (dbldist*7)
          If dbldist < dbldist ="">
          strcell = rhino.scaleobject(strcell,arrct,array(0.95/dbldist,0.95/dbldist,0.95/dbldist))
          arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
          arrnorm = rhino.VectorScale(arrnorm, dblheight)
          arrnormend = rhino.PointAdd(arrct,arrnorm)
          arrline = rhino.AddLine(arrct,arrnormend)
          Call rhino.AddLoftSrf(array(strcell,strquad1))
          strquad2=rhino.copyObject(strquad1,arrct,arrnormend)
          strcentr=rhino.copyobject(strcell,arrct,arrnormend)
          Call rhino.addloftsrf(array(strquad2,strcentr))
          Call rhino.addloftsrf(array(strquad2,strquad1))
          Call rhino.addloftsrf(array(strcentr,strcell))
          midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
          midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
          ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
          midpoint1=rhino.addpoint(midp1)
          midpoint2=rhino.AddPoint(midp2)
          Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
          midp1=rhino.PointCoordinates(midpoint1)
          midp2=rhino.PointCoordinates(midpoint2)
          midline = rhino.AddLine(midp1,midp2)
          arrdom=rhino.CurveDomain(midline)
          midplane=rhino.CurvePerpFrame(midline,arrdom(0))
          midcircle1=rhino.AddCircle(midplane,dblheight/6)
          midplane=rhino.CurvePerpFrame(midline,arrdom(1))
          midcircle2=rhino.AddCircle(midplane,dblheight/6)
          Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
          Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
          Next
          Next
          Call rhino.DeleteObject(strsurf)
          Call rhino.EnableRedraw(True)
          End Sub
           
          slot ไม่มี ขั้น ต่ํา slot bet ฟรี เครดิต slotxo วอ เลท mario xo slot fifa55 memberbet net ดู ทีวี ออนไลน์ fifa55 fifa55 แจก เครดิต ฟรี ลูกค้า เก่า slot เติม true wallet 2in2 slot 168 สล็อต xo xo slot 369 bet365 เครดิต ฟรี ราคา รู เล็ ต 918kiss ฝาก ไม่มี ขั้น ต่ํา 918kiss v 66 slot สล็อต xo สล็อต xo เกม 918 เครดิต ฟรี ฟีฟ่า 555 สมัคร fifa55n caesar88 slot slot456 1168slot slot vip789 slot ฟรี เครดิต 100 simple play slot slotxoth888 z8 เครดิต ฟรี fifa55 ดู บอล slot hd xo ฝาก ผ่าน วอ เลท 918kiss me เครดิต ฟรี sbobet fifa555 สมัคร fifa55kick slot4u joker 777slotxo 918kiss free slot crown รวม เกม ไฮโล download คา สิ โน 918 สล็อต xo คิง ค อง สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 สล็อต เอก โอ slot 22 live22 ฝาก ถอน ไม่มี ขั้น ต่ำ มาเฟีย 123 เครดิต ฟรี demo slotxo fifa55 เข้า ไม่ ได้ star slot777 superslot999 xo fifa555god golden hoyeah slots 99slotxo mafia ฟรี เครดิต 50 slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา fifa55casino slotxo x มาเฟีย เครดิต ฟรี 50 สมัคร ใหม่ เครดิต ฟรี สมัคร เอเย่นต์ fifa55 ava slot ลิ้ ง slotxo เครดิต ฟรี otp ไฮโล หน้า ลาย คา สิ โน ออนไลน์ สุด ฮิต 168galaxy pgslot fifa55 reward 9gspin เครดิต ฟรี slot kiss xoclub99 สล็อต live22 joker hunter 888 slot 888 v1 918kiss demo slot007 เครดิต ฟรี แจก เครดิต ฟรี 918kiss slot s9 mega888 ไม่มี ขั้น ต่ํา ufa365 ดี ไหม pantip win555 เครดิต ฟรี วิธี สมัคร databet88 แทง ไฮโล w12ww slot fifa55 rmcc slot xo168 joker slot 555 918kiss ท รู วอ เลท 2019 fifa slot สมัคร fifa9999 สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss โอน ผ่าน วอ เลท slot ฝาก 1 บาท fifa555 truemoney เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด slot king99 ฟีฟ่า 55 ยู วงกลม รู เล็ ต เล่น สล็อต โร ม่า fifa55 prime สมัคร ฟรี ไม่ ต้อง ฝาก slotxo56 slot678 bbet99 เครดิต ฟรี สมัคร mega888 ฟรี เครดิต ยิง ปลา ฝาก ขั้น ต่ํา 50 เกม สล็อต slotxo ตัวแทน live22 slotxo 24 เติม เงิน live22 live22 โปร โม ชั่ น pussy888 bettopfive mafia เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สมัคร fifa55 ฝาก ขั้น ต่ํา 50 88 slotxo สล็อต กระดาน รู เล็ ต 918kiss android slot777 เครดิต ฟรี เกม แบ ล็ ค แจ็ ค 8bet slot slot free credit no deposit slotxoslotxo super slot mm88bet ดี ไหม เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ 2020 mega888 slot slotxo ถอนเงิน slot ฝาก 50 slot mario 246 slot slot567 joker slot 2020 slot ฝาก 1 บาท slot game 888 555slot คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ joker ไม่มี ขั้น ต่ํา slot bmx slotxo เกม ไฮโล y8 grand918kiss ติดต่อ ufa365 ไฮโล ออนไลน์ ดี ที่สุด เครดิต ฟรี ใหม่ ๆ fifa55 คา สิ โน free slot online joker slot โปร 100 slotxo qs 918kiss เว็บ ไหน ดี ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท เครดิต ฟรี 3000 slot joker69 slotv9 live22 ab24hr slot33 หน้า เว็บ xo เล่น ไพ่ โป ก เกอร์ ออนไลน์ ที่ไหนได้ เงิน จริง เล่น แบ ล็ ค แจ็ ค 928bet ฟรี เครดิต สมัคร เอ เย่ น vegus168 รู เล็ ต กติกา joker123 slotxo fifa slot ฝาก 1 บาท ฟรี slotjoker888 คา สิ โน ออนไลน์ สุด ฮิต เล่น แบ ล็ ค แจ็ ค ออนไลน์ win slot 888 win918kiss slotxo กับ joker อัน ไหน ดี กว่า mm88bet sport w88 โป๊กเกอร์ slotxo 22th เล่น ไพ่ แบ ล็ ค แจ็ ค เกม สล็อต โร มา slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo246 double slot ufa800 บา คา ร่า slot joker 888 fifa55 ทดลอง เล่น fifa55 ฝาก ขั้น ต่ํา 50 918kiss แจก เครดิต ฟรี 100 xo slot007 ถอนเงิน slotxo 11 live22 ฝาก 1 บาท slot v online joker slot ฝาก 10 รับ 100 super slot999 slot joker168 เกม สล็อต ไลน์ 22 slot8888 2xl slotxo สล็อต xo191 xe88 เครดิต ฟรี joker gaming โปร โม ชั่ น สมัคร เว็บ บอล fifa55 เข้า slotxo เว็บ แทง บอล fifa55 wbc slot slot1234 918 โจ๊ก เกอร์ 888 mega 168 slot slot999 live22 918kissauto v4 boxing slot xovip slot jackpotxo เติม เงิน mafia เครดิต ฟรี ไม่ ต้อง แชร์ cherry slot leo slot เครดิต ฟรี ไม่มี เงื่อนไข royalbet777 slotxo ถอนเงิน slotxo69thai slot live22 ฝาก 10 รับ 100 download 918kiss ล่าสุด xo slot cafe slotxo ฝาก 20 ได้ 100 918 live22 roma slot joker เครดิต ฟรี ไม่ ต้อง แชร์ 918 slot009 crown slot vegus168 line สมัคร fifa55 ฝาก ขั้น ต่ํา 50 mafia เครดิต ฟรี ไม่ ต้อง แชร์ slotxo pro slotxo 169 mafiaslot88 เว็บ พนัน บอล ดี ที่สุด 2021 918 แจก เครดิต ฟรี game slot 789 3xslot w12ww slot 1thslot free spin slot 168 galaxy slot ไฮโล หน้า ลาย mafia ไม่ ต้อง แชร์ ฝาก วอ เลต ไม่มี ขั้น ต่ํา www 77up me v9 slot เกม ออนไลน์ ไฮโล playslot slotxo s9 ไพ่ โป๊ก เก อ slotxo 11 918kiss ตู้ ม้า py69 slot ไฮโล ขึ้น คู่ golden hoyeah slot databet88 agent live222 slot เครดิต ฟรี ทํา เทิ ร์ น น้อย mafia ฟรี เครดิต ไม่ ต้อง แชร์ เกม สล็อต 22 slotxo1 fifa55 เครดิต ฟรี 200 เว็บ kiss918 slotxo 91 slotx0 joker456 เครดิต ฟรี ไฮโล apk xo เล่น หน้า เว็บ vegus168ag 918kiss slot cq9 สล็อต xo ทุน น้อย slot5g joker สล็อต 999 คา สิ โน ออนไลน์ ฟรี ไม่ ต้อง ฝาก สล็อต xo888 slotxopug slot2pig 918kiss z joker89auto สล็อต xo เติม วอ ล เล็ ท slot cat888 เว็บ พนัน ออนไลน์ ป๊อก เด้ง 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 เครดิต ฟรี 20 918kiss star v2 slotxo lucky god2 30 ฟรี เกม สล็อต เอ็กซ์ โอ slotxo พัน ทิป fifa555 สมัคร slotxo โปร 1 บาท เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ slot237 ไฮโล เกม jokerslot99 เครดิต ฟรี โป ก เกอร์ เล่น scr99th 918kiss ถอนเงิน xo 77up app slotxo xo slotxo tz เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด ไฮโล น้ำยาเคมี ไพ่ เงิน จริง ไม่ ต้อง ฝาก allbet24hr เข้า slotxo slot1688 35 slot รีโมท ไฮโล lucky slotxo slot48 fifa55 palace 918kiss allbet asia 918kiss me slot paypal gom88bet mafia เครดิต ฟรี 50 slotxo77 joker slot 9669 918 คือ slotxo 2xl slotxo member slotxo mafia ไฮ โล 918kissvip สล็อต xo เติม เงิน ผ่าน wallet เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ 69slot สล็อต xo วอ ล เลท แทง ไฮโล ขั้น ต่ํา 10 บาท โกง ไฮโล มือ ถือ เว็บ kiss918 slot joker ฝาก 20 รับ 100 ไพ่ แบ ล็ ค แจ็ ค ไฮโล ออนไลน์ เดิมพัน ขั้น ต่ำ 10 ไฮโล ส กิ ด 3 หน้า ราคา 918kissscr888 joker ถอน ไม่มี ขั้น ต่ํา 168slotxo auto รู เล็ ต ออนไลน์ fifa55 prime สล็อต xo191 fifa55 bet slotxo 888 เครดิต ฟรี ไม่มี เงื่อนไข 2020 fifa55st lucky live22 q9win ฟรี เครดิต slotgame88 win three card fifa55 line slotxo ฝาก ผ่าน วอ เลท สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท agent scr888 slotxo สล็อต jokerslot69 เครดิต ฟรี slotxo ดี ไหม fifa55 โปร โม ชั่ น slotxo 2pigs slot joker ฝาก ไม่มี ขั้น ต่ํา mafia66 เครดิต ฟรี slotxo 1234 mvegus1682 memberbet net slotv9 slotxo โปร สล็อต ค่าย pg บ่อน ไฮโล ออนไลน์ slotxopug fifa555 สมัคร xo24hr 918kiss team โป๊กเกอร์ ได้ เงิน จริง joker เติม true wallet ไม่มี ขั้น ต่ํา slotxo โปร วัน เกิด ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท happy slotxo88 slot22 918kiss ถอนเงิน ไฮโล ขั้น ต่ำ gaming world slotxo ฝาก วอ เลต ไม่มี ขั้น ต่ํา 888 เครดิต ฟรี เล่น โป ก เกอร์ ออนไลน์ ได้ เงิน จริง slot 311 jokerslot888 slot99 gclub 918 www555 เครดิต ฟรี ไฮโล 11 ไพ่ โป๊กเกอร์ 168 xo ถอนเงิน live22 slot xe88 slot333 vegus168 win ทาง เข้า เว็บ fifa555 918kiss 1234 333be โค๊ ด ฟรี 133 99slotxo slotxo pro slot ฝาก 19 ได้ 100 44th slot ทาง เข้า ฟีฟ่า 55 มือ ถือ 918 allbet 918kiss android เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ ufa slot เครดิต ฟรี win win slot slot super 456 slot god xo slotxo เติม true wallet ไม่มี ขั้น ต่ํา game slot 66 168 slotxo เล่น xo slot 918kiss ios ล่าสุด สมัคร เครดิต ฟรี 200 เครดิต ฟรี ถอน ไม่ อั้น agent scr888 ufa365 com ได้ เลย ค่ะ joker ไม่มี ขั้น ต่ํา fifa55 goal queen slot slotgame88 slotxo เล่น บน เว็บ สล xo sg เครดิต ฟรี fifa55st slot casino free ไลน์ slotxo slotxo 11 918kiss อัน ไหน ดี สมัคร ฟีฟ่า slot ฟรี เครดิต 100 สล็อต xo joker รู เล็ ต กด เอง mm88bet sport & casino ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ำ slot555 สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ถอนเงิน ได้ betg8 slot xo slot1234 โจ๊ก 888 slot joker xo q9win ฟรี เครดิต slot online ไม่มี ขั้น ต่ํา สล็อต xo 88 เครดิต ฟรี 18 บาท fifa55club slotxo game 66 www fifa55hd com ลูกค้า เข้า ผ่าน google chrome นะ คะ 918kiss ฝาก 19 918kiss เครดิต ฟรี ไม่ ต้อง แชร์ 9118kiss การ เล่น blackjack slotxo ufa24h register สล็อต เอก โอ www fifa8888 สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก win88 เครดิต ฟรี ลิ้ ง slotxo slot488 918kiss อั่ ง เปา tggame9999 สล็อต 777 คา สิ โน ออนไลน์ สล็อต xo 899 โปร โม ชั่ น slot fifa55 gold โป้ ก เกอร์ empire slot 918kiss ถอนเงิน ไพ่ โป๊ก เก อ joker slot 1688 สมัคร 300 ฟรี 300 48 slotxo mega888 ไม่มี ขั้น ต่ํา 918kissbet เครดิต ฟรี ไม่ ทํา เทิ ร์ น slo xo queen slot joker เล่น ไพ่ ได้ เงิน จริง 2019 ฝาก 10 รับ 100 xo slot bet fifa55 truemoney ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ slotxo 9999 xo ผ่าน เว็บ joker god slot tiger slot mm88bet ดี ไหม 918kiss 333 918kiss ฝาก 50 ฟรี 50 slotxo lucky god2 30 ฟรี เกม slotxo html5 slot machine joker slot เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss เวอร์ชั่น ล่าสุด slotxo 24 slotxo 10 บาท ไพ่ โป ก เกอร์ xo slot 77 slotxo ลอง เล่น slotxo88v8 spk slotxo ไพ่ poker สล็อต xo 007 918kiss all game fifa55 สมัคร 918kiss team โปร โม ชั่ น fifa55 kiss918 allbet สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 fifa55 bet ไพ่ แค ง เล่น ได้ เงิน จริง slot4you joker โบนัส 100 auto ป๊อก เด้ง คา สิ โน ออนไลน์ เว็บ พนัน เล่น ฟรี ได้ เงิน จริง slotxogame365 918 เครดิต ฟรี slot ฝาก 9 บาท ได้ 100 เครดิต ฟรี ทํา เทิ ร์ น super918kiss slot megaways ไฮโล ขึ้น คู่ vegus168 memberbet slot1234pg slotxo thxo fifa5555vip slotxo567 mega888 download pc คา สิ โน ออนไลน์ ดั ม มี่ b2y เครดิต ฟรี xo ผ่าน เว็บ เครดิต ฟรี auto godslotxo 918kisstm the joker slot free เครดิต game slot 66 ผล บอล เสมือน จริง ฟีฟ่า 20 slotxo ค่าย ไหน ดี fifa555 truemoney joker123 allbet asia fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก 191slot mafia ฟรี เครดิต ไม่ ต้อง ฝาก เกม สล็อต live22 slot48xo 918kiss เครดิต ฟรี ไม่ ต้อง แชร์ spin 777 สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 member slotxo slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา สล็อต xo ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด enjoy918kiss เล่น แบ ล็ ค แจ็ ค xo69 slot 918kiss 168 เกม ออนไลน์ ไฮโล slotxo aec999 8bet slot fifa55 คา สิ โน win918kiss 918kiss android android ฝาก 1 บาท ฟรี 50 ผล บอล เกม เสมือน จริง slotxo g slotxo123 mafia888 slot slot ฝาก 10 บาท ได้ 100 vegus168 line slot 20 รับ 100 g9 slot joker สล็อต xo slotxo fun bn slotxo slotxo ฝาก ท รู วอ เลท slot555 เกม พา รวย slotxo game 66 ฟรี เครดิต ไม่ ฝาก ไม่ แชร์ อา ม่า 918 fifa55st สมัคร สมาชิก vegus168 joker gaming 888 สล็อต ออนไลน์ ฝาก ถอน ไม่มี ขั้น ต่ำ 918kissauto v4 เล่น poker เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ ฟรี เครดิต 100 ถอน ได้ gclub ฟรี 500 ฟรี เครดิต เดือน เกิด bet365 เครดิต ฟรี fifa55 prime slotxo ผ่าน วอ เล็ ต สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ เกม สล็อต roma ไพ่ โป ก เก อ เครดิต ฟรี สมัคร ใหม่ ลิงค์ 918kiss lucky slot 888 slotxo true wallet ไม่มี ขั้น ต่ํา slot 2019 slotxo เติม วอ เลต ไพ่ แบ ล็ ค แจ็ ค pantip 918kissauto เครดิต ฟรี 600 918 slot สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ กระดาน รู เล็ ต เครดิต ฟรี 10 slotxo casino สมัคร เครดิต ฟรี 2020 918kiss ถอน ไม่มี ขั้น ต่ํา xo slot 899 vegus168 member net live22 ฝาก 10 รับ 100 slotxo 66 free เครดิต สล็อต live22 เครดิต ฟรี 18 slot joker123 auto เก้า เก คา สิ โน โป ก เกอร์ เล่น slot ฟรี heng888 เครดิต ฟรี สล็อต xo easy ฝาก 1 บาท ฟรี 50 บาท slotxo line ufa800 ฝาก เงิน 918kiss2you คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ slotv9 joker kiss918 me slotxo mo sagame66 ดี ไหม ผล บอล เสมือน จริง ฟีฟ่า 20 ava slot 918kiss kiss slotxo ฝาก น้อย slot ฟรี โปร โม ชั่ น 918kiss เกม ไฮโล ออนไลน์ 168slot vegus168 memberbet net chklogin slotxo web เข้า เล่น สล็อต xo ช่อง 77up เครดิต ฟรี 918kiss กลุ่ม สาธารณะ slotxo asia 777 joker xo th 69slot ป๊อก เด้ง ออนไลน์ เงิน จริง pantip 918kiss me slot007 joker joker slot เครดิต ฟรี win88 เครดิต ฟรี slot finn คา สิ โน ออนไลน์ สุด ฮิต เล่น สล็อต live22 joker123slotthai 918kiss เครดิต ฟรี 2019 แอ พ เกม ไฮโล ได้ เงิน จริง สล็อต xo โมบาย สล็อต โจ๊ก เกอร์ xo joker โบนัส 100 auto slotxogame365 เว็บ xo ตัวแทน live22 99slot slot 9 slot ฝาก 100 ฟรี 100 สล็อต ออนไลน์ 22 35 slot joker slotxo เติม เงิน วอ ล เล็ ต joker spy slot xo slot 777 918kiss me sbobet ฟรี เครดิต 2020 เครดิต ฟรี 1234 โปร โม ชั่ น slot joker123 โปร โม ชั่ น เครดิต ฟรี สมัคร ง่าย fifa5555 ดี ไหม ฝาก 1 บาท ฟรี ทาง เข้า ฟีฟ่า 8888 mafia ไม่ ต้อง แชร์ เครดิต ฟรี 200 ไม่ ต้อง แชร์ ไฮโล คือ slotxo 10 บาท joker123 slotxo slotxo online roma slot joker ค่าย slotxo slotxo blue slotxo แตก บ่อย รู เล็ ต สายฟ้า slotxo 08 slotxo ปิด ปรับปรุง black jack ออนไลน์ เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด ฟรี เครดิต 918kiss 918 ฟรี เครดิต ww เครดิต ฟรี bbet99 เครดิต ฟรี ฟีฟ่า 55 ยู slot slot online joker123 เข้า slotxo xo slot 777 poker ได้ เงิน จริง สมัคร 918kiss ฟรี joker918kiss ufa800 ไฮโล ufa800 สูตร 678slot สล็อต xo168 sbobet ฟรี เครดิต 2020 เครดิต ฟรี มาเฟีย 555 เข้า fifa555 โจ๊ก เกอร์ ฝาก ถอน ไม่มี ขั้น ต่ํา เข้า vegus168 1xbet slot slotxo 007 xo live22 kiss918th ึึ 77 up slotxo demo เกม ออนไลน์ ไฮโล kiss918 th slotgame666 slotxo ฝาก 19 บาท รับ 100 ไฮโล ลูกเต๋า fruit slot slotxo ที่ ดี ที่สุด 918kiss allbet asia slot free https www slot12 com member slotxo fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก slot2p เครดิต ฟรี 50 12ww slot slotxo qs เครดิต ฟรี pussy888 live22 joker รู เล็ ต ออนไลน์ 8richd เครดิต ฟรี เครดิต ฟรี ใช้ บัตร ประชาชน ถอนเงิน fifa55 ไม่ ได้ สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ ส ล๊ อ ต xo1234 slotxo member 8bet slot slotcafe โจ ก เกอร์ 888 77up ดี ไหม 918kiss ios ล่าสุด คา สิ โน xo super flip slot slot 2499 ทาง เข้า fifa55m ึึ 77up เครดิต ฟรี สมัคร ง่าย ไฮโล ทอย ลูกเต๋า slot live22 วง ล้อ คา สิ โน 918kiss ถอน ไม่มี ขั้น ต่ํา ไฮโล ออนไลน์ เดิมพัน ขั้น ต่ำ 10 เครดิต ฟรี 133 บาท xo วอ เลท ไฮโล สูง ต่ํา 918kiss me ฟรี เครดิต ไฮโล เกม เครดิต ฟรี ไม่ ต้อง ทํา เทิ ร์ น 918 ฝาก ถอน ออ โต้ 918kiss ฟรี 100 เเ ป น ไฮโล 918kissstar fifa55 link คา สิ โน ป๊อก เด้ง ออนไลน์ fortune 918kiss โปร โม ชั่ น slotxo vegus168 lucky slot golden hoyeah โจ ก เกอร์ 888 หน้า เว็บ xo ไฮโล ออนไลน์ ถ่ายทอด สด ace slot รู เล็ ต 918kissauto v4 slot viva สล็อต xo 99 ไฮ โล 918ki royal 918kiss joker god slot joker slot555 918kiss เครดิต ฟรี ล่าสุด gclub ฟรี 500 vegus168 line slot c ไฮโล ส กิ ด 3 หน้า เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ fifa55club slot1234 918kiss w168club เครดิต ฟรี 918 ฝาก ไม่มี ขั้น ต่ํา เว็บ เล่น บา ค่า ร่า ufa800 w168club เครดิต ฟรี เครดิต 50 2 slots สล็อต 77 คา สิ โน ออนไลน์ joker ฝาก ไม่มี ขั้น ต่ำ 918 คือ xo ฝาก ผ่าน วอ เลท www918kiss super big win ฝาก 500 ได้ 500 slotxo คือ fifa55casino slot bmx slotxo สมัคร เครดิต ฟรี 200 mario slot ไพ่ แบ ล็ ค แจ็ ค ออนไลน์ ไฮโล ฟรี เครดิต mafia เครดิต ฟรี 50 918kiss แตก ง่าย jokerslot999 ab24hr 918kiss scr888 บอล เสมือน จริง สด fifa55 ดู ทีวี ออนไลน์ slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ joker slot555 slot 2019 สมัคร 300 ฟรี 100 slot ฝาก 1 บาท เครดิต ฟรี ไม่ แชร์ ไม่ ฝาก 918kiss 333 slotxo ฝาก 20 บาท รับ 100 รู เล็ ต กติกา slotjoker888 24th slotxo fifa555 สมัคร 888 slot th เครดิต ฟรี 918kiss กลุ่ม สาธารณะ ้ ค ร ดิ ต ฟรี slotxo 777 th slot ฝาก 50 mvegus1682 memberbet net main rg888 slot ฟรี ไม่ ต้อง แชร์ slot vip 888 slot ฝาก ถอน ไม่มี ขั้น ต่ำ slotxo ro slot game 666 ufa800 ดาวน์โหลด slotxo ฝาก 20 รับ 100 fm99bet เครดิต ฟรี slot1234 918 slotxo ฝาก ผ่าน วอ เลท slot 918kiss4you grand kiss918 918kiss แจก อั่ ง เปา สล็อต ฝาก อัตโนมัติ เสือ มังกร ออนไลน์ แอ พ ไฮโล เจ้ามือ joker slot 456 www777 slot sunbet slot ฝาก 10 รับ 100 slot เครดิต sahacker fifa55 hot 918kiss แจก อั่ ง เปา สล อ ต เอก โอ slotxo1 slotxo111 joker xo auto slotxo line slotxo pgslot ฝาก slotxo slotxo777th slotxo 289 35 slotxo slotxo exp ค่าย slotxo เข้า สล็อต 2pigsslot live22 slotxo โปร 10 รับ 100 slotxo blue 168galaxy pgslot ค่าย xo www slotxo88 com home 1688 slot v1 jackpotxo joker หน้า ลูกเต๋า ไฮโล slotxo แจก เครดิต ฟรี 50 สมัคร fifa55u slot mega888 เว็บ xo slot https www slot12 com member slotxo top slot เว็บ slotxo แจ็ ค พอ ต xo 918 ฟรี เครดิต บอล เสมือน จริง ฟีฟ่า คูปอง เครดิต ฟรี xovip slot xo slot 123 ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ gold slot168 v2 เกม ไฮโล ฟรี 918kiss d joker ฝาก ถอน ไม่มี ขั้น ต่ํา fifa55 line playlive88 slotxo tss911 เครดิต ฟรี winner555 เครดิต ฟรี http mvegus 1682 memberbet net fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 2019 เครดิต ฟรี ไม่ ต้อง แชร์ 918 now918kiss 2pj slot ผล บอล เกม เสมือน จริง joker true wallet ไม่มี ขั้น ต่ำ สล็อต 888 คา สิ โน ออนไลน์ slot ฝาก 10 kiss918 เครดิต ฟรี เล่น ฟรี ถอน ได้ โปร สล็อต ค่าย pg slot game 888 sg game เครดิต ฟรี 918kiss เวอร์ชั่น เก่า ฟรี ไม่ ต้อง ฝาก ก่อน สมัคร fifa55u สล็อต xo11 ufa365 เข้า ไม่ ได้ slotking88 gclub8 line slotxo dark mm88bet com deposit slotxo678 ufa365 สมัคร joker slotxo 24th 7slot 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ monkey slot mm88bet sport เครดิต ฟรี 888 rg888 slot 918kiss ฝาก ผ่าน ท รู วอ เลท www777 slot playstar slot slot red สล็อต 77 คา สิ โน ออนไลน์ slotxo game 88 slotxo ท รู วอ ล เล็ ต fifa5599 918kiss slots เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สล็อต xo เติม true wallet ไม่มี ขั้น ต่ํา slotxo aec999 เข้า เล่น xo slotxo lucky god 2 slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก สล็อต xo11 slot4u joker slot โปร ทุน น้อย pg slot โปร ทุน น้อย เครดิต ฟรี 999 scr888 sn888 fifa55 palace เว็บ 77up ฝาก ถอน 918kiss joker456 เครดิต ฟรี ไฮโล ลูกคู่ tss911 เครดิต ฟรี 918kiss ระบบ ออ โต้ เกม xo slot gclub ฟรี 918kiss download 2019 pc เครดิต ฟรี 918 คา สิ โน 918kiss sagame66 ดี ไหม slot99 slot ฝาก 19 บาท ได้ 100 slot red สล็อต xo แตก ง่าย live777slot slotxo เติม true wallet ไม่มี ขั้น ต่ํา ufa365 ดี ไหม pantip 77up online slot แจก เครดิต ฟรี skywind slot slotxo ถอน ขั้น ต่ํา 100 slot tiger ถอนเงิน xo เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ lucky slotxo
          แทง บอล ฟรี เครดิต| heng666 เครดิต ฟรี| sa casino vip| เว ป slotxo| บอล ออนไลน์ 55| บา คา ร่า ใน โทรศัพท์| vegus168 memberbet net| sa gaming 86| ไลน์ ufabet888| บีบ บา คา ร่า| mm88 ufa| ufabet ฝาก ถอน เอง| เอเย่นต์ ยู ฟ่า| 885ufabet| ทาง เข้า ufabet787| sa game th| สมาชิก ใหม่ แจก เครดิต ฟรี| ufabet แนะนำ เพื่อน| ป๊อก เด้ง เงิน จริง ฟรี เครดิต| สมัคร ufabet1688| ufa678 จ่าย จริง ไหม| ufabet บา คา ร่า| ufa800 สมัคร| บา คา ร่า sa gaming 66| ทาง เข้า ufa365| sa gaming 86| ufabet88| รับ เครดิต ฟรี ไม่ ต้อง ฝาก| atm slot เครดิต ฟรี| roma เครดิต ฟรี| สมาชิก ใหม่ รับ ฟรี เครดิต| ufa7777| แทง บอล ออนไลน์ ไม่มี ขั้น ต่ำ| แทง บอล 24| ufabet ขั้น ต่ำ 100| www123fazcom| สมัคร เอ เย่ น ufa| โปร แจก เครดิต ฟรี| วิธี ติด ตั้ง slotxo| ดาวน์โหลด slotxo pc| ดาวน์โหลด jokerxoth| mm88vivo| คูปอง ufabet| ufabet16888| ทาง slotxo| sa gaming 07| เครดิต ถอน ได้| 168ufabet| mm88icom| เครดิต ฟรี ได้ จริงๆ| ww ufa777| ufabet one| sa gaming คือ| gaming vip| เล่น แทง บอล| ufabet10| mafia88 เครดิต ฟรี ไม่ ต้อง ฝาก| ฟรี เครดิต ถอน ได้| slotxo ฝาก 50| เปิด ยูสเซอร์ ฟรี เครดิต 2020| ทาง เข้า ufa8888| เว็บ ยู ฟ่า bet| ทาง เข้า fifa55u| xo slot เครดิต ฟรี| ยิง ปลา เครดิต ฟรี 150| sbo222 ล่าสุด|