<tr id="5R3f4"></tr>
      <form id="5R3f4"><th id="5R3f4"></th></form>

        <tr id="5R3f4"></tr>

          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
           
          sagaming 07 sa gaming89 เครดิต ฟรี วัน นี้ fifa55c ทาง เข้า slotxo ฝาก ถอน บา คา ร่า วัว วัว wwwufa7777com โปร สล็อต joker แทง บอล ฟรี ไม่ ต้อง ฝาก slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน slot ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ufa147 sport slotxo แนะ นํา เพื่อน fifa551234 เว็บ ufa007 เครดิต ฟรี เดือน นี้ เปิด เว ป บอล แทง บอล fifa55 เว็บ แท่ง บอล ออนไลน์ 888 โหลด slotxo apk betufa main ufabet888 ดี ไหม sa gaming png แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก บา คา ร่า มา วิน ufa9999 default 8 smart ufabet โปร 100 ฝาก 50 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น ยู ฟ่า เบ ท 168 ดาวน์โหลด สล็อต live22 sa66 คา สิ โน ดาวน์โหลด aka slotxo ป๊อก เด้ง เงิน จริง ฟรี เครดิต ยู ฟ่า เบ ท 98s เข้า ufa168 ufa888 club แทง สด สด สมัคร slot สล็อต xo download โบนัส ไม่ ต้อง ฝาก slot online เครดิต ฟรี เว็บไซต์ พนัน บอล slotxo ไม่ ต้อง ฝาก ทาง เข้า joker xo สมาชิก ใหม่ แจก ฟรี sa vip บา คา ร่า เข้า ยู ฟ่า เบ ท ufabet เข้า ฝาก ufabet สมัคร slotxo ufa007vip แอ พ แทง บอล ออนไลน์ mafia แจก เครดิต ฟรี 50 สมัคร เกม สล็อต xo ฟี ฟ้า 55 โปร โม ชั่ น ufa vegus168 sure แทง บอล ขั้น ต่ำ 1 บาท slotxo apk download สล็อต xo เครดิต ฟรี เกม มัก คา ร่า slotxo ใหม่ ล่าสุด mm88bigwin บา คา ร่า ปิด ปรับปรุง นาน ไหม สล็อต xo download next88 รหัส ฟรี เครดิต ยู ฟ่า เบ ทด อ ท คอม แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ไม่ ต้อง ฝาก รับ เครดิต ฟรี vegus168 sure r1 ufabet ufabet line ดาว โหลด เกมส์ live22 slotxo โปร ทุน น้อย สล็อต xo 24 hr cq9 slot ฟรี เครดิต ufabet เอ เย่ น ยู ฟ่า เบ ท 98s ufabet ฝาก 100 sa slot games fifa555pro ufabet888s all pg slot ufabet1688 เครดิต ฟรี slot แจก เครดิต ฟรี 300 เครดิต ฟรี sa gaming สมาชิก ใหม่ แจก เครดิต ฟรี ufa ไม่มี ขั้น ต่ํา ufabet1246 ufabet169 168ufabet mafia88 เครดิต ฟรี 50 ufabet987 ufabet member 55fifabet ligaz888 line ts911 pantip lsm99 ฝาก ขั้น ต่ำ เว็บไซต์ แท่ง บอล มาเฟีย เครดิต ฟรี ล่าสุด บา คา ร่า excel sa gaing fifa55 ฟรี เครดิต 100 slotxo โบนัส แทง บอล ไม่ ต้อง ฝาก แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด ฝาก ถอน ufa168 slotxo สมัคร 100 โหลด xo ios sa gaming ts911 918kiss ฟรี เครดิต 1000 บาท เอ เย่ น ufabet เครดิต ฟรี วัน นี้ slotxo ฝาก 10 บาท ฟรี 100 บาท แจก ยูสเซอร์ พร้อม เครดิต ฟรี slot แจก เครดิต ฟรี 300 เว็บ ฟีฟ่า เครดิต ฟรี ตอน นี้ ฝาก ถอน ufa24 77up บอล แจก เครดิต ฟรี 2000 ไม่ ต้อง ฝาก 2019 ดาวน์โหลด slotxo สํา ห รับ android โปร โม ชั่ น ฟุตบอล ufabet แจก เครดิต ฟรี 2019 fifa 1234 sa gaming 66 ufabet991 ufabet12 ทาง เข้า เล่น slotxo แทง บอล สด แจก โบนัส ฟรี ไม่ ต้อง ฝาก ufa6666 สมัคร slotxoth download ยู ฟ่า เบ ท 007 ufa agent ทาง เข้า ufathai123 สมัคร เอ เย่ น ufa ทาง เข้า ufa888 ี ufathai ฟรี เครดิต ถอน ได้ ufabet แจก เครดิต สมัคร ufa888 แจก ฟรี ไม่ ต้อง ฝาก ฟรี เครดิต 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ยู ฟ้า 800 ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด ufabet189 ส ๔ ต ร บา คา ร่า แทง หวย ligaz888 co โหลด xo ios 77up บอล ufabet id line โปร บา คา ร่า ดาวน์โหลด slotxo joker ติด ตั้ง เกม สล็อต xo ufabet089 ufabet v7 ts77 บา คา ร่า ยู ฟ่า เบ ท 007 เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ sa gaming 06 บา คา ร่า คลับ sa gaming v2 เครดิต ฟรี ไม่ ต้อง เติม slot สมัคร โหลด แอ พ slotxo 24sboonline ufa24h 4 PG SLOT 168 slotxo download ufabet 555 sa gaming ฝาก 50 รับ 150 ufabet1688 สมัคร jokerslotz999 เครดิต ฟรี เล่น ยู ฟ่า line vip2541 mm88fc vip ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ mafia567 เครดิต ฟรี sa gaming demo vip sa gaming ลอง เล่น ufabet 9999 ufabet 5000 ufabet72 เครดิต ฟรี 400 ไลน์ vip2541 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2020 แทง บอล ออนไลน์ ขั้น ต่ํา 20 เบอร์ ติดต่อ slotxo คา ร้า mafia488 ฟรี เครดิต ถอนเงิน ufa365 ufabet 747 ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ fifa55u โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก โบนัส ไม่ ต้อง ฝาก ufabet1688 ดี ไหม ufabet 1999 gaming vip slotxo ฝาก 1 บาท ฟรี 99 บาท ล่าสุด ยู ฟ่า เบ ท 800 สมัคร สล็อต ออนไลน์ bslot88 เครดิต ฟรี บอล ออนไลน์ 55 ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo android แทง บอล ออนไลน์ i99win angel88 เครดิต ฟรี บา คา ร่า 6 แต้ม สมัคร ufabet168 ป๊อก เด้ง เงิน จริง ฟรี เครดิต วิธี ติด ตั้ง slotxo slotxo 49 ufabet 1999 ทาง เข้า xo mobile live22 เครดิต ฟรี 100 ufa9999com sexybaccarat66 ufabet ฝาก ขั้น ต่ํา ufabet 11 ไม่ ต้อง ฝาก รับ เครดิต ฟรี เข้า เล่น ufabet369 บอ ท บา คา ร่า ฟรี รับ เครดิต ฟรี สมาชิก ใหม่ ได้ เครดิต ฟรี 168slotxo เครดิต ฟรี heng999 ฟรี เครดิต ติด ตั้ง xo ufabet slots ไอ ดี ไลน์ ufabet ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิต ฟรี สมาชิก ใหม่ ufa191 ดี ไหม ufabet kik ufabet sport แทง บอล 2 คู่ omg89bet แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2018 ไม่ ต้อง ฝาก betufa 1688 ยู ฟ่า 369 ยู ฟ่า เบ ท 999 ufa บริษัท แม่ ufaball88 xo slot เครดิต ฟรี ทาง เข้า เล่น ufa019 ufabet 77 sbobet888888 เครดิต ฟรี ไม่ ต้อง vip2541 ฝาก ขั้น ต่ำ เกมส์ มา ส คา ร่า slotxo ฝาก ไม่มี ขั้น ต่ํา ฝาก 200 ฟรี 300 เครดิต ฟรี 100 ล่าสุด mafia เครดิต ฟรี ล่าสุด ufabet ขั้น ต่ำ 100 เซ๊ ก ซี่ บา ค่า ร่า เกมส์ ดาวน์โหลด slotxo 236 เครดิต ฟรี ทํา เทิ ร์ น 2020 สมัคร ยู ฟ่า 365 ถอนเงิน ufa168 918kiss เครดิต ฟรี 30 ให้ เครดิต ฟรี ufa877 คืน ยอด เสีย ufa ทาง เข้า ufabet 879 77uponline sa gaming ฟรี เครดิต mm88aec bslot88 เครดิต ฟรี ufa88 pantip sa เกม 199 โปร ufa betufa ทาง เข้า ufabet ทาง เข้า 369 fifa55atm fifa55 ทาง เข้า ยู ฟ่า เบ ท 8888 บา คา ร่า 66666 slotxo ฝาก 50 รับ 100 slot007 ดาวน์โหลด ี ufa345 สมาชิก ใหม่ แจก เครดิต ฟรี 888 ufa แทง บอล ออนไลน์ ฟรี ยิง ปลา แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 แจก เครดิต ฟรี ถอน ได้ slot ฝาก 100 รับ 100 แทง บอล true wallet ยู ฟา 777 สมัคร เกม สล็อต xo 89fifa บา คา ร่า sa gaming ลอง เล่น ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด sa เกมส์ บา คา ร่า slotxo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 เช็ ก ชี่ บา คา ร่า 66 ดาวน์โหลด slotxo88 โหลด แอ พ สล็อต xo sa gaming vip เครดิต ฟรี ufa2bet sboibc888 pantip ทาง เข้า ufa365 มือ ถือ ลิ้ ง เข้า ufabet เว็บ ยู ฟ่า 678 betufa 168 ยู ฟ่า 88888 แทง บอล ให้ ได้ เงิน ทุก วัน สมัคร fifa55 mt88casino เว ป บอล ออนไลน์ แจก เครดิต ฟรี 2000 ไม่ ต้อง ฝาก 2019 เว กา บอล ufabet scr wwwufa999999 โหลด slotxo pc slotxo mobile download บา คา ร่า c01 สล็อต โปร สมัคร slotxo รับ เครดิต ฟรี ทาง เข้า slotxoz ทาง เข้า betufa ufabet พัน ทิป scr888th เครดิต ฟรี fifa55star ทาง เข้า ufabet789 เครดิต แทง บอล ฟรี สู ค ร บา คารา ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด ี ufa168 slotxo เครดิต ฟรี ufa356 ดี ไหม เปิด ยูสเซอร์ ไม่มี ขั้น ต่ำ ufabet3 ufarich888 ี ufa6666 u ฟ่า 191 ตั้ง slotxo live22 ดาวน์โหลด ufa007vip sa game th สล็อต xo ฝาก วอ ล เล็ ต ufabet ที่ ดี ที่สุด ufabet one sa casino ฝาก 50 รับ 150 แทง บอล ฟรี เครดิต 2020 ทาง เข้า slotxo joker123 บา คา ร่า ออ โต้ fifa55cash ufabethero slotxo ฝาก 10 บาท ฟรี 100 บาท sboibc888 pantip slot online ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2020 winner55 โปร โม ชั่ น ยุ ฟา เบส 888 uefa goal168 โบนัส ไม่ ต้อง ฝาก แทง บอล เดี่ยว ป๊อก เด้ง เงิน จริง ฟรี เครดิต slot ฟรี เครดิต 2019 ี ufa345 ว้า ว บา คา ร่า เครดิต ฟรี ufabet ufa191 ยิง ปลา เครดิต ฟรี ไม่ 168slotxo เครดิต ฟรี ยู ฟ่า เบ ท 800 ufabet1246 เว ป แทง บอล ที่ ดี ที่สุด slotxo เครดิต ฟรี ไม่ ต้อง แชร์ แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2562 ยู ฟ่า เบ ท 1168 โปร ฟรี เครดิต ufa191 ฝาก ขั้น ต่ํา ทาง เข้า slotauto888 สมัคร ufabet888 ufa356 v2 ไลน์ vip2541 slotxo ฝาก 9 บาท รับ 100 วอ เลท ยู ฟ่า เบ ท 191 เครดิต ฟรี วัน นี้ heng999 ฟรี เครดิต ufabet แอ พ sa vip บา คา ร่า ทาง เข้า เล่น xo เว็บ ตรง ufabet บา คา ร่า โทรศัพท์ สมัคร ufa191 168 slotxo download sa gaming ฝาก เงิน ufabet auto สมัคร บอล ออนไลน์ ufabet บอล น่า แทง วัน นี้ ufabet169 123bet เครดิต ฟรี ทาง เข้า ufa69 sa gaming vip demo เครดิต แทง บอล ฟรี ufabet auto gclub985 databet88bet xo slot ทาง เข้า slotxo ทาง เข้า เกม slotxo แอ พ ufabet โหลด แอ พ slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ล่าสุด www ufabet cc แทง บอล โลก 2018 เครดิต ฟรี ค่าย sg จี คลับ ผ่าน ท รู วอ ล เล็ ท ufabet gold บอล fifa55 เล่น บอล รอง สมาชิก ใหม่ ฟรี เครดิต ล่าสุด เครดิต ฟรี ไม่ ต้อง ฝาก 2020 แจก โบนัส ฟรี ยู ฟ้า 168 slot credit free copa69com slot mg เครดิต ฟรี sbobetvip888 ufabet888 ทาง เข้า ufa369 ถอนเงิน ufabet apk หาเงิน จาก บา คา ร่า pantip ufabet888 ทาง เข้า ติด ตั้ง สล็อต xo บา คา ร่า เซ๊ ก ซี่ slotxo โปร บา คา ร่า เช็ ก ชี่ แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด ไลน์ ufa365 ถอนเงิน ufa ufabet ที่ ดี ที่สุด ufabet777 ดี ไหม บา คา ร่า บิ กิ นี่ เข้า sa gaming ไม่ ได้ ufabet 555 ฝาก 20 รับ 100 วอ เลท xo ยู ฟ่า ออนไลน์ 168 slotxo 1 download slotxo pc ufabet8z slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด ทาง เข้า ufabet 89 77up แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด ยู ส ฟรี slotxo slotxo ฝาก 5 บาท ฟรี 99 บาท โหลด เกมส์ สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 200 ufabet98 ufaeasy3 ดาวน์โหลด slotxo pc thaibet789 เครดิต ฟรี ufabet121 ufa888 วิน ufa191 ดี ไหม โหลด เกม สล็อต slotxo live22 slotxo888 ดาวน์โหลด ufa1688 auto sa gaming link ufa365 ถอนเงิน live22 slot ฟรี เครดิต sa gaming demo บา คา ร่า ปลอม ufabet แจก เครดิต ฟรี ล่าสุด เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ล่าสุด บา คา ร่า ทุน 1000 ufa1688s3 มาเฟีย แจก เครดิต ฟรี ล่าสุด ฝาก 10 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น เข้า เล่น sa gaming ufa356 ฝาก เว็บ พนัน ยู ฟ่า เข้า sa gaming ไม่ ได้ heng555 ฟรี เครดิต slot free 888 ยู ฟ่า เบ ท 1 ufabet888 แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด ทาง เข้า ufabet45 แทง บอล 777 เครดิต ฟรี ล่าสุด sa gaming vip pantip casino sa gaming ufa1999v2 gaming vip slot แจก เครดิต ฟรี 300 ufa007 sa gaming 911 sa gaming 06 เครดิต ฟรี ยู ฟ่า slot free เครดิต ฟรี เครดิต 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ fifa55com ทาง เข้า ยู ฟ่า เบ ท 888 ufabet 128 สล็อต xo 888 เครดิต ฟรี mafia88 เครดิต ฟรี 50 ี ufa9bet ufabet default 8 smart app slotxo ดาว โหลด เกม live22 ฝาก ขั้น ต่ํา 10 ufabet56 slotxo ใหม่ ล่าสุด เครดิต ฟรี ค่าย ใหม่ slotxo ฟรี 100 fifa55mini สล็อต xo เครดิต ฟรี 50 sbobet89 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 สล็อต xo สมัคร ufa777 สมัคร slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ 77up2u ยู ฟ่า 6666 ufabet5 betdog289 เครดิต ฟรี ดาว โหลด ส ล็ ต xo sbobetstep5 slotxo download pc เครดิต ฟรี 50 ถอน ได้ 300 สล็อต ออนไลน์ ios ufabet 11 ufa800 สล็อต fifa55sport เว็บ บอล ufabet sa game vip ี ufabet co ดาวน์โหลด สล็อต xo168 sa gaming 168 th ufabet888 ดี ไหม แทง บอล ผ่าน เน็ต slotxo 50 รับ 100 สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก PG SLOT แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2018 ไม่ ต้อง ฝาก คูปอง ufabet ดาวน์โหลด เกมส์ live22 six4bet sun34444 ufabet อัน ไหน ดี บา คา ร่า excel betufa main ติด ตั้ง slotxo แอ น ด รอย ด์ slotxo โปร สมาชิก ใหม่ sa999 gaming ราคา แทง บอล วัน นี้ เปิด เว ป บอล ทาง เข้า ufabet ล่าสุด แทง บอล true wallet แทง บอล เดี่ยว ufa147 มือ ถือ ufabet cb8 ufabet แจก เครดิต ฟรี ufabet18 sboibc888 pantip ทาง เข้า เล่น slotxo fifa55mini เกม บา คา ร่า sa ั ufabet โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก ufa911 สมัคร ufa24h ทาง เข้า slotxo88 fifa55 เครดิต ฟรี 2019 ดาวน์โหลด สล็อต xo 888 โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก ufabet800 ufabet ทาง เข้า เล่น เว็บ ฟีฟ่า บา คา ร่า ก๊อ ต ufabet 1988 ufabet v2 รับ เครดิต ฟรี ง่ายๆ 77up บอล ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด ทาง เข้า ufabet 7777 slotxo สมัคร ใหม่ โบนัส วัน เกิด ไม่ ต้อง ฝาก ี ufa188 sa gaming89 ufabet368 slotxo โบนัส 200 uf99999 ทาง เข้า slotxo joker123 แทง บอล คืน นี้ ufa147 xo slot ฟรี เครดิต เบอร์ ติดต่อ slotxo sa game 25 ยู ฟ่า เบ ท 999 sbobet222 ฝาก 50 รับ 150 ไม่ ต้อง ทํา เทิ ร์ น ล่าสุด slotxo ฝาก 10 บาท ฟรี 100 บาท แอ พ slotxo club388 เครดิต ฟรี slotxo ฝาก ออ โต้ slotxo ฝาก 25 รับ 100 ยู ฟ่า เบ ท 369 ace333 ฟรี เครดิต ไม่ ต้อง ฝาก แทง บอล 10 โปร ufa เครดิต ฟรี slotxo สมัคร เอ เย่ น ufa แอ พ slotxo บา ค่า ร่า ฟรี เครดิต ไม่ ต้อง ฝาก ufabet cnv3 mm88bet vip pussy888 ฟรี เครดิต fifa55gen PGSLOT ติด ตั้ง xo slotxo ติด ตั้ง ufabet191 ยู ฟ้า 678 เข้า เกม xo ufabet 2999 ufa1688 เว ป บอล ดี ที่สุด แทง บอล ออนไลน์ ฝาก ขั้น ต่ํา 100 เครดิต ฟรี ไม่ ต้อง โอน sa gaming 5g โปร เครดิต ฟรี ติด ตั้ง xo บา คา ร่า 1988 แจก เครดิต ฟรี ถอน ได้ ufabet168 id line เปิด ยูสเซอร์ ฟรี เครดิต like191 เครดิต ฟรี เว บ เครดิต ฟรี ไม่ ต้อง แชร์ ufa365 ถอนเงิน แทง บอล โลก แจก โบนัส ฟรี แอ พ บา คา ร่า ios fifa55 เครดิต ฟรี web www ufa6666 แทง บอล ออนไลน์ ฟรี 300 databet88 เครดิต ฟรี www ufax10 มังกร บา คา ร่า เข้า ระบบ sa gaming ufa888a 123fazsv3 vegus111 bslot88 เครดิต ฟรี tbsbet 2562 sa gaming บา คา ร่า slotxo โหลด ทาง เข้า ยู ฟ่า 1688 ยู ฟ่า เบ ท 1 สล็อต xo ฟรี เครดิต fifa55u เครดิต ฟรี ufabet net default 8 ี ufa369 แทง บอล 777 ดาวน์โหลด slotxo 2020 เข้า เกม xo บา คา ร่า ล่าสุด ufa191 fifa55call ufabet 8888 slotxo ฝาก ขั้น ต่ํา 50 สมัคร เว็บ ufabet1688 แทง บอล 10 บาท ufa678 ดี ไหม ufa168 vip ฝาก 200 ฟรี 300 โบนัส ฟรี เครดิต แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน เว้ บ เครดิต ฟรี โหลด สล็อต 22 เซ๊ ก ซี่ บา ค่า ร่า เกมส์ 66 fifa ฝาก 50 ฟรี 100 หาเงิน จาก บา คา ร่า pantip live22 ฝาก 100 รับ 100 ufabet168 ทาง เข้า slot เงิน จริง live22 slot download 77up บอล sa gaming 2020 แทง บอล ออนไลน์ ฟรี ufa191 ถอนเงิน fin24 บา คา ร่า ufa191 ดี ไหม sa เกม บา คา ร่า ยู ฟ่า เบ ทด อ ท คอม ufabet ฝาก วอ เลท เครดิต แทง บอล ฟรี sa gaming png ยูสเซอร์ ฟรี เครดิต fifa55star ยู ฟ่า 1668 ufa369 ufa79g สมัคร slotxo 100 ufabet ค่า คอม แจก ฟรี เครดิต ไม่ ต้อง ฝาก แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ufa ฝาก ไม่มี ขั้น ต่ํา วิธี ติด ตั้ง slotxo fifa55 login บา คา ร่า excel all บา คา ร่า ufabet1688 เครดิต ฟรี ufa678 เข้า ไม่ ได้ รับ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน sa เกม มิ่ง 66 ufa365s ค่า บา ล่า ufabet แจก เครดิต ufabet 089 ดาว โหลด slot heng555 ฟรี เครดิต แทง บอล ufabet sa gaming ปรับปรุง sa เกม 77 ทาง เข้า ยู ฟ่า เว็บ ufa777 ufa168 สมัคร เครดิต ฟรี ไม่ ต้อง ี agent ufabet u ฟ่า 888 เครดิต ฟรี 300 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ sa gaming 168 th แจก เครดิต ฟรี 500 ไม่ ต้อง ฝาก 2020 ล่าสุด ติดต่อ live22 copa88 sa casino games ฟรี เครดิต แทง บอล ดาวน์โหลด เกมส์ สล็อต ออนไลน์ ดาว โหลด เกม xo slot slotxo app slot1688 เครดิต ฟรี ufabet98 ทาง เข้า ufa955 xe88 เครดิต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี sa gaming databet88bet slot ฝาก ครั้ง แรก ufa888info ดาวน์โหลด สล็อต 22 ufa คืน ยอด เสีย บา ค่า ร่า จี คลับ 1988 ufabet9999 sa baccarat 1988 slot999 ฟรี เครดิต แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 ล่าสุด สล็อต xo โหลด betufa default smart mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 โหลด เกม xo 918kiss แจก เครดิต ฟรี 2020 ราคา แทง บอล slotxo ฝาก ครั้ง แรก 100 ทาง เข้า ufa888 ไม่ ต้อง ฝาก เครดิต ฟรี โหลด เกม xo betufa default 8 บา คา ร่า บิ กิ นี่ ทาง เข้า ufa007 แทง พนัน บอล ออนไลน์ sagame1688 demo เข้า เกม slotxo sa เกมส์ บา คา ร่า ufabet มือ ถือ ดาวน์โหลด slotxo asia วิธี ดาวน์โหลด slotxo ติด ตั้ง slotxo ufabet1688 agreement 8 เกม บา คา ร่า 66 ufa356 แจก เครดิต ฟรี sa เกม ด อ ท คอม ufabet cb8 ทาง เข้า ufabet6666 next88 รหัส ฟรี เครดิต ดาวน์โหลด เกม สล็อต ทาง เข้า slotxoz แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ทาง เข้า slotxo auto fifa55 ฟรี เครดิต แทง 168 ทาง เข้า ufabet789 โหลด สล็อต 123 slotxo joker เครดิต ฟรี ี ufabet365 slotxo สมัคร โปร สมาชิก ใหม่ ฝาก 10 รับ 100 เข้า ufabet168 ทาง เข้า ufa365 มือ ถือ ยู ฟ่า 365 บา คา ร่า biz99 ดาวน์โหลด slotxo android เว็บ ufabet168 ufabet 7777 slot ฝาก 1 รับ 50 ufabet สมัคร ufacasino168 รับ เครดิต ฟรี ทันที เครดิต ฟรี ไม่ ต้อง ฝาก slot เว็บ sa game สล็อต xo ฝาก 1 บาท sa gaming 2020 เว็บ ยู ฟ่า 678 ฝาก ถอน ufa168 ufabet เว็บ บอล ออนไลน์ click2sbobet โบนัส ไม่ ต้อง ฝาก mafia567 เครดิต ฟรี www ufabet cc สล็อต xo ฝาก วอ ล เล็ ต แท่ง บอล ออนไลน์ 789 ดาวน์โหลด สล็อต live22 agent ufabet ufabet365 ทาง เข้า เข้า ufa168 sa gaming ถอนเงิน fifa55t ufabet 555 บอล 77up สมัคร ufabet88 บีบ บา คา ร่า ufa1688 ไทย ี ufa345 ยู ฟ่า เบ ท 9999 ufabet 115 เว็บ บอล ufa ทาง เข้า ufabet369 sa gaming 99 เกม มัก คา ร่า ดาวน์โหลด เกมส์ สล็อต slotxo88 เกมส์ sa ดาว โหลด เกม ส ล๊ อ ต บา คา ร่า เซ๊ ก ซี่ ยิง ปลา sa gaming ace333 ฟรี เครดิต ไม่ ต้อง ฝาก g2g เครดิต ฟรี ทาง เข้า เล่น ufa019 ฟ่า เบ ท แทง ต่ำ เครดิต ถอน ได้ ทาง เข้า slotxo168 ufabet แทง บอล บา คา ร่า ได้ บา คา ร่า sbo24hr โปร โม ชั่ น ufabet7777 55fifabet แจก โบนัส ฟรี ufabet1688 สมัคร โปร แทง บอล สมัคร slot555 ดาวน์โหลด slotxo asia ufa 1668 sbobet666 ยู ฟ่า เบ ท 982 ทาง เข้า ufabet1688 ทาง เข้า fifa55u เครดิต ฟรี playstar ทาง เข้า ufabet 89 แทง บอล 888 xo slot download slot ฝาก 5 บาท ฟรี 99 บาท โปร บา คา ร่า ufabet เว็บ slotxo download apk 777slot เครดิต ฟรี ทาง เข้า ufabet 89 slot ฝาก 5 บาท ได้ 100 เครดิต ถอน ได้ sa gaming 36th เครดิต ฟรี slot ufabet369 vip fifa55 คืน ยอด เสีย สมัคร สล็อต xo 888 sa คา สิ โน ufabet456 slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 แจก ฟรี เครดิต ไม่ ต้อง ฝาก 2020 ดาวน์โหลด สล็อต 22 ufabet99 มือ ถือ สมัคร slot online slotxo ฝาก 50 รับ 50 เว็บ ufabet 115 เปิด ยูสเซอร์ ฟรี เครดิต ไม่ ต้อง ฝาก sa gamingsexy เปิด ยู ส ฟรี เครดิต slot ฟรี โบนัส bcr777 รู เล็ ต เครดิต ฟรี ไม่ ยุ่งยาก 2020 sa gaming 168 เข้า สู่ ระบบ sa แกม มิ ง ทาง เข้า สล็อต ดาวน์โหลด สล็อต 22 lsm789up ufa1688 ดี ไหม ufabet 79 ufa800 สล็อต ufabet 8s ว้า ว บา คา ร่า ufabet group slot ฝาก 100 รับ 100 เครดิต ฟรี วัน นี้ บา คา ร่า ทุน 1000 sa game vip 168 ufa68bet slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน โปร สมาชิก ใหม่ 100 slotxo slot โบนัส ฟรี ufabet168 มือ ถือ แจก ฟรี ไม่ ต้อง ฝาก ก่อน sa gaming 06 ยู ฟ่า 6666 mm88bet pantip sa gaming th รับ โบนัส ฟรี ไม่ ต้อง ฝาก ufabet369vip sa gaming ฟรี 300 slotxo 50 รับ 100 บา คา ร่า คลับ เล่น บอล ออนไลน์ slot สมาชิก ใหม่ รับ เครดิต ฟรี ufabet16888 ค่า บา ล่า ufabet88888vip ดาวน์โหลด สล็อต xo ios 885ufabet ทาง ยู ฟ่า สล็อต xo ios โปร โม ชั่ น copa69 77up บอล ufabet168 ทาง เข้า sa gaming slot ufabet ฝาก ขั้น ต่ำ 100 ufa369v2 uefa goal168 สมัคร ufa365 mm88inter sa game casino online ufa888 club gaming 1688 slotxo ฝาก 9 บาท รับ 100 วอ เลท mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ufa356 ที่ ดี ที่สุด สล็อต xo ทาง เข้า แทง บอล 3m betdog289 เครดิต ฟรี ufa888s slot ฟรี 300 แจก ฟรี ไม่ ต้อง ฝาก ก่อน psthai888 เครดิต ฟรี ufabet net default 8 fifa555 ทาง เข้า เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ถอน ได้ ufabet 289 เข้า เล่น ufa ufa888 auto บา คา ร่า ทุน 500 ทาง ufabet sa เกม มิ่ง 66 โปร บา คา ร่า ฟรี สมัคร sa game 66 sa gaming 4g เครดิต ฟรี ถอน ได้ เลย slotxo ฝาก 50 รับ 150 โปร ufa fifa55 ออนไลน์ ทาง เข้า ยู ฟ่า 1688 vegus111 777slot เครดิต ฟรี แทง บอล ฟรี เครดิต ไม่ ต้อง ฝาก ufabet apk ทาง xo ufa9999999 fifa555 ฝาก 50 ฟรี 100 ยู ฟ่า เบ ท 666 เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ ทาง เข้า 168slotxo slotxo 1 ufa356 เครดิต ฟรี 100 PG SLOT slot ฝาก 1 บาท ฟรี 99 บาท 2020 ล่าสุด fifa55 fifa555 slotxo ฝาก 1 บาท ฟรี 50 บาท ล่าสุด mafia234 เครดิต ฟรี ufabet ปิด ปรับปรุง ufa007s ทาง เข้า ufabet999 แจก เครดิต ฟรี 2019 ไม่ ต้อง แชร์ รับ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน slot เครดิต ฟรี ถอน ได้ เบ ท ยู ฟ่า รับ เครดิต ฟรี ง่ายๆ ฟรี เครดิต ถอน ได้ ว้า ว บา คา ร่า โบนัส ฟรี ไม่ ต้อง ฝาก แทง บอล ได้ เงิน จริง ufa ufabet
          www gclub6666| เกม บิงโก ราคา| รวม ทาง เข้า sbo| sb0bet888| duell casino| สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด| happyluke app| joker allbet24hr| โหลด 981kiss| dafabet 642| วิธี ได้ ส ปิ น coin master ฟรี| vwin365th| ทาง เข้า sbobet 365| sbobet555| แอ พ ส ปิ น ฟรี| ทาง ส โบ เบ็ ต| m u16888com| เครดิต ฟรี 100 ไม่ ต้อง แชร์ 2019เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร| ทาง เข้า slm99| ib888 เข้า สู่ ระบบ| คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020| แจก ฟรี 100 ไม่ ต้อง แชร์| เว็บ ซื้อ หวย เจษฎา| สล็อต ขั้น ต่ํา 1 บาท| บอล สด sbobet| 365gclub v2| เกม โป ก เกอร์ ออนไลน์| opera casino| niki casino| หวย หุ้น เจษฎา| 918kiss ดาวน์โหลด android| pgslot567| wwwbeer555| ล็ อ ต โต วี ไอ พี| สล็อต แตก ง่าย ทุน น้อย| jetsadabet เปลี่ยน เอ เย่ น| สมัคร รับ เครดิต ฟรี ล่าสุด| ฝาก เงิน vscr888| casino playamo| เจษฎา ยี่ กี| อยาก ได้ ส ปิ น coin master ฟรี| ทาง เข้า sbobet 222| สล็อต ทุน ฟรี| gclublotto| อยาก ได้ ส ปิ น เยอะ ๆ coin master| สล็อต รับ เครดิต ฟรี ไม่ ต้อง ฝาก| jetsadabet ใหม่| crowncas| jetsadabet 999| ทาง เข้า sbobet agent| สมัคร แทง บอล ฟรี| fun88 girl| โค้ด ส ปิ น ฟรี coin master| 918kiss สมัคร สมาชิก ใหม่| pgslot567| สูตร เพิ่ม ส ปิ น coin master| แจก ฟรีสปิน2020| เข้า ส โบ ไม่ ได้| สมัคร สมาชิก 918kiss| fun88 โกง| k9win สมัคร| เว็บ หวย ออนไลน์ jetsadabet| แอ ป ล็ อ ต โต้ วี ไอ พี| โปร โม ชั่ น alpha88| ส ปิ น ฟรี coin master ล่าสุด| roma casino|