• <table id="k1c0cy"><span id="k1c0cy"></span></table>

      <nav id="k1c0cy"></nav>
    1. <tr id="k1c0cy"><source id="k1c0cy"><option id="k1c0cy"></option></source></tr>
        <sub id="k1c0cy"><address id="k1c0cy"><nobr id="k1c0cy"></nobr></address></sub>

        <em id="k1c0cy"></em>

        <em id="k1c0cy"></em>
        <sub id="k1c0cy"></sub><wbr id="k1c0cy"></wbr>

          <em id="k1c0cy"></em>
          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
           
          แทง บอล ฟรี ไม่ ต้อง ฝาก ufa คือ thaibet789 เครดิต ฟรี ค่า สิ โน ออนไลน์ ufa69 ยู ฟ่า bet slot เครดิต ฟรี ถอน ได้ สมัคร เล่น เกม สล็อต fifa555 ฝาก ขั้น ต่ํา 10 บาท สมัคร ufabet777 ฝาก 99 รับ 300 วอ เลท เว ป 77up ufa365 v2 ไฮโล ufabet บา คา ร่า วัน ละ 500 xo ฟรี 100 sa77 บา คา ร่า แจก เครดิต ล่าสุด สมัคร เล่น สล็อต xo ufa007s ufabet777 168 ดาว โหลด ส ล็ ต xo ufabet285 ดาวน์โหลด slotxo 236 www ufabet666 เข้า ufabet ไม่ ได้ slotxo ฝาก 1 บาท ฟรี 50 บาท ล่าสุด ufadb88 สมัคร สล็อต xo ฝาก 1 บาท mm88fifa sbobet888888888 fifa 855bet โปร โม ชั่ น เว็บ พนัน บอล แจก เครดิต ฟรี 500 ไม่ ต้อง ฝาก 2020 ล่าสุด ufabet2_888 ยิง ปลา sa gaming ufabet488 sa gaming line slotxo ฝาก 1 บาท ได้ 100 วอ เลท สมัคร เว็บ ufabet เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ติด ตั้ง เกม สล็อต six4bet เครดิต ฟรี ล่าสุด ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufabet ufabet main โปร โม ชั่ น แทง บอล ออนไลน์ ดาว โหลด slot โปร เครดิต ฟรี clubfifa55 ดาวน์โหลด slotxo ล่าสุด sa gamingth ราคา บอล 1.8 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2018 บา คา ร่า 345 แทง บอล เครดิต ฟรี สมัคร เล่น slot fifa55la แจก ฟรี ไม่ ต้อง ฝาก ก่อน 123ufabet ฝาก เงิน ufa888 ทาง เข้า ufa800 ufabet pr ยู ฟ่า เครดิต ฟรี เว็บ ufa88 fifa 855bet fifa55call sbobet365th เครดิต ฟรี ไม่มี ขั้น ต่ำ ดาวน์โหลด joker xo slot online ฟรี เครดิต 2020 slotxo เกม ฟรี แทง บอล ทบ mega888 แจก เครดิต ฟรี fifa 855bet เล่น fifa55 slot แจก ฟรี เครดิต slotxo ฝาก 1 บาท ได้ 100 วอ เลท sa gaming 07 ดาวน์โหลด slotxo 2020 เครดิต ฟรี ไม่ ต้อง ไล่ ค์ ไม่ ต้อง แชร์ 2020 sbothai8 slot free 888 สล็อต xo ฝาก วอ ล เล็ ต บา คา ร่า ค่า คอม สูง slot สมัคร เครดิต ฟรี slot ufabet 579 เครดิต ฟรี ไม่ ต้อง ฝาก 200 ufa888com gold88 เครดิต ฟรี สล็อต xo ออนไลน์ ufabet png แทง บอล ออนไลน์ i99win sbobet285 slotxo ดาวน์โหลด ios ยู ฟ่า 888 slotxo ดาวน์โหลด แจก เครดิต ฟรี ถอน ได้ ไม่ ต้อง ฝาก แทง บอล ฟรี 100 ส ปี ด บา คา ร่า s13 บอล เต็ง fifa55 ี ufa88s isc123 โปร โม ชั่ น แท่ง บอล ออนไลน์ vegus168sure ufabet vip สล็อต xo ดาวน์โหลด slotxo xe88 เครดิต ฟรี ไม่ ต้อง ฝาก แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก live22 แจก เครดิต ฟรี sa gaming คือ เว็บ bet911 slot ฝาก 1 บาท ฟรี 99 บาท 2020 ล่าสุด แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ ไม่ ต้อง แชร์ ufabet189 slotxo โหลด ios โปร โม ชั่ น แทง บอล ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufabet agreement 8 เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ ทาง เข้า joker xo ufabethero sa gaming 168 login สมัคร betufa ufabet999 เว กา บอล sa ฝาก 50 รับ 150 i99pro wwwufa999999 ufabet777 168 ทาง เข้า slotxo mobile ufabet 357 แจก เครดิต ฟรี 500 ไม่ ต้อง ฝาก 2020 ล่าสุด ufabet บา คา ร่า ออนไลน์ sa gaming line ufabet บา คา ร่า ออนไลน์ สมัคร ufa7777 สมัคร เล่น บอล ออนไลน์ betdog289 เครดิต ฟรี ufabet 128 แทง บอล วัน นี้ slotxo ติดต่อ ufabet888s fhm99 เครดิต ฟรี www fifa555 ไลน์ ufabet บา คา ร่า เช็ ก ชี่ sa บา คา ร่า ufabet v7 แทง บอล รวย 777 เครดิต ฟรี บา คา ร่า เท ส betufa main ทาง เข้า ufabet1688 เครดิต ฟรี xo เข้า เล่น ufa วัน นี้ แทง บอล คู่ ไหน ดี sa เกม มิ่ง บา คา ร่า 8klbfo หวย ufa mafia222 เครดิต ฟรี ดาวน์โหลด เกมส์ สล็อต ออนไลน์ ทาง เข้า ufabet 363 แจก เครดิต 2020 บา คา ร่า 345 fifa555pro ดาว โหลด เกม xo slot สมัคร เล่น ufabet ufawb998v3 ฟรี เครดิต 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ยู ฟ่า เบ ท 1688 ufa55bet ี ufa1688 slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 new ufabet สมัคร slot fifa55gol ทาง เข้า ufa007 แจก ฟรี เครดิต ไม่ ต้อง ฝาก live22 slot download ufabet 79 ufabet799 slot credit free ufabet24hr slot ฝาก 5 บาท ฟรี 99 บาท แจก โบนัส ฟรี mafia111 เครดิต ฟรี ufabet pantip ufabet28 slotxo ฝาก 15 บาท pussy888 แจก เครดิต ฟรี sa เกม 199 ยิง ปลา ได้ เงิน ฟรี สมัคร ยู ฟ่า เบ ท 168 ดาวน์โหลด เกมส์ live22 เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 ทาง เข้า slotxo mobile แทง บอล เว็บ ตรง ufabet bet ufabet demo fifa555gold mafia88 เครดิต ฟรี 50 ufabet thaivip ufabet168 ฝาก เว็บไซต์ บอล ออนไลน์ เครดิต ฝาก 1 บาท รับ 100 sa gaming ts911 บอล ดี 777 เครดิต ฟรี ตั้ง slotxo ยู ฟ่า ออนไลน์ 24 rt slot เครดิต ฟรี heng666 เครดิต ฟรี ufa98s ufabet ทาง เข้า เล่น ufabet799 sa gaming ts911 สมาชิก ใหม่ ฟรี เครดิต 2020 ได้ เครดิต ฟรี vegus96 ufabet 77 slotxo free slotxo เครดิต ฟรี ไม่ ต้อง แชร์ mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2020 เว็บ กา บอล ufabet168 v4 เครดิต ฟรี ฟุตบอล เข้า เกม สล็อต xo โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก หา เครดิต ฟรี wwwufa7777com เครดิต ฟรี ใหม่ ล่าสุด 2020 ufa777 ทาง เข้า ufa191 สมัคร ยิง ปลา แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ufabet121 ยู ฟ่า เบ ท ออนไลน์ sbobet888 line ufabet72 sa game vip แจก เครดิต ล่าสุด ufa356 ฟรี เครดิต sa gaming ปิด ปรับปรุง ถึง กี่ โมง ufabet45 betufa agreement 8 แทง บอล โปร โม ชั่ น ยู ส ฟรี slotxo ufabet 95 ดาว โหลด เกม slotxo เข้า เว็บ ยู ฟ่า เบ ท slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ยู ฟ่า เบ ท 99 gclub777 เว็บ ยู ฟ่า 369 แฉ บา คา ร่า ufa365s ดาวน์โหลด slotxo joker slotxo ฝาก 100 รับ 100 sa gaming 1688 เข้า สู่ ระบบ ufabet 115 v2 slotxo สมาชิก ใหม่ 188bet ฟรี เครดิต 2019 spin999 ฟรี เครดิต bslot88 เครดิต ฟรี jdb289 เครดิต ฟรี club388 เครดิต ฟรี ufabet 24 slot ฝาก ครั้ง แรก ufa369 ฝาก ดาวน์โหลด เกมส์ สล็อต slotxo88 www databet88 com บา ค่า ร่า จี คลับ 1988 โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก เล่น บอล ให้ รวย ufabet เว็บ หลัก เครดิต ฟรี mafia ใหม่ ล่าสุด บา คา ร่า แอ พ โปร ufa sa เกม บา คา ร่า sa เกม คา สิ โน แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 sa gaming 77 ufabet cn ยู ฟ่า เบ ท 191 บอล ออนไลน์ 77up sa gaming 5 วิ bet236 บา คา ร่า ยุ ฟา เบส 888 โหลด แอ พ สล็อต xo xo ทาง เข้า ดาวน์โหลด slotxo android เว็บไซต์ แท่ง บอล gold88 เครดิต ฟรี ี ufa188 แจก ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี เดือน นี้ สล็อต 1234 joker ดาวน์โหลด live22 เครดิต ฟรี ไม่ ต้อง ฝาก sa เซ็กซี่ ฝาก 100 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น slotxo apk download slotxo ฟรี slot credit free สมัคร เอเย่นต์ ufabet sbobet24 online uf99999 ดาวน์โหลด 168slotxo ทาง เข้า เอ เย่ น ufa sa gaming link sa gaming vip เข้า สู่ ระบบ แทง หวย ฟรี เครดิต vegus168 ฝาก เงิน ufa369 ฝาก ufabet cash slotxo ฝาก 5 บาท ฟรี 99 บาท โปร โม ชั่ น sa gaming แจก จริง ไม่ ต้อง ฝาก ufabet แนะนำ เพื่อน เครดิต ฟรี ไม่ ต้อง ทำ เทิ ร์ น เครดิต ฟรี 50 ถอน ได้ 300 แทง บอล 10 ufabet public chgpwd 2 slot rb88 slot เครดิต ฟรี ล่าสุด ufabet 363 ufabet ฝาก 100 ฟรี 100 ดาว โหลด เกม slotxo ฟรี โบนัส ไม่ ต้อง ฝาก เว็บ ufa356 slotxo ฝาก 100 รับ 300 ยิง ปลา sa gaming slotxo เปิด ใหม่ ufabet 77 เว็บไซต์ แท่ง บอล sbobet888 line แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th เครดิต ฟรี ล่าสุด ufabet pro ufabet728 สมัคร สล็อต live22 ww fifa55 slot รับ เครดิต ฟรี ไม่ ต้อง ฝาก gold88 เครดิต ฟรี ufa678 เข้า ไม่ ได้ 918kiss แจก เครดิต ฟรี 2020 สมัคร pg slot ufabet188 ufabet 3333 เว็บ ยู ฟ่า 369 ufa191 ยิง ปลา เอ เย่ น ufabet ufa678 ดี ไหม ufabet global สมัคร สมาชิก ยู ฟ่า แจก ยูสเซอร์ ฟรี พร้อม เครดิต แทง บอล fifa55x แจก ยูสเซอร์ ฟรี พร้อม เครดิต ufa goal168 fifa55x ฟรี ฟ้า 55 slot ไม่ ต้อง ฝาก ก่อน เว็บ ยู ฟ่า 88 วัว วัว บา คา ร่า คือ ฟรี เครดิต 2019 ไม่ ต้อง ฝาก ทาง เข้า ฟีฟ่า 555 slotxo ฝาก 10 บาท เกมส์ มา ส คา ร่า vegus168 login ฝาก 200 ฟรี 300 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด ฟรี โบนัส ไม่ ต้อง ฝาก ี ufa188 fifa55t สล็อต xo ทาง เข้า 55fifabet ufabet company แอ พ slotxo เครดิต ฟรี ค่าย ใหม่ slotxo 09 sa คา สิ โน เว็บ ยู ฟ่า 88 ufabet อัน ไหน ดี slotxo โปร สมาชิก ใหม่ ufa888 club เว็บ ufa vip ufabet เข้า เล่น ไอ ดี ไลน์ ufabet download slotxo pc เครดิต ฟรี 50 ถอน ได้ 300 ไฮโล ufabet slotxo สมัคร สมาชิก ufabet auto ฝาก ถอน ufa168 บา ค่า ร่า ฟรี เครดิต ไม่ ต้อง ฝาก เซ๊ ก ซี่ บา sa gaming slot fifa55 fifa555 เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ ยู ฟ่า เบ ท 8 ufabet win666 ให้ เครดิต ฟรี slot ไม่ ต้อง ทํา เทิ ร์ น ฝาก 1 รับ 100 918kiss เปิด ยูสเซอร์ ฟรี รับ ฟรี ไม่ ต้อง ฝาก ได้ เครดิต ฟรี ้ ufabet slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด ดาวน์โหลด สล็อต xo 888 โหลด เกม live22 ทาง เข้า ufabet88888 ทาง เข้า ufabet8 เครดิต ฟรี ใหม่ ล่าสุด 2020 web ufabet main ufabet888 ทาง เข้า ติดต่อ live22 8 pg slot เปิด ยูสเซอร์ ฟรี เครดิต ufabet gaming mega888 แจก เครดิต ฟรี sa แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ทาง เข้า ufa8k เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ ี ufabet6666 slotxo mobile download ufabet72 สมัคร สมาชิก ใหม่ แจก ฟรี เปิด ยูสเซอร์ ฟรี เครดิต ไม่ ต้อง ฝาก sa gaming เครดิต ฟรี 100 ufabet 789 ป๊อก เด้ง เงิน จริง ฟรี เครดิต แทง บอล รอง lsm99 บา คา ร่า ดาวน์โหลด สล็อต xo ios ยิง ปลา ออนไลน์ ฟรี เครดิต แทง ออนไลน์ 789 เว็บ พนัน ออนไลน์ uefa สมัคร สล็อต xo 888 ufa365 v2 http www ufabet888 web ufabet main ส ปี ด บา คา ร่า sa gaming 06 live22 slot ฟรี เครดิต ufabet เว็บ บอล ออนไลน์ เปิด เว ป บอล ufabet v7 slotxo โปร โม ชั่ น vegus168 vegus69 ufabet winner ufabet คืน ยอด เสีย ufabet168 ดี ไหม แซ ก ซี้ บา คารา 1688 ufa877 คืน ยอด เสีย แจก ยูสเซอร์ ฟรี สมัคร เล่น ufabet ถอนเงิน ufa191 ufabet โกง ufa95s ดาวน์โหลด slotxo 44 ufabet168 vip เครดิต ฟรี playstar ufabet joker slotxo ฟรี sa gaming88 เข้า สู่ ระบบ slotxo ฝาก 5 บาท ฟรี 99 บาท ล่าสุด ufa007s เครดิต ฟรี ได้ จริงๆ ufabet lucky ufabet198 ทาง เข้า ufabet88888 slot free เครดิต บา คา ร่า xo เล่น slotxo ผ่าน หน้า เว็บ ยิง ปลา ได้ เงิน ฟรี ufa1999v2 fifa555pro r1 ufabet slotxo รับ โปร 100 slotgame66 เครดิต ฟรี ufabet 14 kingkongxo slotxo sa เกม มิ่ง 88 ufabet ufa777 เซ ก ชี่ บา คา ร่า ufabet888888 ufawb998 ยิง ปลา ฝาก 100 ฟรี 300 บอล ฟรี เครดิต แทง บอล แบบ 1x2 slot ฟรี เครดิต ไม่ ต้อง ฝาก 2019 สมาชิก ใหม่ แจก เครดิต ฟรี slotxo joker สมัคร ใหม่ slotxo โบนัส สมัคร ยู ฟ่า เบ ท 168 บา คา ร่า ยิง ปลา บา ค่า ร่า เครดิต ฟรี แทง บอล ขั้น ต่ำ 20 บาท สล็อต โปร sa gameth ufa189 ลาว ดาวน์โหลด slotxo pc แทง บอล ออนไลน์ ไม่มี ขั้น ต่ำ web168v3 slotxo ฝาก 50 ufabet v7 บอล ออนไลน์ 789 สล็อต xo download mm88bet sport casino เล่น ufa ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ทาง เข้า เกม slotxo ufabet ทาง เข้า ล่าสุด ยู ฟ่า เบ ท 191 สล็อต xo 888 เครดิต ฟรี sa gaming 5g ufa800a slotxo ดาวน์โหลด ios ดาว โหลด เกม xo slot ดาวน์โหลด สล็อต xo ios ป๊อก เด้ง เงิน จริง ฟรี เครดิต ufa365 ทาง เข้า มือ ถือ เค ดิ ต ฟรี xo xo slot ฟรี เครดิต สมาชิก ใหม่ รับ ฟรี เครดิต โหลด เกม slot gaming 168 ทาง เข้า slotxo joker123 ฟรี เครดิต ยิง ปลา ufabet700 slotxo 49 ufa goal168 ี ufabet co สล็อต xo ดาวน์โหลด slotxo ดาวน์โหลด slotxo ios ufa68bet ufabet 100 ฟรี 100 แจก เครดิต ฟรี ใหม่ ล่าสุด fifa55 click ufabet lion 168 เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ ไลน์ ufa ufadb88 สมัคร ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ufabet 77 ทาง เข้า ufa777 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2018 หาเงิน จาก บา คา ร่า pantip ufo888 บา คา ร่า 777slot เครดิต ฟรี ufabet889 slotxo download android pok9 เครดิต ฟรี slotxo ฝาก 50 รับ 200 ฟรี เครดิต แทง บอล เครดิต ฟรี ล่าสุด 2019 slot เครดิต ฟรี 2019 ufabet แนะนำ เพื่อน 918kiss ฟรี เครดิต 1000 บาท เครดิต ฟรี ไม่ xo slot ทาง เข้า ี ufabet007 best88 เครดิต ฟรี ดาวน์โหลด slotxo apk slotxo3k เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ufabet ฝาก โปร ufa แทง บอล คืน นี้ สมัคร ufabet ufa888 club เครดิต ฟรี ได้ จริง 2020 ทาง เข้า ufabet 9999 ufa ไม่มี ขั้น ต่ำ lsm77 เครดิต ฟรี winner55 โปร โม ชั่ น slotxo ios เล่น ไม่ ได้ เช็ ก ชี่ บา คา ร่า 1668 ufa365s โปร โม ชั่ น แทง บอล 1ufabet เครดิต ฟรี ufabet 363 ี ufascr download slotxo ios ufabet2499 ufa คือ เซ็ ค ซี่ บา คารา เปิด ยูสเซอร์ ฟรี เครดิต ไม่ ต้อง ฝาก เว็บ ufa365 ดี ไหม ทาง เข้า ufabet 169 slotxo โหลด ทาง เข้า สล็อต xo lsm99 บา คา ร่า ทาง เข้า ufabet168vip ufabet อัพเดท ufabet5 สมัคร ยู ฟ่า 168 ทาง เข้า ufa69 ฟ่า เบ ท ufabet z4 แทง esport fifa 855bet แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th slotxo ฝาก 5 บาท ฟรี 99 บาท ล่าสุด new ufabet sbobetvip888 ดาวน์โหลด แอ พ slotxo fifa555gold ทาง เข้า เล่น https slotauto888 com เซ๊ ก ซี่ บา คา ร่า ufabet8888 สมัคร เว็บ ufa เข้า เล่น เกม สล็อต xo fifa555king slot free credit ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ป๊อก เด้ง แจก ฟรี 300 แทง บอล ออนไลน์ fifa555 ufabet ลิ้ ง ไม่ ต้อง ฝาก รับ เครดิต ฟรี sa game th ufabet 95 slot online ฟรี เครดิต 2020 เล่น ยู ฟ่า 777slot เครดิต ฟรี เว็บ ยู ฟ่า 168 เครดิต ฟรี วัน นี้ ufa007s ufa6666 มือ ถือ sa บา คา ร่า ี ufathai โหลด สล็อต 22 สมัคร slotxo88 ufa191 ฝาก ขั้น ต่ํา ufa345 ทาง เข้า แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก download slotxo เว็บ บา คา ร่า ufabet ufa8texas ufawb998 sbobet8888888 ufa356 ฝาก ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก login ufa 168ufabet ufabet 289 ยู ฟ่า เบ ท 456 ufa168 ทาง เข้า แทง บอล คู่ ไหน ดี sa gaming bet ฝาก 1 รับ 100 918kiss สมัคร ยู ฟ่า 191 เครดิต ฟรี 300 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufabet sports slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ยู ฟ่า 365s fifa55star สมัคร สล็อต xo วอ ล เล็ ต fifa6886 ดาวน์โหลด สล็อต ufabet991 ufabet pantip ufabet66 แอ พ slot ได้ เงิน จริง ทาง เข้า ufabet45 casino sa gaming จุดจบ บา คา ร่า สมาชิก ใหม่ ฟรี เครดิต 2020 ยู ฟ้า 888 ทาง เข้า ufabet 7777 fifa55u เครดิต ฟรี ทาง เข้า ufabet787 รับ เครดิต ฟรี ไม่ ต้อง ฝาก แจก เครดิต ฟรี ใหม่ ล่าสุด เครดิต ฟรี ถอน ได้ ไม่ ต้อง ฝาก ยิง ปลา แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 fifa69 pantip แอ พ slotxo เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน fifa55 ออนไลน์ เครดิต ฟรี ได้ เงิน จริง sa baccarat 1988 slotxo bonus mm8bet เครดิต ฟรี ส ปี ด บา คา ร่า s16 ufa24h bet เว็บ เดิมพัน กีฬา 168ufabet ยิง ปลา ออนไลน์ ฟรี เครดิต โปร บา คา ร่า ฟรี สมัคร ยู ฟ่า เบ ท vegus168 usa แจก เครดิต ฟรี 2019 ไม่ ต้อง แชร์ prompay88 เครดิต ฟรี mafia แจก เครดิต ฟรี ล่าสุด 9bet บา คา ร่า fifa55 sport slotxo download ล่าสุด mm88vip เครดิต ฟรี ถอน ได้ เลย ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด สมาชิก ใหม่ เครดิต ฟรี sagame1688 vip slot house เครดิต ฟรี เครดิต ฟรี slot เครดิต ฟรี 150 ไม่ ต้อง ฝาก ก่อน slotxo ฟรี เครดิต 20 ทีเด็ด บา คา ร่า ufabet10 ufabet สมัคร 100 แจก รหัส คูปอง โบนัส fun88 slot รับ เครดิต ฟรี ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด login ufa ufabet999 เกมส์ sa แจก ยูสเซอร์ พร้อม เครดิต ฟรี ดาวน์โหลด slotxobkk sa gaming คา สิ โน ufabet net default 8 สล็อต xo สมัคร xo slot ทาง เข้า slotxo ทาง เข้า ufa24 เว ป บอล ดีๆ ufabet net default 8 สมัคร สมาชิก สล็อต ออนไลน์ sa gaming 5g live22 แจก เครดิต ฟรี slotxo ios download รับ เครดิต ฟรี ไม่ ต้อง ฝาก 2020 สมัคร 168slotxo sa เกม 77 mm88bet vip เว็บ ufabet ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน slot free credit ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo ฝาก ไม่มี ขั้น ต่ํา ufabet ค่า คอม ufabet auto ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ี ufa88 ฟรี เครดิต 2019 ufabet 119 บา คา ร่า sa350 เครดิต ฟรี 400 slotxoth download ตั้ง slotxo รับ ฟรี ไม่ ต้อง ฝาก sa game vip 168 เว็บ ยู ฟ้า ufabet16888 เครดิต ฟรี ไม่ ต้อง ฝาก ต้อง แชร์ all pg slot ufabetsr3 ยู ฟ่า เบ ท 007 live22 ติดต่อ ดาวน์โหลด สล็อต ออนไลน์ ไม่ ต้อง ฝาก เครดิต ฟรี ufabet456 PG SLOT ufabet ที่ ดี ที่สุด เครดิต ฟรี 50 ถอน ได้ 300 สล็อต xo 24 ไลน์ แทง บอล โปร โม ชั่ น copa69 สมัคร แท่ง บอล sa gaming เครดิต ฟรี 300 xe88 เครดิต ฟรี ไม่ ต้อง ฝาก จุดอ่อน บา คา ร่า แทง หวย เครดิต ฟรี ufabet gold ufa988bet slot เครดิต ฟรี ไม่ ต้อง ฝาก สมัคร ufabet88 แทง ออนไลน์ เครดิต แทง บอล ฟรี เว็บไซต์ ยู ฟ่า ufabet 656 fifa55cash สมาชิก เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง ฝาก 200 บา คา ร่า ล็อค ยู ส ufabet168 ทาง เข้า jdb289 เครดิต ฟรี สมัคร fifa55 ทาง เข้า ufa800 ufabet1688 ทาง เข้า เครดิต ฟรี ไม่ ฝาก ไม่ แชร์ ล่าสุด ufa1688 ไทย ยู ฟ้า 369 ถอนเงิน ufabet168 slotxo ไม่ ต้อง ฝาก ufabet ทาง เข้า เล่น สมัคร แท่ง บอล ufabet6666 จุดอ่อน บา คา ร่า ufa356 เครดิต ฟรี 100 ww ufa777 ufabet 5g fifa888 ufabet 115 v2 gaming 168 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2018 สมัคร แทง บอล สมัคร ufabet369 entaplay เครดิต ฟรี โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก sa gaming 36th ไม่ ต้อง ฝาก เครดิต ฟรี บา คา ร่า c03 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2019 เครดิต ฟรี xo ยู ฟ่า 911 slot โบนัส ฟรี ไลน์ vip2541 เว็บ พนัน ufabet slotxo ฟรี sbobet365th แทง บอล 168 แอ ป ยู ฟ่า เบ ท ทาง xo betufa 168 ufa8texas live22 slot download เซ๊ ก ซี่ เกม ufabet99999 สมัคร ufabet888 fifa55atm ufabet 2018 77up2u โหลด เกม สล็อต slotxo live22 ufabet 11688 vegus365ok ufa147 ทาง เข้า ufabet 189 ufabet168 แอ ป ยู ฟ่า เบ ท ufabet 100 ฟรี 100 ufabet1688 public chgpwd 2 โหลด เกมส์ สล็อต xo1688 download slotxo apk ufabet369 สมัคร ufa6666 sa gaming 168 login ufabet18 slot house เครดิต ฟรี live22 slot ฟรี เครดิต ufa877 ฝาก ถอน เครดิต ฟรี ค่าย ใหม่ สมัคร สมาชิก ยู ฟ่า เบ ท รับ สมัคร เอเย่นต์ ufabet บา คา ร่า excel เว็บ ufa888 ดาวน์โหลด slotxo 888 next88 รหัส ฟรี เครดิต ufa888 club ufabet sports เกมส์ ออนไลน์ บา คา ร่า sa gaming 168 vip เข้า สู่ ระบบ สมัคร fifa55 ufabet สมัคร 100 แอ พ ufabet slot ฝาก 1 บาท รับ 99 วอ เลท โหลด เกม live22 แทง ออนไลน์ โปร โม ชั่ น เว็บ พนัน บอล fifa555 ฝาก 50 ฟรี 100 สมัคร ufabet1688 ดาวน์โหลด สล็อต xo168 สมัคร เล่น ufabet ี ufabet 356 สมัคร เกม slotxo lsm77 เครดิต ฟรี 24sbobet online เอ เย่ น ยู ฟ่า 8 pg slot บา คา ร่า เช็ ก ชี่ เครดิต ฟรี วัน นี้ สมัคร สมาชิก slotxo ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ufa fun888 ufabet ฝาก ขั้น ต่ำ ufabet169 ufabet600 เครดิต ฟรี slot slotxo ios fifa55 web บา คา ร่า c03 บา คา ร่า คลับ ufabet th vip i99win บา คา ร่า เช็ ก ชี่ แจก เครดิต ฟรี จริง ufabet ค่า คอม ufa69 ดี ไหม ยู ฟ้า 678 บา คา ร่า 11111 ทาง เข้า ufabet789 slot ฟรี เครดิต 2019 ufabet88s ufabet แจก เครดิต ฟรี 100 ทาง เข้า ufabet999 เว็บ ufa888 รับ เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ufabet 8888 บา คา ร่า วัว วัว คือ เว็บไซต์ แทง บอล ออนไลน์ เครดิต ฟรี วัน นี้ fifa888 บอล ออนไลน์ 789 live22 เครดิต ฟรี 2020 slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo 50 รับ 100 ufabet1688 สมัคร ดาวน์โหลด slot007 bcr777 รู เล็ ต ยู ฟ่า เบ ท 456 ufabet vip 168 isc888 ขั้น ต่ำ ufa168bet ดาวน์โหลด slotxo android jdb289 เครดิต ฟรี โหลด xo slot lsm789up slotxo เปิด ใหม่ เข้า เกม xo ufabet ฝาก ทาง เข้า ufabet45 เครดิต ฟรี วัน นี้ sa gaming 36th โบนัส ฟรี ไม่ ต้อง ฝาก ก่อน ทาง เข้า slotxo 899 ufa356 แจก เครดิต ฟรี web fifa55 slotxo ฝาก 50 ฟรี 50 โปร ฟรี เครดิต sa gaming ได้ เงิน จริง ไหม สล็อต xo ดาวน์โหลด slotxo slotxo แอ พ มือ ถือ ดาวน์โหลด เดี๋ยวนี้ ยู ฟ่า เบ ท 99 แจก เครดิต ฟรี สมาชิก ใหม่ ยู ฟา 191 sbobetstep5 wwwufa600 ufabet678 ยู ฟ่า 191 55fifabet click2sbobet ufabet352 ufa365 ถอนเงิน รับ โบนัส ฟรี ไม่ ต้อง ฝาก ufa678 สมัคร ufa007 ufalion 168 แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 918kiss แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2020 slotxo ออ โต้ ufabet 146 สมัคร ufabet ี ufa1688 เครดิต ฟรี สมาชิก ใหม่ ไม่ ต้อง ฝาก sa gaming 168 vip sa เกม มิ่ง vip ufabet ถอนเงิน ufabet888888 ดาวน์โหลด slotxo ล่าสุด PG SLOT betufa ถอนเงิน slotxo เครดิต ฟรี ไม่ ต้อง แชร์ วิธี ติด ตั้ง slotxo ufa9999999 บา คา ร่า holiday palace เว็บ แทง บอล ufabet โหลด เกมส์ สล็อต ออนไลน์ ufabet 368 slot ฟรี เครดิต ไม่ ต้อง ฝาก 2020 บีบ บา คา ร่า slotxo เล่น ฟรี 100 ex88 เครดิต ฟรี ufabet ลิ้ ง สมัคร เกม slotxo slotxo สมาชิก ใหม่ 100 ี ufabet1688 ทาง เข้า ufa95 ufabet แจก ฟรี เครดิต ufabet x8 ufa24h 4 เครดิต ฟรี ก่อน ฝาก บา คา ร่า ออนไลน์ sa gaming ufa356 ฝาก betufa 1688 kingkongxo slotxo ufa365 เบอร์ โทร ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ี ufa007 ufabet 5g บา ค่า ร่า ฟรี เครดิต ไม่ ต้อง ฝาก ufa เว็บ ตรง mm88fc
          คา สิ โน โปร ดีๆ| siam99 เครดิต ฟรี 500| เว็บ หวย บา คา ร่า| ak47 บา คา ร่า| เว็บ ให้ เครดิต ฟรี| slot1234 ฝาก 10 ได้ 100| เวฟ มา คา ร่า| เว็บ พนัน รองรับ true wallet| srb365 แจก เครดิต ฟรี| sagame66 ถอน ขั้น ต่ํา| เซ็กซี่ บา คา ร่า 888| live22 ฟรี เครดิต 300| สมัคร รับ เครดิต ฟรี ทันที ไม่ ต้อง ฝาก 2020| srb365 ฟรี เครดิต| เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 แค่ สมัคร| หา เว็บ เครดิต ฟรี| เว็บ พนัน เปิด ใหม่| ถอนเงิน ใน บา คา ร่า| caesar88 ฟรี เครดิต| เว็บ คา สิ โน ออนไลน์ จ่าย ราย เดือน| เครดิต ฟรี แค่ สมัคร 2020| บา คา ร่า gd| เซ็กซี่ บา คารา 1688| 007 gclub v2| โหลด พนัน ออนไลน์| แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2018| เว็บ บา คา ร่า 99| ufa777 ฝาก 10 รับ 100| ฟรี เครดิต ล่าสุด 2020| เว็บ พนัน ไม่มี ขั้น ต่ํา| ฝาก ถอน ไม่มี ขั้น ต่ํา joker| scr99th มือ ถือ| คา สิ โน w88| ubet89 ฝาก เงิน| เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร| gclub ดั ม มี| เล่น คา สิ โน sbobet| royal online ฝาก ไม่มี ขั้น ต่ํา| มา วิน บา คา ร่า| เว็บ พนัน ออนไลน์ ฝาก ขั้น ต่ํา 50| เว็บ คา สิ โน 777| เว็บ ที่ ให้ เครดิต ฟรี| เกม รับ เครดิต ฟรี| เครดิต ฟรี 300 ถอน ได้| บา คา ร่า ฝาก 1 บาท| เครดิต ฟรี 100 ถอน ได้ 2018| บา คา ร่า true wallet ไม่มี ขั้น ต่ำ| scr99th เครดิต ฟรี| เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ เลย| sa เครดิต ฟรี 100| เว็บ คา สิ โน ฝาก ขั้น ต่ํา 50| เกม บา คา ร่า 888| ค่า สิ โน ทุน ฟรี| เล่น ผ่าน เว็บ| เว็บ ak47bet| เว็บ ak47bet| บา คา ร่า ออนไลน์ 88| เว็บ พนัน gclub| 138 เครดิต ฟรี 300| บา คา ร่า 8899| เว็บ พนัน เครดิต ฟรี ไม่ ต้อง ฝาก| usa บา คา ร่า| บา คา ร่า 24 ชม| ฟรี เครดิต ถอน ได้ 2020 ไม่ ต้อง ฝาก| เว็บ พนัน ออนไลน์ galaxy| บา คารา เครดิต ฟรี|