• <form id="0ii4UX"><span id="0ii4UX"><option id="0ii4UX"></option></span></form>

      <form id="0ii4UX"></form>

          <form id="0ii4UX"><legend id="0ii4UX"></legend></form>
          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
           
          https www slot12 com member slotxo แอ พ เกม ไฮโล ได้ เงิน จริง joker สล็อต 888 joker456 เครดิต ฟรี สล็อต xo easy เอ เย่ น 918kiss slot1234 joker www fifa55hd com ลูกค้า เข้า ผ่าน google chrome นะ คะ best slotxo ึึ 77up ไฮโล 2014 super flip slot slot2499 เข้า ฟีฟ่า 555 ace333 เครดิต ฟรี fifa55 คา สิ โน เกม ไฮโล pc 168 สล็อต xo xo บน เว็บ joker123 true wallet ไม่มี ขั้น ต่ํา 918kiss ฝาก ขั้น ต่ํา 50 บาท fifa55 sport casino slot 66 chomikuj fifa55n ไฮโล ขึ้น คู่ 918kiss ถอน ไม่มี ขั้น ต่ํา โปร โม ชั่ น joker q9win slot slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา mafia เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ บ้าน บอล fifa55 918kiss ฝาก ขั้น ต่ํา 50 บาท 77up now mas888 ฟรี เครดิต สมัคร ฟีฟ่า 888 www918kiss สล็อต xo123 slotxo ทุน น้อย คา สิ โน ออนไลน์ ดั ม มี่ fifa55 ฝาก ขั้น ต่ํา 50 slot thai888 spin slot คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ monster joker slot 918kiss all game thai918kiss joker123 ท รู วอ ล เล็ ต joker ฝาก ถอน ไม่มี ขั้น ต่ํา mega888 malaysia เติม slotxo r35 xo slot ไฮโล 2014 สลอด เอก โอ xo thai888 918kiss ท รู วอ ล เล็ ต หาเงิน จาก คา สิ โน สล็อต xo easy 918kiss แจก เครดิต ฟรี ไม่ ต้อง แชร์ avenger98 เครดิต ฟรี slotxo เล่น ผ่าน เว็บ เครดิต ฟรี ไม่ ต้อง ทํา เท ริน 918kiss แจก เครดิต ฟรี ไม่ ต้อง ฝาก winner55 ฟรี 100 winner555 เครดิต ฟรี เข้า เกมส์ สล็อต โจ ก เกอร์ 888 joker slot โปร โม ชั่ น ผล ฟุตบอล เสมือน จริง exp slotxo slotxo blue joker สล็อต 888 เครดิต ฟรี ไม่มี เงื่อนไข 2020 slot win 918kiss slotxo slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 xo ฝาก 10 รับ 100 918kiss line เครดิต ฟรี เล่น ได้ เลย slot ฝาก 15 ได้ 100 ไฮโล pantip bet365 เครดิต ฟรี 007slotxo slotxo เกม ไหน ดี g9 slot 2xl slotxo slotxo 24 th slotxo ฝาก 19 บาท fifa55u true sport 918kiss ท รู วอ เลท ufa slot เครดิต ฟรี 918kiss 918kiss th สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน fifa ทาง เข้า joker kiss 888 slot joker789 barney slots slotxo 777 th www 77up me slot 888 xs slotxo แอ พ 918kiss สมัคร เครดิต ฟรี 2019 joker456 เครดิต ฟรี 35 slot เล่น สล็อต live22 เล่น เกม สล็อต xo www fifa55hd com ลูกค้า เข้า ผ่าน google chrome นะ คะ 918kiss android android mafia191 เครดิต ฟรี slot online ไม่มี ขั้น ต่ํา mafia01 เครดิต ฟรี xo allbet slot1234 เครดิต ฟรี ไลน์ mm88bet king189 slot 918 เครดิต ฟรี databet88 ถอนเงิน 918kiss allbet asia 2pigjoker ไฮโล ออนไลน์ ได้ เงิน จริง ufa365 com ได้ เลย ค่ะ 918kiss ฝาก true wallet ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ mega888 malaysia joker ฝาก ไม่มี ขั้น ต่ำ การ เล่น blackjack ถอนเงิน xo 918kiss 1234 fifa55casino slotxo ผ่าน วอ เล็ ต mb slotxo เครดิต ฟรี ไม่ ต้อง แชร์ กติกา รู เล็ ต slot champion168 ฝาก 1 บาท ฟรี 50 บาท เครดิต ฟรี ทํา เทิ ร์ น น้อย 168galaxy slotxo 918kiss v1 สล็อต xo เติม true wallet ไม่มี ขั้น ต่ํา 918kissgrand ฝาก 10 รับ 100xo joker123 โปร โม ชั่ น แจก เครดิต ฟรี xo ufa365 ฝาก เงิน 918kisswallet หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ไม่ ฝาก ไม่ แชร์ slot9999 789 game slot joker123 ท รู วอ ล เล็ ต slot hd slot ฝาก 20 บาท รับ 100 slot easy royalbet777 สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ไฮโล ทอย ลูกเต๋า slot xo 999 slot joker โปร โม ชั่ น เครดิต ฟรี 10 slot168 ฟรี เครดิต สล็อต ฝาก อัตโนมัติ slot35 66 slot slot th slot joker xo บอล เสมือน จริง ฟีฟ่า รู เล็ ต สด 918kiss kiss 918kiss download 2019 pc slot joker168 xo slot cafe เว็บ 918 riches777 เครดิต ฟรี joker123 slotxo 918kiss ฟรี 100 สล็อต xo11 ฝาก เงิน live22 918kiss allbet asia 918kiss ออนไลน์ joker slot 1688 บา คา ร่า mclub joker123 ฟรี เครดิต ไม่ ต้อง ฝาก live777slot 918kiss ผ่าน เว็บ กีฬา เสมือน จริง slotxo98 slot168 ฟรี เครดิต ไฮโล ของ joker slot 2020 918kiss เครดิต ฟรี ล่าสุด สล็อต xo โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ํา โป เกอร์ slotxo88v8 slot ไม่มี ขั้น ต่ำ all slot auto slot joker789 ฝาก 1 บาท ฟรี 50 บาท slot เติม true wallet ไม่มี ขั้น ต่ํา 918kiss download ios mario xo slot slotxo ฝาก วอ ล เลท ไฮโล 3d สล็อต 1234 ฝาก 10 รับ 100 918kiss เครดิต ฟรี 2019 77up club slotxo 2xl slot 888 casino xo ฟรี เครดิต slot1234 918kiss คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ wbc slot slotxo 1988 live22 1234 slotxo แจก เครดิต ฟรี 2020 fifa555bonus โหลด แอ พ คา สิ โน โจ๊ก เกอร์ ฝาก ถอน ไม่มี ขั้น ต่ํา ฟรี เครดิต 200 slot joker mobile ฟรี เครดิต 50 ไม่ ต้อง ฝาก 77up app แทง บอล ฟีฟ่า fifa55 prime siam99 slot สล็อต xo เล่น ฟรี ufa365 หนัง xo ฝาก 10 รับ 100 dollar star slot demo slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 สล็อต xo191 918kiss888 เล่น เสือ มังกร ออนไลน์ slotxo lucky god 2 g9 slot slot777 เครดิต ฟรี จุดอ่อน รู เล็ ต ไฮโล สูง ต่ำ สล็อต 999 คา สิ โน ออนไลน์ lord918kiss เล่น xo slot 1xslot เล่น sbobet ฟรี slot z 198 kiss download สล็อต xo ฟรี ไพ่ แค ง เครดิต ฟรี slot 20 รับ 100 official918kiss เว็บ เล่น สล็อต xo โจ ก เกอร์ 888 333be โค๊ ด ฟรี 133 slotxo โปร 10 รับ 100 slotxo 96 vegus168ag 918kiss free 918kiss ถอน ไม่มี ขั้น ต่ํา โปร โม ชั่ น joker xo ฟรี เครดิต slot 2019 เครดิต ฟรี winner55 fifa55 แจก เครดิต ฟรี ลูกค้า เก่า 918kiss ฟรี 1000 เล่น poker เงิน จริง www fifa55bet com เครดิต ฟรี epic joker ไม่มี ขั้น ต่ํา สล็อต สมัคร ง่าย slotxo ออนไลน์ slotxo ที่ ดี ที่สุด download 918kiss ล่าสุด slot1234 918 เกม ไฮโล y8 918kiss v7 win918kiss fifa55 ฝาก 50 เข้า ฟีฟ่า 55 safari gold megaways joker slot 888 slot2pig เติม เกม สล็อต สมัคร mega888 ฟรี เครดิต super slot999 slotxo fun open365 ฟรี เครดิต ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท 918kissslots testament slot เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 winner55 เครดิต ฟรี ไม่ ต้อง ฝาก game 777 918 แจก เครดิต ฟรี slotxo ฟรี เครดิต 300 เกมส์ ไฮโล joker slot 666 joker slot 8899 เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ slotxo51 918dowload สล็อต xo วอ ล เล็ ต joker123 slotxo slotcafe fifa55 รับ โบนัส ฟรี 200 บาท ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท ab24hr สล็อต xo11 black slot เครดิต sahacker ฟรี หาเงิน จาก คา สิ โน อั่ ง เปา 918kiss joker slot 888 slotxo 331 คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ aec999 เครดิต ฟรี twin79 เครดิต ฟรี slotxo 4u wbc slot slotxo ออนไลน์ 9slot สล็อต xo ท รู วอ ล เล็ ต jackpotxo joker sco88 เครดิต ฟรี 133 ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 v9 slot ทาง เข้า 55 goldenslot777 ฝาก ไม่มี ขั้น ต่ำ ถอน ไม่มี ขั้น ต่ํา live22 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo เติม เงิน wallet โปร slot leo slot สล็อต xo 99 เกม ไฮโล pc เครดิต ฟรี 1234 live22 ฟรี เครดิต slotxo allbet asia com scr888 สมัคร ฟรี เครดิต แทง ไฮโล ออนไลน์ 918kissbet b2y เครดิต ฟรี 918 ออ โต้ แจก เครดิต ฟรี slotxo the joker slot สล็อต xo777 lucky slotxo slotxo234 shangri la slot game คา สิ โน 918 fifa55 memberbet 918kiss เวอร์ชั่น ใหม่ slotxo 9 11 ไฮโล 918kiss เครดิต ฟรี 100 สล็อต xo777 88 slotxo v6 slotxo ที่ แตก บ่อย slot win 2pj slot slotxo v9 918kisskingdom vip slotxo ที่ ดี ที่สุด slot auto golden 678 slot slotxo ทั้งหมด แทง บอล ฟีฟ่า 55 918kiss เครดิต ฟรี สล็อต เอ็กซ์ โอ slot xe88 ไฮโล ขั้น ต่ำ 5 บาท เล่น xo ผ่าน เว็บ slotxo69 slotxo 2p เข้า fifa55 ยิง ปลา ไม่มี ขั้น ต่ำ ไพ่ เงิน จริง slot1234pg เครดิต ฟรี pussy888 slotxo สล็อต mafia88 slot slotxo09 เทิ ร์ น 1 เท่า fortuna slots joker918kiss สล็อต 888 คา สิ โน ออนไลน์ คอ ล เซ็นเตอร์ fifa555 918kiss android android สล็อต xo easy 2in2 เครดิต ฟรี slot slotxo slot918 slot game lobby ไฮโล ออนไลน์ w88 bn slotxo 918kaya เครดิต ฟรี ขอรับ เครดิต ฟรี ครับ 918kiss ฝาก slotxo vip88 live22 ฝาก 1 บาท ฟรี 99 สล็อต xo191 918kiss monkey slotxo แจก 1000 fifa555fc ไฮโล ออนไลน์ ดี ที่สุด 86slot tss911 ฟรี เครดิต ฝาก 100 ฟรี 100 2020 918kissauto download เครดิต ฟรี 918 slotxo ท รู วอ ล เล็ ต เข้า slotxo mega 168 slot 918kiss demo slotxo คือ mvegus1682 memberbet net pgthai888 918kiss ระบบ ออ โต้ 918kisswallet slotxo ฝาก 10 รับ 100 ล่าสุด slot joker ฟรี เครดิต 48 slotxo 55slot joker 8richd เครดิต ฟรี ฟีฟ่า 888 slotxo sl skywind slot 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo แจก เครดิต ฟรี 50 slot million ฟีฟ่า 777 เกม ไฮโล y8 xo หน้า เว็บ สมัคร สมาชิก vegus168 joker โบนัส 100 auto slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 big win 777 918kiss4you 918kaya เครดิต ฟรี เว็บ เล่น บา ค่า ร่า ufa800 joker ถอน ไม่มี ขั้น ต่ํา www fifa777 com fin888 เครดิต ฟรี 918 ฝาก ไม่มี ขั้น ต่ํา หมุน วง ล้อ slotxo ไพ่ โป๊กเกอร์ slot god xo slot epic win infinity 888 slot ช่อง 77up 918kiss ฝาก ท รู วอ เลท jokerslot888 fifa55st 918kiss55 เว็บ ตรง 918kiss slotxo ฝาก ท รู วอ เลท 918kiss android ไฮโล สมจริง live22 xo slotxo demo slotxo777 rg888 slot โปร โม ชั่ น ยิง ปลา 35 slotxo slot เครดิต ฟรี 50 บาท mario xo slot slotxo 91 สล็อต 888 คา สิ โน ออนไลน์ slot ฝาก ไม่มี ขั้น ต่ํา ace slot money mouse slot slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ สล็อต สมัคร ง่าย sbobet เครดิต ฟรี slotxo199 fifa slot joker slot 77 slotxo 289 happy slotxo88 slot casino free ถอนเงิน xo เติม เกม slotxo เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด เครดิต ฟรี ไม่ ต้อง แชร์ fifa55na slot hacker godslotxo สลอด เอก โอ แทง รู sp918kiss ด ค ร ดิ ต ฟรี 918kiss ฝาก ไม่มี ขั้น ต่ํา slotxo 191 สล็อต xo1668 ฟรี เครดิต 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 888 slotxo รีโมท ไฮโล 9118kiss slots v ถอนเงิน xo ไฮโล 3d 918 เครดิต ฟรี 100 ถอน ได้ 2019 slotxo 2xl แบ ล็ ค แจ็ ค ไพ่ 1234 live22 918kiss auto joker slot ฝาก ไม่มี ขั้น ต่ํา 918kiss ล่าสุด mega888 ไม่มี ขั้น ต่ํา คอ ล เซ็นเตอร์ fifa555 คา สิ โน xo winner555 เครดิต ฟรี คูปอง เครดิต ฟรี slot th r35 xo slot 918kiss billion slot vip 888 ไพ่ แบ ล็ ค แจ็ ค ออนไลน์ slot bet ฟรี เครดิต joker123 ไม่มี ขั้น ต่ํา pay96 slot แอ พ ไฮโล เจ้ามือ ไฮโล 3d ufa365 s 007slotxo 3xbet เครดิต ฟรี joker123 ฟรี เครดิต ไม่ ต้อง ฝาก scr888th v5 ลิ้ ง slotxo 918kiss เวอร์ชั่น ใหม่ 918kiss team slotxo 10 รับ 100 bet365 เครดิต ฟรี gclub royal1688 ฟรี เครดิต slotxo vip88 mvegus1682 memberbet net fifa55 ลิ้ ง อั่ ง เปา สล็อต xo slotxo kiss918 www fifa55bet com แทง รู 918 ฝาก ไม่มี ขั้น ต่ํา เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 918kissauto download เว็บ แทง บอล fifa55 ไฮโล ออนไลน์ ได้ เงิน จริง spk slotxo vegus16 heng666 ฟรี เครดิต mafia เครดิต ฟรี 50 สล็อต xo24hr fifa55boom เครดิต ฟรี ไม่ แชร์ ไม่ ฝาก 24th slotxo slot 311 918kiss max โหลด แอ พ คา สิ โน slot king99 pg slot โปร โม ชั่ น fruit slot 918kiss ฟรี 200 ไฮโล ขึ้น คู่ 289 slotxo 48jk slot ทาง เข้า fifa888 best88 สมัคร 9x9slot 198 kiss download เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด siam slot 918kiss slot auto rmuaab555 เทิ ร์ น 1 เท่า เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ joker9889 fifa55fifa555 เครดิต ฟรี ถอน ไม่ จํา กัด 918 แจก เครดิต ฟรี p8slot โปร โม ชั่ น fifa55 slotxo โปร 10 รับ 100 198 kiss ฟรี เครดิต slot1988 joker true wallet ไม่มี ขั้น ต่ํา 918kiss bettopfive 48 slot slot 918 ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก slot8899 ไท เกอร์ คา สิ โน allbet slotxo joker123 vip slotxo 22th xo slot โปร ฝาก 10 บาท mafia เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ monster joker slot เครดิต ฟรี 18 บาท ฝาก วอ เลต ไม่มี ขั้น ต่ํา slotxo 1234 เล่น เกม สล็อต xo 918kiss เวอร์ชั่น ใหม่ slotxo โปร 10 รับ 100 slot vip slot joker เครดิต ฟรี www 77up me ึึ 77 up monster joker slot fruit slot slotxo ฝาก 10 joker slotxo 24th ไฮโล มี กี่ หน้า mega888 ไม่มี ขั้น ต่ํา mafia ไม่ ต้อง แชร์ slotxo เติม true wallet all slot slot million เกม ออนไลน์ xo xo slot cafe บอล เสมือน จริง สด สล็อต xo เติม เงิน ผ่าน wallet call ufa365 v2 ป๊อก เด้ง ขั้น ต่ำ 10 บาท samuraixo น้ํา ยา ส กิ ด ไฮโล slotxo ฝาก 9 บาท 918kiss download 2019 slotxo com sign in slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา 918kiss33 fifa55 bet 918kisskiss918 918thailand slotxo246 รู เล็ ต กด เอง slot ฝาก 20 บาท รับ 100 ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท slot ufa ไลน์ slotxo 1xbet slot slotxo allbet asia ไฮโล ฟรี slot 236 เข้า slotxo slot35 joker เครดิต ฟรี 50 joker slot 9889 rmuaab555 free allslot999 สล็อต xo 899 เล่น หน้า เว็บ slotxo slotxo pantip 918kiss ฝาก ไม่มี ขั้น ต่ํา ป๊อก เด้ง ขั้น ต่ำ 10 บาท ยู ส เท ส xo slot sanook888 คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ 918kiss บน pc ฝาก slotxo http slotxo xo คา สิ โน เครดิต ฟรี ป๊อก เด้ง แอ พ ไฮโล เจ้ามือ ไฮโล ขั้น ต่ำ 1 บาท เล่น แบ ล็ ค แจ็ ค ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ํา slotxo ฝาก 1 รับ 100 slotxo เกม xo thai888 slot true wallet ไม่มี ขั้น ต่ํา 918kissworld scr888 918kiss download ไฮโล ออนไลน์ มือ ถือ 198 kiss download fifa55 truemoney 918kiss all game สล็อต xo ฝาก ผ่าน true wallet betway เครดิต ฟรี mm88bet login เครดิต ฟรี ถอน ไม่ จํา กัด joker1919 gaming เครดิต sahacker ฟรี สมัคร live22 auto xo slot 191 ฝาก 100 ฟรี 100 slot joker ฝาก 20 รับ 100 เข้า เล่น fifa55 โจ ก เกอร์ 888 slotx0 918kiss v8 918 ฝาก ไม่มี ขั้น ต่ํา ไม่ ต้อง แชร์ สมัคร fifa55u mafia ฟรี เครดิต 50 slotxo88 download cq9 slots slotxo456 mm88bet ดี ไหม slot7777 fifa55 1234 slotjoker1234 ufa365 สมัคร slot168 เครดิต ฟรี ทำ เทิ ร์ น แอ พ คำนวณ รู้ เล็ ต sagame168th เครดิต ฟรี การ เล่น blackjack 928bet ฟรี เครดิต สมัคร mega888 ฟรี เครดิต ไฮโล เจ้ามือ ฟุตบอล เสมือน จริง saba rmuaab555 game slot 66 joker ฝาก ถอน ไม่มี ขั้น ต่ำ slotxo s9 slotxo 5g scr888 online casino ยิง ปลา ฝาก ขั้น ต่ํา 50 xo บน เว็บ สล็อต xo 1688 twin79 เครดิต ฟรี ไพ่ เสือ มังกร ออนไลน์ ไพ่ แบ ล็ ค แจ็ ค ทาง เข้า ff55 best slotxo เกมส์ สล็อต ออนไลน์ ไพ่ แบ ล็ ค แจ็ ค ออนไลน์ w12ww slot เว็บ ฟีฟ่า 555 bonus slotxo c8 slot kiss918 allbet เว็บ ตรง 918kiss 918kiss ฝาก ท รู วอ เลท databet88 agent game slotxo 888 slot th kiss918 me slot999 xo สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท แทง รู slot4you http mvegus 1682 memberbet net สมัคร เครดิต ฟรี 100 หมุน วง ล้อ ออนไลน์ joker123slotthai สมัคร สมาชิก fifa55 คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ yakuza slot avenger98 เครดิต ฟรี mafia999 slot vegus168ag 918kiss 1234 2pigsslot live22 slotxo69th หาเงิน จาก คา สิ โน slotxo allbet slot12 เว็บ พนัน บอล fifa55 168bet slot 168 galaxy slot เครดิต ฟรี 600 ไม่ ฝาก ไม่ แชร์ 918kiss me สล็อต xo ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2020 scr99th 918kiss fifa55 gold asiagaming เกม ออนไลน์ ไฮโล 918kiss แจก เครดิต ฟรี ไม่ ต้อง แชร์ m918kiss คา สิ โน ออนไลน์ 918kiss slot god mm88bet login ไฮโล 3d แจก เครดิต ฟรี slotxo คา สิ โน ออนไลน์ 918kiss slot11 god slot joker คา สิ โน ออนไลน์ เสือ มังกร slotxo lucky god เล่น สล็อต roma ฟรี 1234 slot joker ฝาก ไม่มี ขั้น ต่ำ ทาง เข้า ฟีฟ่า 69 slotxocom รู เล็ ต เครดิต ฟรี super slot slotxo true wallet ไม่มี ขั้น ต่ํา slotxo 11 slotxo สล็อต เครดิต เล่น ฟรี ไฮโล ทอย ลูกเต๋า แอ พ การ พนัน ได้ เงิน จริง slotxo mafia r35 xo slot สมัคร ace333 ฟรี เครดิต slotxo 191 สล็อต xo 99 เครดิต ฟรี sbobet โกง ไฮโล มือ ถือ slotjoker99 ฝาก slotxo joker123 slotxo 918kiss ฝาก ขั้น ต่ำ 20 บาท ไพ่ แค ง เล่น ได้ เงิน จริง sanook xo slot 918kiss เครดิต ฟรี 100 ไฮโล คลาสสิค ออนไลน์ slotxo allbet asia slot898 apk slotxo อา ม่า 918 วง ล้อ คา สิ โน เล่น สล็อต xo ฟรี area789 slot slot xo168 ไฮโล ฝาก ระ ติ๊ บ slot bmx slotxo allbet24hr joker slot ฝาก ไม่มี ขั้น ต่ํา slot999 live22 เข้า เล่น fifa55 55 slot 918kiss 1234 ไฮโล png mbslot slotxo09 918kiss44 download ไฮโล ทอย ลูกเต๋า ไพ่ แบ ล็ ค แจ็ ค สล็อต xo 888 3win8 ฟรี เครดิต เล่น หน้า เว็บ http www slotxo com sbobet ฟรี เครดิต ล่าสุด 369 slotxo ufa800 บา คา ร่า xo ออ โต้ ฟีฟ่า 777 testament slot mafia928 เครดิต ฟรี รู เล็ ต สายฟ้า dafabet สมัคร ครั้ง แรก ฟรี เครดิต ทาง เข้า ff55 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 xs slotxo slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา เล่น เกม slot slot machine online สล็อต 888 คา สิ โน ออนไลน์ เครดิต ฟรี sbobet สมัคร ขอรับ เครดิต ฟรี 918kiss download ios เครดิต ฟรี ไม่ ต้อง ทํา เทิ ร์ น joker mobile slot slot s9 เสือ มังกร ออนไลน์ มือ ถือ เครดิต ฟรี 99 slot xo 777 999 super slot databet88 ดี ไหม slotxo web slotxo allbet asia com slotxo 22th สล็อต xo 99 joker slot 6996 สล็อต ยู ฟ่า 777 slot ฝาก ถอน ไม่มี ขั้น ต่ํา god slot fastbet98 เครดิต ฟรี slotxo blue 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 สล็อต xo เกม boxing slot safari gold megaways slotxo v9 joker spy slot ufa365 ดี ไหม pantip ยู ส เท ส slotxo 86slot slot 888 mafia ฟรี เครดิต ไม่ ต้อง ฝาก สูตร บา คา ร่า ufa800 easy slotxo slot2xl 918kiss ฝาก ถอน ไม่มี ขั้น ต่ำ ฝาก 10 รับ 100 slot slotxo 22th xo slot 311 เกม slotxo 35 slotxo ยิง ปลา ฝาก ขั้น ต่ํา 50 slotxo08 qtech slot simple play slot rg888 slot live22 ฝาก ถอน ไม่มี ขั้น ต่ํา แจก เครดิต ฟรี 918kiss slotxo สล็อต 2 slots สล็อต xo แตก ง่าย 2020 918kiss ios ล่าสุด slot ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 168slotxo auto ไฮโล เครดิต ฟรี g9slot simple play slot nuovo casino slotxo web slotxo สล็อต วงกลม รู เล็ ต โป ก เกอร์ ไพ่ เครดิต ฟรี ไม่ ต้อง ทำ เท ริน slot ใหม่ ฝาก xo slotxo mod apk เว็บ 918kiss 918thailand เครดิต ฟรี 50 ล่าสุด 168slotxo pantip เครดิต ฟรี ไม่ ต้อง โอน ก่อน slot เครดิต ฟรี 2020 fifa55net ฟีฟ่า 55 โปร slotxo เติม เงิน ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท big win 777 slotxo z gclub ฟรี เครดิต ไม่ ต้อง ฝาก 2019 918kiss star v2 slot567 slotxo45 918kiss ฝาก ถอน ออ โต้ slotxo แจก เครดิต ฟรี 50 บาท vegus168 ถอนเงิน casa98 ฟรี เครดิต สล็อต xo วอ ล เลท 918kiss เติม วอ ล เลท 918kiss club slot4k sg game เครดิต ฟรี slotxo ฝาก 9 รับ 100 slotxo blue สล็อต เอ็กซ์ โอ slotxo v1 winner555 เครดิต ฟรี เครดิต ฟรี 999 king77 slot หา เครดิต ฟรี ไม่ ต้อง แชร์ สล็อต สมัคร ง่าย เข้า เกมส์ สล็อต mega 168 slot เครดิต ฟรี ไม่ ต้อง ทํา เท ริน 246 slot เครดิต ฟรี 918 ไพ่ แค ง เล่น ได้ เงิน จริง 918kiss777 slot king99 สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก 2020 scrslot918 918kissthailand slot 888 winner99 เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา เกม สล็อต xo แตก ง่าย slotxoth888 fafafa2 918 ล่าสุด joker slotxo auto สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ slot machine free 12ww เครดิต ฟรี slotxo 189 เครดิต ฟรี ไม่ หลอก แชร์ เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด เเ ป น ไฮโล slotxo com sign in slotxo 168 vip sbu slot ร้องเรียน 918kiss slot star99 หา เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss d slotxo web ดู บอล fifa55 ฝาก 1 บาท ฟรี 99 slotxo 011 joker true wallet ไม่มี ขั้น ต่ำ คูปอง เครดิต ฟรี fifa55bonus royal เครดิต ฟรี joker ฝาก ถอน ไม่มี ขั้น ต่ํา โจ๊ก เกอร์ xo 35 slotxo slot cq9 ไม่ ฝาก ไม่ แชร์ joker89auto databet88 ดี ไหม 918kiss ฟรี 200 แอ พ 918kiss live22 ฟรี เครดิต ไม่ ต้อง ฝาก gclub royal1688 ฟรี เครดิต
          เกม เสี่ยง โชค ได้ เงิน จริง| ดั ม มี่ เล่น ได้ เงิน จริง| เกม ใหม่ 2019| เว็บ คา สิ โน ที่ ดี ที่สุด| เล่น เกม บา คา ร่า ออนไลน์| เกม ฟรี ได้ เงิน จริง 2020| ฟุตบอล 2020| โหลด เกม rov| ts911 ถอนเงิน ขั้น ต่ำ| เกม วางแผน| บา คา ร่า เครดิต ฟรี ถอน ได้| เวฟ บา ค่า ร่า| จี คลับ ออนไลน์| เกม หนอน กิน ขนม หวาน| สมัคร เว็บ บา คา ร่า ออนไลน์| เกม สนุกเกอร์| โปร โม ชั่ น โค้ด nsys777| ฟรี เครดิต คา สิ โน| รายการ ฟุตบอล คืน นี้| สหพันธ์ ฟุตบอล ระหว่าง ประเทศ| บา คา ร่า ขั้น ต่ํา 10 บาท| เกม mmorpg มือ ถือ| บา คา ร่า sexygame66| สมัคร สมาชิก รับ ฟรี ส ปิ น| ฟรี เครดิต บา คา ร่า| แชมป์ กีฬา 7 สี| เข้า คา สิ โน| จี 88888| วิธี สมัคร คา สิ โน ออนไลน์| เว็บ โหลด เกมส์ pc ฟรี เล่น ได้ 100| เกมส์ ต่อสู้ ผ่าน ด่าน| เกม สร้าง เมือง pc| ข่าว กีฬา ต่าง ประเทศ| ฟุตบอล หญิง| gclub 9999| ไพ่ป๊อก ออนไลน์| คํา สั่ง minecraft| เกม y3| บา คา ร่า g| บา คา ร่า เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน| ถ้วย ฟุตบอล| เล่น เกม ได้ เงิน จริง ไม่ ต้อง ฝาก| ฟุตบอล u19| ฟุตบอล 7 คน แชมป์ กีฬา 7 สี 2019| minecraft pc ล่าสุด| เว็บ เกม ออนไลน์ ได้ เงิน จริง| เกม บา คา ร่า เครดิต ฟรี| สมัคร คา สิ โน ออนไลน์ ฟรี เครดิต| เว็บ คา สิ โน ออนไลน์ ได้ เงิน จริง| บา คา ร่า ฝาก ถอน ไม่มี ขั้น ต่ํา| เล่น บา คา ร่า เว็บ ไหน ดี สุด| เว็บ คา สิ โน ออนไลน์ ฝาก ขั้น ต่ํา 100| ฟุตบอล วัน นี้ ฟุตบอล วัน นี้| sagame1688 pantip| คา สิ โน ฟรี เครดิต ไม่ ต้อง ฝาก| sagaming007| siamsport news| กีฬา แมน ยู| คา สิ โน่| คา สิ โน ออนไลน์ บน มือ ถือ| จี คลับ ออนไลน์| ออนไลน์ คา สิ โน| thaicasinoonline 3| เกม ออนไลน์ บน เว็บ| เครดิต ฟรี ได้ จริง| เกม y82|