<tbody id="3DbmMK"></tbody>
    1. <noframes id="3DbmMK">

      <label id="3DbmMK"><acronym id="3DbmMK"></acronym></label>
      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
       
      ค่า บา ล่า ufa168 vip ufabet ฝาก วอ เลท autobet99 เครดิต ฟรี sa game 25 mt88casino เว็บ ยู ฟ่า bet ufa168bet ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ ฝาก 1 บาท ฟรี 99 บาท 2020 188bet ฟรี เครดิต 2019 ufa888 วิน ดาวน์โหลด สล็อต ufabet login mafia แจก เครดิต ฟรี 50 บาท sbobet365th like191 เครดิต ฟรี แจก โบนัส ฟรี ติดต่อ live22 ufabet ที่ ดี ที่สุด วิธี ดาวน์โหลด slotxo ถอนเงิน ufabet1688 วิธี ติด ตั้ง slotxo ราคา แทง บอล วัน นี้ ไลน์ ufabet เอ เย่ น ยู ฟ่า ฟรี เครดิต ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก แจก เครดิต ufabet889 arma935 baccarat โบนัส ฟรี ไม่ ต้อง ฝาก ก่อน เปิด ยูสเซอร์ ฟรี เครดิต 2020 ฟรี โบนัส ไม่ ต้อง ฝาก เว็บ ตรง ยู ฟ่า เช็ ก ชี่ บา คา ร่า 66 เครดิต ไม่ ต้อง ฝาก ทาง เข้า ี ufabet กา บอล ออนไลน์ mafia แจก เครดิต ฟรี 50 โปร โม ชั่ น บอล ออนไลน์ ยิง ปลา ออนไลน์ ฟรี เครดิต slotxo ฝาก 99 ได้ 300 เว็บ ยู ฟ่า 369 ทาง xo 77up line แจก เครดิต ฟรี ได้ จริง betufa 168 prompay88 เครดิต ฟรี ยู ฟ่า เบ ท 8888 slotxo เครดิต ฟรี ไม่ ต้อง ฝาก แทง บอล fifa555 ufabet pantip slot ฟรี เครดิต 2020 ติด ตั้ง เกม สล็อต เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ ufa24h ดี ไหม ทีเด็ด บา คา ร่า ี ufascr ufabet8z joker689 เครดิต ฟรี winbetth888 sa gaming png xo ฟรี 100 mm88bigwin เว ป ยู ฟ่า เบ ท 88 ถอนเงิน จาก ufabet sa gaming 168vip เข้า สู่ ระบบ แทง บา คา ร่า ที่ ufabet ทาง เข้า ufa007 mysbo99 เครดิต ฟรี fifa555a ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด เว ป vip2541 ยู ฟา 88 สมัคร pg slot mafia88 เครดิต ฟรี ไม่ ต้อง ฝาก ufabet info เสีย บา คา ร่า โปร สมาชิก ใหม่ ฝาก 10 รับ 100 ufabet vip live22 แจก เครดิต ฟรี sa66 คา สิ โน download slotxo apk แจก ทุน ฟรี ไม่ ต้อง แชร์ ี ufabet88 ufabet แจก เครดิต ฟรี ล่าสุด เครดิต ฟรี รับ ง่ายๆ เว็บ ยู ฟ่า 888 slot แจก เงิน ฟรี ทาง เข้า slotxo199 ufabet188 slotxoth download เล่น บอล ให้ รวย แทง บอล ผ่าน ไลน์ แทง บอล ขั้น ต่ํา 50 สมาชิก ใหม่ แจก เครดิต ฟรี ufabet1688 line bslot88 เครดิต ฟรี ดาวน์โหลด สล็อต xo ios sa gaming เครดิต ฟรี 100 สมัคร เว็บ ufa ถอนเงิน จาก ufabet ufabetsr3 slot007 ฟรี เครดิต vip123 บา คา ร่า เว็บ ยู ฟ่า 369 ทาง เข้า ufabet789 slotxo เล่น ผ่าน หน้า เว็บ ทาง เข้า xo mobile ี ufapro888 ี ufa9999 ยืนยัน เบอร์ รับ เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ufabet 1168 ทาง เข้า บา ค่า ร่า จี คลับ 1988 บา คา ร่า 918 ufa356 ดี ไหม sa gaming link ufabet 363 เซ๊ ก ซี่ บา คา ร่า เกมส์ 66 fifa55 web ฟี ฟ้า 55 สมัคร slotxo mobile เครดิต ฟรี ค่าย ใหม่ ufabet png gc88888 แฉ บา คา ร่า ufabet ถูก กฎหมาย ไหม sa game 25 sagaming168 login mafia slot ใหม่ ล่าสุด เครดิต ฟรี ufabet7 ยู ฟ่า เบ ท 800 เล่น บา คา ร่า ออนไลน์ ฟรี sa gaming slotxo ไม่ ต้อง ฝาก xo slot ทาง เข้า slotxo ufabet555 ทาง เข้า ยู ฟ่า 356 next88 รหัส ฟรี เครดิต ยุ ฟา เบส 888 joker689 เครดิต ฟรี ทาง เข้า ufabet168 ดี ที่สุด sa gaming ดี ไหม สมัคร เล่น ufabet ufabet agent ทาง เข้า sagame168 vip copa88 เว็บ ufa356 โปร สมาชิก ใหม่ ฝาก 10 รับ 100 sa gaming ปรับปรุง like191 เครดิต ฟรี ฝาก 20 รับ 100 ufabet บา คา ร่า ปิด ปรับปรุง นาน ไหม ทาง เข้า ufabet1688 slot โบนัส ฟรี ufabet 115 slot house เครดิต ฟรี next88 รหัส ฟรี เครดิต ดาวน์โหลด เกมส์ สล็อต ออนไลน์ สมาชิก ใหม่ แจก เครดิต ฟรี ufabet18 slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด ufa2bet สล็อต xo ios ยู ฟ่า สมัคร ufabet928 ดาว โหลด เกม ส ล๊ อ ต เกม gclub ufabet888s โปร บา คา ร่า ฟรี lsm77 เครดิต ฟรี ดาวน์โหลด slotxo apk ufabet777 เครดิต ฟรี ufa656 ทาง เข้า มือ ถือ ยู ฟ้า 678 fifa แทง บอล sa gaming premium alpha88 pc เล่น ยู ฟ่า ufabet 20 รับ 100 ทาง เข้า ufabet 89 แทง บอล โลก 2018 sa gaming เครดิต ฟรี ไม่ ต้อง ฝาก ดาวน์โหลด xo ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก เล่น บา คา ร่า ออนไลน์ ฟรี sa gaming ufathai 6 สล็อต xo ฝาก 1 บาท sa gaming 007 vip123 บา คา ร่า ufabet 77 แอ พ slotxo ี ufa ufabet 789 รับ เครดิต ฟรี slotxo slotxo แอ พ มือ ถือ sa gaming ฟรี 300 slot ฟรี เครดิต 2019 slot เครดิต ฟรี ไม่ ต้อง ฝาก bet ufabet slotxo โปร lsm99 ขั้น ต่ำ 10 บาท ufa บริษัท แม่ เครดิต ถอน ได้ โบนัส ฟรี ไม่ ต้อง ฝาก ทีเด็ด บา คา ร่า mafia919 เครดิต ฟรี ฟรี เครดิต ยิง ปลา ufabet 21 vegus5g เข้า เว็บ ยู ฟ่า line vip2541 แจก เครดิต ฟรี 30 ufabet1678 sbobetclub168 ดาว โหลด เกม ส ล๊ อ ต fifa55 login เช็ ก ชี่ บา คา ร่า 66 prompay88 เครดิต ฟรี fifa555 ฝาก 50 ฟรี 100 ufa369 ถอนเงิน ufaoo7 ดาว โหลด slot slotxo โปร ufabet world ex88 เครดิต ฟรี โปร โม ชั่ น sbobet777 สมัคร 168slotxo ufa ที่ ดี ที่สุด เว็บไซต์ เกมส์ ออนไลน์ slotxo โหลด slotxo apk ค่า คอมมิชชั่น บา คา ร่า โปร เครดิต ฟรี ทาง เข้า เกม slotxo สมัคร ufa1688 ufabet881 sa gaming v2 สมัคร เล่น ufabet เว็บ ยู ฟ่า 888 เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ ufa356net ยู ฟ่ ส เบ ท slotxo ฝาก 15 บาท sa gaming เข้า ไม่ ได้ บอล รวย วัน นี้ วิธี ติด ตั้ง slotxo super77up แทง บอล 1x2 แทง บอล ยูโร sa88 gaming แจก โบนัส ฟรี แทง บอล ออนไลน์ 888 login ufa slotxo เวอร์ชั่น ล่าสุด สล็อต xo ดาวน์โหลด slotxo รับ เครดิต ฟรี ง่ายๆ ทาง เข้า joker xo ยู ฟ้า 369 สมัคร ufa356 ufabet928 สมัคร ยู ฟ่า 191 best88 เครดิต ฟรี เข้า เล่น ufabet ufabet lion 168 ดาวน์โหลด slotxo ลง คอม แทง ฟุตบอล ออนไลน์ slotxo zeus88 betufa 168 เว็บ ufa365 ดี ไหม เครดิต ฟรี ได้ จริงๆ ไฮโล ufabet joker689 เครดิต ฟรี live777th slot online แทง บอล fifa55 ufabet แม่ slot เครดิต ฟรี ถอน ได้ ufa365 ถอนเงิน ufathai 6 fifa55call โปร สล็อต joker sbobetball168 ี ufa9999 ufabet168 ฝาก เงิน ufabet29 ufabet72 ทาง เข้า ufathai แทง บอล online แจก เครดิต ฟรี ถอน ได้ ufa ไม่มี ขั้น ต่ํา สมาชิก ใหม่ ฟรี เครดิต 2020 ufa168th เข้า ufabet แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2018 slotxo เว็บ ใหม่ sbobet89 ufabet365 ทาง เข้า sa baccarat 1988 บา คา ร่า 2020 ufa877 คืน ยอด เสีย ufapro88 ยู ฟ่า เบ ท คาเฟ่ ฝาก 50 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น slotxo ฝาก 99 รับ 300 ไลน์ ufa365 fifa55cash แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2020 slot free 888 ทาง เข้า ufabet8 gclubsport888 ทาง เข้า เล่น https slotauto888 com แอ พ สล็อต ios เครดิต ฟรี 200 ล่าสุด sa gaming มือ ถือ slotxo เครดิต ฟรี 100 ufabet ฝาก slotxo เปิด ใหม่ บา คา ร่า ออนไลน์ sa gaming ทาง เข้า ufabet sa gaming เปิด ตอน ไหน แทง บอล ขั้น ต่ำ 1 บาท sa66 คา สิ โน เว็บ ufa kingkongxo slotxo fifa 1234 ดาวน์โหลด สล็อต xo 888 fhm99 ฟรี เครดิต ทาง เข้า ufabet 9999 ufabet services ทาง เข้า slotxovip mafia555 เครดิต ฟรี 50 slot ไม่ ต้อง ฝาก สมัคร สมาชิก ยู ฟ่า ลอง เล่น sa gaming slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ไม่ ต้อง แชร์ สมาชิก ใหม่ ฟรี เครดิต 2020 ราคา แทง บอล วัน นี้ วิธี ติด ตั้ง slotxo สมัคร สมาชิก xo xe88 เครดิต ฟรี ไม่ ต้อง ฝาก แจก เงิน ฟรี 2019 ufaoo7 เข้า เล่น ufa ufa88d ทาง เข้า ufabet lion 168 sa gaming vip เข้า สู่ ระบบ live22 ดาวน์โหลด sa gaming 66 เข้า สู่ ระบบ ufabet v4 mm88icom 168 vegus168 เข้า เล่น เกม slotxo แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด ฝาก ขั้น ต่ํา 10 รับ เครดิต ฟรี 2020 betufa default 8 ทาง เข้า ufabet มือ ถือ ทาง เข้า ufabet ล่าสุด ทาง เข้า slotxo joker123 ฝาก 50 รับ 150 ไม่ ต้อง ทํา เทิ ร์ น ล่าสุด gclub 1668 ทาง เข้า xo mobile บา คา ร่า excel ufabet mobile ufabet2_888 แจก เครดิต ฟรี ปี ใหม่ เข้า ufabet168 สมัคร เกม สล็อต สล็อต โปร แทง บอล 1x2 เครดิต ฟรี ไม่ ฝาก ไม่ แชร์ ล่าสุด sa gaming sa ทาง เข้า เล่น ยู ฟ่า ufa thai vip ufabet 123 บา คา ร่า 918 โปร โม ชั่ น บอล ี ufa9999 sa gamingbet sa ฝาก 50 ได้ 150 แทง บอล ออนไลน์ ฟรี เครดิต ฝาก 50 รับ 150 ไม่ ต้อง ทํา เทิ ร์ น ล่าสุด ยิง ปลา ฟรี 150 บา คา ร่า ล่าสุด เครดิต ฟรี ยิง ปลา ค่าย sg เว็บ ยู ฟ่า 365 mm88vip พัน ทิป ufabet747 ufa88 ทาง เข้า แทง บอล ให้ ได้ เงิน คูปอง ufabet slotxo เล่น ผ่าน หน้า เว็บ เปิด ยูสเซอร์ ฟรี sbobetsh 888 ถอนเงิน ufa365 slot เครดิต ฟรี 2019 slot house เครดิต ฟรี เล่น ufa ดาว โหลด เกม สล็อต xo sbobet888888888 fifa55co roma เครดิต ฟรี เว็บ ufabet99 ace333 ฟรี เครดิต ไม่ ต้อง ฝาก ดาว โหลด เกม สล็อต xo ฟี ฟ้า 555 slotxoth download เข้า sa gaming roma เครดิต ฟรี แทง บอล ฟรี เครดิต ไม่ ต้อง ฝาก ufabet189 ufabet 428 เครดิต แทง บอล ฟรี ufa678 เข้า ไม่ ได้ ี ufabet 7777 ดาวน์โหลด slotxo 236 icon99 บา คา ร่า ดาว โหลด เกม xo slot slotxo เครดิต ฟรี เครดิต ฟรี ทันที ฝาก 50 รับ 150 ไม่ ต้อง ทํา เทิ ร์ น ล่าสุด เซ ก ชี่ บา คา ร่า sa gaming เปิด กี่ โมง ยู ฟ่า ออนไลน์ 24 ทาง เข้า ufabet888 เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss slotxo ออ โต้ ufa888 vip ี ufa369 ี ufabet 7777 สมัคร slotxo sa gaming 36 slot wallet เครดิต ฟรี ยู ฟ่า เบ ท 88888 ufabet 9999 sa789 บา คา ร่า ufabet111 เครดิต 100 ไม่ ต้อง ฝาก mafia88 เครดิต ฟรี 50 แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน แอ พ สล็อต ios ufabet services ufaclub8 ดาวน์โหลด slot007 แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th ทาง เข้า slotxo auto ufabet 1988 แทง บอล บัตร ท รู เครดิต ฟรี mafia ใหม่ ล่าสุด ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufabet2020 แทง 168 สมัคร slot online slotxo ฝาก 88 รับ 300 แทง บอล เครดิต ฟรี ทาง เข้า slotxoz slotxo mobile download ติด ตั้ง slotxo แอ น ด รอย ด์ ufa789 gold betufa default 8 เสีย บา คา ร่า 10000 ufa678 ดี ไหม betufa มือ ถือ แทง สด สด บา คา ร่า ภาษา อังกฤษ เว็บ กา บอล sa เกม 77 ufabet สมัคร สมาชิก โหลด แอ พ slotxo เครดิต ฟรี 100 ล่าสุด 2020 ufabet2_888 fifa55b แทง บอล สอง ฝั่ง best88 เครดิต ฟรี ufa777com ยู ฟ่า เบ ท 982 sa gamingth sa gaming 168 vip เข้า สู่ ระบบ ี ufabet911 ได้ เครดิต ฟรี เข้า เล่น ufabet fa181818 sa gaming 86 ufabet121 sa gaming 66 เข้า สู่ ระบบ ufabet168v2 แจก เครดิต ฟรี ปี ใหม่ fifa55t sa gaming ได้ เงิน จริง ไหม แทง บอล ฟรี เครดิต ไม่ ต้อง ฝาก slotxo โปร ฝาก 19 บาท slot เครดิต ฟรี ถอน ได้ แทง บอล รอง ufabet asia การ ถอนเงิน ufabet ufabet ทาง เข้า 369 ทาง เข้า ฟีฟ่า 55 slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ฝาก 99 รับ 300 วอ เลท slot ฟรี เครดิต ไม่ ต้อง ฝาก 2019 โหลด เกม slot ufabet777 ดี ไหม xo แจก เครดิต ฟรี ufatexas55 ufabet แจก ฟรี เครดิต ufabet default smart แทง บอล ฟรี เครดิต 2020 m928bet ฟรี 50 เครดิต สำหรับ สมาชิก ใหม่ บา คา ร่า c01 ฟรี เครดิต ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก slotxo ios download sa sa game 1688 ไลน์ ufabet888 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด slotxo เว็บ ใหม่ แจก เครดิต ฟรี 30 ยู ฟ้า 369 แทง บอล ด้วย บัตร ท รู เกม บา คา ร่า sa g2g เครดิต ฟรี sa gaming ts911 ดาว โหลด เกม live22 แอ ป บอล ออนไลน์ sa gaming ปิด mm88bet pantip ยู ฟ่า เบ ท 44 slotxo โบนัส 200 mafia แจก เครดิต ฟรี ล่าสุด slot ฝาก เครดิต ฟรี 200 ล่าสุด แทง บอล ให้ ได้ เงิน ล้าน แทง บอล lsm99 bet236 บา คา ร่า ufabet227 168ufabet mega888 ฟรี เครดิต ไม่ ต้อง ฝาก ufabet โกง 55fifabet mm88fc pantip fifa6886 บา คา ร่า sa vip mafia555 เครดิต ฟรี 50 ufabet เว็บ ตรง ทาง เข้า slotxo88 ดาว โหลด เกม live22 เครดิต ฟรี สมาชิก ใหม่ ไม่ ต้อง ฝาก สมาชิก เครดิต ฟรี ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ไม่ ต้อง แชร์ ufabet 8111 เครดิต ฟรี slot ดาวน์โหลด slotxo 888 ทาง เข้า xo slot ufabet เว็บ หลัก ufa888 club เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน ufa356 ดี ไหม pantip เล่น fifa55 omg89bet sa game casino online แทง บอล ฟรี 1000 ufa678 pantip ufa147 มือ ถือ sa gaming 666 ufabet 369 ufabet368 slot ไม่ ต้อง ทํา เทิ ร์ น ยืนยัน เบอร์ รับ เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 fifa555gold แทง บอล 77 fifa55gen เว ป บอล ฝาก ขั้น ต่ํา 100 fifa555pro ทาง ufabet ufabet ฟรี เครดิต 100 ufa147 สมัคร สล็อต xo ยู ฟ่า เบ ท คาเฟ่ mafia88 เครดิต ฟรี 50 เครดิต ฟรี ไม่ ต้อง ฝาก slot ufabet 1168 ทาง เข้า sa gaming คือ sa gaming vip pantip slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ufawb998 ไลน์ ยู ฟ่า เบ ท xo slot ทาง เข้า ufabet500 123fazsv3 slot ฟรี เครดิต 2019 live22 ฝาก 100 รับ 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ รับ เครดิต ฟรี ufabet 515 ufabet29 แจก เครดิต ฟรี 2000 ไม่ ต้อง ฝาก 2019 ี ufa007 ufabet168 ฝาก เงิน เปิด ยู ส ใหม่ รับ เครดิต ฟรี ufabet v3 sa gaming trial ดาว โหลด ส ล็ ต xo ufabet 1999 mafia88 เครดิต ฟรี ไม่ ต้อง ฝาก รับ เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 slotxo โบนัส ดาวน์โหลด สล็อต ออนไลน์ แจก เครดิต ฟรี ถอน ได้ ไม่ ต้อง ฝาก sboasia9 เว ป บอล ออนไลน์ ติด ตั้ง slotxo แอ น ด รอย ด์ สล็อต xo โหลด ทาง เข้า betufa ได้ เครดิต ฟรี ufa168 vip live22 ดาวน์โหลด เบอร์ โทร ufa365 ทาง เข้า ufabet999 xo slot ฟรี เครดิต ufa147 sport ufabet เครดิต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี 400 ยู ฟ่า โปร 888 เว็บ กา บอล xo download ufabet169 เข้า เล่น เกม สล็อต xo fifa55cash บอ ท บา คา ร่า ฟรี sa gaming เครดิต ฟรี sa เกม vip บา คา ร่า ทุน 500 ufabet1678 isc123 โปร โม ชั่ น ufabet888888 โหลด xo สล็อต ี ufa345 โบนัส ฟรี ไม่ ต้อง ฝาก ก่อน sa gaming ดี ไหม pantip วิธี ติด ตั้ง slotxo ยิง ปลา รับ เครดิต ฟรี ufa007s live22 เครดิต ฟรี 2020 ดาวน์โหลด slotxo ios หวย ufabet ufabet99th ufabet เครดิต ฟรี 100 bcr777 รู เล็ ต โปร โม ชั่ น บอล slot ไม่ ต้อง ฝาก ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด www databet88 com fifa55 คืน ยอด เสีย slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 24sbobet online fifa55sup ฝาก 20 รับ 100 ufabet slot free 888 slotxo ฝาก 10 บาท ฟรี 100 บาท ufabet728 แอ พ slotxo เว็บ ufa365 ดี ไหม แทง บอล โลก rb88 slot ติด ตั้ง เกม สล็อต ufabet 5000 วิธี โหลด สล็อต ufa88 มือ ถือ sa gaming slot game ufabet kik slotxo ฝาก ไม่มี ขั้น ต่ํา ufa007s ufabet 21 สมัคร ยู ฟ่า เบ ท บอ ท บา คา ร่า ฟรี ราคา แทง บอล แทง บอล ราคา เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ แทง บอล 88 lsm99 ขั้น ต่ํา 10 บาท จุดอ่อน บา คา ร่า บา คา ร่า ไลน์ ทาง เข้า ufabet99 แจก ฟรี เครดิต 2020 ufabet thaivip บา คา ร่า คลับ ufabet881 ufabet เว็บ sbobet888888 แทง บอล w88 ฟรี เครดิต ถอน ได้ ยู ฟา เบ ท ufabet 100 บา คา ร่า ออนไลน์ ufabet ufabet มือ ถือ เครดิต ถอน ได้ sa เกม 199 บอ ท บา คา ร่า แทง บอล ufa350 lsm99 ขั้น ต่ำ 10 บาท ufabet facebook กา บอล ออนไลน์ สมัคร slotxo joker ดาวน์โหลด สล็อต ออนไลน์ แทง บอล ออนไลน์ pantip ี ufa365 เซ๊ ก ซี่ บา ค่า ร่า เกมส์ บา คา ร่า เปิด กี่ โมง ดาวน์โหลด เกมส์ live22 ts38 บา คา ร่า sa gaming 928 slotxo โปร ฝาก 19 บาท เครดิต ฟรี 150 ไม่ ต้อง ฝาก ก่อน บา คา ร่า 918kiss เครดิต ฟรี ทํา เทิ ร์ น 2020 ตั้ง slotxo slotxo download pc http www ufabet888 fifa 8888 ufabet66 บา คา ร่า แอ พ เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ล่าสุด แทง บอล ออนไลน์ ไม่มี ขั้น ต่ํา บา คา ร่า ไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด ลิ้ ง ufabet เครดิต บอล ฟรี ไม่ ต้อง ฝาก download slotxo android fifa555gold ไม่ ต้อง ฝาก รับ เครดิต ฟรี ี ufabet356 fifa55f ufabet 2018 แทง esport ี ufabet ทาง เข้า entaplay เครดิต ฟรี ufa สมัคร เข้า เกม สล็อต xo เว็บ กา บอล slot โบนัส ฟรี ufabet 8s ufa เบ ท ufa191 เล่น บา คา ร่า ที่ ufabet ให้ เครดิต ฟรี ทาง ufabet fifa55mini บา คา ร่า 285 ligaz888 line ss66 บา คา ร่า ทาง เข้า เกม slotxo ufa6666 มือ ถือ ufabet369 ถอนเงิน ufa th บา คา ร่า เช็ ก ชี่ slot โบนัส ฟรี ทาง เข้า 168slotxo ยู ฟ่า เบ ท เครดิต ฟรี สมัคร ยู ฟ่า 191 ufabet999 ufa189 ลาว ufabet เข้า slot ฝาก 1 บาท รับ 50 ufabet 688 slotxo โปร สมาชิก ใหม่ fhm99 ฟรี เครดิต live22 โหลด ufarich888 ยู ฟา เบ ท slotxo แอ พ มือ ถือ ดาวน์โหลด เดี๋ยวนี้ slotxo ฝาก 50 รับ 100 xo เครดิต ฟรี แทง บอล โลก 2018 ทาง เข้า ufa428 บา คา ร่า pantip 2563 slotxo ฝาก 1 บาท ฟรี 99 บาท ล่าสุด บา คา ร่า ปลอม 168ufabet slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ufabet 11 ฝาก ถอน ufa168 ufa356 สมัคร อยาก ได้ เครดิต ฟรี next88 รหัส ฟรี เครดิต slotxo download ล่าสุด โหลด slotxo ios ฟรี ฟ้า 55 ฝาก 20 รับ 100 ufabet เครดิต ฟรี ล่าสุด ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ บอล ต่ำ ufabet xxx ี ufathai เข้า เว็บ ยู ฟ่า sa gaming ฝาก 50 รับ 150 เว็บ บา คา ร่า ufabet ufabet 800 sa gaming 50 รับ 150 sa gaming เข้า เล่น ufa356net ๊ ufa saxygaming66 บา คา ร่า ทุน 1000 ufabet id line ไล สด บา คา ร่า ufabet 1988 slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ufa666 ตั้ง slotxo slot โบนัส ฟรี โหลด xo ios slot ฝาก 100 รับ 100 ufa88 ทาง เข้า ทาง เข้า ยู ฟ่า 369 เอ เย่ น ufa ufagold888 ufabet คือ sa gaming ฟรี เครดิต โปร โม ชั่ น เว็บ พนัน บอล ufabet แนะนำ เพื่อน แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2020 sa เกม 199 uf9ba online เล่น ufabet bcr777 รู เล็ ต ufabet global fifa 855bet สมัคร fifa55 ดาวน์โหลด 168slotxo ufa6666 เว็บ ufa007 บา คา ร่า s02 เข้า ufabet ไม่ ได้ แจก ฟรี เครดิต 2020 เครดิต ฟรี ufabet fifa55f แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก xo ทาง เข้า เครดิต ฟรี ยิง ปลา ค่าย sg โปร บา คา ร่า ฟรี sbothai fifa55 members bslot88 เครดิต ฟรี slot เครดิต ฟรี ถอน ได้ สมาชิก เครดิต ฟรี ทาง เข้า ยู ฟ่า 356 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 xo slot ฟรี เครดิต โปร โม ชั่ น sa gaming slotxo แอ พ มือ ถือ ufa ที่ ดี ที่สุด โหลด สล็อต ออนไลน์ สมัคร สล็อต ออ โต้ ufa007 ดาวน์โหลด สล็อต xo168 ufabet700 มาเฟีย แจก เครดิต ฟรี ล่าสุด ufa988bet ทาง เข้า เอ เย่ น ufa เครดิต ฟรี 150 ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง ฝาก ก่อน ถอน ได้ slot roma เครดิต ฟรี แทง บ ufabet มือ ถือ บา คา ร่า sexy66 fifa55 ทาง เข้า 285 บา คา ร่า sa gaming 36th slotxo download android slotxo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ถอนเงิน ufa191 ฟรี 50 เครดิต สำหรับ สมาชิก ใหม่ แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 โหลด เกม live22 เว็บ ufabet99 เครดิต ไม่ ต้อง ฝาก ราคา บอล 1x2 live22 สมัคร แทง บอล 168 slotxo โปร 10 ufa356 ดี ไหม ufabet fc ufabet678 ufa089 ตั้ง slotxo ufa168bet ufabet168v4 databet88 เครดิต ฟรี สมัคร slotxo ฝาก ไม่มี ขั้น ต่ํา ufabet แทง บอล บา คา ร่า เข้า เล่น เกม slotxo เบอร์ โทร ufa365 ยู ฟ่า เบ ท 191 เปิด ยูสเซอร์ ฟรี เครดิต ไม่ ต้อง ฝาก sa baccarat 1988 แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ทาง เข้า slotxo 007 เครดิต ฟรี สมาชิก ใหม่ 2020 บา คา ร่า 918kiss ufa thai vip slot แจก ฟรี เครดิต เบอร์ ติดต่อ slotxo ufabet168 ดี ไหม แทง บอล ผ่าน เน็ต fifa555hd sa gaming ดี ไหม pantip สล็อต xo ฝาก วอ ล เล็ ต slotxo ฝาก 50 ufawb998 บอล ออนไลน์ 77up fifa55 web ฝาก ถอน ufabet168 ufabet เว็บ ไหน ดี ufabet kik สมัคร ufabet888 download slotxo apk รับ เครดิต ฟรี ถอน ได้ ดาว โหลด เกม slot joker slotxo เครดิต ฟรี ยู ฟ้า 168 ดาวน์โหลด joker xo รับ เครดิต ฟรี slotxo ufabet1688 สมัคร sa gaming 06 เข้า ยู ฟ่า สมัคร ufabet777 ทาง เข้า slotxo88 ดาวน์โหลด slotxo ล่าสุด แทง ฟุตบอล slotxo ฝาก แรก 50 เครดิต ฟรี ล่าสุด เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ ufathai สมาชิก เครดิต ฟรี ufabet 124 sa gaming 666 sa gaming 007 ทาง เข้า ufathai ufabet world บา คา ร่า ออนไลน์ ผิด กฎหมาย ไหม เครดิต ฟรี slot fifa55x ราคา แทง บอล ufabet 089 77up line sa gaming ปิด กี่ โมง slot ฟรี เครดิต 2020 285 บา คา ร่า เว็บ ufa800 ufaeasy3 ทาง เข้า ufabet168 มือ ถือ ยู ฟ่า เบ ท 191 จี คลับ ฟรี เครดิต วัน นี้ แทง บอล คู่ ไหน ดี โปร แทง บอล เข้า เกม slotxo แทง บอล ฟรี เครดิต 2020 ติด ตั้ง slotxo ฟรี เครดิต 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo ฝาก 1 บาท ฟรี 99 บาท 2020 slotxo เครดิต ฟรี ไม่ ต้อง ฝาก บา คา ร่า ทุน ฟรี แทง บอล โลก 2018 ไม่ ต้อง ฝาก ก่อน ถอน ได้ slot ฝาก 100 รับ 100 ยู ฟ่า เบ ท 72 mm88vivo เครดิต ฟรี ใหม่ ล่าสุด 2020 ufa88s ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufa600 แจก ทุน ฟรี ไม่ ต้อง แชร์ เปิด ยูสเซอร์ ฟรี เครดิต 2020 slot รับ เครดิต ฟรี ufabet95 ufabet 289 โหลด เกม live22 สมาชิก ใหม่ ฟรี เครดิต 300 เครดิต ฟรี รับ ง่ายๆ ufabet group fifa55gol เครดิต ฟรี slot ufawb998 สมัคร slot เอเย่นต์ ufabet mt88casino บา คา ร่า เซ๊ ก ซี่ ufabet 72 ดี ไหม ฟรี เครดิต 2019 ทาง เข้า ufabet 6666 ดาวน์โหลด slotxo 2020 รับ สมัคร เอเย่นต์ ufabet sa slot demo ป๊อก เด้ง เงิน จริง ฟรี เครดิต คา สิ โน sa gaming slot007 ดาวน์โหลด ufabet โกง
      สมัคร ligaz888| joker123 mobile download| agent gclub| extra chili megaways| วิธี สมัคร royal online v2| ali baba slot| ทาง เข้า sbo slot| เจษฎา เบ ท 888| book of ra temple of gold| spinomenal| load gclub| m online sbobet| ts911 สมัคร| royal online apk| 40 shining crown slot| ligaz888 สมัคร| ninja slot v2| crown 89 slot| ninja 777 สล็อต| ufabet ดี มั้ ย| solar temple slot| hack game royal casino| slot hacker download| ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ| สมัคร 928bet| link sbobet ใหม่| bm hacker casino| royal online apk| 888 poker apk| หน้า เข้า sbo| ที่ นี่ ทาง เข้า sbo| ligaz888 สมัคร| gclub 24 auto| squad inferno| สมัคร เอ เย่ น mm8bet| big cat slotxo| download royal online v2| carrera ferrari trophy| ไป บ่อน ปอย เปต| carrera ferrari trophy| vegasberry| ทาง เข้า sbobet 168| เว ป เจ ษ ปิด| เจษฎา เบ ท 6| บริษัท เจษฎา เบ ท| ช่อง ทาง เข้า ส โบ| download royal online v2 ios| สมัคร เอ เย่ น mm8bet| gclub agent| sbobet com เข้า ไม่ ได้| inferno star wars| เว ป เจ ษ vip| สมัคร ts911| hacker casino 2020| สมัคร ak47bet| ทาง เข้า sbobet 789| สมัคร ak47bet| ยู ฟ่า 191 pantip| ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ| ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ| mega ways| party pg slot| แจ้ง ฝาก sbobet24hr| vegasberry| fat santa online| รถ ไป บ่อน ปอย เปต|