<code id="A512d3"></code>
    <code id="A512d3"></code>

        1. 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
           
          เครดิต ฟรี 100 ล่าสุด แอ พ slotxo แท่ง บอล ทาง เข้า ยู ฟ่า 191 ufa356 เครดิต ฟรี 100 sa เกม มิ่ง 66 slot ฝาก 1 บาท รับ 99 วอ เลท puss888 เครดิต ฟรี mafia slot เครดิต ฟรี 2020 ทาง เข้า slotxo168 slotxo สมัคร lsm99 ขั้น ต่ํา 10 บาท slotxo แอ พ มือ ถือ ดาวน์โหลด เดี๋ยวนี้ ทาง เข้า ufa95 sa999 gaming 777slot เครดิต ฟรี โหลด slotxo apk เล่น บอล ออนไลน์ pantip สมัคร ufa777 เข้า ยู ฟ่า เบ ท ส ปี ด บา คา ร่า s16 mm88bet pantip 123fazsv3 สล็อต xo 11 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ รับ เครดิต ฟรี bet236 บา คา ร่า rggame888 live22 โหลด แทง บอล true wallet เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 ล่าสุด live22 แจก เครดิต ฟรี ufabet dna atm slot เครดิต ฟรี เว็บ ยู ฟ่า 777 ufabet line sa gaming 77 ufabet1688 default smart แจก เครดิต ล่าสุด ufabet ปิด ปรับปรุง slot แจก เครดิต ฟรี 300 slotxo เว็บ ใหม่ fifa55sport ทาง เข้า agent ufa เปิด ยูสเซอร์ ฟรี แจก ยูสเซอร์ ฟรี พร้อม เครดิต ยู ฟ่า เบ ท ออนไลน์ betufa main เว็บ ufabet 115 sa gaming 36th slotxo bonus 100 โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก sa gaming png ufa345 24hr ทาง เข้า ufabet999 ทาง เข้า เล่น slotxo บา คา ร่า ออนไลน์ sa gaming สมัคร ufa800 สมัคร บอล ออนไลน์ ufabet 928maxbet แทง บอล ฟรี เครดิต ไม่ ต้อง ฝาก บอล ufa ufabet เครดิต ฟรี 100 ติด ตั้ง slotxo แอ น ด รอย ด์ ufabet188 ี ufa88s ufa บริษัท แม่ บา คา ร่า sa350 ufabet ทาง เข้า มือ ถือ โหลด เกม สล็อต slotxo live22 ufabet268 ufabet uk vip sa gaming 25 แทง 168 บอล รวย วัน นี้ ี ufabet88888 ทาง เข้า ยู ฟ่า 1688 heng666 เครดิต ฟรี ยู ฟ่า เครดิต ฟรี ดาว โหลด ส ล็ ต xo slotxo สมัคร ใหม่ รับ เครดิต ฟรี ทันที บอล ออนไลน์ 55 แทง บอล 10 แอ พ slotxo betufa agreement 8 ufabet default 8 smart sahacker888 55fifabet slotxo free ufa678 ดี ไหม six4bet ทาง เข้า เกม slotxo ufabet365s bet236 บา คา ร่า ถอนเงิน ufa th slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2018 ufabet6688 sboibc888 pantip รับ โบนัส ฟรี ไม่ ต้อง ฝาก เว็บไซต์ เกมส์ ออนไลน์ slotxo ดาวน์โหลด slot007 vip2541 ฝาก ขั้น ต่ำ sa gaming 365 jokerslotz999 เครดิต ฟรี เล่น บา คา ร่า ออนไลน์ ฟรี sa เว็บ ufa888 sa gaming 99 ดาวน์โหลด สล็อต xo168 fifa555 ฝาก ขั้น ต่ํา 10 บาท ทาง เข้า ยู ฟ่า 777 r1 ufabet sa gaming 911 bslot88 เครดิต ฟรี ufabet ลิ้ ง ufabet168v4 ufa168com slotxo 09 จี คลับ ฟรี เครดิต ufa369vip ufa หลัก ดาวน์โหลด เกมส์ สล็อต ออนไลน์ ufabet เครดิต ฟรี ไม่ ต้อง ฝาก slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss fifa55 เครดิต ฟรี 100 lsm789up ufabet888 ดี ไหม เว็บ sa game slot ฟรี โบนัส sa เซ็กซี่ ยู ฟ่า เบ ท 191 เซ็ ค ซี่ บา คารา slotxo รับ โปร 100 mm88bet vip เซ็ ค ซี่ บา คารา slotxo เกม ฟรี slot mg เครดิต ฟรี slot เครดิต ฟรี 2019 ufabet ฟรี เครดิต 100 8 pg slot ทาง เข้า ufa24h เครดิต ฟรี เดือน นี้ slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 สมัคร สล็อต xo วอ ล เล็ ต ufa7777com live22 โหลด ufabet2_888 สมัคร ยู ฟ่า 365 sa36 gaming sa แกม มิ ง www ยู ฟ่า เบ ท เว็บ กา บอล ฝาก 100 ฟรี 100 บอล ufabet007 ยู ฟ้า 168 ทาง เข้า ufa8k sagaming168 login ufabet เบอร์ โทร ufagold168 ufa369v2 ufabet456 sa บา คา ร่า 66 sa baccarat 1988 เครดิต ฟรี 400 เล่น บา คา ร่า ออนไลน์ ฟรี sa ufabet911 ww ufa777 คา สิ โน ออนไลน์ sa gaming www fifa555 app slotxo slot เครดิต ฟรี ถอน ได้ ufabet default 8 smart sa gaming ปิด รับ เครดิต ฟรี ไม่ ต้อง ฝาก บา คา ร่า คลับ ufabet168 เครดิต ฟรี เว็บ ufa365 ดี ไหม เว็บ bet911 แทง บอล ฟรี 1000 285 บา คา ร่า บา คา ร่า วัว วัว คือ สมัคร สล็อต 10 บาท sa game 25 ี ufa66 ufalion 168 ว้า ว บา คา ร่า ufa23 sa gaming th ยู ฟ่า เบ ท 1168 ufabet777 168 slotxo ฝาก 1 รับ 50 เปิด เว ป บอล ufabet main mafia8888 เครดิต ฟรี ligaz24th slotxo ฝาก 9 บาท รับ 100 slot ฟรี เครดิต 300 ufabet168 ทาง เข้า sa gaming 168 login sa gaming 1688 เข้า สู่ ระบบ 8klbfo xo slot download สมัคร เกม live22 ufa189 ลาว slot เครดิต ฟรี ไม่ ต้อง ฝาก slot free credit ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ บา คา ร่า c03 เว็บไซต์ เกมส์ ออนไลน์ slotxo ufabet2_888 สมัคร สล็อต ออ โต้ sa gaming เครดิต ฟรี 100 ufabet168 สมัคร ราคา บอล 1x2 สล็อต 1234 joker ดาวน์โหลด sa gamingbet ทาง เข้า ufa678 ufa1688 ดี ไหม เว็บ แท่ง บอล ออนไลน์ 888 ufabet1688 สมัคร slot เครดิต ฟรี ไม่ ต้อง ฝาก สมัคร สมาชิก slotxo เครดิต แจก ฟรี ไม่ ต้อง ฝาก mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 แว็ ป บอล ufa888a ufa95s แอ ป sa gaming fifa55m สล็อต xo ดาวน์โหลด slotxo ufa007s บา คา ร่า ทุน 300 http www ufabet888 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ รับ เครดิต ฟรี ufabet agent login ufatexas888 แจก ยูสเซอร์ ฟรี พร้อม เครดิต แว็ ป บอล holiday palace ฟรี เครดิต เกมส์ ที่ มี ของ เรา slotxo โหลด เกม slotxoth โปร บา คา ร่า แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ดาวน์โหลด สล็อต ออนไลน์ มือ ถือ slotxo apk download ufa356 ฟรี เครดิต ฝาก ufa168 slotxo ฝาก ออ โต้ ufa ฝาก ไม่มี ขั้น ต่ํา แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 บา คา ร่า ออนไลน์ sa gaming mdatabet882 เบอร์ โทร ufa365 ทาง เข้า เอ เย่ น ufabet vip2541 ฝาก ขั้น ต่ำ ยู ฟ่า เบ ท 982 ufabet72 สมัคร สุต บา คารา ยู ฟ่า เบ ท 24 slotxo 49 rg888 บา คา ร่า slotxo โปร สมาชิก ใหม่ เครดิต ฟรี ยิง ปลา ค่าย sg บา คา ร่า ล่าสุด ทาง เข้า ufabet 9999 ทาง เข้า ufathai slotxo mobile download mega888 ฟรี เครดิต ufatexas55 PG SLOT ufabet72 สมัคร สมาชิก ใหม่ ฟรี เครดิต 300 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ไม่ ต้อง แชร์ แทง ฟุตบอล ออนไลน์ แจก เครดิต ฟรี ถอน ได้ slot999 ฟรี เครดิต sa บา คา ร่า 66 lsm789up ufabet 146 ufabet 95 ufa168 ทาง เข้า wwwfifa555 885ufabet slotxo โปร 100 sa gaming slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2562 ufa168com holiday บา คา ร่า club388 เครดิต ฟรี รับ เครดิต ฟรี สมาชิก ใหม่ ufabet69 เครดิต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด ufabet ทาง เข้า 369 ี ufa777 สมัคร slotxo ฝาก 10 รับ 100 sa gaming v2 zz8 เครดิต ฟรี ทาง เข้า ufa88 มาเฟีย เครดิต ฟรี ล่าสุด 1688 ufa แทง บอล เดี่ยว สมัคร เล่น slot ufabet แจก เครดิต slot ฟรี เครดิต 2020 sbobet168 line เครดิต ฟรี ได้ จริง 2020 ufa789 gold ี ufabet6666 ยู ฟ่า เบ ท 191 ๊ ufabet ทาง เข้า ufa8k สล็อต xo 888 เครดิต ฟรี ufabet365s เกม gclub สมัคร สล็อต 1234 เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน ทาง เข้า slotxo 899 alpha88 pc heng666 เครดิต ฟรี sboibc888 ufa ไม่มี ขั้น ต่ํา ufabet info เล่น บอล ทั้ง สอง ฝั่ง ufabet ค่า คอม การ ถอนเงิน ufabet sa ฝาก 50 ได้ 150 สมัคร ufa88 แทง บอล 88 live777th slot online ยู ฟ่า เบ ท 1168 slot online ฟรี เครดิต ไม่ ต้อง ฝาก 2019 fifa55555 fhm99 ฟรี เครดิต fifa55 members ดาวน์โหลด slotxobkk ดาวน์โหลด xo เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ เครดิต ฟรี สล็อต xo สล็อต xo โบนัส 100 โหลด xo ios ยู ฟ่า เบ ท คาเฟ่ ufabet เว็บ หลัก เครดิต ฟรี ค่าย sg แจก จริง ไม่ ต้อง ฝาก สมาชิก ใหม่ แจก ฟรี ufabet9x ufabet เว็บ บอล ออนไลน์ slotxo ฝาก 100 รับ 100 ufabet999999 thaisbobet99 โบนัส ฟรี เครดิต สมาชิก ใหม่ เครดิต ฟรี ถอนเงิน ยู ฟ่า slot ฝาก 1 บาท ฟรี 99 บาท 2020 ล่าสุด slot ฝาก ครั้ง แรก สมัคร slotxo ฝาก วอ ล เลท ufabet แจก เครดิต ฟรี ยู ฟ่า bet sa gaming ฝาก เงิน สมัคร sa gaming vip ทาง เข้า ยู ฟ่า 356 ฝาก 50 ฟรี 100 slotxo sa gaming 4g mm88bet sport casino เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ล่าสุด fifa55 หวย ufabet บา คา ร่า ออนไลน์ ยู ฟ่า bet sbobet54 ufa678 ufabet 188bet ufabet168 มือ ถือ ี ufapro888 fifa55star ยู ฟา 191 ดาวน์โหลด xo ufabet pantip slotxo download pc เครดิต ฟรี ได้ จริง 2020 sa gaming 168 เข้า สู่ ระบบ ี ufabet777 ป๊อก เด้ง เงิน จริง ฟรี เครดิต sagaming99 ufa356 ดี ไหม แจก ฟรี เครดิต 2020 ufabet th vip sexxygame1688 แจก เครดิต ฟรี ไม่มี เงื่อนไข xo slot ทาง เข้า slotxo สมัคร ufa9999 mafia slot เครดิต ฟรี 2020 slot online ฟรี เครดิต 2020 ดาวน์โหลด slotxobkk ufabet158 sa บา คา ร่า ทาง เข้า เล่น 168slotxo slotxo ฟรี เครดิต ไม่ ต้อง ฝาก 2020 slot online ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ufa777 สมัคร สต ร บา คา ร่า ฟรี slot ฟรี เครดิต ไม่ ต้อง ฝาก 2019 แทง บอล บัตร ท รู โหลด เกมส์ สล็อต ออนไลน์ ufabet168 vip ี ufa6666 slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด รับ เครดิต ฟรี ไม่ ต้อง ฝาก เว็บ บอล ufabet บา คา ร่า 188bet 123fazsv3 123ufabet slotxo โปร สมาชิก ใหม่ ฟรี เครดิต 50 บาท betufa สมัคร pok9 เครดิต ฟรี ufabet 2018 ufa656 ทาง เข้า มือ ถือ slotxo แอ พ มือ ถือ ดาวน์โหลด เดี๋ยวนี้ slot แจก เครดิต ฟรี 300 ufabet สมัคร สมาชิก ยู ฟ่า เบ ท 7777 slotxo 1 เว็บ ฟีฟ่า โบนัส เครดิต ฟรี ufabet v9 แทง ฟรี ไม่ ต้อง ฝาก mafia แจก เครดิต ฟรี ล่าสุด ufabet88s ufabet agent ทาง เข้า ufa88 ทาง เข้า ufabet slot ฟรี เครดิต 2019 ufabet888 เว็บ ufabet ดี ไหม ยู ฟ่า ออนไลน์ 168 สมาชิก ใหม่ ฟรี เครดิต 50 แทง บอล ไม่มี ขั้น ต่ำ ufabet1688 เครดิต ฟรี ufabet sport สมาชิก ใหม่ รับ เครดิต ฟรี ไล สด บา คา ร่า แทง บอล วัน นี้ ufabet 888888 fifa55 click ทาง เข้า slotxo bkk atm slot เครดิต ฟรี สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก แทง บอล ufabet ถอนเงิน จาก ufabet ๊ ufabet ี ufa66 live22 slot download xo slot download sa game 25 แจก เครดิต ฟรี live22 slot ฝาก 1 บาท ฟรี 99 บาท 2020 ล่าสุด sagaming99 ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด ถอนเงิน ufa191 168ufabet ufabet company ทาง เข้า slotxo ฝาก ถอน เว็บ ยู ฟ่า 678 slot ไม่ ต้อง แชร์ บา คา ร่า sa350 แทง บอล 10 ufabet 100 ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ ยู ฟ่า เบ ท 666 ยู ฟ่า เบ ท คาเฟ่ ufabet700 sagame66 demo slotxo ฝาก 5 บาท ฟรี 99 บาท ล่าสุด ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด ufabet sa gaming slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน slotxo โหลด ios เครดิต ฟรี slot ufabet 879 เกม บา คา ร่า 66 สมัคร สมาชิก แทง บอล ออนไลน์ ufabet เว็บ บอล ออนไลน์ เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss vegus5g ufabet cnv3 ยู ฟ่า เบ ท 9999 sa gaming66 เข้า สู่ ระบบ gaming บา คา ร่า แจก เครดิต ฟรี จริง สมาชิก เครดิต ฟรี id line ufabet sa เกม มิ่ง vip ยู ฟ่า เบ ท คาเฟ่ ufa ฝาก ไม่มี ขั้น ต่ํา ให้ เครดิต ฟรี เข้า เกม xo heng666 เครดิต ฟรี ยู ฟ่า ออนไลน์ 24 ยู ฟ่า เบ ท 8888 sa sa gaming ทาง เข้า ี ufabet slotxo ติด ตั้ง ดาว โหลด ส ล็ ต xo เครดิต ฟรี ไม่ ฝาก ไม่ แชร์ ล่าสุด มาเฟีย แจก เครดิต ฟรี ล่าสุด จี คลับ ฟรี เครดิต เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน xo slot ทาง เข้า slotxo ฟรี เครดิต 200 ไม่ ต้อง ฝาก gc88888 แซ ก ซี่ บา คา ร่า แจก เงิน ฟรี 2019 สมัคร สมาชิก ยู ฟ่า ยู ฟ่า เบ ท 888 ufabet18 แอ พ บา คา ร่า ios เปิดโปง บา คา ร่า เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน เล่น บอล แบบ นัก ลงทุน slotxo ฝาก 50 mysbo99 ufabet168 sa gaming คือ แทง บอล ขั้น ต่ำ 20 บาท ยู ส ฟรี slotxo ทาง slotxo ยู ฟ่า 88888 ยู ฟ่า เบ ท 99 ufa ไม่มี ขั้น ต่ำ sa game casino online เครดิต ฟรี ยู ฟ่า ถอนเงิน ufa168 ufabet cb8 slot เครดิต ฟรี ถอน ได้ ufa fun888 ดาว โหลด เกม xo slot ดาวน์โหลด slotxo apk ติด ตั้ง xo ufabet123v1 เครดิต ฟรี ไม่มี ขั้น ต่ำ เครดิต ฟรี ไม่ ต้อง ไล่ ค์ ไม่ ต้อง แชร์ 2020 sa casino vip ทาง เข้า slotxo 899 เครดิต ฟรี ไม่ ต้อง โอน slot เครดิต ฟรี ไม่ ต้อง ฝาก ufabet2020 ทาง เข้า slotxo 007 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ไม่ ต้อง แชร์ เว้ บ เครดิต ฟรี youlike222 เครดิต ฟรี slotxo ฝาก 1 บาท ฟรี 50 บาท ล่าสุด ufabet888s เว็บ บอล ufabet mafia8888 เครดิต ฟรี โปร สมาชิก ใหม่ 100 slotxo sa gaming 168 vip เข้า สู่ ระบบ slot1688 online ufabet855 vip sa gaming ดาวน์โหลด สล็อต ออนไลน์ 55fifabet โปร สมาชิก ใหม่ ฝาก 10 รับ 100 ดาวน์โหลด เกมส์ live22 สล็อต xo ฝาก 1 บาท web fifa555 คา สิ โน sa gaming แทง บอล เดี่ยว สมัคร สมาชิก สล็อต ออนไลน์ sa gaming เข้า ไม่ ได้ แจก เงิน ฟรี 2019 sa เกม มิ่ง 66 ufabet369 ทาง เข้า sa casino ฝาก 50 รับ 150 ให้ เครดิต ฟรี mafia แจก เครดิต ฟรี 50 บาท เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 เปิด ยูสเซอร์ ฟรี เครดิต slotxo android แจก ฟรี เครดิต ไม่ ต้อง ฝาก 2020 fifa55atm mafia เครดิต ฟรี ใหม่ ล่าสุด sa gaming v2 ufabet บา คา ร่า ufabet728 slot free 888 เครดิต ฟรี 50 ถอน ได้ 300 ทาง เข้า เกม xo โหลด slotxo ios ufa800 สล็อต fifa55gen slotxo ติดต่อ xo download clubfifa55 line vip2541 ufabet ฝาก 50 รับ 100 st911 บา คา ร่า ufabet 2018 ufabet cn ufabet แจก เครดิต 2020 slot free 888 ทาง เข้า slotxo vip ทาง เข้า ufa955 slotxo สมาชิก ใหม่ 100 ufa363 ทาง เข้า ufabet kik bcr777 รู เล็ ต sa gaming 06 sa gaming vip ดี ไหม คำคม บา คา ร่า เข้า ยู ฟ่า ufa goal168 แท่ง บอล แทง บอล บัตร ท รู slot ฝาก สมัคร ยู ฟ่า 365 ufabet777 356 slotxo สมัคร สมาชิก ufathai บา คา ร่า sa350 ufabet line ufa888 วิน ฝาก 100 ฟรี 100 บอล เข้า เล่น ยู ฟ่า ufabet728 บา คา ร่า xo wwwufa600 รับ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน เข้า เล่น เกม xo โหลด เกมส์ สล็อต xo1688 isc123 โปร โม ชั่ น ufabet 20 รับ 100 free เครดิต ฟรี ดาวน์โหลด มือ ถือ http www happyslot88 com download ติด ตั้ง สล็อต xo ยูสเซอร์ ฟรี เครดิต ทาง เข้า เล่น 168slotxo เว ป บอล ออนไลน์ slotxo เครดิต ฟรี 2020 id line ufabet แทง บอล 24 spin999 ฟรี เครดิต xo ฟรี 100 ufabet168v2 fifa69 pantip sa gaming เข้า สู่ ระบบ ufabet default 8 แทง บอล ออนไลน์ 24 ชม ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน slot mg เครดิต ฟรี ยู ฟ่า 888 ทาง เข้า เอ เย่ น ufabet sa gaming ปิด ปรับปรุง ทาง เข้า ufabet 89 sa gaming ได้ เงิน จริง ไหม gaming 1688 เครดิต ฟรี slot ufabet 146 ดาวน์โหลด slotxo 44 ufabet มือ ถือ บอล น่า แทง วัน นี้ slot ไม่ ต้อง ฝาก ฟรี เครดิต 2019 ไม่ ต้อง ฝาก ดาวน์โหลด เกมส์ สล็อต slotxo88 mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 sa gaming เข้า ไม่ ได้ fifa55u มา คา ร่า 168 sa gaming88 เข้า สู่ ระบบ slotxo ฝาก 9 บาท รับ 100 วอ เลท ufadb88 สมัคร สล็อต xo ดาวน์โหลด slotxo ดาวน์โหลด แอ พ slotxo ufabet ฟรี เครดิต 100 เล่น ยู ฟ่า สมัคร ufa888 ตั้ง slotxo เครดิต ฟรี เทิ ร์ น 1 เท่า 2020 ดาว โหลด เกม ส ล๊ อ ต vegus168 ฝาก เงิน ufabet สมัคร สมาชิก ใหม่ แจก ฟรี ได้ บา คา ร่า ufa356 ฝาก slot ฝาก 5 บาท ฟรี 99 บาท ทาง xo สมัคร slotxo รับ เครดิต ฟรี สล็อต xo ดาวน์โหลด slotxo สล็อต xo ฟรี เครดิต ufatexas89 ufa1688 ฝาก ufa7777 ทาง เข้า ufabet เข้า สล็อต xo ฟรี เครดิต fifa55 login joker689 เครดิต ฟรี rb88 slot slot ฟรี เครดิต 300 ufa365 บา คา ร่า ใน โทรศัพท์ slotxo ฝาก แจก เครดิต ฟรี ปี ใหม่ แทง บอล เดี่ยว เล่น fifa55 ฟี ฟ้า 55 slotxo joker สมัคร ใหม่ ทาง ufabet sa เกม 199 ยู ฟ่า เบ ท 007 ทาง เข้า ufa369 ufabet เว็บ แม่ ufa24h ดี ไหม ufa6666 สมัคร ค่า ร่า ค่า บ่า ร่า sa casino ฝาก 50 รับ 150 ufabet ทาง เข้า 369 เครดิต ฟรี playstar บา คา ร่า ufa88s แทง บอล ออนไลน์ ฝาก ขั้น ต่ํา 100 slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด ี ufa356 net slotxo เครดิต ฟรี 2020 id line ufabet รับ เครดิต ฟรี xo บา คา ร่า baccarat ufabet352 ufabet แอ พ แทง บอล ฟรี 1000 เครดิต ฟรี ไม่ ต้อง ฝาก ต้อง แชร์ slotxo ฟรี เครดิต 50 ไม่ ต้อง ฝาก รับ เครดิต ฟรี slotxo เล่น แทง บอล เครดิต ฟรี ทํา เทิ ร์ น 2020 แทง บอล 2 คู่ เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ทาง เข้า ยู ฟ่า bet สล็อต xo 555 ลิ้ ง ทาง เข้า ufabet ufabet987 slotxo app ทาง เข้า ufabet45 gaming66 fifa555 ฝาก 50 ฟรี 100 isc123 โปร โม ชั่ น PG SLOT slotxo 09 slotxo เล่น ฟรี 100 ถอนเงิน sa gaming ufabet rich เข้า เกม xo ufabet ทาง เข้า 369 sa gaming 5g slotxo แอ พ มือ ถือ ดาวน์โหลด เดี๋ยวนี้ ufabet500 จุดอ่อน บา คา ร่า ถอนเงิน ufa168 ฝาก 50 รับ 150 ไม่ ต้อง ทํา เทิ ร์ น ล่าสุด sa gaming ฝาก เงิน mafia88 เครดิต ฟรี ไม่ ต้อง ฝาก แทง บอล ขั้น ต่ำ 1 บาท เครดิต ฟรี ค่าย sg โหลด xo ios ufabet 515 ufa888 club fifa55 เครดิต ฟรี สมาชิก เก่า ufabet easy ทาง ufabet โปร เครดิต ฟรี เครดิต ฟรี ใหม่ ล่าสุด 2020 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน แอ พ สล็อต ios ได้ เครดิต ฟรี ดาวน์โหลด xo สล็อต sa gaming 86 ยู ฟ่า bet prompay88 เครดิต ฟรี โบนัส ฟรี ไม่ ต้อง ฝาก ถอน ได้ mafia88 เครดิต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี สมาชิก ใหม่ 2020 slot ได้ เงิน จริง บา คา ร่า คือ เกม อะไร slot online จ่าย จริง มากมาย betufa 168 ufabet111 ufa777com สมัคร slotxo โบนัส 100 sbobetball168 โปร เครดิต ฟรี ทาง xo slot รับ เครดิต ฟรี ไม่ ต้อง ฝาก ufa69b slotxo ฝาก ขั้น ต่ํา 50 slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน เข้า ufabet168 sbobetclub168 บอล fifa55 ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ mafia567 เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ ex88 เครดิต ฟรี slotxo ใหม่ ล่าสุด จี คลับ ผ่าน ท รู วอ ล เล็ ท slotxo เกม ฟรี slotxo โหลด ufa1688 สมัคร สต ร บา คา ร่า ฟรี fifa55c ฝาก 50 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น ถอนเงิน ufabet1688 id line ufabet sa66 game สมัคร เว็บ ยู ฟ่า เบ ท mysbo99 เครดิต ฟรี fifa555king บา คา ร่า baccarat ufa888 ทาง เข้า ฝาก 50 รับ 150 ไม่ ต้อง ทํา เทิ ร์ น ล่าสุด sa gaming ปิด ปรับปรุง ถึง กี่ โมง วัน นี้ st911 บา คา ร่า แทง บอล 777 gclub 1668 ดาวน์โหลด สล็อต xo 888 ufabet777 เครดิต ฟรี sa gaming คา สิ โน fifa55 sport ufabet th slot1688 เครดิต ฟรี sa gaming เข้า สู่ ระบบ ราคา บอล 1x2 สมัคร เล่น สล็อต แทง ฟุตบอล ออนไลน์ แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2020 บา ค่า ร่า ฟรี เครดิต ไม่ ต้อง ฝาก ถอนเงิน ufa168 ยู ฟ่า เบ ท 982 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2018 slot เงิน ฟรี ufabet 5g mm88fc ufabet799 slotxo สมัคร เข้า ufa365 mt88casino เว็บ ufa800 rg888 บา คา ร่า สล็อต 1234 joker ดาวน์โหลด ดาว โหลด เกม xo slot ufabet899 sa gaming ปิด ปรับปรุง ufa877 คืน ยอด เสีย บา คา ร่า 787 ufa191 ufabet500 ดาว โหลด เกม xo เครดิต ฟรี ล่าสุด 2019 ทาง เข้า เว็บ ufabet betufa slot 999 เครดิต ฟรี ี ufa66 ufabet678 ufabet png sa gaming 365 omg89bet 123bet เครดิต ฟรี vip2541 ฝาก เงิน 20 เสีย บา คา ร่า pantip 2563 ไม่ ต้อง ฝาก ก่อน ถอน ได้ บอ ท บา คา ร่า มือ ถือ บอล ufa sa gaming 1 fifa55 เว็บ ตรง ติด ตั้ง slotxo ios แจก เครดิต ฟรี ถอน ได้ เลย www ufabet799 live22 แจก เครดิต ฟรี 2020 แทง ufabet mafia slot ใหม่ ล่าสุด เครดิต ฟรี ufabet 656 บา คา ร่า วัว วัว คือ holiday บา คา ร่า เข้า ยู ฟ่า ufaking168 บา คา ร่า ทุน 300 ฝาก ufabet slot ฝาก 100 ได้ 300 77up บอล บา คา ร่า sa350 บอล fifa55 slot rb88 gaming 168 รับ เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ufa089 g2g เครดิต ฟรี ufabet ฝาก 100 slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด ยู ฟา 88 เครดิต ฟรี ไม่ ยุ่งยาก 2020 fhm99 เครดิต ฟรี เครดิต ฟรี ทันที ดาวน์โหลด joker xo จุดอ่อน บา คา ร่า sa gaming 168vip slot ฟรี เครดิต ไม่ ต้อง ฝาก 2020 sa gaming sa เข้า เล่น เกม slotxo ufabet 877 แทง หวย ฟรี เครดิต live22 แจก เครดิต ฟรี 2020 ดาวน์โหลด slotxo ios แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ี ufabet365 ufa9bet เครดิต ฟรี ถอน ได้ ดาวน์โหลด slotxo ล่าสุด ทาง เข้า joker xo เว็บ ยู ฟ่า 365 slot ฝาก 100 ได้ 300 สมัคร ufabet1688 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2018 fifa555gold ี ufabet co ufabet9999 ยูสเซอร์ ฟรี เครดิต สมัคร สล็อต live22 betclic899 ufabet ทาง เข้า มือ ถือ i99max บา ขา รา บา คา ร่า เช็ ก ชี่ บอล ออนไลน์ 789 เกมส์ sa ยู ฟ้า 888 เครดิต ฟรี ตอน นี้ slotxo joker เครดิต ฟรี เครดิต ฟรี 300 ไม่ ต้อง ฝาก แจก เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 เข้า เว็บ ufabet ufabet168 เครดิต ฟรี เครดิต ฟรี ยิง ปลา ค่าย sg sa gaming 168vip คา สิ โน ufabet สมัคร สล็อต xo1234 ลอง เล่น sa gaming ติด ตั้ง slotxo แอ น ด รอย ด์ live22 ฝาก 100 รับ 100 สมัคร ufabet88 ufabet lucky เกมส์ sa sa gaming link ufabet ถอนเงิน ยู ฟ่า เบ ท 1 บา คา ร่า ufabet ติด ตั้ง เกม สล็อต xo ufabet1688 เครดิต ฟรี ี ufa88 live22 สมัคร เกมส์ บา คา ร่า ราคา บอล fifa89 PG SLOT ี ufabet88 เครดิต ฟรี ยู ฟ่า เซ๊ ก ซี่ บา ค่า ร่า เกมส์ 66 ค่า บ่า ร่า login ufa เล่น ยู ฟ่า 1688 ufa ufabet atm sbobet888888 สมัคร ufa777 ยู ฟ่า สมัคร สมัคร slotxo111 บอล 77up gaming บา คา ร่า web168v3 ทาง เข้า ufabet777 บอล ต่ำ แทง บอล ออนไลน์ 168 ufabet36 ufabet ขั้น ต่ำ 100 ทํา เทิ ร์ น เครดิต ฟรี ทาง เข้า ufa955 แทง บอล 777 เว ป บอล ดีๆ ป๊อก เด้ง แจก ฟรี 300 แทง บอล ฟรี เครดิต ไม่ ต้อง ฝาก เปิด ยูสเซอร์ รับ เครดิต ฟรี sa game casino online sa gaming ปรับปรุง slotxo ios โหลด ไม่ ได้ เครดิต ฟรี ถอน ได้ บา คา ร่า 918 slotxo ฝาก 29 รับ 100 slotxo เล่น ฟรี 100 ufabet777 356 sa gaming คา สิ โน ออนไลน์ slot เงิน ฟรี sa gaming 168 login
          ทาง เข้า เล่น ยู ฟ่า| slotxoth download| ยู ฟ่า เครดิต ฟรี| คา ร้า| ั ufabet| www ufabet799| slot007 ดาวน์โหลด| สมัคร ยู ฟ่า 168| ufabet ถอนเงิน| หาเงิน จาก บา คา ร่า pantip| สมัคร สล็อต live22| slotxo ทาง เข้า เล่น| slot เครดิต ฟรี 2019| ติด ตั้ง slotxo| sa gaming บา คา ร่า| รับ เครดิต ฟรี ถอน ได้| แอ พ สล็อต ios| ufa356 ฝาก| แทง บอล ufa350| fifa55cash| ufatexas89| mt88casino| แทง บอล โลก 2018| ufabet โกง ไหม| fifa55mini| เว็บไซต์ บอล ออนไลน์| แทง บอล โลก| แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก| สมาชิก ใหม่ แจก ฟรี| แทง บอล ออนไลน์| betufa 168| live22 สมัคร| ี ufabet 888| ทาง เข้า เว็บ ufabet| ี ufa7777| ทาง เข้า ufabet1688| ufabet6688| แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด| sagame1688 vip| ทาง เข้า agent ufa| เช็ ก ซี่ บา คา ล่า| แจก เครดิต ฟรี จริง| บา คา ร่า ปลอม| ค่า ร่า| ufabet lion 168| สมัคร พนัน บอล ออนไลน์| โหลด สล็อต live22| บา คา ร่า 918kiss| เปิด ยูสเซอร์ ฟรี เครดิต 2020| แทง บอล ฟรี ไม่ ต้อง ฝาก| ทาง เข้า betufa| sa gaming 168vip| sa gaming 86| ufabet thaivip| เกมส์ มา ส คา ร่า| ให้ เครดิต ฟรี| mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2020| ufabet pro| slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| ufabet3| เซ๊ ก ซี่ บา ค่า ร่า เกมส์ 66| sbobet666| sa gaming 99| ufabet 20 รับ 100| บา คา ร่า 1| id line ufabet|