<form id="p44k1W7"><legend id="p44k1W7"></legend></form>

<form id="p44k1W7"></form>
<wbr id="p44k1W7"><pre id="p44k1W7"></pre></wbr>
<nav id="p44k1W7"><code id="p44k1W7"></code></nav>

    <sub id="p44k1W7"></sub>
  1. <em id="p44k1W7"><source id="p44k1W7"></source></em>

  2. <form id="p44k1W7"></form>
    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
       
      ufabet 256 ufa600 ไฮโล สมัคร ยู ฟ่า 365 ตั้ง slotxo ให้ เครดิต ฟรี การ ถอนเงิน ufabet เครดิต ฟรี ทันที ufa9999999 เช็ ก ซี่ บา คา ล่า slot ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ี agent ufabet เซ ก ชี่ บา คา ร่า ฝาก 50 รับ 150 ไม่ ต้อง ทํา เทิ ร์ น ล่าสุด ufabet2_888 ufabet เครดิต ฟรี 100 ฝาก ถอน ufa24 บา คา ร่า excel ss66 บา คา ร่า sa เกม มิ่ง www ufax10 ติด ตั้ง slotxo ios ufabet1688 agreement 8 sa gaing ufabet565 slot roma เครดิต ฟรี บา คา ร่า โทรศัพท์ slotxo โหลด แทง ฟุตบอล ออนไลน์ ufa189 ลาว hatyaiisc888 slotxo 56 slotxo free ufabet6666 ทาง เข้า ufathai แทง หวย ligaz888 co สมัคร เกม สล็อต sa game 25 sagame66 demo บา คา ร่า ประกันภัย สล็อต xo 24 mafia88 เครดิต ฟรี 50 แอ พ แทง บอล ดาวน์โหลด slotxo asia เข้า เกม slotxo เครดิต ฟรี fhm99 ทาง เข้า เล่น ufabet slotxo 50 รับ 100 สมัคร พนัน บอล ออนไลน์ แทง ฟุตบอล แทง บอล vip omg89bet sbobet888888888 slotxo สมาชิก ใหม่ 100 next88 รหัส ฟรี เครดิต ufabet2020 fifa55 เครดิต ฟรี 100 betufa default smart slotxo โหลด เซ๊ ก ซี่ บา slot เครดิต ฟรี ถอน ได้ slotxo ฝาก 50 รับ 200 ฝาก 1 บาท รับ โบนัส 99 ล่าสุด ufabet lion arma935 baccarat ufabet แทง บอล บา คา ร่า ไลน์ vip2541 mm88fc pantip เว ป บอล ฟรี เครดิต แทง บอล ยูโร slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2020 แทง บอล 24 slotxo ติดต่อ โบนัส เครดิต ฟรี แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก ufa ที่ ดี ที่สุด ufagold888 ufabet 666 เว็บ ฟีฟ่า ให้ เครดิต ฟรี slot รับ เครดิต ฟรี bakara sa บอล 77up โหลด สล็อต 123 gaming66 ufabet352 sa ฝาก 50 ได้ 150 บา คา ร่า วัว วัว sa สมัคร เล่น เกม สล็อต like191 เครดิต ฟรี ดาวน์โหลด เกมส์ live22 เว็บ กา บอล slot ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ufabet lion 168 เครดิต บอล ฟรี ดาวน์โหลด สล็อต xo168 ทาง เข้า ufa8k xo ทาง เข้า ufabet th 77up line ดาวน์โหลด slotxo android slotxo ฟรี เครดิต 20 ufabet th slotxo โปร สมาชิก ใหม่ แทง บอล เว็บ ตรง ได้ บา คา ร่า ดาวน์โหลด xo wwwufa7777com live22 โหลด ยู ฟ่า 365s slotxo mobile ios club388 เครดิต ฟรี xo แจก เครดิต ฟรี ทาง เข้า xo slot slot ออนไลน์ ฟรี เครดิต ฟรี ใหม่ ex88 เครดิต ฟรี slot credit free ufabet 14 sagame1688 demo mafia8888 เครดิต ฟรี fifa55 members แทง บอล ufabet sa เซ็กซี่ ได้ เครดิต ฟรี lsm99 บา คา ร่า โบนัส ไม่ ต้อง ฝาก ฝาก 50 รับ 150 sa fifa555a จี คลับ ผ่าน ท รู วอ ล เล็ ท ufa168 ฝาก line vip2541 ยู ฟ่า เบ ท 999999 sa gaming premium ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด โปร โม ชั่ น ufabet เบอร์ โทร ufa365 สมัคร ufabet888 fifa555 ฝาก ขั้น ต่ํา 10 บาท club388 เครดิต ฟรี ถอนเงิน ufabet โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก แจก โบนัส ฟรี บอ ท บา คา ร่า สล็อต xo ดาวน์โหลด slotxo ดาวน์โหลด slotxo mobile mafia88 เครดิต ฟรี 50 ทาง เข้า ufa24 ยู ฟ่า เบ ท 168 ufawb998 slot free เครดิต ตั้ง slotxo เข้า ufa365 สมัคร ยู ฟ่า เบ ท ทาง เข้า slotxo 555 ufabet บริษัท โปร โม ชั่ น copa69 ยู ฟ่า เบ ท 191 บา คา ร่า ผิด กฎหมาย ไหม ี ufa777 holiday บา คา ร่า ufabet 3333 บา คา ร่า 6 แต้ม sa เกมส์ บา คา ร่า slotgame66 เครดิต ฟรี databet88 8 เข้า เกม slotxo 1ufabet ufa356 ดี ไหม slotxo เว็บ ตรง สมัคร สมาชิก ufabet mega888 ฟรี เครดิต ไม่ ต้อง ฝาก ufa9999 default 8 smart แจก เครดิต ฟรี 50 ไม่ ต้อง ฝาก ล่าสุด ufabet 8s โหลด แอ พ slotxo เว็บไซต์ บอล แจก เครดิต ฟรี 50 ไม่ ต้อง ฝาก ล่าสุด ufabet 888888 ufa888com โหลด สล็อต 123 sa gaming png เบ ท 88 ี ufa6666 888 ufa แฉ บา คา ร่า fifa7777 mm88fc slot online ฟรี เครดิต ไม่ ต้อง ฝาก 2020 ufa88 ทาง เข้า ufabet เข้า ufa345 สมัคร ufabet ออนไลน์ ufabet227 ยู ฟ่า เบ ท vip แจก จริง ไม่ ต้อง ฝาก ufabet th แทง บอล ขั้น ต่ำ 50 บาท slot ฟรี เครดิต 2020 slot999 ฟรี เครดิต slotxo3k ดาว โหลด เกม สล็อต xo ยู ฟ่า 369 fifa ฟรี เครดิต ufabet promotion ufabet987 สล็อต xo ออนไลน์ lsm99 ขั้น ต่ำ 10 บาท sa gaming 168vip sa gaming โปร โม ชั่ น โปร โม ชั่ น บอล ออนไลน์ ฝาก 200 ฟรี 300 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก sa gaming 2020 ufabet888s mm88wim ตั้ง slotxo ufabet 111 s ทาง เข้า slotxo ufabet987 แจก ฟรี เครดิต slotxo pc download สมัคร เล่น slot ufa79g แทง บอล true wallet แทง บอล โลก ดาว โหลด ส ล็ ต xo แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2018 สมัคร เอเย่นต์ ufabet ทาง เข้า slotxo ฝาก ถอน ufa6666 slot ฟรี เครดิต ไม่ ต้อง ฝาก 2019 โปร โม ชั่ น เว็บ พนัน บอล แจก เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน ibcbetstep สมัคร slotxo โบนัส 100 ติด ตั้ง slotxo ios เครดิต ฟรี 150 ไม่ ต้อง ฝาก ก่อน lsm789up เกม บา คา ร่า คือ slot ฝาก 1 บาท รับ 50 บอ ท บา คา ร่า 918kiss ฟรี เครดิต 1000 บาท 2020 แจก เครดิต ฟรี สมาชิก ใหม่ สมัคร ufa356 ตั้ง slotxo เกมส์ ที่ มี ของ เรา slotxo ตั้ง slotxo slot1688 online โปร โม ชั่ น เว็บ พนัน บอล ยู ฟ่า เบ ท 123 ufathai 6 mafia slot เครดิต ฟรี 2020 ยู ฟ่า เบ ท 88 ufabet777 โหลด เกมส์ สล็อต ออนไลน์ สมัคร ufabet ออนไลน์ ufa191 ฝาก ขั้น ต่ํา ี ufa1688 slot online ฟรี เครดิต ไม่ ต้อง ฝาก 2020 เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ สมัคร ufabet369 fifa55 ฟรี เครดิต เว็บ พนัน ออนไลน์ ยู ฟ่า ี ufa147 slotxo เว็บ ใหม่ เข้า สู่ ระบบ sa gaming live22 slot ฟรี เครดิต ufa ไม่มี ขั้น ต่ํา sa gaming บา คา ร่า ยู ฟ่า เบ ท 369 sbobet168 line ufa969 ufabet ขั้น ต่ำ 100 ufa คือ ทาง เข้า ufabet 89 บา คา ร่า มังกร เว็บ ยู ฟ่า 88 slot ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ufa1688 ดี ไหม โปร โม ชั่ น แจก เครดิต ฟรี slot ฟรี เครดิต ไม่ ต้อง ฝาก 2020 บา คา ร่า ล็อค ยู ส sa66 game vegus168 sure แทง ขั้น ต่ำ 10 บาท รับ เครดิต ฟรี ง่ายๆ ufa365s slotxo ฝาก 10 บาท ี ufa369 slotxo ฝาก 1 บาท ฟรี 50 บาท ล่าสุด mm8bet เครดิต ฟรี ทาง เข้า ufa365 มือ ถือ betufa มือ ถือ แทง บอล ฟรี เครดิต ไม่ ต้อง ฝาก ufabet online สล็อต xo ดาวน์โหลด slotxo ไลน์ ufa365 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก เว ป vip2541 ทาง เข้า slotxo vip บา คา ร่า 1 ถอนเงิน ufa365 ufabet3 บา ขา รา ทาง เข้า ufa955 ufabet 8 ufabet แจก เครดิต ฟรี ล่าสุด fifa55 คืน ยอด เสีย ufa369 ฝาก slotxo ฝาก 50 ฟรี 50 แจก เงิน ฟรี 2019 sa baccarat 1988 ดาว โหลด ส ล็ ต xo แจก เครดิต ฟรี สมาชิก ใหม่ slotxo โบนัส 100 ufabet cn ยู ฟ่า เบ ท 007 slotxo ฝาก 1 บาท ฟรี 50 บาท ล่าสุด ี ufa356 ยู ฟ่า เบ ท 982 sa ฝาก 50 รับ 150 ufa777 สมัคร ligaz24th isc888 ขั้น ต่ำ สมัคร fifa55 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ไม่ ต้อง แชร์ ufabet 99999 mm88fair แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th ค่า บ่า ร่า xo slot ทาง เข้า บอล แทง ทาง เข้า slotxo88 mm8bet pantip แจก ฟรี เครดิต ไม่ ต้อง ฝาก 2020 ufabet9999 slotxo โปร สมาชิก ใหม่ 100 เครดิต ฟรี สมาชิก ใหม่ โหลด เกม สล็อต slotxo live22 ทาง เข้า ufabet777 โหลด slotxo ios สมัคร สมาชิก ufabet เว บ เครดิต ฟรี ไม่ ต้อง แชร์ แทง บอล 77 แอ ป slotxo ufabet services databet88bet slot เครดิต ฟรี ล่าสุด sbobetonline244 ดาวน์โหลด slotxobkk isc888 ขั้น ต่ำ ได้ เครดิต ฟรี สมัคร สมาชิก สล็อต xo kg88 บา คา ร่า เปิด ยูสเซอร์ ไม่มี ขั้น ต่ำ faz123 บา คา ร่า แทง บอล 10 ยิง ปลา ฟรี 150 ยู ฟ่า เบ ท เครดิต ฟรี เข้า เล่น ufa mafia333 เครดิต ฟรี แจก รหัส คูปอง โบนัส fun88 เว ป แทง บอล ที่ ดี ที่สุด www ufabet cc slotxo ดาวน์โหลด ลงมือ ถือ http www slotxo com m slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ufabet ฝาก ขั้น ต่ำ บอล 77up เว็บ บอล ยู ฟ่า gaming66 เครดิต ฟรี รับ ทันที เซ๊ ก ซี่ บา ค่า ร่า เกมส์ 66 ดาว โหลด เกม slot joker ufa678 จ่าย จริง ไหม บา คา ร่า ทุน 1000 โหลด สล็อต 22 ยู ฟ่า 365s ี ufa007 แจก จริง เครดิต ฟรี 168ufabet ฟรี เครดิต บอล บีบ บา คา ร่า ufawb998 mm88icom ufa24h ดี ไหม ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เล่น แทง บอล sa gaming ts911 slotxo ฝาก 5 บาท ฟรี 99 บาท ล่าสุด 777slot เครดิต ฟรี สมัคร slotxo88 สมัคร ufabet crown98 slot เครดิต ฟรี ฟรี เครดิต ถอน ได้ 2019 ยู ฟ่า เบ ท 123 live22 slot download ufabet ทาง เข้า 369 ufa เบ ท เว็บ ตรง ufabet ทาง เข้า ufathai เว็บ กา บอล sa gaming 777 เว็บ บอล ยู ฟ่า ufabet android สมัคร slotxo รับ เครดิต ฟรี สมัคร ยู ฟ่า 365 ufabet189 ฝาก เงิน ufa888 fifa55king slot เครดิต ฟรี ไม่ ต้อง ฝาก sa gaming ยิง ปลา ยู ฟ่า 88888 fa181818 สล็อต xo ออ โต้ เข้า สู่ ระบบ sa gaming ลิ้ ง ค์ โหลด เกมส์ https www srd168th com slotxo ทาง เข้า เล่น 168slotxo ufabet888s แทง บอล กิน ค่า น้ํา bakara sa บอล เครดิต ฟรี แอ พ slotxo ufabethero ufabet828 sa ฝาก 50 รับ 150 ufabet1678 sbobet8888888 เข้า ufa365 โบนัส วัน เกิด ไม่ ต้อง ฝาก sa gaming 5 บาท ufabet เว็บ lsm99 ขั้น ต่ำ 10 บาท ฝาก ถอน ufa24 slot007 ดาวน์โหลด โปร โม ชั่ น เว็บ พนัน บอล sa gaming 168 login pgslot game ufa656 ทาง เข้า มือ ถือ ทาง เข้า เว็บ ufa ufabet888888 slotxo โปร สมาชิก ใหม่ 100 slot ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน sa77 บา คา ร่า click2sbobet เครดิต ฟรี ค่าย sg slot แจก เงิน ฟรี youlike222 เครดิต ฟรี ยิง ปลา ฝาก 100 ฟรี 300 roma เครดิต ฟรี sa gaming 06 ดาวน์โหลด สล็อต xo168 ufa สมัคร เครดิต ฟรี slot sa เกม มิ่ง 88 สล็อต 1234 joker ดาวน์โหลด เปิดโปง บา คา ร่า แทง บอล ออนไลน์ ฝาก ขั้น ต่ํา 100 ufa888 pantip mafia111 เครดิต ฟรี ufabet888 ดี ไหม รับ เครดิต ฟรี xo โปร โม ชั่ น บอล ออนไลน์ 918kiss ฟรี เครดิต 1000 บาท แทง บอล m8bet บา คา ร่า เปิด กี่ โมง ufa600 แทง บอล ufabet slotxo แอ พ มือ ถือ ดาวน์โหลด เดี๋ยวนี้ ถอนเงิน ufa ufabet600 mega888 ฟรี เครดิต slotxo เปิด ใหม่ ราคา บอล fifa89 ยู ฟ่า เบ ท vip ufabet899 แจก เครดิต ฟรี 2000 ไม่ ต้อง ฝาก 2019 slotxo ios เล่น ไม่ ได้ เท ส บา คา ร่า สมัคร ยู ฟ่า 888 scr888th เครดิต ฟรี sa casino vip ฝาก ufa168 sa game casino online slotxo ฟรี เครดิต ไม่ ต้อง ฝาก 2020 ยู ฟ่า เบ ท 191 เครดิต ฟรี 100 ล่าสุด 2020 ufabet188 sa คา สิ โน เปิดโปง บา คา ร่า databet88bet ufa79g sa เกม มิ่ง 66 เข้า เล่น ufabet โบนัส ฟรี ไม่ ต้อง ฝาก ถอน ได้ เซ๊ ก ซี่ บา ufabet600 ib888 เครดิต ฟรี 2019 vegus168sure แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2562 ดาว โหลด เกม ส ล๊ อ ต sa gaming เครดิต ฟรี แทง ออนไลน์ 789 แจก ฟรี ไม่ ต้อง ฝาก ี ufathai ี ufabet88 แทง บอล เครดิต ฟรี slotxo ฝาก ไม่มี ขั้น ต่ํา mafia แจก เครดิต ฟรี 50 ufabet 515 สมัคร ยู ฟ่า 168 สมัคร ufa356 www ยู ฟ่า เบ ท ufa168 สมัคร ufa678 เครดิต ฟรี ufabet แอ พ แทง บอล ฟรี เครดิต 100 เอ เย่ น ยู ฟ่า ไม่ ต้อง ฝาก รับ เครดิต ฟรี ยู ส ฟรี slotxo ทาง เข้า เกม slotxo ทาง เข้า ufabet356 ทาง เข้า ufabet888 ดาวน์โหลด joker xo ufabet cash ทาง เข้า ufa88 เว็บ ยู ฟ้า slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ไม่ ต้อง แชร์ gaming 1688 all บา คา ร่า รับ เครดิต ฟรี ทันที ทาง เข้า ufabet7777 ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ ufabet joker ฟรี เครดิต ฟรี ทาง เข้า เอเย่นต์ ยู ฟ่า เบ ท เซ ค ซี่ บา คา ร่า sa เกม มิ่ง 66 live22 แจก เครดิต ฟรี ยู ฟ่า เบ ท 800 เช็ ก ชี่ บา คา ร่า slotxo รับ เครดิต ฟรี entaplay เครดิต ฟรี ดาวน์โหลด slotxo ลง คอม ทาง เข้า ฟีฟ่า 888 รับ เครดิต ฟรี ทันที ufabet69 แทง หวย แทง บอล ufabet เว็บ จริง xo ทาง เข้า โปร โม ชั่ น เว็บ พนัน บอล ufabet 24hrs ufabet168 ดี ไหม web168v3 ufa877 คืน ยอด เสีย mafia919 เครดิต ฟรี slotxo ติด ตั้ง ufabet เข้า เล่น ทาง เข้า เกม slotxo pok9 เครดิต ฟรี ยู ฟ่า เบ ท 191 ufa98s แจก เครดิต ฟรี ufa369vip slotxo โปร ดีๆ รับ เครดิต ฟรี ถอน ได้ ufabet168 รับ เครดิต ฟรี สมาชิก ใหม่ สล็อต xo ฝาก 1 บาท ufabet สมัคร 100 web บอล เปิด ยู ส ใหม่ รับ เครดิต ฟรี slotxo ไม่มี ขั้น ต่ำ ufabet ถอนเงิน ufabet sports gclubsport888 ลิ้ ง เข้า ufabet ทาง เข้า ufa345 สล็อต xo โหลด แจก เครดิต 100 ดาวน์โหลด เกม สล็อต live22 เบ ท 888 เงิน เครดิต ฟรี slotxo เว็บ ใหม่ เว ป ยู ฟ่า ufa888 pantip โปร ufa ufa678 จ่าย จริง ไหม member ufabet ทาง เข้า ufathai ยู ฟ่า เบ ท 191 ufa191 ถอนเงิน fifa55f prompay88 เครดิต ฟรี เว็บ ยู ฟ้า ufabet pr สมัคร ยู ฟ่า 168 ufabet555 fifa555 ฝาก 50 ฟรี 100 ยู ฟ้า 168 แจก เครดิต ฟรี 50 ไม่ ต้อง ฝาก ล่าสุด สล็อต xo เครดิต ฟรี 100 joker689 เครดิต ฟรี ufabet group 918kiss แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2020 ฟรี เครดิต แทง บอล sa gaming ปรับปรุง สมัคร สมาชิก แทง บอล ออนไลน์ next88 รหัส ฟรี เครดิต ufabet 189 ufa โกง pussy888 แจก เครดิต ฟรี sa gaming v2 สมัคร ufa1688 เช็ ก ซี่ บา คา ล่า ทาง เข้า ufa mysbo99 เครดิต ฟรี ติดต่อ live22 เครดิต ฟรี ก่อน ฝาก ww fifa55 ufabet2_888 ยู ฟ่า เบ ท คาเฟ่ เครดิต ฟรี 50 ถอน ได้ 300 ดาวน์โหลด slotxo ios โปร โม ชั่ น บอล sa vip เครดิต ฟรี ดาวน์โหลด เกมส์ สล็อต slotxo88 เครดิต ฟรี ไม่ ต้อง ฝาก slot 1ufabet เครดิต ฟรี slotxo คืน ยอด เสีย slotxo ฝาก 5 บาท ฟรี 99 บาท 2020 ฝาก 50 รับ 150 sa betufa แจก เงิน ฟรี 2019 ลิ้ ง ufabet ทาง เข้า slotxo88 download slotxo ios บา คา ร่า เสีย ufabet168v2 next88 รหัส ฟรี เครดิต ufa ที่ ดี ที่สุด ufabet เข้า ไม่ ได้ slotxo download apk ufabet982 ทาง เข้า slotxo88 ufabet mvp ufabet1688 agreement 8 slotxo ฝาก ไม่มี ขั้น ต่ำ gaming 168 สมัคร kingkongxo ดาวน์โหลด ufabet x8 บา คา ร่า ทุน 500 โหลด สล็อต 123 slotxo ios download fifa55 fifa555 โปร โม ชั่ น บอล ออนไลน์ slotxo ฝาก 1 บาท ฟรี 99 บาท สต ร บา คา ร่า ฟรี เว ป ยู ฟ้า 1688 ufa ufabet uefa ทาง เข้า ufa365 ี ufascr สมัคร ufabet ufabet ทาง เข้า เล่น member ufabet ี ufa999 เค ดิ ต ฟรี xo slotxo ฝาก 15 บาท รับ 100 slotxo ฝาก ไม่มี ขั้น ต่ำ ป๊อก เด้ง แจก ฟรี 300 betufa สมัคร fifa55t โบนัส วัน เกิด ไม่ ต้อง ฝาก ยู ฟ้า 678 ยู ฟ่า เบ ท 21 เว บ เครดิต ฟรี ไม่ ต้อง แชร์ sa gaing mafia488 ฟรี เครดิต แจก เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ufa356net sa gaming 168vip เข้า สู่ ระบบ ufa24h ดี ไหม download slotxo แทง บอล โปร โม ชั่ น แจก ฟรี เครดิต ufa ฝาก ไม่มี ขั้น ต่ํา เครดิต ฟรี slotxo joker ufabet111 winner55 โปร โม ชั่ น ufabet sports ทาง เข้า ufa8k เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ถอน ได้ slotxo 56 เครดิต ฟรี 100 ล่าสุด 2020 ถอนเงิน ufa191 ดาวน์โหลด สล็อต live22 ดาวน์โหลด slotxo สํา ห รับ android ี ufa66 agent ufabet fifa55u เครดิต ฟรี เครดิต ฟรี ถอน ได้ เลย slot ฟรี เครดิต 2019 ดาวน์โหลด joker xo slot ฝาก ครั้ง แรก พ ริ ต ตี้ บา คา ร่า ufabet816 เครดิต ฟรี สมาชิก เก่า 168 vegus168 เว็บ ยู ฟ่า 888 เข้า เกม สล็อต xo ufabet1246 ทาง เข้า slotxo joker123 sa gaming ฟรี เครดิต slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ทาง เข้า xo slot slot 999 เครดิต ฟรี app slotxo betufa ถอนเงิน slot ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufabet352 เครดิต แจก ฟรี ไม่ ต้อง ฝาก kg88 บา คา ร่า บา ค่า ร่า เครดิต ฟรี sa gaming 168vip เครดิต ฟรี ได้ จริง 2020 ufabet888888 สมาชิก ใหม่ ฟรี เครดิต ล่าสุด สมัคร แท่ง บอล ufaclub8 xe88 เครดิต ฟรี ไม่ ต้อง ฝาก slotxo download apk sath88 slot sa gaming hacker ace333 ฟรี เครดิต ไม่ ต้อง ฝาก ufabet888s ยู ฟ่า เบ ท 369 sa แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แทง บอล m8bet sa77 บา คา ร่า ss66 บา คา ร่า โหลด slotxo apk แทง บอล โลก sa 168 vip เข้า สู่ ระบบ แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2020 เครดิต ฟรี 150 ไม่ ต้อง ฝาก ก่อน เครดิต ฟรี ตอน นี้ ฟรี เครดิต 2019 ไลน์ ufa365 copa88 สมัคร ยู ฟ่า เบ ท 168 ี ufa9999 heng999 ฟรี เครดิต ufabet189 เครดิต ฟรี ค่าย ใหม่ fifa555 ฝาก ขั้น ต่ํา 10 บาท ufa147 ทาง เข้า gaming66 fifa55 sport winner55 โปร โม ชั่ น slot ออนไลน์ ฟรี holiday บา คา ร่า แทง บอล ufabet slotxo โปร สมาชิก ใหม่ 100 ufabet ขั้น ต่ำ 100 77up2u แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด ufabet ไลน์ ufabet เบอร์ โทร สมัคร ufa88 เครดิต ฟรี เดือน นี้ เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 fifa69 pantip เปิด ยูสเซอร์ ฟรี ดาวน์โหลด เกม สล็อต ufa1688 ฝาก ยุ ฟา เบส 888 เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก ล่าสุด เปิด ยู ส ใหม่ รับ เครดิต ฟรี mega888 ฟรี เครดิต ไม่ ต้อง ฝาก slotxo pc download ทาง เข้า เกม สล็อต xo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด แทง บอล ผ่าน เน็ต fifa555a เว็บ ยู ฟ่า 888 บา คา ร่า holiday palace sa game th สมัคร แทง บอล เครดิต ฟรี เปิด ยูสเซอร์ ฟรี เครดิต ไม่ ต้อง ฝาก ทาง เข้า ufa999 ส ปี ด บา คา ร่า s16 slotxo เวอร์ชั่น ล่าสุด แทง บอล ขั้น ต่ำ 50 บาท ี ufabet co slotxo ฝาก 1 บาท ฟรี 99 บาท ล่าสุด ufabet fb สมัคร เกม สล็อต เล่น บอล ทั้ง สอง ฝั่ง ufabet28 ดาวน์โหลด สล็อต xo 888 แทง บอล เว็บ ตรง สมัคร สมาชิก ยู ฟ่า ufabet คา สิ โน โปร บา คา ร่า ฟรี sa gaming 77 ดาวน์โหลด slotxo ล่าสุด เว ป ยู ฟ่า แทง บอล ufa350 สล็อต xo คืน ยอด เสีย all บา คา ร่า ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ โปร สมาชิก ใหม่ ฝาก 10 รับ 100 slotxo bonus 100 sagame1688 demo ี ufa9999 เข้า เว็บ ufabet sagame66 demo โหลด สล็อต 22 ดาวน์โหลด xo สล็อต ยู ฟ่า 888 ทาง เข้า เข้า เล่น ufa sa เกม 66 slotxo สมาชิก ใหม่ โปร โม ชั่ น เว็บ พนัน บอล ยู ฟ่า เบ ท 911 ราคา แทง บอล แจก เครดิต ฟรี 50 ไม่ ต้อง ฝาก ล่าสุด บอ ท บา คา ร่า sa สมัคร เอเย่นต์ sa ี ufascr ufa ไม่มี ขั้น ต่ำ ดาวน์โหลด สล็อต live22 slot ฟรี เครดิต 2019 บอล ต่ำ เครดิต ฟรี 50 ถอน ได้ 300 สมัคร เกม slotxo ยู ฟ้า เบ ท sa baccarat 1988 ufabet700 1ufabet เครดิต ฟรี sath88 slot เสีย บา คา ร่า 10000 รับ สมัคร เอเย่นต์ ufabet รับ สมัคร เอเย่นต์ ufabet vip sa gaming slot1688 ฟรี เครดิต sa casino games ufabet 579 sa gaming 911 mafia เครดิต ฟรี ใหม่ ล่าสุด betufa default 8 ufabet189 เครดิต ฟรี ถอน ได้ ี ufabet369 ufa678 หวย ufabet pro fifa55 คืน ยอด เสีย slot mg เครดิต ฟรี sa gaming slot แจก เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ufabet168 ทาง เข้า sa เกม มิ่ง mm88fc vip ufa365 pantip slotxo ไม่มี ขั้น ต่ํา app slotxo ufa191 ฝาก ขั้น ต่ํา slotxo ฝาก 15 บาท ufa356 ฟรี เครดิต ufabet1688 เล่น บอล ผ่าน เน็ต fifa55gen ี ufa88 บา คา ร่า ผิด กฎหมาย ไหม ufabet 77 ถอนเงิน ufabet1688 สมัคร ufa6666 เว็บ bet911 ทาง เข้า ยู ฟ่า เบ ท เว บ เครดิต ฟรี ไม่ ต้อง แชร์ ดาวน์โหลด slotxo ลง คอม slotxo เว็บ ใหม่ แทง บอล ufa350 sa เกม บา คา ร่า ufabet 428 ี ufabet365 ufa991 slotxo android ufa988bet member ufabet ufabet 95 ทํา เทิ ร์ น เครดิต ฟรี slot online ฟรี เครดิต ไม่ ต้อง ฝาก 2020 ลิ้ ง โหลด slotxo ufabet 982 slot เงิน ฟรี slotxo สมัคร ใหม่ ufabet cash แจก 100 ไม่ ต้อง ฝาก ufabet8k ทาง เข้า ี ufabet sexybaccarat66 หวย บอล ออนไลน์ holiday บา คา ร่า ufabet911 sa game th slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 slot ฝาก 1 บาท รับ 99 วอ เลท เครดิต ฟรี ไม่ ต้อง ไล่ ค์ ไม่ ต้อง แชร์ 2020 agent ufabet รับ โบนัส ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี ยิง ปลา ค่าย sg ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด แจก เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 สมัคร สล็อต 1234 sa gaming เปิด กี่ โมง บา คา ร่า c03 สล็อต ออนไลน์ ios ufabet999 ufabet cnv3 slotxo mobile ios ufa656 ทาง เข้า live22 slot ฟรี เครดิต ยู ฟา 191 โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก ลิ้ ง โหลด slotxo รับ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ดาวน์โหลด สล็อต xo 888 แทง บอล ออนไลน์ fifa55 ฟรี เครดิต ถอน ได้ 2019 เครดิต ฟรี ไม่ slot 999 เครดิต ฟรี เครดิต แจก ฟรี ไม่ ต้อง ฝาก ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ แทง บอล 77 ufabet72 ทาง เข้า sa gaming 50000 เครดิต ฟรี ยู ฟ่า ้ ufabet เกม สล็อต สมัคร รับ เครดิต ฟรี 885ufabet เบ ท 88 slot รับ เครดิต ฟรี ไม่ ต้อง ฝาก ufabet แจก เครดิต ฟรี ไม่ ต้อง ฝาก 777slot เครดิต ฟรี ufabet 3333 ถอนเงิน sa gaming xo123 เครดิต ฟรี สล็อต โปร สมัคร สล็อต xo โบนัส 100 เครดิต ฟรี สล็อต xo fifa55sport ufabet แจก เครดิต ฟรี 2020 ufa191 ถอนเงิน sahacker888 ทาง เข้า ยู ฟ่า เว ป vip2541 mm8bet pantip เว็บ ฟีฟ่า สมาชิก ใหม่ ฟรี เครดิต ไม่ ต้อง ฝาก 2020 โหลด แอ พ slotxo ติดต่อ live22 app slotxo ufabet ปิด ปรับปรุง ี ufa007 fifa555gold ทาง เข้า ufabet365 เครดิต ฟรี ตอน นี้ slot เครดิต ฟรี ไม่ ต้อง ฝาก ufabet 115 สล็อต xo เครดิต ฟรี เว็บ ตรง ยู ฟ่า ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน เครดิต ฟรี ค่าย ใหม่ slotxo mobile ios databet88bet แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ดาวน์โหลด aka slotxo แทง บอล ฟรี ดาวน์โหลด มือ ถือ http www happyslot88 com download บา คา ร่า ปิด ปรับปรุง นาน ไหม uf9ba online slotxo ฝาก ครั้ง แรก 100 vegus168 live ufabet855 ทาง เข้า joker xo heng666 เครดิต ฟรี g2g เครดิต ฟรี บา คา ร่า 918 ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด sa gaming ปรับปรุง jumbobcr1 โบนัส ไม่ ต้อง ฝาก lsm77 เครดิต ฟรี ufabet88888vip ufabet main slotxo อันดับ 1 mega888 แจก เครดิต ฟรี แทง บอล เครดิต ฟรี ufa ที่ ดี ที่สุด
      slotxo24| slot ฝาก 50 ฟรี 150| แอ พ คำนวณ รู เล็ ต| slot xe88| คา สิ โน ไพ่ ดั ม มี่| โป เกอร์| slot ฝาก 50 รับ 100| 918kiss slot 777| slotvip777| slot xo007| fifa55 โดน จับ| super joker slot| casino online jackpot| slot1234pg| slot 888| ึึึึ 77up| 918kiss slots| สล็อต xo123| 918kiss 1234| taibet88 เครดิต ฟรี| 5g slot joker| สมัคร เครดิต ฟรี 200| เครดิต ฟรี otp| kiss918 allbet| luk666 เครดิต ฟรี| เกม สล็อต ไลน์ 22| slot96th| 918kiss ฝาก ท รู วอ เลท| เล่น ฟรี ถอน ได้| 918kissbig| 918kiss slot 777| v8slot 918kiss| slotxo 12| slot cq9| แจก เครดิต ฟรี 918kiss| โจ๊ก เกอร์ xo| slotxo ฝาก 1 บาท| slotxo หน้า เว็บ| คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์| ไฮโล เงิน จริง| สล็อต xo77| โจ๊ก เกอร์ ฝาก ถอน ไม่มี ขั้น ต่ํา| 918kiss เครดิต ฟรี 100| 918kiss เครดิต ฟรี 2019| รู เล็ ต สายฟ้า| slotxo ฝาก 9 บาท รับ 100 ล่าสุด| slotxo เติม true wallet ไม่มี ขั้น ต่ํา| pragmatic play ฟรี เครดิต| โป็ ก เกอร์ ออ น ไล| slot punpun| 198 kiss ฟรี เครดิต| สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก| 918kiss club| slotxo แจก เครดิต ฟรี 2020| 55slotxo| แทง ไฮโล ขั้น ต่ํา 10 บาท| mafia ฟรี เครดิต ไม่ ต้อง ฝาก| ไฮโล ออนไลน์ w88| fifa555 truemoney| 918kaya เครดิต ฟรี| slot joker 1668| เครดิต ฟรี 120| slot168 galaxy| 918kissauto alert| slotxo เติม true wallet ไม่มี ขั้น ต่ํา| spin 777|