<em id="6om740"><th id="6om740"><option id="6om740"></option></th></em>

  • <sub id="6om740"></sub>
    <strike id="6om740"></strike>
      1. <sub id="6om740"></sub>

          <nav id="6om740"></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
           
          beer777 pc jetsadabet หวย sbo24hr ทาง เข้า หา ส ปิ น ฟรี coin master ios แจก ฟรี 100 ไม่ ต้อง แชร์ ทาง เข้า เล่น lsm99 เจ ษ แทง หวย lord casino รู น แทง ค์ gclub บน มือ ถือ https www gclub casino com bacc6666 m หวย ออนไลน์ เจษฎา wwwbeer555 เจษฎา เบ ท ส ปิ น เกม coin master ฟรี รับ ส ปิ น ฟรี coin master w88 mobile casino net 888 casino เค ดิ ต ฟรี 200 แจก โปร ส ปิ น coin master หา ส ปิ น ฟรี gclub app mbacc6666 com xn88 casino ฝาก 300 ฟรี 500 lsm99 ติดต่อ jetsadabet ดี ไหม pantip 2016 ราคา bg live casino เข้า สู่ ระบบ 918kissauto ล็ อ ต โต วี ไอ พี high roller slot lsm99 โปร โม ชั่ น ส ปิ น เกม coin master ฟรี สูตร หวย ยี่ กี jetsadabet jetsadabet เข้า ไม่ ได้ gclub ฟรี 15 www jetsadabet com เข้า ระบบ gmail เข้า สู่ ระบบ สมัคร แทง บอล ออนไลน์ ฟรี grim muerto slot wild toro slot black jack วิธี เล่น UFABET กระดาษ ลูกเต๋า จี คลับ 97 fun88 โปร วัน เกิด สล็อต ฟรี เครดิต 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แจก ส ปิ น ฟรี coin gclub md sbobet777 line หวย เจต พัน ทิป casino neosurf qq724 casino 918kiss 918kiss kiss918 vipเครดิต ฟรี เทิ ร์ น 1 เท่า 2020 lotto jetsada coin master ฟรี ส ปิ น ไม่ จํา กัด sbobet pic5678 happyluke รีวิว gclub 16888 อยาก ได้ ส ปิ น coin master ฟรี sbo128 เข้า ไม่ ได้ thai poker pro สล็อต วอ ล เลท gclub line เกม โป ก เก อ เครดิต ฟรี nx เล่น สล็อต pantip สูตร coin master ฟรี ส โม เบส เข้า sbo มือ ถือ สมัคร poipet user gclub dafabet pc fun88 2020 สล็อต ขั้น ต่ำ 1 บาท โค้ด ส ปิ น coin master ฟรี winner55 สล็อต สล็อต ส ปิ น ฟรี ถอน ได้ ทาง เข้า sbobet ใหม่ ส โบ เบ็ ต 88888 ฟรี ส ปิ น coin master วัน นี้ ทาง เข้า sbobet ล่าสุด spina casino หวย ออนไลน์ jetsada วิธี เพิ่ม ส ปิ น coin master ฟรี แจก ฟรี ไม่ ต้อง แชร์ sbobet 2016 mg slot168 ทาง เข้า sbo มือ ถือ zig zag 777 casino เอา ส ปิ น coin master ฟรี slot out poker online เงิน จริง 918kiss ดาวน์โหลด android ยี่ กี เจษฎา รอยัล ออนไลน์ 888 wm casino เครดิต ฟรี 2020 โค้ด เกม coin master ฟรี วัน นี้ สมัคร สล็อต รับ เงิน ฟรี คา สิ โน โปร โม ชั่ น วิธี เพิ่ม ส ปิ น coin master ios เจษฎา เบ ท หวย สล็อต ทํา เทิ ร์ น casino maxbet โค้ด ส ปิ น coin master ล่าสุด gclub111 ยิง ปลา 888 ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด ฝาก 100 รับ 300 ล่าสุด หวย หุ้น เจษฎา สปินฟรี coin master ฟรี สมัคร 999lsm wwwsbo666 sg8bet casino sbo128 ทาง เข้า google ทาง เข้า gclub88888 สมัคร บา คา ร่า ปอย เปต gclub168 gclub casino 918kiss ios โหลด ไม่ ได้ วิธี เพิ่ม ส ปิ น ใน เกม coin master แจก ฟรี ส ปิ น 2020 coin master ดาว โหลด เกม 918kiss iosเครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร เกม ไพ่ โป ก เกอร์ บา คา ร่า 1688 เครดิต ฟรี shangri la เครดิต ฟรี potato222 mobile สูตร หวย ยี่ กี jetsadabet 2562 agentgclub สล็อต ออนไลน์ 168 sbomobi bet sensation casino เว็บ lsm เครดิต ฟรี 150 2020918kiss ฟรี เครดิต 1000 บาท สมัคร scr888 ฟรี เครดิต lotto jetsada fun88 ฝาก เงิน ส โบ 88 royal online v2 มือ ถือ ทีเด็ดบอล เว็บ poker กระดาษ ลูกเต๋า lsm99 ทาง ไลน์ หวย เว็บ เจษฎา thaisbo cashzuma 2bcasino โป ก เกอร์ ลํา ดับ ไพ่ 88cashbet สล็อต sagame casino best วิธี ส ปิ น coin master live casino house ฟรี 300 บาท ไม่ ต้อง ฝาก ก่อน ชนะ ถอน ได้ royal888 casino northern sky slot เว็บ บา คา ร่า จี คลับ สมัคร fan88fun888 ฟรี 300 168 gclub ซิก โบ ออนไลน์ poker ฟรี เครดิต ทาง เข้า เล่น gclub jetsadabet rerun ทาง เข้า agent sbobet ปอย เปต บา คา ร่า ออนไลน์ royal online 168 คา สิ โน โร เยล แอ พ ล็ อ ต โต้ final countdown slot สล็อต ทํา เทิ ร์ น เกม ไพ่ 21แอ พ เกม ไฮโล ได้ เงิน จริง รอยัล v2 ยืนยัน เบอร์ รับ เครดิต ฟรี gclub9 918kissauto co 899 online casino เว็บ เจษฎา ใหม่ เว็บ แทง บอล sbobet neonvegas casino fun88 ล็อกอิน เข้า จี คลับ มือ ถือ 88cashbet สมัคร ส โบ sbobet999 high roller slot เกม ออนไลน์ v2 dafabet มือ ถือ gclub mobile android หวย หุ้น เจษฎา 918kiss install ios ไฮโล เขย่า สด สล็อต วอ ล เลท sbothai8 ทาง เข้า gclub goldenslot royal casino เทคนิค double u casino free chip casino flash ดาวน์โหลด scr888 เวอร์ชั่น ล่าสุด สูตร หวย ยี่ กี jetsadabet 2563 rich 777 casino ติดต่อ เอ เย่ น จี คลับ honey honey honey slot ปอย เปต ออนไลน์ mg slot168 royal online 168 สมัคร สล็อต รับ เงิน ฟรี gclub10 slot machine cleopatra fun555 login จี คลับ 97 sbobet casino live gclub55555 casino 1xbet slot สมัคร รับ เครดิต ฟรี สล็อต ฝาก ขั้น ต่ํา 10 บาท เว็บ ปอย เปต pantip ww77 casino วิธี หมุน ส ปิ น coin master จี คลับ ฟรี coin master ส ปิ น ฟรี ไม่ จํา กัด line happyluke 855 gclub ลิ้ ง dafabet sbobet games tiki fruits slot สมัคร บอล ออนไลน์ ฟรี gclubs เว็บ ปอย เปต ดี ไหม ล็ อ ต โต้ 88 ส ปิ น ฟรี เกม coin master เสื้อ fun88 เว็บ ส โบ เบ็ ต คา สิ โน ทาง เข้า จี คลับ 88888 โป ก เกอร์ ลํา ดับ ไพ่ sbobet mobile iphone ฟรี ทดลอง เล่น ถอน ได้ 2019 wm88 casino 88cashbet zig zag 777 w99 casino สล็อต ผ่าน วอ เล็ ต coin master ส ปิ น ฟรี ไม่ จํา กัด เกม coin master ส ปิ น ฟรี 666 poker lsm9999 login fun88 คา สิ โน lsm99 lsm99 cash sbobet ninja ทาง เข้า จี บา คา ร่า ค่า คอม มือ ถือ sbobet888 ดาว โหลด เกม 918kiss iosเครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร royal online v2 ios king roman casino royalonine เว ป 1000 ล็ อ ต โต้ 819 kiss apk lsm2019com โค้ด ส ปิ น coin master วัน นี้ lsm99 new coin master ส ปิ น ฟรี android casino wm gclub 711 อยาก ได้ ส ปิ น coin master ฟรี ยืนยัน เบอร์ รับ เครดิต ฟรี holiday palace ปอย เปต pantip รู น สาย แท๊ ง ค์ เหรียญ coin master ฟรี ฟรี ส ปิ น coin master วิธี เพิ่ม ส ปิ น coin master ios platino casino เทพ เอเชีย ฟรี ส ปิ น เครดิตฟรี ไม่มี เงื่อนไข เว็บ หวย เจต รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท gclub tv sbobet ฝาก ถอน mafia88 reel keeper slot การ เพิ่ม ส ปิ น coin master dafabet 28 lsm99online spin coin master ไม่ จํา กัด หวย เจษฎา vip app gclub wm88 casino แจก ฟรีสปิน2020 ฟรี ส ปิ น 15 wwwbeer555 sahara nights slot sbobet official website กลุ่ม เครดิต ฟรี ไม่ ต้อง แชร์ jetsadabet เข้า ระบบ เข้า ส โบ เบ็ ต ทาง มือ ถือ ทาง เขา sbobet เข้า ส โบ ไม่ ได้ lsm99 ทาง ไลน์ ทาง เข้า ส โบ 888 sboibc888 ทาง เข้า โปร ฝาก 99 หวย ยี่ กี เว็บ เจ ษ เติม 100 ฟรี 300 fun88 พัน ทิป fan88 2020 sbobet333 777ww4 casino คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 ิ beer777 808 casino ww88 สล็อต เค ดิ ต ฟรี แค่ สมัคร sbobet888 มือ ถือ sbobet สมัคร สมาชิก สล็อต playstar ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 ส ปิ น ไม่ จํา กัด coin master ไฮโล เขย่า สด ช่อง ทาง เข้า จี คลับ ส ปิ น ฟรี coin master ฟรี ios แจก เครดิต ฟรี 100 ไม่ ต้อง แชร์ ลูกเต๋า โบนัสเงินฝาก เครื่องเล่น บิงโก ทาง เข้า ส โบ 888 ส ปิ น ฟรี coin master โปร สล็อต โบนัส 200 gclub free spin sbobet มือ ถือ เว็บ jetsadabet ดี ไหม ทํา เทิ ร์ น บา คา ร่า ส โม เบ ท 789 ลิ้ ง ส ปิ น ฟรี coin master 2020 918kiss ฝาก 10 รับ 100 ล่าสุด http ab24hr allbetasia com login หวย เจต lsm99vip 99 gclub ล็ อ ต โต้ วัน เกม โป้ ก เกอร์ sbobet168 มือ ถือ คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท เก็บ ส ปิ น coin master เข้า จี คลับ ไม่ ได้ sbo365 มือ ถือ live casino house ฟรี 300 99gclub world gclub สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี 100 สมัคร lsm999 365gclub v2 การ เล่น โป๊กเกอร์ 918kiss ฝาก 10 รับ 100 ล่าสุด sbothailand ปั่น ส ปิ น ฟรี coin master happy halloween slot ทาง เข้า เว็บ lsm gatorama casino fan88 2020 สล็อต ขั้น ต่ำ 1 บาท gclubgroup sbobet 789 แจก ส ปิ น ฟรี coin master facebook fun88asia1 วิธี เก็บ ส ปิ น coin master sbobet bet365 9999lsm โบนัสคาสิโน ไม่ต้องฝากเงิน ทาง เข้า เว็บ 3m royal online ทาง เข้า line happyluke คา สิ โน ออนไลน์ ปอย เปต สมัคร สมาชิก 918kiss โบนัส 100 เข้า ไม่ ได้ sbobet ทำ รายการ ฝาก lsm99 ลิ้ ง ค์ รับ ส ปิ น coin master สมัคร รับ เครดิต ฟรี ล่าสุด แจก ฟรี ไม่ ต้อง แชร์ casino crazy time เข้า ส โบ เบ็ ต ไม่ ได้ บาคาร่าออนไลน์ sbobet16888 ส โบ เบ็ ต 789 funbet casino 2bcasino วิธี ส่ง ส ปิ น เกม coin master สมัคร kiss918 ฟรี เครดิต ขอ ส ปิ น ฟรี coin master ลิ้ ง ส ปิ น ฟรี คา สิ โน แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ เข้า ระบบ jetsadabet คา สิ โน ฝาก 1 บาท ได้ 100 jetsadabet ใหม่ jetsadabet เว ป เจต สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 jetsadabet ดี ไหม pantip k9win casino ก ฟ ด ฟิำะ lsm99 เกม ดาว โหลด เกม 918kiss iosเครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร gclub คืน ยอด เสีย ทุก สัปดาห์ เกมส์ ออนไลน์ ได้ เงิน จริง สมัคร เล่น ฟรี โบนัส Free Spin เล่น poker เว็บ ไหน ดี ทาง เข้า รอยัล ออนไลน์ ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ pssuy888 sbobet16888 zulabet casino jetsadabet หวย gclub plus สล็อต mm88 sbobetmix รอยัล ออนไลน์ v2 gclublotto สล็อต ออนไลน์ pantip joker เครดิต ฟรี 2019 ลิ้ ง เข้า sbo poker เงิน จริง android เครดิต ฟรี 150 2020918kiss ฟรี เครดิต 1000 บาท ทาง เข้า 24sbo ufa casino 168v1 เล่น ไฮโล ให้ ได้ เงิน pantip ป๊อก เด้ง เครดิต ฟรี ไม่ ต้อง ฝาก mega888 auto slot รับ ส ปิ น coin master ฝาก เงิน vscr888 คืน ยอด เสีย สล็อต wm88 casino โปร เครดิต 100 วิธี เล่น ไฮโล pantip coin master โปร ส ปิ น 2020 fun88com american poker 90 happyluke slot ติด ตั้ง scr888 ทาง เข้า fun88 2020 สูตร ยี่ กี่ jetsadabet bet88thai ดี ไหม casino 789 เครดิต ฟรี winsor สูตร coin master ฟรี 918kiss download 2020 คา สิ โน วอ เลท สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 ส ปิ น ฟรี coin master โปร coin master ฟรีสปิน royal online 88888 ขอโบนัส happyluke slot bs88 casino หมุน ส ปิ น ฟรี coin master แจก ส ปิ น coin master ฟรี วิธี เอา ส ปิ น เกม coin master สมัคร live22th สล็อต เติม 10 ได้ 100 ทาง เข้า เว ป lsm รับ ส ปิ น ฟรี coin master วัน นี้ วิธี ทํา ให้ ได้ ส ปิ น เยอะ ๆ coin master sbobet 2016 line fun88 sbothailand dafabet poker สล็อต ทํา เทิ ร์ น web jetsadabet สูตร หวย เจษฎา เบ ท lsm99 เข้า สู่ ระบบ สล็อต w88 สล็อต dragoon soft sbobet545 เข้า สู่ ระบบ gclub มือ ถือ sbobet888 ทาง ส โบ เบ็ ต gclubmember happyluke app ทาง เข้า เว็บ lsm99 เว็บ หวย เจษฎา pantip euromania online casino ่ lsm99 เกม คี โน โปร ส ปิ น ฟรี coin master ทาง เข้า sbo777 สมัคร แทง บอล ฟรี sboibc888 ถอนเงิน royal gclub666 ดาวน์โหลด เกม 918kiss คา สิ โน เติม true wallet ไม่มี ขั้น ต่ํา ct855 live casino เล่น gclub ผ่าน เว็บ welcome sbobetasia online หา ส ปิ้ น coin master สมัคร sbobet888 ถอนเงิน lsm99 ballchockdee เครดิต ฟรี ไม่ ต้อง เท ริน แจก เครดิต ฟรี แค่ สมัคร เกม โป้ ก เกอร์ lsm99 ทาง ไลน์ โค้ด เกม coin master ฟรี วัน นี้ เข้า ส โบ เบ็ ต ไม่ ได้ เครดิตฟรีแค่สมัคร ทาง เข้า sbobetmix fun88 เข้า ไม่ ได้ เว็บ ปอย เปต pantip วิธี เอา ส ปิ น coin master bet123 casino line lsm99 ส ปิ น ฟรี coin master 1000 123 ปอย เปต sbobet747 เข้า สู่ ระบบ เว ป ล็ อ ต โต้ 888 k9win สมัคร tarzan slot gclub168 ทาง เข้า sbobet 359 poker ออนไลน์ เงิน จริง ทาง เข้า 24sbo babe casino thai poker pro poipet ฟรี ตัวแทน gclub สมัคร สล็อต โบนัส 100 rt สล็อต casino bit gclub45 เว็บ เล่น แบ ล็ ค แจ็ ค beer777 มือ ถือ k club casino www99lsm ฝาก ขั้น ต่ำ 20 ฟรี 100 gclubmember royal v2 online ลิ้ ง แจก ส ปิ น coin master ทาง เข้า เอ เย่ น ส โบ spin 996 casino บิงโก งาน วัด fun88 vip group ติด ตั้ง 918kiss ios mega888tm สูตร coin master lsm99 เข้า ไม่ ได้ ส็ ลอด เครดิตฟรี ไม่มี เงื่อนไข 9999lsm com เครดิต ทดลอง เล่น ฟรี 500 บาท คา สิ โน lsm99 สล็อต ขั้น ต่ํา 100 ส โม เบส 888 rt สล็อต แอ พ แจก ส ปิ น coin master โปร ส ปิ้ น coin master โบนัสพิเศษแทงเสมอ รับเพิ่ม 17,777 บาท ไม่อั้น เข้า sbo มือ ถือ ไฮโล มือ ถือ การ พนัน mm8bet ทาง เข้า sbobet multi wild slot pic5678 asia โปร สล็อต 20 รับ 100 คา สิ โน วอ เลท m81 sbobet หา ส ปิ้ น coin master royal online 6666 sbobet online ทาง เข้า ทาง เข้า sbobet 365 mafia แจก เครดิต ฟรี ไม่ ต้อง แชร์ สล็อต ออนไลน์ fifa55 จี คลับ 8888888 หา ส ปิ้ น ฟรี coin master fun88 ทาง เข้า 2019 ฟรี jetsadabet pantip รีวิว ทาง เข้า บา คา ร่า gclub royal casino beer777 ทาง เข้า gclub วิธี ได้ ส ปิ น coin master ฟรี casino municipal ล็ อ ต โต้ 1999 jetsadabet vip 198 kiss apk 128coffee sbobet royal online 7777 บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% สมัคร sbobet168 sbo128 เข้า ไม่ ได้ โบนัส แรก เข้า โปร ฝาก 99 สมัคร sbo888 wwwbeer555 365 slot mafia slot เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss download 2019 ios 10 casino สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก slots joker lsm99 สมัคร happyluke ufa casino 55 ทาง ส โบ ฮ อ ลิ เดย์ ปอย เปต ไฮโล kingmaker mafia555 สมัคร เว็บ คา สิ โน ปอย เปต โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท sbobet cz ทาง เข้า happyluke ฟรี 300 วิธี เอา ส ปิ น coin master ฟรี casino woo jetsadabet อัตรา จ่าย jetsadabet เ กด รับ ส ปิ น ฟรี coin master sbobet777 มือ ถือ เข้า sbo gclub cash rulett online ทาง เข้า lms99 วิธี หา ส ปิ น coin master คา สิ โน happyluke dafabet 642 ส ปิ น ฟรี coin master โปร ส โบ เบ็ ต โมบาย เว็บ หวย ออนไลน์ jetsadabet สมัคร สมาชิก mega888 niki casino การ เล่น ไพ่ โป ก เกอร์ สมัคร สมาชิก happyluke coin master ส ปิ น ฟรี android world gclub royal online v2 ios ยี่ กี เว็บ เจ ษ 918kiss hack android www77 คา สิ โน ฝาก 50 ฟรี 50 ถอน ไม่ อั้น 918kiss เทิ ร์ น 1 เท่าdafabet ฟรี 300 2019 slotv888 ดาวน์โหลด แอ พ happyluke 128coffee sbobet เข้า ส โบ เบ็ ต ไม่ ได้ สมัคร เว็บ lsm happyluke th แอ พ gclub jetsadabet ยี่ กี rolet casino สมัคร ปุ๊บ รับ เครดิต ฟรี สมัคร คา สิ โน sbobet sportbet casino ทาง เข้า เล่น จี คลับ sbobet222 มือ ถือ jetsadabet สูตร เว็บ บา คา ร่า จี คลับ ล็ อ ต โต้ 8888 วิธี แลก ส ปิ น coin master gclub bet live22 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ทาง เข้า sbobet 24 mb casino coin master ฟรีสปิน แอ ปรับ ส ปิ น ฟรี รับ ส ปิ น ฟรี coin master spin coin master ไม่ จํา กัด สมัคร sbobet285 เข้า สู่ ระบบ 918kissauto fun88 ดี ไหม เครดิต ฟรี winsor สล็อต 88888 โป ก เกอร์ เงิน จริง 123 plus casino sbobet โปร โม ชั่ น สล็อตฟรี agent casino สปินฟรี coin master ฟรี สล็อต ออนไลน์ ufa345th gclub600 ฝาก ขั้น ต่ํา 50 บาท เว็บ หวย เจต ใหม่ ราคา บอล ส โบ เบ็ ต th livescore dafabet poker northern sky slot gclub45 ทาง เข้า lsm99 o casino coin master free spins วัน นี้ ร็ อ ค โค่ แค ป โปร เครดิต 100 แจก เครดิต ฟรี แค่ สมัคร fun788 login กำถั่ว จี คลับ ติดต่อ เอ เย่ น จี คลับ อยาก ได้ ส ปิ น coin master ฟรี สมัคร สล็อต โบนัส 100 เพิ่ม ส ปิ น coin master pantip z8 สล็อต sbothai888 x bet casino ทาง เข้า ส โบ เบ็ด หา เว็บ แจก เครดิต ฟรีfifa55 เครดิต ฟรี ไม่ ต้อง ฝาก jetsadabet อัตรา จ่าย ทาง เข้า lsm2558 coin master ฟรี ส ปิ น ไม่ จํา กัด ฟรี ส ปิ น coin master ฟรี gclub โกง ลิ้ ง ส ปิ น ฟรี coin master ล่าสุด jetsadabet 999 บา คา ร่า ไม่มี คอมมิชชั่น คือ เข้า เล่น จี คลับ 168 joker slot gaming gclub auto ิ sbobet ปอย เปต 99 lsm99 ติดต่อ gclub88888 ทาง เข้า jetsadabet lotto สมัคร fan88joker123 ฟรี เครดิต ไม่ ต้อง ฝาก ib888 เข้า สู่ ระบบ lsm99 ถอน 918kiss login download ho688 casino แจก ส ปิ น coin master ฟรี วิธี เพิ่ม ส ปิ น ใน เกม coin master ติด ตั้ง gclub sbobet สมัคร สมาชิก เค ดิ ต ฟรี ไม่ ต้อง แชร์ live22 ios 2020 เครดิต ฟรี joker123 jetsada 222 lord casino สมัคร สมาชิก ใหม่ 918kiss สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา ล็ อ ต โต้ 1000 เว็บ แทง หวย เจษฎา เบ ท casino lotus สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ แอ พ แจก ส ปิ น เกม coin master casino rich gclubs jetsadabet รีวิว โปร เกม coin master ส ปิ น ไม่ จํา กัด 4579 ล็ อ ต โต้ casino v sbobet online mobile คา สิ โน mgm ทาง เข้า sbobet 24 sbobet โปร โม ชั่ น ฟัน 88 ล็อกอิน การ เพิ่ม ส ปิ น coin master 7 diamonds casino ยืนยันเบอร์ รับเครดิตฟรี เครดิต ฟรี สล็อต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ jetsada หวย แอ พ ล็ อ ต โต้ วี ไอ พี royal online 168 เค ดิ ต ฟรี ไม่ ต้อง ทํา เทิ ร์ น ทาง เข้า sbobet agent เทพ เอเชีย ฟรี ส ปิ น 899 online casino โบนัสพิเศษแทงเสมอ รับเพิ่ม 17,777 บาท ไม่อั้น ลิงค์ ส ปิ น ฟรี coin master ฟรี หวย เว ป เจต sbothai8 ทาง เข้า ทาง เข้า gclub มือ ถือ android poker online เงิน จริง sboibc888 เข้า ไม่ ได้ รู น แทง ค์ rov sbobet888 สมัคร สมัคร ส โม เบ ท sbobet555 lsm99 agent ทาง เข้า เล่น ก่อน ไม่ ต้อง ฝาก หิ นิำะ jetsadabet pantip วิธี ได้ ส ปิ น coin master ฟรี ขอโบนัส 918kiss hack android dafabet 28 กด รับ ส ปิ น ฟรี coin master red ping win เ gclub โบนัสฟรีเคดิต เหรียญ coin master ฟรี fun88 ทดลอง เล่น spinomenal slots lsm99 game gclub5555 auto เว็บ เล่น แบ ล็ ค แจ็ ค sbobet777 มือ ถือ ฟรี สล็อต ไม่ ต้อง ฝาก เก็บ ส ปิ น coin master fun88 กีฬา ballchockdee จี คลับ ฟรี แค่ สมัคร ก็ รับ เครดิต ฟรี ล่าสุด หวย เจษฎา 1688 สมัคร fun88 ทํา เทิ ร์ น บา คา ร่า gclub44 auto วิธี แลก ส ปิ น coin master happyluke id line gclub9999 sbobet bet 918 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัครfun888 ฟรี 300 918 slot club auto สมัคร fan88fun888 ฟรี 300 เก็บ ส ปิ น coin master ป๊อก เด้ง ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ฟรี ส ปิ น coin master ฟรี หิ นิำะ เครดิตฟรีไม่ต้องฝากไม่ต้องแชร์ viking clash slot live casino house casino v happyluke 300 jackie casino royalonlien wildtornado casino casino coupon l ส โบ เบ ท casino playamo เกมสล็อต will's casino โปร ส ปิ น coin master ไม่ จํา กัด gclub tv sbobet แจก ฟรี ส ปิ น เกม coin master บิงโก แบบ หมุน หวย ออนไลน์ jetsadabet สมัคร sbobet ออนไลน์ ลิ้ ง เข้า ส โบ 555 slot เว็บ ซื้อ หวย jetsadabet ทาง เข้า รอยัล ออนไลน์ fun88 ล็อกอิน สมัคร สมาชิก รับ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น sbobet official website ฟรี ส ปิ น coin master ฟรี mafia 808 เครดิต ฟรี coahuila casino รับ ส ปิ น coin master cw marketing bv 918kiss สมัคร ท รู วอ เลท ไพ่ แบ ล็ ค แจ็ ค วิธี เล่น คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 happyluke สล็อต pic5678 คอม casino legal สมัคร รับ เครดิต ฟรี 2020 ฝาก ขั้น ต่ำ 20 ฟรี 100 จี คลับ 8888888 88 สล็อต https ab24hr allbetasia com login php คา สิ โน โปร โม ชั่ น ซิก โบ ออนไลน์ แทงบอล jetsadabet222 royal online ios sbothaiclub ส โบ เบ็ ต มือ ถือ เครดิต ฟรี joker123 casino online ต่าง ประเทศ sbobet888 ทาง เข้า joker ฟรี เครดิต ไม่ ต้อง แชร์ gclub god beer789com fun881851 ทาง เข้า ส โบ เบ็ ต แจก ฟรีสปิน2020 รับ ส ปิ น coin master casinol สมัคร สล็อต ไม่มี ขั้น ต่ํา แทง หวย เจษฎา happyluke info ทาง เข้า เครดิต ฟรี ไม่ ต้อง ฝาก ufa casino legal spinomenal slots 99 casino 560bet poipet 888 ทาง เข้า royal online โหลด xe88 auto918kiss mafia678 สมัคร slot angel88 สมัคร sbobet โดยตรง บา คา ร่าไฮโล ออนไลน์ ได้ เงิน จริง ผ่าน มือ ถือ agent slot เว็บ jetsadabet ดี ไหม pantip วิธี เล่น แบ ล็ ค แจ็ ค jetsadabet เ gclub goldenslot ace333 ฟรี เครดิต 2019 fun888 มือ ถือ ทาง ส โบ gclub casino คา สิ โน ออนไลน์ roma casino มือ ถือ sbobet gclub plus คี โน coin master โปร ส ปิ น 2020 ทาง เข้า เว็บ lsm99 may casino jetsadabet สูตร 2563 caesar slots casino เครดิต คา สิ โน ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 สล็อต หมุน ฟรี ใน google รับ ไป เลย ฟรี เครดิต 100 บาท ฮ อ ลิ เดย์ พา เล ซ ปอย เปต birthday bonus spinal tap slot แค่ สมัคร ก็ รับ เครดิต ฟรี ล่าสุด royal 6666 online scr888 ฟรี เครดิต สมาชิก ใหม่ ลง ทะเบียน เพื่อ รับ โบนัส แรก เข้า agentgclub แจ กลิ้ง ส ปิ น ฟรี coin master จี คลับ คา สิ โน โบนัส free spin sbobet777 line casino splendido sbobet888 สมัคร สมัคร สมาชิก fun88 casino lux 888 ล็ อ ต โต้ euromania online casino jetsadabet 1688 หา ฟรี ส ปิ น coin master หวย เจษฎา ออนไลน์ สมัคร สมาชิก happyluke coin master ส ปิ น ฟรี ไม่ จํา กัด agent casino คา สิ โน โปร โม ชั่ น เครดิต ทดลอง เล่น ฟรี 500 บาท ส โบ เบ็ ต 88 สมัคร รับ เครดิต ฟรี ล่าสุด สูตร คํา น วณ หวย ยี่ กี jetsadabet lsm99 net poipet 777 ล็ อ ต โต้ วี ไอ พี เข้า ระบบ เค ดิ ต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สล็อต 981kiss แอ พ ล็ อ ต โต้ mega888tm ลิ้ ง ส ปิ น ฟรี coin master 2020 สมัคร sbo888 lsm99 net coin master ส ปิ น ไม่ จํา กัด sbobet7777 new slot 2020 สล็อต ฟรี เครดิต 2019 เว็บ แทง หวย เจต โปร เพิ่ม ส ปิ น coin master วิธี เล่น ไฮโล pantip black jack วิธี เล่น pin casino สมัคร สล็อต โบนัส 100 ลิงค์ lsm เว็บ ส โบ เบ็ ต คา สิ โน โบนัส แรก เข้า gclub666 สล็อต ออนไลน์ แจก เครดิต ฟรี jetsadabet สมาชิก โปรโมชั่นพนันออนไลน์ spinomenal slots 918 สล็อต โบนัส สล็อต kiss777th zenspin casino เกม ออนไลน์ v2 เค ดิ ต ฟรี ถอน ได้ 2020 casino dk online m168 casino wm casino ดาวน์โหลด วิธี เพิ่ม ส ปิ น coin master ฟรี poker เงิน จริง sbobet555 fun888 login ถอนเงิน fun88 sbobet korea fun88 esports จี คลับ 99 live casino house ทาง เข้า เครดิต ฟรี ib888live22 เครดิต ฟรี สมัคร 918kiss ท รู้ วอ เลท ล็อกอิน fun88 gclub pc ราคา บอล sbobet วัน นี้ หวย ออนไลน์ jetsadabet เข้า สู่ ระบบ 918kissauto happyluke คา สิ โน ออนไลน์ 2bcasino เว็บ แทง ฟุตบอล เครดิต ฟรี 100 ไม่ ต้อง แชร์ 2019เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร lsm99 info gclub casino มือ ถือ jetsadabet ลืม user สมัคร sbobet ca joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 999 gclub สล็อต สมาชิก ใหม่ สมัคร รับ เครดิต ฟรี ไม่ ต้อง แชร์ รู น แท๊ ง ค์ rov ทาง เข้า sbobet ใหม่ jetsadabet เ คา สิ โน ออนไลน์ โปร โม ชั่ น jetsadabet เ gclub ฟรี 500 2018 ส ปิ น coin master ไม่ จํา กัด happyluke line
          sixmonth sbobet| royal online apk| hack slot apk| agent gclub| สมัคร ak47bet| เข้า เว็บ sbo| ที่ นี่ ทาง เข้า sbo| vegasberry| hacker slot game| inferno star wars| ดาวน์โหลด royal online v2| happy 888 slot| ไป บ่อน ปอย เปต| คา สิ โน ออนไลน์ รอยัล 1688| m online sbobet| baba wild slot| fat santa online| sixmonth sbobet| login gclub| เจษฎา เบ ท ใหม่| ไป บ่อน ปอย เปต| ทาง เข้า sbo slot club| royal online v2 มือ ถือ apk| 100 cats slot| หน้า เล่น sbo| sbo เข้า ได้ แน่นอน| slot fat santa| sbobet com เข้า ไม่ ได้| pretty gaming casino| สมัคร เว็บ การ พนัน| เจษฎา เบ ท 888| สมัคร ligaz888| happy slot 88| squad inferno| royal online 69| ทาง เข้า เอเย่นต์ sbobet| สมัคร เว็บ บอล แจก เสื้อ| mega ways| สมัคร ligaz888| เจษฎา เบ ท 6| sixmonth sbobet| เจษฎา เบ ท pantip| book of ra temple of gold| gclub group| สมัคร เว็บ การ พนัน| เบอร์ ส โบ เบ็ ต| รอยัล ออนไลน์| royal online v2 ฝาก เงิน| สมัคร ligaz888| gclub group| www pic5678 th th| carrera ferrari trophy| vegasberry| royal online v2 download ios| ดาวน์โหลด royal online v2| royal online 9999| 1 million megaways| sbo เข้า ไม่ ได้| book of ra temple of gold| www pic5678 th th| sbo เข้า ได้ แน่นอน| cat slotxo| slot ninja| เข้า เว็บ sbo| ทาง เข้า sbo slot club| fun888 เข้า ระบบ|