<tr id="t1924yg"><source id="t1924yg"><option id="t1924yg"></option></source></tr><var id="t1924yg"></var>
<form id="t1924yg"></form>

    <sub id="t1924yg"></sub><form id="t1924yg"><legend id="t1924yg"></legend></form>
      <form id="t1924yg"><span id="t1924yg"><track id="t1924yg"></track></span></form>
      <tr id="t1924yg"><source id="t1924yg"></source></tr>
    1. <nav id="t1924yg"></nav>
        <wbr id="t1924yg"><th id="t1924yg"></th></wbr>
          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
           
          fun88 2019 slot maker วี ไอ พี ล็ อ ต โต้ ทาง เข้า เว็บ sbobet sbothai mobile 777 gate casino ทาง เข้า sbobetmix โค้ด ส ปิ น coin master ฟรี ติด ตั้ง 918kiss ios 918kiss download 2019 ios lsm99vip wildslots casino โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท tomato555 เครดิต ฟรี สมัคร รับ ทันที ทาง เข้า เว ป lsm รู น แทง ค์ กิ ต งาย สมัคร รับ เครดิต ฟรี 2020 รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท รวย ล็ อ ต โต้ ไฮโล kingmaker สล็อต เครดิต ฟรี เทิ ร์ น 1 เท่า 888 gold slot 99gclub วิธี ได้ spin coin master 7kasino lsm สมัคร ทาง เข้า gclub ผ่าน เว็บ ยี่ กี เว็บ เจ ษ coin master ส ปิ น ฟรี ios happyluke โปร โม ชั่ น สูตร เพิ่ม ส ปิ น coin master gclub 998 sbobet999 ลิ้ ง ส ปิ น ฟรี joker เครดิต ฟรี 2019 v casino ลิ้ ง แจก ส ปิ น เกม coin master เหรียญ coin master ฟรี beer777 มือ ถือ เค ดิ ต ฟรี 2020 ทาง เข้า จี spin 996 casino dafabet ลิงค์ bacc6666 สมัคร สล็อตออนไลน์ ทาง เข้า sbobet mobile 918kiss download 2019 ios เว็บ เล่น poker สมัคร ace333 sbobetv8 ดาวน์โหลด เกม 918kiss ancient egypt slot sbobet8888 ทาง เข้า se88 slot บอล สด sbobet 918kiss โหลด phoenix slot ล็ อ ต โต้ 88 เว็บ บา คา ร่า ปอย เปต 918kiss download 2020 ปอย เปต 289 เว ป lsm99 casino muchbetter รับ ส ปิ น ฟรี coin master ios สมัคร รับ เครดิต ฟรี ล่าสุด web jetsadabet sbobet888 ทาง เข้า มือ ถือ sbobet mobile iphone คา สิ โน ออนไลน์ ปอย เปต ism99 mafia88 สมัคร ลิ้ ง แจก ส ปิ น ฟรี coin master lsm99ch tumbet casino ให้สล็อตฟรี 15 ครั้ง พร้อมโบนัสสูงถึง 5,000 บาท! fun88 กีฬา หวย เจต พัน ทิป vip jetsadabet เค ดิ ต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ sbobet66 บา คา ร่า ส โบ เบ็ ต สล็อต sagame66 casino elite gclub bet gclub4 ทาง เข้า sbobet agent สล็อต แตก จริง dafabet คือ highroller casino lsm99 ฝาก ทาง เข้า ส โบ ล่าสุด ฟรี ส ปิ น coin master สมัคร sbobet ตรง เว็บ ไฮโล แจก ฟรี sbobet747 สูตร หวย ยี่ กี jetsadabet 2563 วิธี ปั่น ส ปิ น coin master สล็อต เติม 10 ได้ 100 live casino house ฟรี 300 ทาง เข้า royal online auto918kiss jetsadabet วิธี โอน เงิน spinal tap slot gclub8888 sbobet official website casino crazy time coin master ส ปิ น ฟรี 2020 auto918kiss สมัคร sbobet ออนไลน์ lsm99 mobi jetsadabet vip 1 คือ happyluke ทาง เข้า lucky online casino ส ปิ่น ฟรี โบนัส free spin รู น สาย แทง ค์ rovไพ่ โป ก เกอร์ ออนไลน์ ล็ อ ต โต้ 8888 777 live casino ส โบ เข้า ไม่ ได้ jetsada online gclub free sbobet5678 หวย เจต พัน ทิป royal v2 online gclub ป๊อก เด้ง slot888th ราคา บิงโก fun788 ทาง เข้า 918kiss ดาวน์โหลด android ส โบ เบ็ ต เข้า ไม่ ได้ lsm99 ถอนเงิน ขั้น ต่ำ gclub pro แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 แค่ สมัคร เครดิต ฟรี joker123 แจก ส ปิ น coin master ฟรี sbobet888 ทาง เข้า ทาง เข้า ส โบ 888 www99lsm star cluster slot dafabet พัน ทิป สมัคร สมาชิก mega888 วิธี เอา ส ปิ น coin master ฟรี รับ ส ปิ น ฟรี coin master บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น play 888 casino coin master ส ปิ น ฟรี สล็อต happyluke โหลด 918kiss android เข้า ส โบ ทาง เข้า ส โบ เบ ท 918kiss download android 2020 gransino casino expert casino sbobet beer777 joker888 casino 88 สล็อต เครดิต ฟรี สล็อต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ lsm bet 99 CASINO ism99 star หวย เจต พัน ทิป split casino ทาง เข้า sbo777 สมัคร สมาชิก lsm99 15 ส ปิ น ฟรี โบนัสเงินคืน วิธี เล่น black jack royalonlien เว็บ ism99 ส ป ริ้น ฟรี coin ทาง เข้า sbobet 365 เค ดิ ต ฟรี ล่าสุด ไม่ ต้อง แชร์ จี คลับ 97 วิธี เอา ส ปิ น coin master mobil blackjack gclub pc sbo128 ทาง เข้า google เจษฎา bet sbo777 ทาง เข้า เค ดิ ต ฟรี 200 freebet casino sbobet mobile iphone u16888 m u16888com แจก ส ปิ น ฟรี coin master facebook เล่น เกม poker online ฟรี sbobet 789 ส ปิ น เกม coin master ฟรี poker เงิน จริง android all casino บา คา ร่า http ab24hr allbetasia com login sbobet25 123 plus casino temple slot สมัคร สมาชิก รับ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน กลุ่ม เครดิต ฟรี ไม่ ต้อง แชร์ slotxo5g huone casino สมัคร เกม สล็อต ออนไลน์ ฝาก ขั้น ต่ำ 20 ฟรี 100 สล็อต happyluke สมัคร fun88 เค ดิ ต ฟรี ไม่ ต้อง แชร์ แทง หวย เว ป เจต แจก โปร ส ปิ น coin master fan88 ทาง เข้า ทาง เข้า gclub ล่าสุด http ab24hr allbetasia com login ปอย เปต 977 ส โบ เบ็ ต 168 sbobet google sites 10 casino เข้า เว็บ jetsadabet slot สมัคร รับ เครดิต ฟรี sbobet888 มือ ถือ แจก ฟรี ส ปิ น 2020 coin master สมาชิก ใหม่ ลง ทะเบียน เพื่อ รับ โบนัส แรก เข้า 918 สล็อต วิธี แทง หวย เจษฎา สมัคร ปอย เปต แจก โค้ด ส ปิ น coin master jetsadabet 222 สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก สมัคร agent sbobet ฝาก เงิน fun88 918kiss ดาวน์โหลด android ism99 สมัคร สมาชิก fun88 facebook คา สิ โน เติม true wallet ไม่มี ขั้น ต่ํา gclubgroup ไฮโล มือ ถือ การ พนัน casino sms poker เงิน จริง ios สล็อต ไม่มี ขั้น ต่ำ sbobet slots โค้ด รับ ส ปิ น ฟรี coin master sbothaiclub สล็อต ฝาก ถอน วอ เลท 10 casino 359 sbobet fun555 ทาง เข้า คลับ มือ ถือ lsm99 agent ทาง เข้า E-Sport โบนัสต้อนรับ 100% สูงสุดถึง 1,000 บาท แจก ส ปิ น coin master ล่าสุด fun881851 เข้า ส โบ เบ็ ต 888 918kiss เกมส์ ไหน ดี แตก ง่าย ezugi casino bacc6666 สมัคร เค ดิ ต ฟรี 2020 สมัคร 10 รับ 100 ตัวแทน royal casino คา สิ โน ออนไลน์ โปร โม ชั่ น เว็บ ส โบ เบ็ ต แทง หวย ออนไลน์ เจต หวย หุ้น เจษฎา รับ spin ฟรี coin master sbo888 สมัคร เกม coin master ส ปิ น ฟรี casino o โปร ส ปิ้ น coin master ทาง เข้า ส โบ ล่าสุด bocasino dafabet สํา รอง สมัคร fun88 coin master ฟรี ส ปิ น ios ส โม เบส fun88thai 99gclub สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา sbobetsh mobile bg casino online ส ปิ น ฟรี coin master ios ล่าสุด ทาง เข้า sbobet24hr ทาง เข้า บา คา ร่า gclub ทาง เข้า sbobet เข้า ไม่ ได้ ทาง เข้า sbo365 sbothai8 ทาง เข้า world gclub ฟรี ส ปิ น coin master วัน นี้ วิธี ส ปิ น ฟรี coin master ล็ อ ต โต้ คือ sbobet888 สมัคร gclub png gclub world mega joker jackpot 15 ส ปิ น ฟรี ฟรี สล็อต ออนไลน์ โหลด mega888 ยืนยัน เบอร์ รับ เครดิต ฟรี 359 sbobet ลิ้ ง เข้า sbo enterplay casino 918kiss 888 apkเครดิต ฟรี ไม่ ต้อง แชร์ https ufafever com ufabet login m beer777 mobile casino sms deposit gclub dealer sbobet online mobile สมัคร happyluke casino f ทาง เข้า จี คลับ ผ่าน เว็บ m560bet สมัคร สมาชิก mega888 sbobet5678 lara croft slot ซื้อ หวย เจต fun88 กีฬา coahuila casino สล็อต ไม่มี ขั้น ต่ำ ฟรี โบนัส รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท bet sensation casino ร็ อ ค โค่ แค ป บา ค่า ร่า app gclub หวย เจษฎา เบ ท ส โม เบ ท 555 ทาง เข้า sboasia empire777 คา สิ โน ออนไลน์ ฟรี เครดิต 300 บาท เว็บ jetsadabet pantip happyluke รีวิว เว็บ บา คา ร่า จี คลับ ดาวน์โหลด แอ พ happyluke 918 slot auto เว็บ เจษฎา เบ ท 10 casino เข้า lsm99 coin master ส ปิ น ฟรี ไม่ จํา กัด วิธี เล่น แบ ล็ ค แจ็ ค แจก ฟรี ไม่ ต้อง แชร์ เครดิต ฟรี ถอน ง่าย 2018rb88 ฟรี 300 สมัคร สล็อต ไม่มี ขั้น ต่ํา สมัคร รับ เครดิต ฟรี ทันที 300 จี คลับ คืน ยอด เสีย ลิงค์ สํา รอง dafabet ส โม เบ ท 555 หวย ออนไลน์ jetsada สมัคร ส โบ เบ ท รับ ส ปิ น ฟรี เกม coin master สมัคร sbobet คา สิ โน 15 ส ปิ น ฟรี casino roses 888 ล็ อ ต โต้ got slot เครดิต ฟรี สล็อต ไม่ ต้อง ฝาก m beer 777 บา คา ร่า ค่า คอม ลิงค์ สํา รอง dafabet isoftbet slots ฟรี ส ปิ น coin การ เล่น โป๊กเกอร์ จี คลับ 5555 ล๊ อ ต โต้ วัน สมาชิก ใหม่ ฝาก 1 บาท รับ 100 enterplay casino 918kiss เกม ไหน แตก ง่าย สุด jetsadabet bet ส โม เบ ท 555 สล็อต ไม่มี ขั้น ต่ำ ฟรี โบนัส 2019 vwin365th ทาง เข้า sbo888 วิธี ได้ ส ปิ น coin master gclub world เครดิต ฟรี winsor ฝากเงินครั้งแรกรับโบนัส 200% สูงสุด 8,000 บาท bbb 1688 royal casino plus สล็อต ค่าย ไหน ดี pantip รับ ส ปิ น ฟรี coin master dafabet ลิงค์ sbobet iphone youlike777 fun788 login sbobet 158 ทาง เข้า fun88 2020 m81 sbobet ทาง จี คลับ สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ royal online ios sbobet189 เครดิต หวย ฟรี สล็อต แจก ฟรี วัน เกิด สล็อต happyluke สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา คา สิ โน ฟรี ส ปิ น ดาวน์โหลด 918kiss android ที่ หมุน บิงโก casino sbobet live 918 slot club auto wm casino pantip fun88 ทาง เข้า 2019 ฟรี รับ ส ปิ น ฟรี coin master วัน นี้ ไฮโล มือ ถือ การ พนัน ทาง เข้า sbobet cz youlike777 lsm99 โปร โม ชั่ น สล็อต ออนไลน์ 168 แจก เครดิต ฟรี แค่ สมัคร ทาง เข้า sbo777 casino flash สมัคร fan88joker123 ฟรี เครดิต ไม่ ต้อง ฝาก coin master ส ปิ น ฟรี ตัวแทน royal casino o casino เค ดิ ต ฟรี บา คา ร่า 2020 สมัคร fin88 โป็ ก เกอร์ ฝาก 1 บาท รับ 100 ล่าสุด 2020 หมุน วง ล้อ รับ เครดิต ฟรี cosmik casino jetsadabet เข้า สู่ ระบบ www jetsadabet com เข้า ระบบ gmail เข้า สู่ ระบบ high roller slot เว็บ lsm99 world gclub สมัคร สมาชิก happyluke เกมส์ ออนไลน์ ได้ เงิน จริง สมัคร เล่น ฟรี slot1234xo เข้า sbo มือ ถือ sbo365 มือ ถือ สล็อต sagame66 pic5678 คอม ทาง เข้า รอยัล ออนไลน์ เครดิต ฟรี ufa sahara nights slot ล๊ อ ต โต้ วัน โบนัสเครดิตฟรี ไม่ต้องฝาก ตัวแทน gclub web jetsada โกง ส ปิ น ใน coin master fan88 2020 casino plus my slot แจก ส ปิ น coin master ฟรี tiki fruits สล็อต ฝาก ไม่มี ขั้น ต่ำ thai casino online gemix casino lsm99today sbobeton ฝาก 50 ฟรี 50 ถอน ไม่ อั้น sbobet game เข้า ส โบ เบ็ ต 888 jetsadabet 357 วิธี ขาย ส ปิ น coin master สมัคร เว็บ sbobet โปร โม ชั่ น จี คลับ ไลน์ gclub fun88asi casino sun หา กลุ่ม ไลน์ เครดิต ฟรี cosmik casino lsm99 agent วี ไอ พี ล็ อ ต โต้ เครดิต ฟรี luck ฝาก ผ่าน ท รู วอ เลท lsm99 cash serbian casino โบนัส เครดิต ฟรี แบบ ไม่ ต้อง ฝาก เงิน vscr888 ฝาก เงิน thai poker pro 8888 casino online mafia slot เครดิต ฟรี ไม่ ต้อง แชร์ gclub77 สมัคร วัน นี้ รับ เครดิต ฟรี 2020 ส โบ 88 ทาง เข้า ส โบ เบ ท zenspin casino ทาง เข้า gclub ใหม่ ล่าสุด jackpot flash casino สมัคร บอล ออนไลน์ ฟรี gclub2go 918kiss รับ เครดิต ฟรี ล็ อ ต โต้ 88 ตัวแทน royal casino vc casino lsm99game fun888 รับ ส ปิ น ฟรี เกม coin master ไฮโล มือ ถือ การ พนัน kiss777th ฝาก ขั้น ต่ํา 50 บาท ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ tiki fruits ทาง เข้า เว็บ lsm99 ส โบ เบ็ ต 222 ทาง เข้า จี คลับ ผ่าน เว็บ casino sms deposit เว็บ เจ ษ หวย หา กลุ่ม ไลน์ เครดิต ฟรี ดาวน์โหลด mega888 ล่าสุด ทาง เข้า เอ เย่ น sbo สล็อต วอ ล เลท casino municipal lsm99ch เข้า ส โบ เบ็ ต 888 เครดิต ฟรี winsor sbobet เข้า ไม่ ได้ มือ ถือ heaven slot mafia 500 slot ทาง เข้า lsm99 โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% สมัคร รับ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน tiki fruits live casino house ทาง เข้า lsm99com lsm99 9 วิธี เพิ่ม ส ปิ น coin master ios นางฟ้า fun88 แจก ฟรี ไม่ ต้อง แชร์ sportfun88 แอ พ ล็ อ ต โต้ jetsadabet ถอนเงิน ไม่ ได้ fun88 vip lsm99 เกม คลับ มือ ถือ royalonlien สล็อต w88 ทาง เข้า เอ เย่ น จี คลับ ทาง เข้า เว็บ gclub ฟัน 88 ล็อกอิน รู น แทง ค์ กิ ต งาย casino pulsa ho688 casino royal online line bacc6666 สมัคร sbobet560 gclub bet สล็อต คืนสูงสุด 7% หมุน สล็อต ฟรี 2019 สล็อต แตก จริง แค ร็ ป slot777 casino happy slots การ เล่น ไพ่ poker mega joker jackpot slot191v1 happyluke ฟรี 300 บาท เกม โป ก เกอร์ ออนไลน์ www fun888 jetsada จ่าย royal gclub มือ ถือ สมัคร สมาชิก 918kiss โบนัส 100 sbobet777 ทาง เข้า โบนัส ฝาก เงิน ครั้ง แรก tervetulobonus ติดต่อ lsm999 ฝากเงินครั้งแรกรับโบนัส 200% สูงสุด 8,000 บาท beer789 วิธี กด ส ปิ น coin master gclub 98 se88 slot sbobet online อยาก ได้ ส ปิ น เยอะ ๆ coin master เว็บ poipet pantip coin ส ปิ น ฟรี สมัคร ใหม่ รับ เครดิต ฟรี ทันที 2020 wm88 casino jetsada เข้า สู่ ระบบ คาสิโน โบนัสดีที่สุด รับ เครดิต ฟรี 500 jetsadabet777 qq808 casino สมัคร แจก เครดิต ฟรี รวย ล็ อ ต โต้ gclub free spin 918kiss เล่น ฟรี รู น rov แทง ค์ สล็อต ออนไลน์ ufa345th sbobet888 มือ ถือ สมัคร แจก เครดิต ฟรี mafia678 สมัคร แจ็ ค พอ ต gclub CASINO เครดิต ฟรี ufa กระดาษ ลูกเต๋า ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด ios sbobet22 mg slot168 gclub30 เข้า จี คลับ มือ ถือ บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น โปร เกม coin master ส ปิ น ทาง เข้า ส โบ เบ็ ต wm casino bet สมัคร สมาชิก fun88 casino havana 100 ฟรี ส ปิ น coin master jetsadabet 246 หวย เจต พัน ทิป sbobet สมัคร ใหม่ 99 gclub fun788 login duell casino ติด ตั้ง scr888 เว ป jetsadabet sbobet66 เกม บิงโก คณิตศาสตร์ jetsadabet vip 1 คือ m beer 777 ถอนเงิน ส โบ สล็อตฟรี ถอนเงิน jetsadabet 88 สล็อต casino f ได้ ส ปิ น ฟรี coin master คา สิ โน ปอย เปต ที่ไหน ดี pantip เล่น สล็อต ฟรี ไม่ ต้อง ฝาก แจ็ ค พอ ต gclub จี คลับ ฟรี slot สมัคร รับ เครดิต ฟรี empire777 รีวิว ฝาก 1 บาท รับ 100 2020 ufagalaxy88 gclub casino online มือ ถือ sbobet 2019 999lsm royal คา สิ โน sbothai mobile jetsadabet 555 ส โบ เบ็ ต 789 ufabet สล็อต หวย ออนไลน์ jetsada m88 casino online happyluke download ลิ้ ง ส โบ มือ ถือ gclub87 casino woo jetsadabet pantip อยาก ได้ ส ปิ น coin master ฟรี เค ดิ ต ฟรี ถอน ได้ 2020 casino lux happyluke 888 เกม สล็อต ที่ แตก ง่าย live22fb รู น แทง ค์ ถึก ๆ สล็อต เครดิต ฟรี เทิ ร์ น 1 เท่า รอยัล ออนไลน์ 888 gclub next xn88 casino mega slot casino gclub free โปร โม ชั่ น เกม ออนไลน์ โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% สล็อต ยู ฟ่า 191 casino online net king roman casino ทาง เข้า เล่น จี คลับ โค้ด ฟรี ส ปิ น coin jetsadabet ใหม่ happy live22 โหลด 981kiss jetsadabet pantip รีวิว sbobet casino coin master ฟรี ส ปิ น ios jetsadabet เข้า สู่ ระบบ ทาง เข้า ส โบ เบ็ ต 888 เข้า ระบบ sbobet mafia slot เครดิต ฟรี ไม่ ต้อง แชร์ ทาง เข้า gclub มือ ถือ android sbobetsg mobile สล็อต ฝาก ขั้น ต่ำ 20 บาท mega joker casino สมัคร ส โบ เบ ท ทดลอง เล่น สล็อต lsm99 แจก โค้ด ส ปิ น coin master เว็บ หวย เจ ษ ฏา เบ ท e16811 หวย เจษฎา 1688 ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ คา สิ โน ฝาก 1 บาท ได้ 100 playlive88 live22 temple slot gclub คา สิ โน ออนไลน์ ฝาก 1 บาท รับ 100 ล่าสุด 2020 สล็อต ace333 mega joker casino m777 คา สิ โน เข้า ส โบ มือ ถือ ทาง เข้า sbo888 slotv888 slot party ส โบ เบ็ ต 88888 เครดิต ฟรี 100 ถอน ได้ 2561 ฝาก เงิน vscr888 คาสิโนปอยเปต สมัคร joker1888 gclub royal 456 วิธี เล่น แบ ล็ ค แจ็ ค casino elite sbobet888 สมัคร คา สิ โน ออนไลน์ ปอย เปต ยี่ กี เจษฎา sbobetv8 เครดิต ฟรี ไม่ ต้อง ฝาก ufa ไฮโล เขย่า สด ดาวน์โหลด 918kiss ios dragon club casino ล อ ต โต วัน slot888th ส โบ เบ็ ต ทีเด็ด ufa casino 55 เข้า ส โบ เบ็ ต ทาง มือ ถือ poker 5 ใบ สมัคร แทง บอล ออนไลน์ ฟรี slot777 casino วี ไอ พี จี คลับ casino elite hercules slot รอยัล คา สิ โน th หมุน สล็อต ฟรี 2019 สล็อต 88888 เว็บ ปอย เปต pantip pretty casino โป๊ก เก อร 888 dragons happyluke 999lsm สมัคร enerdzi casino เว็บ หวย เจต ล็ อ ต โต้ one หาสปินฟรี coin master gclub5555 auto 979 gclub วิธี ทํา ส ปิ น coin master ทาง เข้า sbobet 365 สล็อต โบนัส 200 เว็บ ส โบ เบ็ ต คา สิ โน เค ดิ ต ฟรี แค่ สมัคร สมัคร ส โบ เบ ท ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 918kiss ios โหลด ไม่ ได้ วิธี ทํา ส ปิ น ฟรี coin master มือ ถือ sbobet 918kiss download ios 2020 เกม บิงโก ราคา poker online เงิน จริง ล อ ต โต วัน w88 mobile casino download 918kiss ios 2019 เข้า sbo ไม่ ได้ online v2 จี คลับ ผ่าน เว็บ gclub69 happyluke ได้ เงิน จริง ไหม royalonine คลับ มือ ถือ หวย เว็บ เจษฎา คา สิ โน happyluke คา สิ โน ปอย เปต ออนไลน์ gclub คืน ยอด เสีย ตัวแทน royal casino เติม 100 ฟรี 300 slotv9 รับ 100 casino flash ลิ้ ง แจก ส ปิ น ฟรี coin master happyluke id line เว็บ ปอย เปต คา สิ โน tiki fruits slot ปิดบัญชี บา คา ร่า fun88 vip group คา สิ โน ฟรี ส ปิ น สมัคร agent sbobet ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 gclub คืน ยอด เสีย 10 ไพ่ แบ ล็ ค แจ็ ค วิธี เล่น lsm99today เกม คี โน รู น แทง ค์ กิ ต งาย เค ดิ ต ฟรี 2020 ฝาก ถอน lsm99 gclub24auto ทาง เข้า fun88 สมัคร 918kiss ฟรี เครดิต jetsadabet ปิด pantip รอยัล ออนไลน์ v2 เว็บ เจษฎา เบ ท สมัคร เกม สล็อต ออนไลน์ เครดิต ฟรี winsor gclub line heaven slot kkkk99net สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก lsm99 center coin master ฟรีสปิน โบนัสเว็บพนันออนไลน์ 1168 สล็อต เค ดิ ต ฟรี แค่ สมัคร เว็บ หวย เจษฎา pantip www99lsm เจษฎา เว็บ หวย ฟรี ส ปิ น coin master ไม่ จํา กัด www1 lsm99 net จี คลับ มือ ถือ ทาง เข้า โปร โม ชั่ น dafabet 888 casino paypal แจก ส ปิ น coin master ล่าสุด coin master เพิ่ม ส ปิ น winner55 สล็อต ทาง เข้า sbothai8 สล็อต สมาชิก ใหม่ ฟรี เครดิต ปั่น ส ปิ น ฟรี coin master แอ พ ส ปิ น ฟรี coin master ios ทาง เข้า sbo ให้สล็อตฟรี 15 ครั้ง พร้อมโบนัสสูงถึง 5,000 บาท! happyluke ถอนเงิน ไม่ ได้ halloween jack slot 999lsm เสีย บา คา ร่า 4000 ทาง เข้า fan88 เว็บ royal online mega joker casino tomato555 เว็บ ส โบ เบ็ ต คา สิ โน santa slot hercules slot เกม ไพ่ โป ก เกอร์ ทาง เข้า จี คลับ ใหม่ สล็อต ps แทง สล็อต ก dafabet sbobet138 joker888 casino lsm99 info สมัคร เค ดิ ต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี คา สิ โน 2020 Fun88 เว็บ ปอย เปต คา สิ โน sbobet 666 infinity 888 เครดิต ฟรี join slot รู น สาย แท๊ ง ค์ สล็อต angel88 king roman casino spartan slot โปร ส ปิ น ฟรี coin master ส ปิ น ไม่ จํา กัด coin master คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 jetsadabet new rt สล็อต sbobetnet สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ sbobet888 sbobet22 สล็อต หมี lsm99vip ลิ้ ง ส ปิ น ฟรี สปินฟรี coin master ฟรี 918kissauto co ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ เครดิตฟรีไม่ต้องฝาก บา ค่า ร่า bet เว ป ล็ อ ต โต้ 888 virgin88 เครดิต ฟรี da vinci slot gclub 998 ล็ อ ต โต้ one ส โบ เบ็ ต 88888 sbobet 123 vwin365th ดาวน์โหลด kiss918 jetsadabet ปิด เว็บ jetsadabet เ สมัคร สมาชิก 918kiss โบนัส 100 www560bet รับ ส ปิ น coin master สล็อต ถอน ขั้น ต่ํา 100 คา สิ โน ปอย เปต ที่ไหน ดี pantip sakura slot dafabet ลิ้ ง สํา รอง 918kiss ไอ โฟน ทาง เข้า sbobet 222 CASINO สล็อต star99 CASINO เว็บ lsm99 casino evolution gaming หิ นิำะ 888 gclub111111 gclub111 แอ พ แจก ส ปิ น coin master jetsadabet เอ เย่ น ไหน ดี pantip โบนัส แนะนำ เพื่อน ทาง เข้า gclub888 sbobet777 ทาง เข้า ลิ้ ง ส ปิ น ฟรี coin master ล่าสุด สมัคร รับ เครดิต ฟรี ทันที 300 คา สิ โน เครดิต ฟรี 2020 เหรียญ coin master ฟรี โค้ด เกม coin master ฟรี วัน นี้ jetsadabet รีวิว แทง หวย เว็บ เจษฎา 1168 สล็อต กำถั่ว จี คลับ casino galaxy โปร ฟรี ส ปิ น coin master gclub77 7kasino magic slot machine jetsadabet เข้า ไม่ ได้ winner55 แจก 100 วิธี ได้ ส ปิ น เกม coin master โบนัส ไม่ ต้อง ฝาก เงิน mafia 777 slot lsm99 bet m84sbobet หวย ออนไลน์ jetsada สล็อต ฝาก ขั้น ต่ํา 10 บาท lsm99online casino municipal casino wm เก็บ ส ปิ น coin master slot1688com หา กลุ่ม ไลน์ เครดิต ฟรี fun88 facebook ทาง เข้า sbobet cz 10 ฟรีสล็อต รับโบนัสสูงสุดถึง 100% วิธี หมุน ส ปิ น coin master โบนัส คืน เงิน mafia55 สมัคร เข้า sbo มือ ถือ beer777 ่ jetsadabet fan88 2020 เข้า ส โบ sky slot crowncas sbobet online 99 ติดต่อ lsm999 หวย ออนไลน์ jetsada sbobetv8 ทาง เข้า เอ เย่ น lsm ฝาก ขั้น ต่ำ 20 ฟรี 100 ลิงค์ lsm บา ค่า ร่า coin ส ปิ น ฟรี lsm99 register mafia55 สมัคร sbobet google sites วิธี ส ปิ น coin master ตัวแทน royal casino รับ เครดิต ฟรี 300 sb0bet สปินฟรี coin master ฟรี สล็อต 5555 สล็อต 10 บาท ได้ 100 sbobetasia online scg casino auto918kiss fifa เครดิต ฟรี ไม่ ต้อง ฝาก เกม พนัน ไฮโล bet sensation casino sbobet138 จี คลับ ไอ โฟน เพิ่ม ส ปิ น coin master บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น spinser casino แอ ป ส ปิ น ฟรี แอ พ มือ ถือ fun88 live house casino w88 สล็อต โป๊ก เก อร สมัคร สมาชิก fun88 gclub bet สล็อต k9win huone casino 855 gclub mafia สล็อต มา ใหม่ coin master รับ ส ปิ น ฟรี รับ ส ปิ น ฟรี coin master ฟรี 88 สล็อต ส ปี ด บา คา ร่า s15 โร เยอ ร์ คา สิ โน online v2 poker เงิน จริง android gclub call poker online ฟรี sbothaiclub อยาก ได้ ส ปิ น เยอะ ๆ coin master ส โบ เบ็ ต 88 sbobet 777com สูตร คํา น วณ หวย ยี่ กี jetsadabet คลับ จี 888 www fun88 com vn เว็บ ปอย เปต ดี ไหม magic slot machine sbothai ทาง เข้า ปอย เปต 99 สปินฟรี coin master pantip gclub md gclub5555 เครดิต ฟรี 100 ถอน ได้ 2561 เล่น สล็อต pantip โค้ด ส ปิ น coin master วัน นี้ ฮ อ ลิ เดย์ ปอย เปต สล็อต โบนัส 200 gclub คืน ยอด เสีย 10 line dafabet
          ไฮ โล| win slot 888| เล่น ไพ่ โป ก เกอร์| joker89auto| คิง ค อง สล็อต xo| 918kiss ท รู วอ เลท 2019| สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน| ตัวแทน slotxo| 918kiss เครดิต ฟรี 50| casino online jackpot| slotxo เล่น| บ่อน ไฮโล ออนไลน์| ไฮโล เงิน จริง| mafia เครดิต ฟรี 50| ak47max เครดิต ฟรี| fifa55boom| jackpot slot| คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์| 918kiss วอ เลท| slot 9| 789 slot| joker123 ไม่มี ขั้น ต่ํา| slot joker 69| slot6996| 918 แจก เครดิต ฟรี| 918kiss เครดิต ฟรี 50| 168galaxy xo| slotxo 10 ได้ 100| เข้า slotxo| fifa55 rmuajj| ฝาก 99 ฟรี 300| mafia เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| area111 slot| ไลน์ ฟีฟ่า 55| เครดิต ฟรี ไม่ หลอก แชร์| ฝาก 99 ฟรี 300| สล็อต xo 44| wbc slot| ไพ่ โบรกเกอร์| http slotxo| sagame66 slot| สมัคร เครดิต ฟรี 200| sbobet ฟรี เครดิต ล่าสุด| gclub888 royal| slot 918kiss| 918kiss ท รู วอ เลท| slotxo 918| slot1234 เครดิต ฟรี| slotxo mario| slot488| ไฮโล ภาษา อังกฤษ| 20 slot| แอ พ ไฮโล เจ้ามือ| 5g slot joker| sg game เครดิต ฟรี| slot456| เครดิต ฟรี 133 บาท| ไฮโล พม่า| โปร โม ชั่ น pgslot| โจ๊ก เกอร์ ฟรี เครดิต| ยิง ปลา fun88| สมัคร เครดิต ฟรี 2020| slotxo ท รู วอ ล เล็ ต| fifa55 ดี ไหม| 918kissstar| slot1234 918kiss|