<nobr id="Cc2"><thead id="Cc2"></thead></nobr>

        1. <nobr id="Cc2"><th id="Cc2"><noscript id="Cc2"></noscript></th></nobr>

          <form id="Cc2"></form>

            <sub id="Cc2"></sub>
            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
             
            live222th slotxo เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss databet88 agent 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา ถอนเงิน joker123 tiger918kiss เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ puss888 คา สิ โน ออ น ไล slotxo เว็บ slotxo199 slot375 slot hacker vegus16 live22 ฝาก 19 sg เครดิต ฟรี เล่น สล็อต โร ม่า 918kiss d 918kiss แจก เครดิต ฟรี ไม่ ต้อง ฝาก blackjack ออนไลน์ slot joker123 auto 918kiss kiss สล็อต xo โจ๊ก เกอร์ boxing slot fifa5555 ดี ไหม รู เล็ ต ออนไลน์ ฟรี gclub slot jackpot หน้า ลูกเต๋า ไฮโล fifa55 โดน จับ 918kiss lucky 918kiss allbet asia golden hoyeah slot mafia ฟรี เครดิต ไม่ ต้อง แชร์ 44th slot s สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ jokerslot789 nasa slot slot99 ี ฟีฟ่า 55 โป๊ก เก้อ คา สิ โน 918 agent 918kiss 918kiss 333 เล่น หน้า เว็บ http www slotxo com coduca88 เครดิต ฟรี slotxo exp slotxo 3cha เครดิต ฟรี ไม่ ต้อง ทํา เทิ ร์ น slot ฝาก 100 รับ 300 ติดต่อ ufa365 xo slot1688 เข้า fifa555 โค๊ ต เครดิต ฟรี ไฮโล รีโมท สี่ หน้า หน้า เว็บ slotxo super slot999 555 slotxo ไพ่ poker 918kiss all game slot demo joker slotxo aec999 10 รับ 100 xo 918kiss ฝาก true wallet gclub ฟรี เครดิต 2019 ak47max เครดิต ฟรี เข้า ฟีฟ่า 555 vegus16 สล็อต xo1234 918kiss ฝาก วอ เลท slotxo 79 918kiss ios ล่าสุด slot hacker aladdin 69 slot เครดิต ฟรี 600 slot มา ใหม่ ไฮโล ไฮเทค คือ slotv9 fifa55 gold ufa slot shangri la slot game fifa5599 v7slot slot24th xo สล็อต xo ฝาก ขั้น ต่ำ 50 บาท xovip slot 918kiss เครดิต ฟรี 2020 สล็อต เอ็ ก โอ memberbet vegus168 royal เครดิต ฟรี เล่น poker เงิน จริง slotxo game 88 member slotxo fifa55 สมัคร 50 ฟรี 100 เครดิต ฟรี 20 ไม่ ต้อง แชร์ joker slot 9889 joker เติม true wallet ไม่มี ขั้น ต่ํา slot joker1688 ไม่ ฝาก ไม่ แชร์ เว็บ 918 p8slot เครดิต 50 slot s9 สมัคร ace333 ฟรี เครดิต fifa55 สมัคร slotxo 91 918kiss pantip easy slot 789 เครดิต ฟรี แชร์ ไลน์ 7slot 918kiss slotxo real 918kiss slotxo 91 เกม ไพ่ 21 ทาง เข้า fifa55m สมัคร ฟรี เครดิต ฟรี morgana megaways fox88 ฟรี เครดิต 918kiss อั่ ง เปา monday 918kiss ไพ่ แบ ล็ ค แจ็ ค pantip หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สล็อต 999 คา สิ โน ออนไลน์ ace slot slotxo สล็อต ฝาก 10 บาท รับ 100 ดา ฟา เบ ท ฟรี เครดิต slotxo 100 1 เทิ ร์ น 918kiss ฝาก true wallet โจ๊ก เกอร์ ฝาก ถอน ไม่มี ขั้น ต่ํา 918kissauto 2 บอล เสมือน จริง คือ slot007 เครดิต ฟรี ไฮโล ส กิ ด 3 หน้า ราคา sagame168th เครดิต ฟรี เกม ออนไลน์ xo slotxo 91 slot1688 mega888 เครดิต ฟรี สมัคร เอเย่นต์ fifa55 เครดิต ฟรี ระบบ ออ โต้ gclub ฟรี เครดิต 2019 สล็อต คา สิ โน 918kiss true wallet ไม่มี ขั้น ต่ํา เก้า เก คา สิ โน slotxogold slot red tiger ช่อง 77up ไฮโล ต่ำ slotxo111 หมุน วง ล้อ slotxo eggomatic slot slotxo pro slot 2019 joker slot 55 เว็บ โจ๊ก เกอร์ 888 slotxo 918 มาเฟีย 007 เครดิต ฟรี โป๊กเกอร์ ได้ เงิน จริง 918kiss ใหม่ เกม แบ ล็ ค แจ็ ค slotxo โปร 10 รับ 100 winner55 เครดิต ฟรี ไม่ ต้อง ฝาก วิธี สมัคร databet88 918kiss ตู้ ม้า slot ฝาก ถอน ไม่มี ขั้น ต่ํา slot ฟรี tss911 เครดิต ฟรี super flip slot slotxo เล่น ใน คอม jackpotxo live22 เครดิต ฟรี 20 v7slot เกม 168slotxo สมัคร fifa9999 xo บน เว็บ 918kiss เวอร์ชั่น ล่าสุด slotxo บน pc เครดิต เล่น ฟรี เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ คา สิ โน ออนไลน์ สุด ฮิต fifa55 ถอนเงิน ไม่ ได้ เว็บ พนัน บอล ดี ที่สุด 2021 เข้า ฟีฟ่า 555 xo slot 123 ฝาก เงิน สล็อต xo เกม ส ล็ สล็อต ได้ เงิน จริง เข้า บัญชี จริง ดา ฟา เบ ท เครดิต ฟรี slot ฝาก 50 ได้ 100 slotxo jb สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ 123 slot 918kiss อัน ไหน ดี slot c 369slot joker918kiss รู เล็ ต กด เอง slot4u xo เว็บ พนัน บอล fifa55 slotxo ฝาก 10 บาท ได้ 100 ฝาก 5 บาท ฟรี 99 บาท slotxo pgslot agent scr888 198 kiss download joker xo slot เกม สล็อต xo ออนไลน์ slot333 joker hunter 888 mega joker free เกม slotxo slotxo56 เล่น slotxo หน้า เว็บ 168 สล็อต xo xo คา สิ โน mafia เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก zeus slot xoslotz1688 ไฮโล ออนไลน์ 5 บาท slo xo sn888 kiss review slot auto888 slotxo ล่าสุด fifa555 เครดิต ฟรี xo slot 168 joker ถอน ไม่มี ขั้น ต่ํา เครดิต ฟรี ไม่ ต้อง ฝาก 150 168 gaming xo joker slot เครดิต ฟรี morgana megaways 918kiss เว็บ ตรง member slotxo 918 คือ slot555 joker slotxo 91 918kiss 1234 jokerslot99 เครดิต ฟรี 928kiss รู เล็ ต slot เติม true wallet 35 slotxo ไฮโล ลูกคู่ 918kiss ท รู วอ เลท 2019 slotxo วง ล้อ คา สิ โน ป๊อก เด้ง ออนไลน์ หน้า ลูกเต๋า ไฮโล slot89 เครดิต ฟรี 1234 โป ก เกอร์ เล่น สมัคร เอเย่นต์ fifa55 kingbets88 หาเงิน จาก คา สิ โน slotxo sl slotxo หมุน วง ล้อ slotking99 fifa55 palace ป๊อก เด้ง คา สิ โน fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slot 13 joker live22 slot123 joker ป๊อก เด้ง เครดิต ฟรี slotjoker888 slotxo 169 โป็ ก เกอร์ ออ น ไล เกม สล็อต slotxo pgslot1234 joker โบนัส 100 auto 1xslot 1168slot slot cat88 918kiss lucabet789 เครดิต ฟรี joker true wallet ไม่มี ขั้น ต่ํา เข้า เกมส์ สล็อต เล่น สล็อต xo บน เว็บ slotxo แตก บ่อย เครดิต ฟรี ถอน ไม่ อั้น 918kiss th สล็อต 888 คา สิ โน ออนไลน์ slotxo ฟรี เครดิต ไม่ ต้อง ฝาก slot1888 918 auto เล่น ออนไลน์ ได้ เงิน slots 500 ลูกเต๋า ไฮโล slot roma ค่าย ไหน หน้า ลูกเต๋า ไฮโล bet365 เครดิต ฟรี ufa slot เครดิต ฟรี แบ ล็ ค แจ็ ค ไพ่ ผล บอล ฟุตบอล เสมือน จริง joker gaming 888 slot ฝาก 50 ฟรี 150 918kissauto 2 555 slotxo เฮง เฮง เฮง เครดิต ฟรี joker xo th pgslot789 slot cat88 ป๊อก เด้ง เครดิต ฟรี mega888 download 2019 สล็อต โร ม่า เครดิต ฟรี mafia191 เครดิต ฟรี สล็อต xo191 เกม ไพ่ 21 p8slot slotxo 100 1 เทิ ร์ น slotxo111 เครดิต เล่น ฟรี 918kiss เครดิต ฟรี 2019 slotxo ผ่าน วอ เล็ ต เติม สล็อต xo b2y เครดิต ฟรี 2020 ไฮโล ออนไลน์ w88 สล็อต xo แจก เครดิต ฟรี live22 โปร โม ชั่ น เล่น ออนไลน์ ได้ เงิน เล่น ไพ่ เก้า เก ออนไลน์ ได้ เงิน จริง best xo slot ฟีฟ่า 1688 ฟีฟ่า 1688 แทง บอล ฟีฟ่า 55 ทาง เข้า เว็บ fifa55 slot super kiss918 auto slotxo mobile เครดิต ฟรี 200 ไม่ ต้อง แชร์ แทง ไฮโล ออนไลน์ ให้ ได้ เงิน 198 kiss ฟรี เครดิต slotxo mo ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา สล็อต xo mobile fifa55 ฝาก 100 ฟรี 150 918kiss star v2 mobile joker123 dollar star slot fm99bet เครดิต ฟรี slotxo เล่น ใน เว็บ สมัคร gclub ฟรี เครดิต roma xo 2in2 slot ฝาก 10 รับ 100 slotxo dafabet เครดิต ฟรี 2018 เครดิต ฟรี ทํา เทิ ร์ น น้อย สมัคร เครดิต ฟรี 300 เครดิต ฟรี slotxo ฝาก ท รู วอ เลท 2pj slot infinity slot slotxo คือ slot diamond แจก เครดิต ฟรี slotxo sbobet ฟรี เครดิต ล่าสุด สล็อต xo ท รู วอ ล เล็ ต โป ก เกอร์ ออนไลน์ slotxo สล็อต ฝาก 10 บาท รับ 100 918slot joker123 true wallet ไม่มี ขั้น ต่ํา live22 ฝาก 1 บาท เกม สล็อต ไลน์ 22 ทาง fifa55 v7slot joker123 ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo spin999 joker xo xo โจ๊ก เกอร์ slotxo โมบาย sagame168th เครดิต ฟรี สล็อต x0 918kiss ฟรี 100 slotxo ฝาก 10 บาท ฟรี 90 บาท slot4u joker slot god auto slotxo slotxo joker ฝาก 10 รับ 100 slot เครดิต ฟรี 2020 ไม่มี เงื่อนไข เกม ส ล็ gom88bet 77up football slotxo joker slotxo55 เครดิต ฟรี ไม่ ต้อง แชร์ 918 333be เครดิต ฟรี 133 918kiss superman 918kiss คือ สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ถอนเงิน ได้ สล็อต xo ทุน น้อย slotxo6 slotxo เล่น บน เว็บ สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss 1234 วิธี เล่น databet88 slot6996 kingbets88 black jack ออนไลน์ slotxo โอน เงิน fifa55 line joker slot 6996 ไฮโล ออนไลน์ w88 fifa55 rmcc tggame9999 aec999 เครดิต ฟรี 918 ล่าสุด joker slot ไม่มี ขั้น ต่ํา slot333 coduca88 เครดิต ฟรี วิธี เล่น databet88 joker slot 555 918kiss55 slot promotion เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ slotxo 7777 slot ฝาก ถอน ไม่มี ขั้น ต่ํา all slot666 รู เล็ ต เครดิต ฟรี 918kiss allbet asia เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ ไพ่ แบ ล็ ค แจ็ ค scr888 918kiss download joker slot เครดิต ฟรี slotxo 4u fifa55 ดี ไหม ไฮโล ลูกเต๋า slot ฝาก wallet 888 เครดิต ฟรี อั่ ง เปา สล็อต xo 918kiss download 2019 ufa365 สมัคร slotxo ฟรี ส ปิ น 9118kiss slotxo 189 fifa55boom เกม ส ล็ star slot777 kiss918 แจก อั่ ง เปา joker ฝาก ไม่มี ขั้น ต่ำ fifa55na เครดิต ฟรี slotxo11 vegus168 win ไฮโล ส กิ ด slotxo โบนัส 100 เทิ ร์ น 2 เท่า slotxo line 918kiss slot auto winner55 ฟรี เครดิต slotxo246 slot punpun 918 า ร ห ห รู เล็ ต ออนไลน์ มือ ถือ สมัคร 300 ฟรี 300 slot live22 ฝาก 10 รับ 100 live22 ฝาก 19 รับ 100 ฝาก 1 บาท ฟรี winner55 เครดิต ฟรี ไม่ ต้อง ฝาก สมัคร ฟรี เครดิต 100 slot house 918kiss โปร สมัคร ครั้ง แรก ฟรี เครดิต ป๊อก เด้ง ออนไลน์ เงิน จริง pantip http mvegus 1682 memberbet net slot ฝาก 20 รับ 100 เครดิต ฟรี 50 joker slotxo auto ึึ 77 up ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ riches777 เครดิต ฟรี slotxo168 p8slot joker hunter 888 fifa5555vip vegus168 win 918kiss 333 918kiss ฝาก ขั้น ต่ำ 20 บาท infinity 888 slot เล่น ออนไลน์ ได้ เงิน 918kisstm slot live22 auto tggame9999 ถอนเงิน live22 เติม เงิน slotxo เครดิต ฟรี 999 918 า ร ห ห fifa55 รับ โบนัส ฟรี 200 บาท แบ ล็ ค แจ็ ค ไฮโล สูง ต่ํา เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ joker slot 555 slot 168 slotxo xo ฝาก ผ่าน วอ เลท slot009 slotxo 1168 เกมส์ ไฮโล เหมือน จริง slot kd slot golden hoyeah ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท slotxo 88888 รู เล็ ต กด เอง 918kiss บน pc fifa55 tv online rg888 slot fortuna slots slotxo35 slotxo dark xo allbet แจก เครดิต ฟรี 918kiss slotxo king189 แอ พ ไฮโล 918kiss kiss pay69 slot 777 slot game slotxo 3cha หน้า ไฮโล 918kiss อัน ไหน ดี tss911 เครดิต ฟรี joker888 เครดิต ฟรี slot1234 xo 918kiss slots live22 ฝาก 1 บาท slotxo credit 918kaya เครดิต ฟรี 918kiss โปร โม ชั่ น เครดิต ฟรี ทํา เทิ ร์ น ถอน ได้ slotxo dollarstar slotxo 89 lucabet789 เครดิต ฟรี 918kiss ฝาก ผ่าน ท รู วอ เลท xe88th เครดิต ฟรี สล็อต 999 คา สิ โน ออนไลน์ 918kiss allbet24hr อั่ ง เปา scr888 slotxo ล่าสุด 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo 4u fifa55 prime แอ พ คำนวณ รู้ เล็ ต scr888 sn888 slot xo007 918kiss33 joker666 slot mafia01 เครดิต ฟรี ฟุตบอล เสมือน จริง saba fifa555 สมัคร สมัคร ฟีฟ่า 888 mafia เครดิต ฟรี 50 slot joker 1234 enjoy918kiss ฝาก เงิน live22 slot ฝาก 25 รับ 100 เกม ไฮโล game slot 66 918kiss4you xo thai888 slot xl 918kiss ผ่าน เว็บ g9 slot 918 คิ ส slotv9 xo joker123 ไม่มี ขั้น ต่ํา slotv9 joker 918kiss อัน ไหน ดี slot โปร สมาชิก ใหม่ กระดาน รู เล็ ต joker ถอน ไม่มี ขั้น ต่ํา sunbet slot ฟีฟ่า 55 ทาง เข้า ถอนเงิน slotxo slot free 918kiss lucky 12ww เครดิต ฟรี xo 10 รับ 100 slot exp slotxo slot punpun 999 vegus168 member gclub เครดิต ฟรี ib888 slot fifa55 ดี ไหม โปร โม ชั่ น 918kiss slotxo69th 899slot slot189 slot punpun เว็บ โจ๊ก เกอร์ 888 เกม ไฮโล y8 สล็อต xo11 ฝาก 20 รับ 100xo auto slotxo genie jackpot รวย ดี slot p168 slot slot1688 joker slot44 live22 ฝาก ไม่มี ขั้น ต่ำ ไฮโล ออนไลน์ 5 บาท xoslot69 c8 slot slot35 joker slot35x หมุน วง ล้อ joker123 riches777 เครดิต ฟรี สล็อต xo1668 slotxo 24 xoslot69 slotxo ฝาก 9 บาท รับ 100 ล่าสุด gom88bet fifa55 memberbet สมัคร fifa55u slot48xo mafia678 slot slot c 2pj slot slotxo แจก เครดิต ฟรี 50 taibet88 เครดิต ฟรี ไฮโล คลาสสิค 2mbet เครดิต ฟรี xo คา สิ โน เครดิต ฟรี ล่าสุด 2020 ฝาก 10 รับ 100 joker xo 2xl slotxo เกม ไพ่ แบ ล็ ค แจ็ ค เล่น เกม slotxo หน้า เว็บ slot2499 2pj slot slot ฝาก 15 รับ 100 ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ํา slotxo x เครดิต ฟรี 918kiss ไฮโล ออนไลน์ โบนัส ฟรี slotxo6 slotxo 10 บาท 918kiss ฝาก ท รู วอ เลท เครดิต ฟรี ไม่ ต้อง ฝาก 150 xo slot168 918kiss the moon slot 918 slotxo โอน วอ เลท slotxo เล่น 918kissbet fifa55 เข้า ไม่ ได้ tiger slot เกมส์ ไฮโล เว็บ พนัน บอล ดี ที่สุด 2021 mm88bet สล็อต slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 joker123 ฝาก ถอน ไม่มี ขั้น ต่ํา 918kiss เว็บ ไหน ดี สล็อต xo easy gclub888 royal leo slot xoslot123 สล็อต xo 99 9118kiss fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ โจ๊ก เกอร์ เครดิต ฟรี slot1234 ฝาก 10 รับ 100 918kiss free เกม ออนไลน์ ไฮโล เว็บ โจ๊ก เกอร์ 888 ไฮโล ลูกเต๋า สล็อต ออนไลน์ ฝาก ถอน ไม่มี ขั้น ต่ำ 888 โจ๊ก เกอร์ slotxo ฝาก 20 รับ 100 คิ ส 918 q9win slot สมัคร mm88bet สล็อต 777 คา สิ โน ออนไลน์ ด ค ร ดิ ต ฟรี xo เล่น หน้า เว็บ เครดิต ฟรี 133 โปร โม ชั่ น joker 2pigs xo วิธี เล่น databet88 slotxo teddy 918kiss แจก เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss 333 คิง ค อง สล็อต xo 918kiss แจก อั่ ง เปา joker8899 เครดิต ฟรี slot epic win 918kiss โปร ฟรี ไม่ ต้อง ฝาก ก่อน เว็บ ยิง ปลา ฟรี เครดิต slotxo แจก เครดิต ฟรี 50 บาท slotxo 011 slotxo เล่น ผ่าน เว็บ sanook xo slot the kingslotxo หมุน วง ล้อ joker123 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo สล็อต ฝาก 10 บาท รับ 100 แอ พ ไฮโล slotxo member xo thai888 live22 easy เครดิต ฟรี 50 ไม่ ต้อง แชร์ 55slotxo 918kiss v1 exp slotxo mega888 slot ไฮโล ขั้น ต่ำ 1 บาท joker ถอน ไม่มี ขั้น ต่ํา joker slot 666 ยู ส ฟรี 918 slotxo ทุน น้อย joker slot demo 918kiss ท รู วอ เลท ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา scr888th v5 918kiss เครดิต ฟรี 2020 918kiss ใหม่ ไฮโล ฟรี money mouse slot vegus168 ติดต่อ เล่น ไพ่ โป ก เกอร์ ออนไลน์ บ้าน บอล fifa55 ไพ่ แบ ล็ ค แจ็ ค pantip ฟุตบอล เสมือน จริง saba เว็บ แทง บอล fifa สล็อต xo888 slotxo ฝาก 19 รับ 100 918kissslots w88 โป๊กเกอร์ ไฮโล ออนไลน์ โบนัส ฟรี เครดิต ฟรี ทํา เทิ ร์ น fifa55na 918kiss auto เครดิต ฟรี slotxo ฝาก ถอน ไม่มี ขั้น ต่ํา 2pigs xo สล็อต xo 899 สล็อต ออนไลน์ 1234 slot joker ฝาก ไม่มี ขั้น ต่ํา slotxo456 siamslotxo slot vip789 win win slot fifa55 ทาง เข้า มือ ถือ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ slotxo king189 slotxo lucky xo หน้า เว็บ slot jackpotxo slotxo lucky เกม 168slotxo heng888 เครดิต ฟรี เล่น poker เงิน จริง html5 slot machine easy slot big win 777 slot ฝาก 50 ได้ 100 918 ล่าสุด gclub 918 เทิ ร์ น 1 เท่า slot free ป๊อก เด้ง คา สิ โน ทาง เข้า fifa5555 xo slot club 918kiss เว็บ ไหน ดี joker1919 gaming เกม xo slot 2pigs xo red365 เครดิต ฟรี ถอน เงิน slotxo สมัคร ครั้ง แรก ฟรี เครดิต เล่น สล็อต xo ผ่าน เว็บ slot joker true wallet ไม่มี ขั้น ต่ํา www168slotxo sagame168th เครดิต ฟรี 918kiss44 เสือ มังกร ออนไลน์ มือ ถือ 918kissauto 2 best88 slot joker โบนัส 100 auto slotxo09 สล็อต สมัคร ง่าย xoslot69th 918kiss เครดิต ฟรี 50 mafia ฟรี เครดิต ไม่ ต้อง ฝาก slot x0 เครดิต ฟรี mega888 918kiss ผ่าน เว็บ winner55 เครดิต ฟรี ไม่ ต้อง ฝาก slot free credit no deposit 2020 slot star99 slotxo 10 บาท joker ฝาก ถอน ไม่มี ขั้น ต่ำ เว็บ 77up roma slotxo เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ 1thslot เล่น โป ก เกอร์ ออนไลน์ รู เล็ ต กติกา โปร โม ชั่ น pgslot slotxo 24hr สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo ล่าสุด live22 ฝาก 19 allbet slotxo scr99th 918kiss slot22th xo fifa55 เครดิต ฟรี 2020 เล่น xo หน้า เว็บ สล็อต xo หน้า เว็บ scr888 918kiss download ทาง เข้า vegus168 2 slots มาเฟีย เครดิต ฟรี 50 p168 slot เครดิต ฟรี 18 poker ออนไลน์ ป๊อก เด้ง เครดิต ฟรี slotxo88 download ฟีฟ่า 555 สมัคร ไฮโล เงิน จริง safari gold megaways 918kisskiss918 slotxo png slot auto all winner55 เครดิต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี 18 slotxo ฝาก 30 รับ 100 joker โปร โม ชั่ น slot1234 918kiss slotxo 66 918kiss ฝาก ไม่มี ขั้น ต่ํา สล อ ต เอก โอ ฝาก วอ เลต ไม่มี ขั้น ต่ํา www slotxo88 com home 918kiss v7 เครดิต ฟรี 999 ไพ่ โป๊ก เก อ slotxo 777 th turbo slot easy slot 789 เครดิต ฟรี ถอน ไม่ อั้น infinity 888casino ไฮโล สูง ต่ำ royalbet777 918kiss เครดิต ฟรี slotxo ฝาก 20 ได้ 100 เว็บ 77up สมัคร fifa55 ฝาก ขั้น ต่ํา 100 slotxo pgslot ไฮโล 456 ถอนเงิน xo แอ พ เกม ไฮโล ได้ เงิน จริง slot7 joker slot 777 slot ฝาก 20 ได้ 100 fifa55best สมัคร เว็บ fifa69 918kisshero 918kiss me 550ww เครดิต ฟรี roma slot joker 2pigs xo 7vip slotxo ส รู ตรู เล็ ต สล็อต xo วอ ล เลท joker123 allbet asia ฝาก วอ เลต ไม่มี ขั้น ต่ํา 918kiss v 198 kiss download databet88 agent sbobet777 เครดิต ฟรี 918kiss ฝาก ไม่มี ขั้น ต่ํา รู เล็ ต กติกา fifa55bonus ไพ่ ออนไลน์ slot gold slot joker91 ไฮโล ของ gclub ฟรี เครดิต ไม่ ต้อง ฝาก สล็อต xo99 เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด สล็อต live22 เกมส์ สล็อต มือ ถือ เครดิต ฟรี 888 slotxo king189 เครดิต ฟรี ล่าสุด 2020 เครดิต ฟรี ไม่ ต้อง แชร์ 918 ab24hr เครดิต ฟรี 918kiss กลุ่ม สาธารณะ แอ พ แยก เสียง ไฮโล 99slotxo ฝาก 1 บาท ฟรี mega joker slot กระดาน รู เล็ ต รู เล็ ต คือ monster joker slot slot777 ฟรี เครดิต cq9 slots slot999 xo คา สิ โน ดั ม มี่ fifa55 prime ราคา รู เล็ ต เว็บ fifa555 สล็อต เอก โอ kiss918 แจก อั่ ง เปา หมุน วง ล้อ joker123 all slot666 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slotxo เล่น เว็บ พนัน บอล ดี ที่สุด 2021 โปร โม ชั่ น ยิง ปลา slot cat666 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด เล่น สล็อต xo หน้า เว็บ happy slotxo88 slot7 ไฮโล เจ้ามือ golden hoyeah slots ถอนเงิน สล็อต 168galaxy slot joker69 grand kiss918 918kiss พี่ เสือ fifa55 1234 line 918kiss slotxo แจก เครดิต ฟรี 2019 เล่น เกม slotxo หน้า เว็บ สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก www918kiss xo เล่น ผ่าน เว็บ เข้า เว็บ fifa55 slot xe88 ไท เกอร์ คา สิ โน 8 bit slot xo 369 slotxo mvegus1682 memberbet net ไฮโล สะกิด เล่น สล็อต xo super joker slot เว็บ fifa55 grand kiss918 โป๊กเกอร์ ออนไลน์ aa9win slot เอ เย่ น 918kiss เครดิต ฟรี ไม่ ต้อง เทิ ร์ น gclub slot 1688 slot47 918kiss เว็บ ตรง 145 ฟรี เครดิต เกม สล็อต xo แตก ง่าย slot ฝาก 15 รับ 100 ไม่ ฝาก ไม่ แชร์ เว็บ เล่น สล็อต xo 77up online joker123 true wallet ไม่มี ขั้น ต่ํา สมัคร fifa9999 วง ล้อ คา สิ โน scr888th game love918kiss slotxo โบนัส 100 เทิ ร์ น 1 เท่า เครดิต ฟรี 2563 kiss918 เครดิต ฟรี 9gspin เครดิต ฟรี xo slot auto แทง ไฮโล ให้ ได้ เงิน https slotxo vip เกม ออนไลน์ xo slotv9 live22 เครดิต ฟรี pussy888 สล็อต xo191 ฝาก ถอน 918kiss slot1234 เครดิต ฟรี 918kiss 100 ฟรี 100 heng666 ฟรี เครดิต 918kiss ท รู วอ เลท เกม สล็อต slotxo slotxo ro xo ฟรี เครดิต kiss918 allbet เว็บ บอล ufa365 slot7777 slotxo xo 918kisskingdom 918kiss the moon slot289 qtech slot เครดิต ฟรี 888 ไฮโล ขั้น ต่ำ 1 บาท open365 ฟรี เครดิต 918kiss ฟรี เครดิต ไพ่ แบ ล็ ค แจ็ ค pantip sunbet slot ไฮโล น้ำยาเคมี เครดิต ฟรี ถอน ได้ ไม่ จํา กัด slotxo pantip 918kiss max ไพ่ ออนไลน์ ไพ่ แค ง เล่น ได้ เงิน จริง slot game เล่น xo หน้า เว็บ เล่น xo slot เครดิต ฟรี 20 ไม่ ต้อง แชร์ ฟรี เครดิต 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ mm88bet ฝาก 555 slotxo
            slot ทดลอง เล่น ฟรี| sugar pop 2 double dipped ได้ เงิน| เกม อะไร ที่ เล่น แล้ว ได้ ตังค์ จริง| ฝาก ถอน live22| เข้า สู่ ระบบ โจ๊ก เกอร์ 123fifa55x| เล่น เกม แล้ว ได้ เงิน| slot amatic| เกม ที่ ถอนเงิน ได้ จริง| แทง บอล สูง ต่ํา คือ| เว็บ บอล แจก เครดิต ฟรี ไม่ ต้อง ฝาก| star vegus168| บอล ชุด คือ| โปร โม ชั่ น 333be| random slot| สูตร บอล 1x2 excel| ทดลอง เล่น สล็อต ค่าย pg| mafia888 เล่น ผ่าน เว็บ| i 888 casino| เทคนิค การ เล่น ยิง ปลา| สล็อต 3k| วิธี ยิง ปลา ได้ เงิน| hulk slot| แทง บอล สูง ต่ำ| slot machine 7777| เว็บ บอล แจก เครดิต ฟรี 2019 ไม่ ต้อง ฝาก| เกม ใน เว็บ ได้ เงิน้ เกม สล็อต| goldenslot ฟรี 500เกม สล็อต ไม่ ต้อง ฝาก| slot 888 th| poker casino gratis| ทดลอง เล่น สล็อต โร ม่า ฟรี| star vegus168| ทดลอง เล่น ได้ เงิน จริง| เกม ทํา เงิน ออนไลน์| slot star vegas| ทดลอง เล่น สล็อต ฟรี ได้ เงิน จริง 2020| สมัคร เว็บ บอล เครดิต ฟรี| สมัคร เกม เครดิต ฟรี| lucky god ทดลอง เล่น| เข้า เล่น joker789| วิธี ยิง ปลา ได้ เงิน| สกอร์ สูง ตํา่| slot 888 download| เกม ออนไลน์ ได้ เงิน 2020| เล่น แล้ว ได้ ตัง| มาริ โอ้ สล็อต| วิธี เล่น สล็อต ผล ไม้| เว ป เเ ท่ง บอล| ดาว โหลด เกม joker888| sbobet on| สล็อต w88 อัน ไหน ดี| line 22 slot| casino skrill deposit| สล็อต holiday| bonus casino 2019| ทาง เข้า เกม pg| สล็อต ยู ฟ่า 100| สูง ต่ํา บอล| เกม ออนไลน์ ได้ เงิน จริง ไหม| เกมส์ ออนไลน์ ได้ ตัง| ufabet 66| ลอง เล่น เกม| สล็อต จี คลับ 777| เกม ที่ เล่น แล้ว ได้ ตังค์| สล็อต ที่ นิยม มาก ที่สุดสล็อต ได้ ตัง จริง| royal casino สูตร ยิง ปลา| ลอง เล่น เกม|