1. <form id="dkbeK"></form>

          <wbr id="dkbeK"></wbr>

          <sub id="dkbeK"><address id="dkbeK"><nobr id="dkbeK"></nobr></address></sub>

          <wbr id="dkbeK"><th id="dkbeK"></th></wbr><var id="dkbeK"></var>
        2. <form id="dkbeK"></form>
          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
           
          xoslot69th slot24hr sbobet ฟรี เครดิต joker ฝาก ถอน ไม่มี ขั้น ต่ำ สล็อต 888 คา สิ โน ออนไลน์ 918kiss คือ แอ พ 918 slotxo45 ดา ฟา เบ ท ฟรี เครดิต การ เล่น blackjack สมัคร สล็อต ง่ายๆ slotxo ฝาก ผ่าน ท รู วอ เลท gclub royal1688 ฟรี เครดิต 918 slot online เครดิต ฟรี 50 บาท แบ ล็ ค แจ็ ค ไพ่ ไฮโล 2020 all slot 888 918slot slotbonus 918kiss44 download ไฮโล คลาสสิค โปร สล็อต ค่าย pg รู เล็ ต สด slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา ufa365 ดี ไหม pantip fifa เครดิต ฟรี เกม ไฮโล ได้ เงิน จริง slot789th slot live22 winner99 เครดิต ฟรี ไม่ ต้อง ฝาก nikigame789 สมัคร fifa888 168 gaming slotxo สมัคร สมาชิก vegus168 โปร โม ชั่ น fifa55 ึึึึ 77up เครดิต ฟรี ล่าสุด 2020 โปร 918kiss slotxoth22 สล็อต xo 99 slotxo mb slot ฝาก 10 บาท ฟรี 90 บาท slotxo โอน วอ เลท slot999 xo สล็อต xovip คา สิ โน ป๊อก เด้ง เว็บ เล่น บา ค่า ร่า ufa800 อั่ ง เปา 918kiss สล็อต xo 999 slot 35 เครดิต ฟรี ระบบ ออ โต้ slotxo ฝาก ถอน อัตโนมัติ situs slot joker123 xo slot cafe barney slots ติดต่อ ufa365 fifa5555 ทาง เข้า joker8899 เครดิต ฟรี สมัคร เอเย่นต์ fifa55 slot ถอน ไม่มี ขั้น ต่ํา เครดิต ฟรี ระบบ ออ โต้ เครดิต ฟรี 2563 918kiss เครดิต ฟรี 918kiss เวอร์ชั่น เก่า slot123 mm88bet ฝาก เงิน 1xslot joker ฝาก ไม่มี ขั้น ต่ำ ufa365 ดี ไหม slot777 เครดิต ฟรี slotxo45 joker slot 666 เว ป 918 live22 ฝาก 1 บาท ฟรี 99 fifa55casino slotxo logo png รู เล็ ต เคล็ด ลับ 918tiger2 เกม xo slot 555 slotxo slot ฝาก วอ เลท ไม่มี ขั้น ต่ํา 918kiss ออ โต้ ไฮโล ฝาก ระ ติ๊ บ แทง ไฮโล ให้ ถูก 918kiss th สล็อต xobkk slotxo allbet สล็อต xo123 scr888 สมัคร ฟรี เครดิต โปร โม ชั่ น slotxo slot22 เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ fifa55u ดู ทีวี ออนไลน์ ฟีฟ่า 1688 สลอด เอก โอ เครดิต ฟรี joker 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 joker ฝาก ไม่มี ขั้น ต่ำ joker slot 888 เข้า ฟีฟ่า 55 สมัคร ฟรี เครดิต ไม่ ต้อง แชร์ slotxo god เว็บ สล็อต xo top slot333 slotxo coco simple play slot สล็อต เอก โอ xo วอ ล เล็ ต slotxo วอ ล เล็ ต 918kisskingdom joker ฝาก ถอน ไม่มี ขั้น ต่ํา tiger slot slot free credit 2020 เครดิต ฟรี 888 เว็บ แทง บอล fifa p168 slot slotxo ที่ ดี ที่สุด fifa55casino slot punpun www777 slot slotxo hulk แทง ไฮโล ฟรี เครดิต ไม่มี เงื่อนไข สล็อต 888 คา สิ โน ออนไลน์ download 918kiss ล่าสุด slot ฝาก 100 ฟรี 100 สล็อต 77 คา สิ โน ออนไลน์ mafia ฟรี เครดิต ไม่ ต้อง ฝาก slotxo ผ่าน วอ เล็ ต scr888 สมัคร ฟรี เครดิต เกม live22 fin slotxo xo สล็อต 69 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ scr888 เครดิต ฟรี ตัวแทน live22 ไฮโล ขั้น ต่ำ 918kiss888 fifa55 เข้า สู่ ระบบ เครดิต ฟรี 500 joker ฝาก ถอน ไม่มี ขั้น ต่ํา เว็บ โจ๊ก เกอร์ 888 สล็อต xo แตก ง่าย ufa365 s slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ slotxo blue mafia เครดิต ฟรี 50 slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 918kiss ฝาก ท รู วอ เลท slotxo โอน วอ เลท slotxo aec999 download 918kiss ล่าสุด leo slot slot ทุน น้อย sbu slot mafia66 เครดิต ฟรี 918kissth v3 777slotvip slotxo55 live22 โปร โม ชั่ น fifa55 มือ ถือ ฝาก ถอน 918kiss เครดิต ฟรี 50 บาท 9118kiss 918 ออ โต้ 918kiss free ไฮโล 2020 slot game lobby slot 9 xe88 slot 918kiss ฝาก ผ่าน ท รู วอ เลท v9slot fifa55 gold com บอล เสมือน จริง https slotxo 44 joker slot 168 ไท เกอร์ คา สิ โน slotxo hulk 981kiss 2xl slot fifa55we casa98 ฟรี เครดิต ทาง เข้า fifa888 ทาง เข้า ฟีฟ่า 69 369slot slot xo 999 ฝาก เงิน live22 007slotxo slot online th 55 xo slot slot ฝาก 50 ได้ 100 สมัคร mega888 ฟรี เครดิต 77up online เว็บ บอล ufa365 คา สิ โน 918 fifa55 แจก เครดิต ฟรี 200 www168slotxo สล็อต เอ้ ก โอ เครดิต ฟรี 99 ฟรี เครดิต gclub ไฮโล โทรศัพท์ fifa55 memberbet slot เครดิต ฟรี slot mobile slot ฝาก 20 ได้ 100 สมัคร เครดิต ฟรี สล็อต xo joker slotxo โจ๊ก เกอร์ fifa55 ฝาก ขั้น ต่ํา 50 mvegus1682 memberbet net fifa55hot slot paypal slotxo โปร วัน เกิด slot35 joker 918kissauto mm88bet login โปร live22 xe888 เครดิต ฟรี slotxo ปิด ปรับปรุง slotxo game 66 ufa24h register slot xo888 โปร สล็อต ค่าย pg 918kiss ฝาก ขั้น ต่ํา 50 บาท 918kiss download ios slot ฝาก 1 บาท รับ 100 slot ถอน ไม่มี ขั้น ต่ํา เว็บ live22 918kiss แจก อั่ ง เปา สมัคร winner55 เครดิต ฟรี 918kisshero slotxo ทุน น้อย 918kiss th best 888 slots 918kiss เครดิต ฟรี 2020 fifa55crown gclub เครดิต ฟรี 918kiss club slotxo fun slot super fm99bet เครดิต ฟรี เล่น สล็อต live22 fifa555god slotxo 06 slotxo 311 slotxo เติม เงิน วอ ล เล็ ต www fifa777 com 918kiss superman 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2020 slot free credit 2020 slotxo 1234 slotxo aec999 โปร โม ชั่ น ยิง ปลา slot god slotxo เล่น ผ่าน เว็บ เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ slot ฝาก 100 ฟรี 100 ไฮโล ฟรี mafia ไม่ ต้อง แชร์ ไพ่ ออนไลน์ win win slot เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด เสือ มังกร ออนไลน์ มือ ถือ สมัคร เครดิต ฟรี 100 slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ rmuaab555 scr888 918kiss download world1688s slot slot777 ฟรี เครดิต databet88 สมัคร slot ฝาก ถอน ไม่มี ขั้น ต่ํา slot ฝาก 100 ฟรี 100 slotxo ฝาก 10 บาท รับ 100 888 เครดิต ฟรี ฝาก 10 รับ 100 joker xo slotxo คิง ค อง แจก เครดิต ฟรี 918kiss xo โจ๊ก เกอร์ shangri la slot game เล่น ไพ่ เงิน จริง สมัคร ได้ เครดิต ฟรี สล็อต xo191 testament slot 918kiss โปร ทุน น้อย ดา ฟา เบ ท ฟรี เครดิต 77up app slot007 เครดิต ฟรี โปร live22 ak47max เครดิต ฟรี fifa ทาง เข้า สล็อต xo777 slot mobile ufa365 ดี ไหม slotxo แจก 1000 ฝาก 10 รับ 100xo spk slotxo 918kiss slot auto เครดิต ฟรี ไม่ ต้อง ทำ เท ริน fifa55 idea 918kiss เว็บ ไหน ดี สล็อต 77 คา สิ โน ออนไลน์ ลิ้ ง slotxo sbobet ฟรี เครดิต ล่าสุด 3win8 ฟรี เครดิต fifa55st vegus168 ถอนเงิน 918kiss เครดิต ฟรี ไม่ ต้อง แชร์ 2pigsslot xo ฟรี เครดิต gclub คิง ค อง xo สมัคร ฟรี ไม่ ต้อง ฝาก ผล บอล เสมือน จริง ฟีฟ่า 20 918 ฝาก ไม่มี ขั้น ต่ํา สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 สล็อต เอ็กซ์ โอ slotxo ฝาก 10 รับ 100 ล่าสุด slot2499 xo slot007 918kiss เครดิต ฟรี 2020 ไฮโล ออนไลน์ ได้ เงิน จริง lucky slot 888 happyslot88v1 918kiss max เครดิต ฟรี 18 เครดิต ฟรี ใหม่ ๆ ไฮโล ออนไลน์ 918kiss billion คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ aladdin 69 slot sicbo คือ big win 777 ฝาก xo มาเฟีย 007 เครดิต ฟรี slotxo god slotxo ฝาก ผ่าน วอ ล เลท ไฮโล พม่า 369slot 69 slotxo สมัคร แล้ว ได้ เครดิต ฟรี 918kiss slot game fifa55u ดู ทีวี ออนไลน์ z8 เครดิต ฟรี เว็บ พนัน เล่น ฟรี ได้ เงิน จริง ไฮโล ออนไลน์ ไม่ ต้อง ฝาก slot โปร ฝาก 10 รับ 100 คา สิ โน ป๊อก เด้ง เครดิต ฟรี 20 บาท 24th slotxo 918kiss download 2019 pc สล็อต xo1668 918kiss 168 สล็อต xo แตก ง่าย 2020 slot joker เครดิต ฟรี โปร โม ชั่ น ยิง ปลา โป๊กเกอร์ ได้ เงิน จริง mega888 ไม่มี ขั้น ต่ํา fifa55ag เล่น xo slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ slotxo tz slot ฝาก 10 รับ 100 918kiss me ฟรี เครดิต vegus168 line slot999vip 918kiss888 1xbet slot ggbet168 เครดิต ฟรี 918kiss เครดิต ฟรี 100 รู เล็ ต เคล็ด ลับ slotxo เติม เงิน wallet pgslot66 w168club เครดิต ฟรี เครดิต ฟรี 20 ไม่ ต้อง แชร์ โปร สล็อต ค่าย pg slot xe88 เครดิต 2020 เครดิต ฟรี 18 xo slot 123 8bit slotxo บ่อน ไฮโล ออนไลน์ fifa55boom slot1234 918 slot paypal เว็บ บอล ฟีฟ่า 55 slotxo แจก เครดิต ฟรี 50 fifa55we 918kissbet สล็อต xo 236 ยู ส เท ส slotxo joker slot1234 slotxo06 slotjoker99 เข้า เล่น fifa55 เครดิต ฟรี วัน เกิด ไม่มี เงื่อนไข joker slotxo ฝาก 19 รับ 100 168slotxo slot ฝาก 25 รับ 100 ambbo2 slot เล่น ไพ่ โป ก เกอร์ ออนไลน์ ที่ไหนได้ เงิน จริง สล็อต เอ็ ก โอ สล็อต xo เติม วอ ล เล็ ท slotxo ฝาก 20 เข้า เล่น xo slotxo ro win 777 slot xo เล่น บน เว็บ slotxo928 ไฮโล รีโมท xo slot 777 ro slotxo genie jackpot double slot slot mafia928 ไฮโล ออนไลน์ เครดิต ฟรี สล็อต xo168 kingslotxo fifa55 goalclub leo slot slot888online ถอนเงิน joker123 ฟรี เครดิต 100 ถอน ได้ วง ล้อ คา สิ โน slot ฝาก 10 บาท รับ 100 ผล บอล เกม เสมือน จริง 789 slot star joker slot html5 slot machine 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก 2020 918kiss kiss สล็อต xo ถอนเงิน 918kiss แจก เครดิต ฟรี ไม่ ต้อง แชร์ ฟรี เครดิต เดือน เกิด best slotxo slotxo jb ไฮโล ส กิ ด vegus168 memberbet net chklogin pay96 slot slotxo png empire slot 918kiss slotxo joker456 เครดิต ฟรี slot888vip ฝาก 10 รับ 100 ล่าสุด xo ฝาก 10 รับ 100 wallet เครดิต ฟรี 888 fifa55 truemoney รู เล็ ต สายฟ้า big win 777 slotxo เข้า ไม่ ได้ fifa55 แจก เครดิต ฟรี ลูกค้า เก่า ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แอ พ ไฮโล ออนไลน์ slot finn แอ พ ไฮโล xo game slot 918kiss ตู้ ม้า q9win slot ไฮโล ออนไลน์ ได้ เงิน จริง xe88th เครดิต ฟรี slotxo ทุน น้อย mafia789 เครดิต ฟรี slo xo lord918kiss เว็บ เล่น สล็อต xo slot joker vip เครดิต ฟรี 888 เครดิต ฟรี auto slot 777 free joker slotxo ฝาก 19 รับ 100 สล็อต 888 คา สิ โน ออนไลน์ 369 slotxo สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 เครดิต ฟรี 30 บาท ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ฟรี เครดิต 918kiss ไฮโล ออนไลน์ 888 kiss918th joker123 auto 2 เครดิต ฟรี ไม่ ต้อง แชร์ สล็อต xo 369 slot ถอน ไม่มี ขั้น ต่ํา 2pigsslotxo joker ไม่มี ขั้น ต่ํา casa98 ฟรี เครดิต เครดิต ฟรี 888 pgslot1234 ocean99 เครดิต ฟรี เครดิต ฟรี แค่ กรอก เบอร์ ล่าสุด 918 ออ โต้ เครดิต 2020 ไฮโล คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ vegus168 vip 918kiss download 2019 918kisstm 918kiss billion 918kisskiss918 mm88bet sport & casino ib888 slot www fifa55bet com ้ ค ร ดิ ต ฟรี เล่น blackjack slotxo123 joker hunter 888 918kiss 1234 รู เล็ ต https 168 slotxo all slot เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด xo allbet รู เล็ ต สายฟ้า dafabet สมัคร winner55 เครดิต ฟรี the kingslotxo slotm168 jack slot slot online ไม่มี ขั้น ต่ํา ฝาก 500 ได้ 500 joker ฝาก ไม่มี ขั้น ต่ำ slotxo ฝาก 9 รับ 100 เครดิต ฟรี มาเฟีย 555 https slotxo 44 happyslot88 live22 เล่น poker ออนไลน์ fifa55 1234 joker8899 เครดิต ฟรี slot1234 918kiss xo หน้า เว็บ slot super999 lucky slot slot2you live22 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ fifa55na 888 เครดิต ฟรี slotxo star slotxo เล่น บน เว็บ win three card โปร โม ชั่ น joker joker slot 567 joker slot mobile สล็อต xo ฝาก ขั้น ต่ำ 50 บาท slot ฝาก ไม่มี ขั้น ต่ํา ไลน์ fifa55 fifa55 prime เครดิต ฟรี joker ไฮโล เครดิต ฟรี เกมส์ ไฮโล ออนไลน์ 918 ฟรี เครดิต เว็บ ตรง 918kiss 918 คิ ส 918kissbet lucabet789 เครดิต ฟรี fifa55 แจก เสื้อ fifa55crown เข้า เล่น fifa55 slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา fifa55 reward 918kiss ถอน ไม่มี ขั้น ต่ํา คา สิ โน ออนไลน์ สุด ฮิต skyslot7 slot god xo auto slot th 918kiss ใหม่ ฝาก 20 รับ 100 slotxo slot678 slot 9 sanook xo slot slot gold mb slotxo เว็บ บอล ฟีฟ่า 55 เล่น blackjack ivip9 slot xo 10 รับ 100 slotxo apk slotxo ได้ เงิน จริง 35 slotxo ไม่ ต้อง ฝาก ถอน ได้ ้ เครดิต ฟรี 1168slot สมัคร เว็บ fifa69 เข้า xo joker ถอน ไม่มี ขั้น ต่ํา slotxo ฝาก ถอน ออ โต้ สล็อต xo 191 เกม ส ล็ slot punpun winner555 เครดิต ฟรี สล็อต xo ฝาก วอ เลท slot mario winner55 เครดิต ฟรี ไม่ ต้อง ฝาก slot 5 slot free credit เครดิต ฟรี 2020 ไม่ ต้อง แชร์ joker89auto hungry 918kiss โบนัส เงิน ฝาก slot live22 เว็บ ufa365 xo69 slot เข้า เว็บ ฟีฟ่า 55 เครดิต เล่น ฟรี เข้า เล่น fifa55 สมัคร ฟรี เครดิต ฟรี เล่น สล็อต ออนไลน์ โป ก เกอร์ ไพ่ เครดิต ฟรี ไม่ ทํา เทิ ร์ น xo24hr member slotxo เว็บ ตรง 918kiss mafia555 slot สล็อต xo เติม true wallet ไม่มี ขั้น ต่ํา 2020 เครดิต ฟรี mega888 joker888 เครดิต ฟรี เกม ไฮโล pc 168slotxo auto 168slotxo joker fifa55na เครดิต ฟรี ไม่ ฝาก ไม่ แชร์ 2020 บ้าน บอล fifa55 s9 slot mega888 download pc 918 แจก เครดิต ฟรี slot king99 fifa55 goalclub แทง ไฮโล 168 gaming xo 918kiss ใหม่ slot joker99 slotxo ล่าสุด 1168slot ไม่ ต้อง แชร์ เครดิต ฟรี slot w88 คา สิ โน ไพ่ ดั ม มี่ ฟีฟ่า 55 โปร gclub ฟรี เครดิต 2019 joker slot 888 918kiss auto เครดิต ฟรี live22 1234 เครดิต ฟรี ป๊อก เด้ง 918kiss โปร โม ชั่ น slot ถอน ไม่มี ขั้น ต่ํา fifa55v slotxo ฝาก ท รู วอ เลท fifa555 สมัคร bbet99 เครดิต ฟรี slotxo com sign in 918kaya เครดิต ฟรี ส ล๊ อ ต xo1234 slotxo fun slot auto 888 slot sagame66 fifa55 easy สล็อต ออนไลน์ ฝาก ถอน ไม่มี ขั้น ต่ำ super slot999 ฟรี เครดิต ไม่ แชร์ 918kisswallet เก้า เก คา สิ โน ฟรี เครดิต ไม่มี เงื่อนไข www fifa55hd com ลูกค้า เข้า ผ่าน google chrome นะ คะ slot666 best 77up ฟีฟ่า 55 hd 819 kiss download asiagaming 4ux slot pg slot โปร ทุน น้อย slotxo 08 วิธี เล่น databet88 เกม 168slotxo ro slotxo joker123 ไม่มี ขั้น ต่ํา บา คา ร่า mclub fifa55 gold slot โปร ทุน น้อย win918kiss auto slotxo 77up club winner55 ฟรี เครดิต ไฮโล รีโมท 2in2 slot slot joker auto scr888 online casino เว็บ บอล ฟีฟ่า 55 918kiss เครดิต ฟรี 3000 แทง ไฮโล ออนไลน์ slot33 megaways jack เสียง ไฮโล slot auto all slotxo พัน ทิป เกม แบ ล็ ค แจ็ ค slotxo โปร 10 รับ 100 ไพ่ โป ก เกอร์ ออนไลน์ โป เกอร์ ฝาก 1 บาท ฟรี 50 slot mobile joker123 auto 918kiss ออ โต้ 918kiss 1234 joker slot ฝาก ไม่มี ขั้น ต่ํา joker slot โปร โม ชั่ น สล็อต xo 1688 slotxo 111 sbobet ฟรี เครดิต 2020 king77 slot live22 ฝาก ถอน ไม่มี ขั้น ต่ํา สมัคร databet88 fifa55 gold dl19 918kiss 69 slotxo ทาง เข้า fifa888 slotxo ล็อกอิน joker slot เครดิต ฟรี 55slot เครดิต ฟรี 120 slot joker xo เข้า vegus168 ยู ส เท ส xo slot ฝาก 20 บาท รับ 100 slot375 โปร โม ชั่ น ยิง ปลา slot44 ้ เครดิต ฟรี https slotxo slotjoker888 เครดิต ฟรี 30 บาท slotxo allbet slot auto alert ฟรี เครดิต ไม่ ต้อง แชร์ xo หน้า เว็บ 11 ไฮโล มี กี่ หน้า ak47max เครดิต ฟรี lucky 918kiss โค๊ ต เครดิต ฟรี 918kiss ฝาก 50 ฟรี 50 สมัคร ฟรี เครดิต ฟรี aec999 slot กระดาน รู เล็ ต mafia ฟรี 50 บาท ไฮโล ลูกเต๋า fifa5555vip now918kiss xe88th เครดิต ฟรี แทง รู เล็ ต slotxo auto slotxo x คา สิ โน 918 slot 369 xo ราคา ไฮโล วง ล้อ เสี่ยง โชค ออนไลน์ 918kiss เจ้า ไหน ดี epic win slot รู เล็ ต 11 แถว slot joker xo slotxo tz 918kiss 168 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด ทาง เข้า ฟีฟ่า 55 คิง สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 918kisshero slotxo coco ak47max เครดิต ฟรี สมัคร ace333 ฟรี เครดิต เกม ส ล็ joker gaming 888 pg slot โปร ทุน น้อย bonus slotxo ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ำ rmuaab555 mobile joker123 joker123 allbet asia 333be โค๊ ด ฟรี 133 ไพ่ แบ ล็ ค แจ็ ค 918kiss android download scr99th 918kiss slotxo168 981kiss เครดิต ฟรี โปร โม ชั่ น ยิง ปลา ไฮโล ออนไลน์ มือ ถือ slotxo kd เข้า xo maxwin99 เครดิต ฟรี 918kissyou xo918 databet88 agent เกม ไฮโล y8 slotxo 1168 เครดิต ฟรี ไม่ ทํา เทิ ร์ น slotxo69th สล็อต 1688xo เครดิต ฟรี 300 ไม่ ต้อง แชร์ สล็อต 168galaxy slotxo ฝาก 10 ไม่ ต้อง แชร์ เครดิต ฟรี slotxo lucky god สล็อต xo เอเชีย สล็อต xo 191 live22 ฝาก 1 บาท ฟรี 99 joker ถอน ไม่มี ขั้น ต่ํา กติกา รู เล็ ต เล่น เกม xo หน้า เว็บ บ่อน ไฮโล ออนไลน์ ace slot fifa55 โดน จับ ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา fifa555 truemoney 918kiss โปร ทุน น้อย ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท ถอนเงิน สล็อต xo xo slot vip สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 แอ พ 918 joker888 เครดิต ฟรี เว็บ แทง บอล fifa เว็บ พนัน ออนไลน์ ป๊อก เด้ง fifa55 เครดิต ฟรี 200 สล็อต xo 191 918kiss download ios ล่าสุด รู เล็ ต คือ isc888 เครดิต ฟรี kiss918 เครดิต ฟรี 918kiss แจก เครดิต ฟรี ไม่ ต้อง ฝาก 168slotxo auto fortuna slots slot hall live22 xo jack slot golden hoyeah slots ถอนเงิน ไลน์ slotxo เกมส์ สล็อต ออนไลน์ mafia เครดิต ฟรี 50 joker slot 555 เครดิต ฟรี 10 918kiss team joker hunter 888 918kiss เครดิต ฟรี fifa55 mini slot33 joker สล็อต 888 2in2 slot huga slot slot joker789 finn slot slotxo 1168 slotxo 289 slotxo fun เล่น ฟรี ถอน ได้ slot ฝาก 1 บาท รับ 100 918slot joker slot 9889 99slot slot22 ร้องเรียน slotxo ww เครดิต ฟรี ยิง ปลา ฝาก ขั้น ต่ํา 50 www fifa777 com slot369 วง ล้อ คา สิ โน slot009 joker666 slot slotxo48 slotxo game 66 สยาม โป็ ก เกอร์ 918kiss44 download เข้า slotxo สล็อต xo เครดิต ฟรี ไม่ ต้อง แชร์ slotxo apk ace slot ลิ้ ง slotxo joker slot 456 slotxo บน pc slot24th xo happyslot88v1 click slotxo mafia88 เครดิต ฟรี ไม่ ต้อง แชร์ slot ฝาก 10 slotxo 24 slotxo logo winner55 เครดิต ฟรี ไม่ ต้อง ฝาก slotxo coco เครดิต ฟรี 918kiss fifa55 goalclub slotxo678 918kiss slotxo taicity333 แจก เครดิต ฟรี 918kiss เล่น สล็อต โร ม่า 918kiss ฟรี 200 slotxo ฝาก 19 รับ 100 สมัคร 300 ฟรี 100 แทง ไฮโล มือ ถือ jokerslot888 แทง ไฮโล ออนไลน์ เครดิต ฟรี ป๊อก เด้ง แทง ไฮโล ขั้น ต่ํา 10 บาท เครดิต ฟรี ไม่ ต้อง โอน ก่อน mafia95 slot happyslot88v1 ufa365 เข้า ไม่ ได้ แอ พ โกง ไฮโล web slot joker slotxo 24th ป๊อก เด้ง ออนไลน์ เงิน จริง pantip fifa555com slotxo area89 fin888 เครดิต ฟรี รู เล็ ต 11 แถว ฟรี เครดิต 200 all slot555 slotxo 79 wwwufa24h hacker slot45 918kiss v8 slot king99 918kiss free เครดิต ฟรี 10 https www slot12 com member slotxo ฟีฟ่า 777 11 ไฮโล 2020 เครดิต ฟรี 20 ไม่ ต้อง แชร์ เครดิต ฟรี sbobet slotxo555 fifa55 ทีวี ออนไลน์ คูปอง เครดิต ฟรี grand918kiss เล่น สล็อต โร ม่า ฟรี slotxo slotjoker databet88 สล็อต 11 ไฮโล มี กี่ หน้า เกม สล็อต xo ออนไลน์ สล็อต xo 99 live22 ฝาก 1 บาท ฟรี 99 winner55 เครดิต ฟรี ไม่ ต้อง ฝาก winner55 เครดิต ฟรี 918kissthailand joker สล็อต xo fifa slot เครดิต ฟรี 918kiss กลุ่ม สาธารณะ slot 35x 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก joker slot 1688 kiss918 th kiss918th joker xo joker ฝาก ไม่มี ขั้น ต่ํา รู เล็ ต เคล็ด ลับ เครดิต ไม่ ต้อง ฝาก ก่อน ถอนเงิน xo slot 345 โจ๊ก เกอร์ ฟรี เครดิต ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ฝาก ขั้น ต่ํา 100 ไพ่ โป๊กเกอร์ xo 10 รับ 100 slot sagame66 scr888 918kiss download slotxo true wallet ไม่มี ขั้น ต่ํา เครดิต ฟรี ฝาก 20 แอด มิ น 918kiss 77up football 918 คิ ส 3win8 ฟรี เครดิต เครดิต ฟรี ใช้ บัตร ประชาชน 918kiss ระบบ ออ โต้ 918kiss d เครดิต ฟรี ทํา เทิ ร์ น น้อย ถอนเงิน xo เล่น หน้า เว็บ slotxo slotxo 11 แทง ไฮโล ขั้น ต่ํา 10 บาท slot ฝาก ถอน ไม่มี ขั้น ต่ํา ufa800 บา คา ร่า ufa800 ไฮโล 777 slots casino 918 ฝาก ถอน ไม่มี ขั้น ต่ํา fifa55boom 918kiss เวอร์ชั่น ใหม่ ts911 games fifa55 ทดลอง เล่น slotxo 48 slotxo joker ฝาก 10 รับ 100 เล่น โป ก เกอร์ ออนไลน์ xoslot69th เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด star slot777 เล่น สล็อต xo ฟรี 550ww เครดิต ฟรี slotxo เว็บ 186 slotxo ไฮโล ของ 2pigs xo sco88 เครดิต ฟรี 133 slotbonus ไฮโล ลูกคู่ เล่น แบ ล็ ค แจ็ ค ออนไลน์ เครดิต ฟรี 10 ufa365 ฝาก เงิน best slotxo slotxo pro 918kiss เครดิต ฟรี 2019 slot 20 รับ 100
          วิธี ได้ ส ปิ น ฟรี coin master| 918kissauto เครดิต ฟรี| รับ ส ปิ น ฟรี coin master ฟรี| indukbola| bbb gclub| โค้ด ส ปิ น coin master ฟรี| สล็อตออนไลน์| jdb ล่าสุด| สูตร jetsadabet| เครดิตฟรีแค่สมัครล่าสุด| joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| www jetsadabet com เข้า ระบบ gmail เข้า สู่ ระบบ| ปอย เปต โปร| sbobet bet| เติม 100 ฟรี 300| qq724 casino| ทีเด็ด บอล ส โบ เบ็ ต| 888 ล็ อ ต โต้| casino plus| โปร โม ชั่ น วัน เกิด คา สิ โน| sbobet club 168| รอยัล คา สิ โน จี คลับ| fun88mobile| vip fun88| fan88 2020| live casino house ฟรี 300| จี คลับ ฟรี| ism99 สมัคร สมาชิก| กระดาษ ลูกเต๋า| สมัคร สล็อต รับ เงิน ฟรี| แอ พ แจก ส ปิ น เกม coin master| Sbobet casino| โค้ด ส ปิ น coin master ล่าสุด| ทีเด็ด ส โบ เบ็ ต| เว็บ เจษฎา ใหม่| casino no| happy halloween slot| ฮ อ ลิ เดย์ พา เล ซ ปอย เปต| 918kiss hack unlimited| สมัคร ครั้ง แรก ฟรี เครดิต 2020| lsm99 up| gclub789| fun555 login| รอยัล ออนไลน์ 888| sekabet casino| sbobet beer777| mister casino| สมัคร สมาชิก 918kiss| ทาง เข้า จี คลับ ใหม่| peking luck slot| ี จี คลับ| เว็บ jetsada| sbobet444| sbobet game| casino sun| สล็อต ฝาก ออ โต้| ส ปิ น coin master ฟรี| gclub money| ติดต่อ เอ เย่ น จี คลับ| สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา| ส ปิ น ฟรี เกม coin master| ilucky casino| beat casino| จี คลับ ฟรี| สล็อต ฟรี เครดิต 2019| gclub holiday|