<form id="qfxT0O"></form>
    1. <form id="qfxT0O"><legend id="qfxT0O"></legend></form>
      <wbr id="qfxT0O"><legend id="qfxT0O"></legend></wbr>

        <tr id="qfxT0O"><source id="qfxT0O"><option id="qfxT0O"></option></source></tr>
      1. <nav id="qfxT0O"><code id="qfxT0O"></code></nav>

          <sub id="qfxT0O"></sub>
          A playground for University of Bologna Students and a 6-days seminar about digital tools.

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


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

          Playground is open, let's play! _ Alessio

          2.11.09

          L-system [test]

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

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


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

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

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

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

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

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

          Call Rhino.EnableRedraw(False)

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

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

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

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


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

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

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

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

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

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

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

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

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

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

          End Sub

          31.10.09



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

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




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

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

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

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

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

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

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

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

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

          Dim strLine

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

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

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

          Call Rhino.EnableRedraw(True)
          Next

          End Sub

          12.6.09

          tens.tesselation


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





















          ' CASE 10 SURFSTARS

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

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

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

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

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

          Next
          Next

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



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


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

          midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
          midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
          ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
          midpoint1=rhino.addpoint(midp1)
          midpoint2=rhino.AddPoint(midp2)
          Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
          midp1=rhino.PointCoordinates(midpoint1)
          midp2=rhino.PointCoordinates(midpoint2)
          midline = rhino.AddLine(midp1,midp2)
          arrdom=rhino.CurveDomain(midline)
          midplane=rhino.CurvePerpFrame(midline,arrdom(0))
          midcircle1=rhino.AddCircle(midplane,dblheight/6)
          midplane=rhino.CurvePerpFrame(midline,arrdom(1))
          midcircle2=rhino.AddCircle(midplane,dblheight/6)
          Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
          Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
          Next
          Next
          For i = 2.5 To upar-2 Step 3
          For J=2 To vpar-2 Step 4
          pt1 = matrix(i,j)
          pt2 = matrix(i+1,j)
          pt3 = matrix(i+2,j+1)
          pt4 = matrix(i+1,j+2)
          pt5 = matrix(i,j+2)
          pt6 = matrix(i-1,j+1)
          pta = matrix(i-1,j)
          ptb = matrix(i+2,j)
          ptc = matrix(i+2,j+2)
          ptd = matrix(i-1,j+2)
          strcell = rhino.AddCurve(array(pt6,pt1,pt2,pt3,pt4,pt5,pt6),2)
          strquad1 = rhino.AddCurve(array(pta,ptb,ptc,ptd,pta),1)
          Call rhino.objectcolor(strquad1,rgb(255,255,255))'bianco
          arrct = array( (pt6(0)+pt3(0))/2,(pt6(1)+pt3(1))/2,(pt6(2)+pt3(2))/2)
          arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
          dbldist=rhino.Distance(arrct,attrpointcoord)
          dbldist = Rhino.Log10 (dbldist*7)
          If dbldist < dbldist ="">
          strcell = rhino.scaleobject(strcell,arrct,array(0.95/dbldist,0.95/dbldist,0.95/dbldist))
          arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
          arrnorm = rhino.VectorScale(arrnorm, dblheight)
          arrnormend = rhino.PointAdd(arrct,arrnorm)
          arrline = rhino.AddLine(arrct,arrnormend)
          Call rhino.AddLoftSrf(array(strcell,strquad1))
          strquad2=rhino.copyObject(strquad1,arrct,arrnormend)
          strcentr=rhino.copyobject(strcell,arrct,arrnormend)
          Call rhino.addloftsrf(array(strquad2,strcentr))
          Call rhino.addloftsrf(array(strquad2,strquad1))
          Call rhino.addloftsrf(array(strcentr,strcell))
          midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
          midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
          ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
          midpoint1=rhino.addpoint(midp1)
          midpoint2=rhino.AddPoint(midp2)
          Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
          midp1=rhino.PointCoordinates(midpoint1)
          midp2=rhino.PointCoordinates(midpoint2)
          midline = rhino.AddLine(midp1,midp2)
          arrdom=rhino.CurveDomain(midline)
          midplane=rhino.CurvePerpFrame(midline,arrdom(0))
          midcircle1=rhino.AddCircle(midplane,dblheight/6)
          midplane=rhino.CurvePerpFrame(midline,arrdom(1))
          midcircle2=rhino.AddCircle(midplane,dblheight/6)
          Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
          Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
          Next
          Next
          Call rhino.DeleteObject(strsurf)
          Call rhino.EnableRedraw(True)
          End Sub
           
          fifa55net เข้า สล็อต slot ยืนยัน ตัว ตน รับ เครดิต ฟรี slot joker ฝาก 20 รับ 100 เล่น poker slot free credit 2020 รู้ เล็ ต ตา ละ 5 บาท ทาง เข้า ฟีฟ่า 55u โปร live22 เว็บ แทง บอล fifa 2pj slot เข้า เล่น xo 888 โจ๊ก เกอร์ 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก slotxo ฝาก 20 demo slotxo mega888 ไม่มี ขั้น ต่ํา สล็อต xobkk slot dreamtech scr888 sn888 poker ไพ่ หน้า เว็บ xo live22 ไม่มี ขั้น ต่ํา xo slot xo slotwin888 fifa55 sport casino testament slot เล่น ไพ่ เงิน จริง slotxo pro slot ฝาก 50 ฟรี 50 ไฮโล ออนไลน์ มือ ถือ ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 slot ฟรี เครดิต 100 เครดิต ฟรี ไม่ ต้อง เทิ ร์ น slot ฝาก 19 บาท ได้ 100 joker ไม่มี ขั้น ต่ํา 918kiss เครดิต ฟรี 2020 slot ฟรี เครดิต 100 เครดิต ฟรี 20 ไม่ ต้อง แชร์ slotxo casino live22 joker slotxo เข้า ไม่ ได้ fifa ทาง เข้า fifa55 เข้า ไม่ ได้ 555 slotxo slotxo78 slotxoth22 slotxo jb ถอนเงิน xo https slotxo ไลน์ live22 ไฮโล ฝาก ระ ติ๊ บ pgthai888 918 ฝาก ไม่มี ขั้น ต่ํา ค ร ดิ ต ฟรี เล่น ได้ 200 ถอน ได้ 100 918kiss เว็บ ตรง 918kiss ฝาก ถอน slot hacker slot ฝาก 15 รับ 100 สมัคร joker689 slot mafia928 slot789th ถอนเงิน live22 winner5555 เครดิต ฟรี ไพ่ แบ ล็ ค แจ็ ค pantip slotxo123 เกมส์ ไฮโล ออนไลน์ เครดิต ฟรี joker caesar88 slot slotxo ฝาก 15 รับ 100 the joker slot red slotxo บ่อน ไฮโล ออนไลน์ joker888 เครดิต ฟรี ไฮ โล mafia66 เครดิต ฟรี scr888th game เว็บ พนัน บอล ดี ที่สุด 2021 โป เกอร์ 918kissbet wwwfifa69 call ufa365 v2 ไฮโล pantip เว็บ โจ๊ก เกอร์ 888 เครดิต ฟรี 20 ไม่ ต้อง แชร์ slotxo g ฟรี เครดิต 918kiss mvegus1682 memberbet net chklogin casa98 ฟรี เครดิต ไฮ โล ฝาก 1 บาท ฟรี 50 monkey slot เครดิต ฟรี 200 ไม่ ต้อง แชร์ โปร 918kiss joker123 ไม่มี ขั้น ต่ํา xo ผ่าน เว็บ gclub888 royal 918kisshero fifa55 มือ ถือ slotxo วอ เลท heng888 เครดิต ฟรี 918kiss เครดิต ฟรี บา คา ร่า mclub เครดิต ฟรี 600 slotxo king189 สมัคร ได้ เครดิต ฟรี fortune 918kiss ไฮโล ออนไลน์ 888 mm88bet สล็อต ฝาก slotxo เครดิต เล่น ฟรี สมัคร ฟรี เครดิต ไม่ ต้อง ฝาก 2020 เครดิต 50 slotxo 007 918kiss true wallet ไม่มี ขั้น ต่ํา ไพ่ โป ก เกอร์ เล่น ไพ่ เก้า เก ออนไลน์ ได้ เงิน จริง ฟีฟ่า 777 สมัคร เอเย่นต์ fifa55 ไฮโล สมจริง 918kiss2you 918kiss me แจก เครดิต ฟรี xo เล่น แบ ล็ ค แจ็ ค ออนไลน์ 48 xo slot โปร โม ชั่ น pgslot เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก 2020 winner99 เครดิต ฟรี ไม่ ต้อง ฝาก สล็อต xo 44 แอ พ แยก เสียง ไฮโล joker god slot fifa55v mafia เครดิต ฟรี 50 สมัคร แล้ว ได้ เครดิต ฟรี slotxo ทุน น้อย www slotxo88 com home coduca88 เครดิต ฟรี บา คา ร่า mclub 918kissvip เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ auto slotxo slot true wallet ไม่มี ขั้น ต่ํา slotv9 live22 เกม ไพ่ แบ ล็ ค แจ็ ค ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน slot live22 เครดิต ฟรี scr888 online casino เก้า เก คา สิ โน all slot555 slotxogold winner5555 เครดิต ฟรี ฟรี เครดิต เดือน เกิด เข้า slotxo slotxo pgslot 918kiss888 918 ฝาก ไม่มี ขั้น ต่ํา slotxo online มาเฟีย เครดิต ฟรี 50 xo slot cafe fifa55 ดู ทีวี ออนไลน์ joker ฝาก ถอน ไม่มี ขั้น ต่ํา ไฮโล ออนไลน์ w88 อั่ ง เปา สล็อต xo slotxo ฝาก ท รู วอ เลท สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ถอนเงิน ได้ เครดิต ฟรี ไม่ ต้อง โอน ก่อน 918kiss true wallet ไม่มี ขั้น ต่ํา slot s9 918kiss ผ่าน เว็บ puss888 คา สิ โน ออ น ไล joker slot 911 918kiss ios ล่าสุด 918kiss v7 slotxo246 918 แจก เครดิต ฟรี ดู ไฮโล lucky slotxo fifa555 truemoney 918kissauto 2 slotxo g mm88bet ฝาก เงิน slot th fifa55na 918 แจก เครดิต ฟรี 918kiss slotxo 918kiss slot 777 มังกร เสือ คา สิ โน ออนไลน์ slotxo web 168slotxo 2 slot top game joker hunter 888 918kiss เว็บ ไหน ดี ไฮโล สูง ต่ำ slot789th 35 slotxo เครดิต ฟรี ระบบ ออ โต้ slot4u xo slot mega888 slotxo kd 48 xo slot เล่น poker เงิน จริง slotxo joker123 แอ พ แยก เสียง ไฮโล slot999 live22 rmuaab888 1688 slot jackpotxo เติม เงิน joker slot mobile ป๊อก เด้ง ออนไลน์ เงิน จริง pantip mvegus1682 memberbet net chklogin สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท 11 ไฮโล มี กี่ หน้า กระดาน รู เล็ ต 918kiss me ฟรี เครดิต เครดิต ฟรี ไม่ ทํา เทิ ร์ น xo999 joker slot ไม่มี ขั้น ต่ํา ึึ 77up โบนัส เงิน ฝาก super joker slot สมัคร ใหม่ ฟรี เครดิต 918kissyou twin79 เครดิต ฟรี แทง รู 918kiss เว็บ ตรง joker slot 999th best88 slot โปร 918kiss 88 slotxo v5 918kaya slot rmuaab555 โปร สล็อต ค่าย pg slots casino 918kiss อัน ไหน ดี slot joker91 slot4u joker nikigame789 วิธี เล่น databet88 เติม slotxo mega joker free w12ww slot slot hacker ufa24h6 slot โปร ฝาก 10 รับ 100 918kiss ระบบ ออ โต้ slot joker69 line slotxo slot1888 เครดิต ฟรี 30 บาท slotxo 1988 918kisshero 918kiss v ไพ่ โป ก เกอร์ ออนไลน์ live22slot c2slot sunbet slot เกม xo slot 918kiss วอ ล เลท ยิง ปลา ไม่มี ขั้น ต่ำ joker slot ไม่มี ขั้น ต่ํา win55 เครดิต ฟรี เครดิต ฟรี ไม่ หลอก แชร์ ไฮโล ออนไลน์ pantip dafabet เครดิต ฟรี 2018 เครดิต ฟรี 918kiss กลุ่ม สาธารณะ slotxo ปิด ปรับปรุง แทง รู slot89 โป็ ก เกอร์ ออ น ไล เกม xo slot ฝาก 1 บาท ฟรี 99 sunbet slot 918kiss44 download slotjoker99 เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ 918ki เกม slot 918kiss เว็บ ไหน ดี ฟีฟ่า 1688 fifa55 memberbet ab24hr god slot joker wwwufa24h joker123 ท รู วอ ล เล็ ต joker game slot สมัคร 300 ฟรี 300 slotxo hulk slot ฝาก 9 บาท ได้ 100 mafia ฟรี เครดิต ไม่ ต้อง ฝาก gott7 slot slot vip 99 slot dreamtech joker slot 567 ace333 slot slotxo demo slotxo ฝาก 19 บาท หา เครดิต ฟรี เล่น b2y เครดิต ฟรี 918kissstar fifa55 line หาเงิน จาก คา สิ โน ฝาก 10 รับ 100xo 918kisstm slotxo joker ฝาก 10 รับ 100 88 slotxo v6 918kiss me ฟรี เครดิต w88 โป๊กเกอร์ เก้า เก คา สิ โน mafia88 slot สล็อต xo ท รู วอ ล เล็ ต slotm168 slot918 918kissslots ป๊อก เด้ง ขั้น ต่ำ 10 บาท live22 ฝาก 1 บาท ฟรี 99 fifa55best live222th slotxo ฟรี เครดิต gclub ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท pussy888 bettopfive roma slot joker slot mega888 918 ฝาก ถอน ออ โต้ fifa55 คา สิ โน xo slot cafe fifa55 prime เกมส์ สล็อต มือ ถือ luk666 เครดิต ฟรี 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2019 เสียง ไฮโล slot slotxo688 fifa55 โดน จับ xo slot1234 slot ฝาก ไม่มี ขั้น ต่ํา vegus168 lucky รู เล็ ต คือ คา สิ โน ออนไลน์ 918 slot เกมส์ ไฮโล เหมือน จริง โกง ไฮโล ออนไลน์ 918kiss 55com สล็อต xo 369 918kissth v3 ร้องเรียน slotxo เครดิต ฟรี 50 ไม่ ต้อง ฝาก เว็บ 918kiss mafia999 slot ak47max เครดิต ฟรี 918 slot online ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ 918kiss slot1234 money mouse slot 918kissauto v4 slot joker xo ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท databet88 ถอนเงิน สล็อต xo โมบาย 2pslot ฟีฟ่า 55 ยู kiss918 ฟรี เครดิต 5gslot เครดิต sahacker เว็บ ตรง 918kiss slot thai888 live22 ฝาก ไม่มี ขั้น ต่ํา superslot999 xo all game slot slot360 เว็บ ufa365 เครดิต ฟรี ใช้ บัตร ประชาชน fifa55bonus เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ slot joker ฝาก 20 รับ 100 918kiss ฝาก true wallet เครดิต ฟรี ไม่มี เงื่อนไข fifa55 แจก เครดิต ฟรี 200 pgslot66 slot cq9 ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 rg888 slot เกม ไฮโล y8 ยู ส เท ส xo slotxo 48 fin slotxo slotxo 2019 spk slotxo joker xo slot สล็อต xo เล่น ผ่าน เว็บ สมัคร ใหม่ เครดิต ฟรี slotxo เกม ไหน ดี joker demo 123 slot slot 311 aladdin slot 246 slot 7 slot vip slot 999 ป๊อก เด้ง คา สิ โน ออนไลน์ 918kiss เครดิต ฟรี ไม่ ต้อง แชร์ บ้าน บอล fifa55 slot7 slot super 456 สล็อต xo 35 เล่น หน้า เว็บ slotxo slotxo หน้า เว็บ เสือ มังกร ออนไลน์ มือ ถือ grand918kiss joker123 ฝาก 10 รับ 100 scr888 slot slotxo โอน เงิน 918tiger2 gom88bet slot 888 casino เติม เครดิต slotxo slotxo exp 918kiss download ios ไฮโล sicbo เครดิต sahacker ฟรี เครดิต ฟรี otp slot68 ฝาก เงิน live22 winner99 เครดิต ฟรี ไม่ ต้อง ฝาก slot viva โกง ไฮโล ufa365 สมัคร spin 777 ไพ่ black jack 918kiss z slotxo apk ไฮโล ออนไลน์ โบนัส ฟรี ฝาก 10 รับ 100 joker xo slot1234 xo mafia345 เครดิต ฟรี aba918kiss slot joker689 slotxo เกม เว็บ แทง บอล fifa ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 สมัคร ฟรี เครดิต ฟรี ts911 games win three card เครดิต ฟรี ใช้ บัตร ประชาชน 918kissthailand slotxo 918kiss 55com joker1919 gaming 918kiss เวอร์ชั่น เก่า jokerslot789 918kiss me 2 12ww เครดิต ฟรี slot ฝาก 20 บาท รับ 100 ไฮโล ขั้น ต่ำ gold slot168 v2 918kiss 123 สล็อต x0 918 allbet slotxo ฝาก 10 ได้ 100 12ww เครดิต ฟรี เว็บ xo slot slot joker ฝาก ไม่มี ขั้น ต่ํา slot 888 casino 918kiss โปร ไฮโล ไฮเทค คือ 35 slotxo เข้า fifa555 ไฮโล ออนไลน์ ได้ เงิน จริง pantip สล็อต xo เกม joker slot mobile ดู ไฮโล 168 gaming slotxo หาเงิน จาก คา สิ โน สล็อต สมัคร ง่าย 198 kiss ฟรี เครดิต slot ยืนยัน ตัว ตน รับ เครดิต ฟรี pgslot1234 918kissscr888 download918kiss slot007 เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง ทํา เท ริน เครดิต sahacker 918kiss เครดิต ฟรี ล่าสุด slot million สล็อต ได้ เงิน จริง เข้า บัญชี จริง siam slot slot golden hoyeah lucabet789 เครดิต ฟรี ฝาก xo slot slotxo slot ฝาก 19 บาท ได้ 100 slot1688 joker slot live22 ฝาก 10 รับ 100 เครดิต ฟรี 100 ไม่ ต้อง แชร์ ฝาก 1 บาท รับ 99 69slot area789 slot slot mafia888 slot ฟีฟ่า 1688 slot super betg8 slot slot champion168 slot1234pg 168 สล็อต xo เติม เงิน slotxo joker slot ฟรี เครดิต databet88 agent slot189 slot vip 777 kinglive22 slotxo live22 sabai99 slot slot joker123th slotxo 2019 อัป เด ต slotxo gclub ฟรี เครดิต fin slotxo รู เล็ ต ราคา 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก live22 ฝาก ถอน ไม่มี ขั้น ต่ำ สมัคร ฟรี ไม่ ต้อง ฝาก mafia789 เครดิต ฟรี แทง รู 918kiss z เว็บ พนัน ออนไลน์ ป๊อก เด้ง ไฮโล ออนไลน์ ไม่ ต้อง ฝาก 918kiss ท รู วอ เลท slot crown slotxo ฝาก 20 บาท รับ 100 ro slotxo ผล บอล เสมือน จริง ฟีฟ่า 20 ไฮโล ของ เว กั ส 168 hd slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 289 slotxo 99 ocean เครดิต ฟรี fifa ทาง เข้า ฝาก 10 รับ 100 joker xo เกม ไพ่ แบ ล็ ค แจ็ ค live22th เครดิต ฟรี ts911 games ไฮโล สูง ต่ำ fifa55 idea ถอนเงิน สล็อต xo slot969 918kiss demo pgslot1234 รู เล็ ต fifa55ag slotxo ได้ เงิน จริง 918kiss888 best slotxo 918kiss max slotxo เติม เงิน wallet เว็บไซต์ คา สิ โน ออนไลน์ ดี ที่สุด เกม xo slot เว็บ บอล ฟีฟ่า 55 kingbets88 open365 ฟรี เครดิต คา สิ โน ป๊อก เด้ง 20 slot www 77up me slotxo lucky god 168 สล็อต xo www 77up bet net scr888 online casino fifa55 ฝาก 100 ฟรี 150 slotxo ท รู วอ ล เล็ ต 550ww เครดิต ฟรี 888 slot th เครดิต ฟรี แค่ กรอก เบอร์ ล่าสุด เกม สล็อต โร มา slot joker ไม่มี ขั้น ต่ํา slotxo 12 เติม เงิน slotxo 88 kiss download เล่น แบ ล็ ค แจ็ ค ออนไลน์ slot bet ฟรี เครดิต 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก 918kissyou winner55 เครดิต ฟรี slotxo 91 เล่น สล็อต roma ฟรี master joker slot sbobet ฟรี เครดิต 2020 เว็บ เกม สล็อต xo แอ พ การ พนัน ได้ เงิน จริง bonus slotxo slotxo ฝาก 20 ฝาก 10 รับ 100 xo fm99bet เครดิต ฟรี c8 slot yakuza slot slot auto all slot joker ไม่มี ขั้น ต่ํา win three card ไพ่ โบรกเกอร์ เกม 11 ไฮโล ไฮโล หน้า ลาย joker888 เครดิต ฟรี slotxo สล็อต โปร โม ชั่ น pgslot live22th เครดิต ฟรี โป้ ก เก้อ ฟรี เครดิต 50 ไม่ ต้อง ฝาก golden 678 slot slot 777 free หมุน วง ล้อ xo สล็อต xo 007 ไฮโล ฟรี เครดิต slotxo v9 เครดิต ฟรี 20 ไม่ ต้อง แชร์ โบนัส เงิน ฝาก fifa55na 246 slot สล็อต xobkk ไฮโล ออนไลน์ w88 slot โปร ทุน น้อย joker slot demo เกม xo slot slotxo pro อา ม่า 918 rg888 slot 007slotxo เติม เครดิต slotxo slot999 xo winner555 เครดิต ฟรี เครดิต ฟรี 918 ไพ่ แค ง เล่น ได้ เงิน จริง ทาง เข้า 55 slot11 xo live22 918kissbet 918 ฝาก ถอน ไม่มี ขั้น ต่ํา 918kiss แจก เครดิต ฟรี ไม่ ต้อง ฝาก สล็อต xo99 fifa55 ทดลอง เล่น god slot slotxo 9 เว็บ แทง บอล fifa55 slot9999 โป้ ก เก้อ live22slot รู เล็ ต ราคา mm88bet sport slotxo s9 ทาง เข้า ฟีฟ่า 8888 monster joker slot 8b slotxo แอ พ การ พนัน ได้ เงิน จริง 918kiss monkey กติกา รู เล็ ต joker slot 888 แจก เครดิต ฟรี 918kiss fifa55 ดี ไหม ฝาก 1 บาท ฟรี 99 slot mobile โปร 100 918kiss c8 slot slotxo ฝาก 5 บาท ฟรี 99 บาท วอ เลท joker slot ไม่มี ขั้น ต่ํา live22 ฟรี เครดิต ไม่ ต้อง ฝาก 918kiss auto เครดิต ฟรี xoclub99 พนัน ออนไลน์ ฟรี เครดิต fifa55 200 บาท เกม xo slot ufa800 สูตร pay96 slot 918kiss เติม true wallet agent scr888 slotxo 168 gaming เครดิต ฟรี ไม่ ฝาก ไม่ แชร์ 2020 918kiss โปร โม ชั่ น 918kiss ฝาก ผ่าน ท รู วอ เลท ไลน์ fifa55 slot ฝาก 9 บาท ได้ 100 ฟรี เครดิต 100 ถอน ได้ เครดิต ฟรี pussy888 xo slot cafe เว็บ สล็อต xo 918kiss dafuq888 ไฮโล ทอย ลูกเต๋า all slot 888 เกม แบ ล็ ค แจ็ ค fifa55 โดน จับ เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ 2020 ล่าสุด เครดิต ฟรี 500 สล็อต โจ๊ก เกอร์ xo 918kaya เครดิต ฟรี slotxo ฝาก ถอน สมัคร ace333 ฟรี เครดิต xo ผ่าน เว็บ 918kiss line web slot เครดิต ฟรี winner55 เฮง เฮง เฮง เครดิต ฟรี slot โปร ทุน น้อย หมุน วง ล้อ xo fifa55 แจก เครดิต ฟรี 200 สมัคร 300 ฟรี 300 slot เครดิต ฟรี เครดิต ฟรี 50 mafia หา เครดิต ฟรี เล่น เว็บ พนัน บอล ดี ที่สุด 2021 lucky slot 888 สมัคร ace333 ฟรี เครดิต joker123 ไม่มี ขั้น ต่ํา คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ สล็อต xo vip หมุน วง ล้อ joker123 xo วอ เลท 9slot 918kiss ฝาก ท รู วอ เลท slot7 isc888 เครดิต ฟรี ทาง เข้า เว็บ fifa555 slot ฝาก 50 ยิง ปลา บา คา ร่า game slotxo aa9win slot 918kiss เวอร์ชั่น ใหม่ 918kiss monkey heng666 ฟรี เครดิต slot xo007 918kiss เครดิต ฟรี 100 บาท joker โบนัส 100 auto fifa55ag fortune 918kiss ยู ส เท ส xo slotxo 444 เล่น ไพ่ เก้า เก ออนไลน์ ได้ เงิน จริง gom88bet 918kiss พี่ เสือ สล็อต xo ทุน น้อย ไฮโล ลูกเต๋า joker35 slot ไท เกอร์ คา สิ โน เกม ส ล็ roma slotxo เล่น สล็อต xo บน เว็บ ufa365 เข้า ไม่ ได้ mafia เครดิต ฟรี ไม่ ต้อง แชร์ 5gslot slot ฝาก ถอน ไม่มี ขั้น ต่ํา สล็อต xo11 slotxo kiss918 แจก เครดิต ฟรี xo มังกร เสือ คา สิ โน ออนไลน์ หน้า เกม slotxo ไพ่ โป ก เกอร์ 1 35 joker slot world1688s slot slot ฝาก 9 บาท รับ 100 slot joker true wallet ไม่มี ขั้น ต่ํา เล่น สล็อต live22 joker slot เครดิต ฟรี เว็บ ฟีฟ่า 55 เก้า เก คา สิ โน lucabet789 เครดิต ฟรี 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 slot hacker joker slotxo 639 ไพ่ โป ก เกอร์ 918kiss เติม true wallet ไฮโล 11 ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ slot 918 เล่น xo หน้า เว็บ joker ฝาก ไม่มี ขั้น ต่ำ fifa55run slotjoker1234 เกม สล็อต slotxo slotxo ฝาก ผ่าน ท รู วอ เลท หาเงิน จาก คา สิ โน แอ พ การ พนัน ได้ เงิน จริง เครดิต ฟรี 555 slot เครดิต ฟรี 2020 slot hacker joker ราคา ไฮโล mm88bet login slotxo ฟรี เครดิต เล่น เกม slot 918kiss888 slot ฝาก ไม่มี ขั้น ต่ํา วอ เลท เครดิต ฟรี ระบบ ออ โต้ 918kissauto v4 สล็อต xo 1234 เครดิต ฟรี 918kiss 2020 918kiss download ios ล่าสุด 918kiss ios ล่าสุด win88 เครดิต ฟรี slotxo game 88 bbet99 เครดิต ฟรี fifa55fifa555 168 slotxo 918kiss ฝาก 50 ฟรี 50 สมัคร เครดิต ฟรี 2019 slot เครดิต ฟรี ไม่ ต้อง แชร์ extra slot 918kiss line slot2p casa98 ฟรี เครดิต ทาง เข้า vegus168 คา สิ โน ออนไลน์ 918kiss เครดิต ฟรี ป๊อก เด้ง slotxo ฝาก 10 บาท ได้ 100 slotxo ผ่าน วอ เล็ ต xe88th เครดิต ฟรี คา สิ โน สล็อต ออนไลน์ slotxo god slotxo ที่ ดี ที่สุด slot ฝาก ไม่มี ขั้น ต่ำ slot96th fifa55ez เครดิต ฟรี สล็อต slotxo fifa55net 918slot betslotxo mm88bet สล็อต เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก 2020 918ki สล็อต xo เติม วอ ล เล็ ท www168slotxo slot ฝาก 20 บาท รับ 100 918kisswallet slotxo 24 slot 22 fifa55 sport casino area111 slot สมัคร เอ เย่ น vegus168 xo 10 รับ 100 www777 slot fifa55hot 918kisshero slotxo เล่น 1xslot เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss joker slot โปร โม ชั่ น ไฮโล ทอย ลูกเต๋า joker slot demo เว็บ พนัน บอล fifa55 xo slot cafe slot555 joker เสือ มังกร ออนไลน์ หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เล่น ไพ่ แบ ล็ ค แจ็ ค slot crown g9slot ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ํา monkey slot slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา fifa55casino fifa55 reward วง ล้อ คา สิ โน เว็บ โจ๊ก เกอร์ 888 918kisswallet ฝาก ถอน 918kiss ฟีฟ่า 55 ทาง เข้า fifa55 เครดิต ฟรี 100 ไม่ ต้อง แชร์ slot999vip 1688 slotxo เติม เครดิต slotxo slot แจก เครดิต ฟรี ไม่ ต้อง แชร์ ไฮโล 641 918kiss บน pc 918kiss4you infinity slot เครดิต ฟรี joker 123 slot slot champion168 live22 xo black jack ออนไลน์ ไฮโล ออนไลน์ ได้ เงิน จริง lucky god progressive demo คูปอง เครดิต ฟรี เกม ไฮโล มือ ถือ slot22th live22 mega888 download pc joker123 ฟรี เครดิต สยาม โป็ ก เกอร์ ฝาก 10 รับ 100xo 2mbet เครดิต ฟรี ้ เครดิต ฟรี slot joker ไม่มี ขั้น ต่ํา fm99bet เครดิต ฟรี pussy888 bettopfive หา เครดิต ฟรี ไม่ ต้อง แชร์ 918 เครดิต ฟรี 100 ถอน ได้ 2019 918kiss ฝาก ถอน ออ โต้ เครดิต ฟรี lsm joker slot mobile xo ผ่าน เว็บ 9gspin เครดิต ฟรี 918kiss ios ล่าสุด แอ พ 918kiss 7slot สล็อต xo 899 fifa55 sport casino joker true wallet ไม่มี ขั้น ต่ำ 918 แจก เครดิต ฟรี sagame66 ดี ไหม slotxo area89 http mvegus 1682 memberbet net สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 โป ก เกอร์ ออนไลน์ เครดิต ฟรี ใช้ บัตร ประชาชน fifa55 ฟีฟ่า 981kiss joker123 ฝาก 10 รับ 100 เครดิต ฟรี live22 fifa55boom 918kiss พี่ เสือ auto slotxo 918kiss ฝาก ผ่าน ท รู วอ เลท ufa24h6 ป๊อก เด้ง เครดิต ฟรี http slotxo fifa55 เข้า ไม่ ได้ playstar slot fifa55 truemoney ฟรี เครดิต 200 slot live22 auto z8 slot 918kissthailand เกม xo slot xo ฝาก 10 รับ 100 live22 ฝาก ไม่มี ขั้น ต่ำ slotxo game fifa555 sport 918kiss ระบบ ออ โต้ super slot999 ฟรี เครดิต ไม่ แชร์ xo slot69 super big win slot777 เครดิต ฟรี slotgame99 สมัคร fifa7777 918 allbet ufaallslot777 ถอนเงิน สล็อต xo เครดิต ฟรี ไม่ หลอก แชร์ rg888 slot ไท เกอร์ คา สิ โน ab24hr2 xo slot game สล็อต slotxo slot 345 fifa55 ถอนเงิน ไม่ ได้ vscr888 xo slot1688 8b slotxo slotxo pgslot joker mobile slot 918kiss team เครดิต 50 slotvip789 เครดิต ฟรี 918kiss android download gaming world slotxo ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท รวย ดี slot 918kiss slot auto safari gold megaways สมัคร fifa55u บา คา ร่า mclub ดั ม มี่ คา สิ โน 918kiss ฝาก 19 918 ฝาก ถอน ไม่มี ขั้น ต่ํา เครดิต ฟรี 200 mafia ฟรี เครดิต ไม่ ต้อง ฝาก เล่น สล็อต xo หน้า เว็บ bein sport 1 fifa55 ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ สูตร บา คา ร่า ufa800 joker ฝาก ถอน ไม่มี ขั้น ต่ํา เครดิต ฟรี 200 ไม่ ต้อง แชร์ ลูกเต๋า ไฮโล scr99th 918kiss slotcafe slotxo77 slotxo 24 kingslots เกม 168slotxo 918thailand fifa55 easy ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ำ สยาม โป ก เกอร์ เกมส์ ไฮโล ลิงค์ 918kiss 48 slot สล็อต xo เล่น ฟรี slotxo pt เครดิต เล่น ฟรี ฝาก 500 ได้ 500 slotxo123 918kiss download
          สล็อต โก ล เด้ น| เกม เล่น แล้ว ได้ เงิน จริง เข้า บัญชี| bet casino live| slot machine live| เล่น เกม อะไร ได้ เงิน จริง| ราคา เตะ มุม| โปร สล็อต ฝาก 10 รับ 100| roman legion slot free| slot galaxy168| mafia88 ios| jumbo slots| live22 เวอร์ชั่น ล่าสุดเล่น joker123 ผ่าน เว็บ| สล็อต ฝาก 9 บาท ได้ 100| สล็อต punpun| สมัคร เว็บ สล็อต ฟรี เครดิต| nolimit city slot| สล็อต simpleplay| vegus เครดิต ฟรี| ทาง เข้า slot1668| ทุน ฟรี สล็อต| เกม ไพ่ป๊อก เด้ง ได้ เงิน จริง| สล็อต riches777| สล็อต โจ๊ก เกอร์ ฝาก 10 รับ 100| เว็บ ฝาก ผ่าน วอ เลท| สูตร บอล 1x2 excel| เกมส์ สล็อต joker| joker123 allbet| เล่น เกม อะไร ได้ เงิน เร็ว| สล็อต ทดลอง เล่น ฟรี| load slotxo| ดาวน์โหลด epic win| elektra slot| ี ubet89| ทดลอง สล็อต โร ม่า| casino classic mobil| twist casino| เกมส์ live22| reviews casino| najbolji casino online| live 22 th| หวย fun88| สล็อต j| jdb168 วิธี สมัคร| slot blackjack| ทดลอง เล่น สล็อต roma ฟรี| เว็บ ไฮโล สด| คิด 918| ราคา สูง ต่ํา วัน นี้| เล่น ได้ เงิน จริง| สูตร 1x2 excel ฟรี| สูตร การ เล่น ยิง ปลา| conan casino| i 888 casino| neogames casinos| www 888 com casino| เว็บ xoslotz| โปรแกรม เกม สล็อต| สล็อต 35xo| slot มังกร| เว็บ ไฮโล สด| เกม ที่ เล่น แล้ว ได้ ตังค์ จริงๆ| ราคา บอล สูง ต่ํา วัน นี้| ทดลอง เล่น สล็อต ค่าย rt| เกม ไหน ได้ เงิน จริง| live22allbetasia| สูตร ยิง ปลา ให้ ได้ เงิน|