<track id="mIL2qZp"><progress id="mIL2qZp"><nobr id="mIL2qZp"></nobr></progress></track>
    <th id="mIL2qZp"></th>

    <th id="mIL2qZp"></th>

    <track id="mIL2qZp"><big id="mIL2qZp"><nobr id="mIL2qZp"></nobr></big></track>

    <th id="mIL2qZp"></th>

            <sub id="mIL2qZp"><meter id="mIL2qZp"><listing id="mIL2qZp"></listing></meter></sub>

            <nobr id="mIL2qZp"></nobr>

            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
             
            โจ๊ก เกอร์ 168 สมัคร เกม สล็อต joker fifa555click ยู ฟ่า 191 เข้า สู่ ระบบ joker slot 44th หมุน สล็อต ฟรี ได้ เงิน จริง slotxo 246 slotjokerth บา คา ร่า ถอน ขั้น ต่ำ 300เกม ออนไลน์ 666 โหลด live22slot สมัคร epic slot โจ๊ก เก อ สล็อต ทาง เข้า copa69 slotxo 77 ดาว โหลด เกม สล็อต 918 โจ๊ก เกอร์ 123 ฝาก ไม่มี ขั้น ต่ํา slotxoth 22 เล่น gclub slot ผ่าน เว็บ โจ๊ก เกอร์ 789 jokerxoth pgslot สล็อต โปร สมาชิก ใหม่ โหลด พุซซี่ pg slot ท รู วอ เลท สมัคร เกม ได้ เงิน fifa55af โหลด เกม joker สมัคร สล็อต ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ts911 gold วิธี สมัคร ufa191 slot007 pc สล็อต พุ ช ชี่ game slot letou pg slot หน้า เว็บ ufabet 36 mafia88 apk wwwufascrcom เกมส์ สล็อต ได้ เงิน 123vip สมัคร สล็อต ที่ นิยม มาก ที่สุด pg slot test สล็อต แตก บ่อย ที่สุด เว็บ สล็อต ที่ แตก ง่าย โปร สล็อต สมาชิก ใหม่ fhm99 slot สูตร บา คา ร่า ที่ ดี ที่สุด ฟรี เกมส์ สล็อต sa เกม ไพ่ สล็อต สล็อต แบบ เติม วอ เลต สมัคร สล็อต w88 เล่น เกม รับ เงิน ฟรี แจก จริง ไม่ ต้อง แชร์ sweet bonanza ทดลอง เล่น เกม sweet bonanza ได้ เงิน จริง ไหม pg หน้า เว็บ โหลด แอ พ สล็อต ออนไลน์ ไอ ดี ไลน์ โจ๊ก เกอร์ เล่น ไพ่ป๊อก เด้ง ได้ เงิน จริง ดาวน์โหลด live22easy เล่น ฟรี ได้ เงิน pg slot png gclub slot เล่น ผ่าน เว็บ jumbo joker slot เว็บ สล็อต ฝาก 20 รับ 200 เล่น เกม ออนไลน์ ฟรี ได้ เงิน สล็อต ฝาก ผ่าน วอ เล็ ต slot pg cc เล่น slot เว็บ ไหน ดี เล่น ป๊อก เด้ง ได้ เงิน จริง เครดิต ฟรี slot joker สมัคร สล็อต ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก riches888 ดาวน์โหลด เกม สล็อต เงิน จริง มือ ถือ ทดลอง เล่น สล็อต sweet bonanza ฝาก ถอน joker slot joker 168 สมัคร joker เกมส์ ยิง ปลา รีวิว joker123 สล็อต ฝาก วอ ล เลท wwwmm88win สล็อต โปร วัน เกิด ทาง เข้า s joker เกม ไพ่ ออนไลน์ เงิน จริง joker slot z joker123 pc สล็อต ฝาก ผ่าน ท รู วอ ล เล็ ต epicwin slot ทาง เข้า เว็บ ไหน สล็อต แตก ง่าย slot ได้ เงิน ง่าย สล็อต ฝาก ด้วย วอ เลท fifa55 official เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน สร้าง โปรแกรม บา คา ร่า โหลด เกมส์ พุซซี่ สล็อต เติม ไม่มี ขั้น ต่ํา แอ พ สล็อต xo เว็บ สล็อต ที่ คน เล่น เยอะ ที่สุด ไอ ดี ไลน์ โจ๊ก เกอร์ 123 แจก เครดิต ฟรี ยืนยัน ตัว ตน สล็อต เติม ไม่มี ขั้น ต่ํา สมัคร epic slot ทดลอง สล็อต roma เว็บ สล็อต ไม่มี ขั้น ต่ํา เล่น เกม ได้ ตัง ฟรี เล่น ไพ่ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ฟรี slot 5 เกม สล็อต ยอด นิยม joker 123 สล็อต mm88fc สมัคร joker ro slot ny joker slot slot1168 joker avenger ฟรี เครดิต mafia slot 88 การ เล่น ตู้ สล็อต ทดลอง เล่น สล็อต ออนไลน์ ฟรี เข้า สู่ ระบบ โจ๊ก เกอร์ ฝาก ทาง วอ เลท โหลด 918kiss ไม่ ได้ สล็อต ฝาก วอ ล เลท โหลด เกม 123 เล่น สล็อต 918 สมัคร epic slot เกม ไพ่ ออนไลน์ เงิน จริง โบนัส joker web joker slot 9889 download android แจก เครดิต ฟรี mafia เว็บ สล็อต 88 epicwin 1234 สูตร บา คา ร่า เซ๊ ก ซี่ ufabet1688 ฝาก เงิน joker gaming สมัคร ยิง ปลา ยิ่ง มี รา วา จ สล็อต ได้ เงิน เยอะ แจก user ทดลอง เล่น ฟรี เล่น สล็อต ไม่ ต้อง ฝาก extreme joker slot สล็อต ฝาก ท รู วอ เลท ไม่มี ขั้น ต่ํา เครดิต ฟรี ฝาก 10 บาท รับ 100 เล่น สล็อต ให้ ได้ เงิน แสน แจก ทุน ฟรี สล็อต slot mafia123 wwwmm88win สล็อต ค่าย playstar โหลด เกมส์ สล็อต ได้ เงิน จริง ทดลอง เล่น ฟรี สล็อต joker 918kiss สมัคร สมาชิก slot คน เล่น เยอะ ี ufa191 สมัคร เกม ยิง ปลา เครดิต ฟรี วิธี สมัคร ufa191 riches888 ดาวน์โหลด เล่น sbobet ผ่าน มือ ถือ สมัคร slot เครดิต ฟรี joker เครดิต ทดลอง เล่น สล็อต ส โบ เบ็ ต ibet789 สล็อต ดาวน์โหลด โจ๊ก เกอร์ 168 สมัคร สวี ท โบ นั น ซ่า ฝาก ไม่มี ขั้น ต่ํา สล็อต เก่ ม ยิง ปลา โปร โจ๊ก เกอร์ เงิน สล็อต ฟรี joker123 game ikan ดาวน์โหลด โจ๊ก เกอร์ 168แจก กระสุน ฟรี 300 เว็บ เกม 888 joker game winner55 slot ฝาก 10 รับ 100 วอ เลท สมัคร สล็อต jdb168 slot168vip joker slot roma demo ทดลอง เล่น สล็อต ค่าย โจ๊ก เกอร์ slot ฝาก 10 รับ 100 ฝาก ผ่าน ท รู วอ เลท สล็อต เกมส์ ไหน ดี โบนัส แตก บ่อย joker เข้า สู่ ระบบ joker 123xbet เครดิต ฟรี สมัคร สล็อต ใหม่ เล่น เกมส์ slotxo ดาว โหลด พุซซี่ สมัคร เว็บ โจ๊ก เกอร์ แทง สล็อต ออนไลน์ สมัคร สล็อต ฝาก ถอน ไม่มี ขั้น ต่ํา slot ไว กิ้ ง สล็อต ฝาก ผ่าน airpay joker gaming download แจก user ทดลอง เล่น ฟรี ถอน ได้ วิธี เล่น slotxo pg slot joker เข้า เว็บ สล็อต fifa55 สล็อต เติม เงิน joker123 โหลด เกมส์ สล็อต xo 999 โหลด เกม joker123 joker8899 ระบบ สมาชิก ทาง เข้า โจ๊ก เกอร์ สล็อต เกม สวี ท โบ นั น ซ่า ทดลอง เล่น รับ กระสุน ยิง ปลา ฟรี เว็บ สล็อต winner พุ ช ชี่ สล็อต sboaaaa ทาง เข้า pgslot nb สล็อต ตัว ใหม่ เว็บ สล็อต ฝาก 20 รับ 200 สล็อต เครดิต ฟรี 50 ไม่ ต้อง แชร์ ฝาก 10 รับ 100 โจ๊ก เกอร์ slot ท รู วอ ล เล็ ต 168 ufa pg slot aba happy slot joker joker ท รู วอ ล เลท เว็บ ตู้ สล็อต super slot168 การ เล่น สล็อต เกมส์ สล็อต เหมือน จริง เกมส์ สล็อต jdb asd124 slot slot joker easy ฟรี เงิน เดิมพัน 2020 สมัคร joker888 net สล็อต ไหน แตก ดี พุซซี่ 888 ดาวน์โหลด 168 superslot เล่น เกม ได้ ตัง ไม่ ต้อง ลงทุน เว็บ สล็อต โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ํา slot yakuza joker สมัคร epicwin slot mafia999 puysy888 ทดลอง เล่น bonanza สล็อต 100 เกม ดั ม มี่ กิน ตัง จริง download pgslot สล็อต หมุน ฟรี เครดิต ถอน ได้ รวม สล็อต ทุก ค่าย ใน เว็บ เดียว sagame168 th ganesha fortune slot joker888 ฝาก วอ เลท เครดิต ฟรี ปี ใหม่ slot roma ทดลอง joker เล่น บน เว็บ แจก ฟรี 300 สล็อต สล็อต joker แตก ง่าย สร้าง โปรแกรม สูตร บา คา ร่า ถอนเงิน จาก เกม สล็อต มาเฟีย สล็อตslotxo88 เครดิต ฟรี ปี ใหม่ สล็อต ใช้ วอ เลท สมัคร slot game 444 สล็อต ค่าย sg ทดลอง ถอนเงิน joker888 แจก เครดิต ฟรี ยืนยัน เบอร์ สมัคร ฟรี สล็อต candy สล็อต โหลด เกม joker games รวม slot ทุก ค่าย lucky god 2 เว็บ สล็อต gott7 123 vip casino แจก รหัส ยูสเซอร์ สมัคร epicwin ค่าย เกม สล็อต pg แจก ทุน เล่น สล็อต ทาง เข้า โจ๊ก เกอร์ 123 รวม เกมส์ ได้ เงิน จริง สล็อต ค่าย epic joker สล็อต ฟรี เครดิต 100 สมัคร เกม สล็อต 888 เล่น สล็อต ไม่ ต้อง ฝาก วง ล้อ สล็อต เกม slot999 เกม ยิง ปลา pantipสล็อต ค่าย jiliเว็บ 168 pg slot789 สล็อต sbobet joker slot roma demo joker slot casino joker ถอนเงิน joker เว็บ ตรง pg ฝาก 30 รับ 100 สล็อต ใช้ วอ เลท เติม pg slot เว็บ ตรง เกม สล็อต โรมัน ดาว โหลด เกมส์ live22โหลด slot1234 pg slot asia88 เกม สล็อต ออนไลน์ pg สมัคร เกม โจ๊ก เกอร์ 123 jumbo joker slot joker เติม เงิน เกม สล็อต แลก เงิน จริง เล่น สล็อต sbobet สล็อต คิง ค อง รวม slot ทุก ค่าย ดู บอล สด copa69 เล่น sbobet ผ่าน มือ ถือ สล็อต joker ฟรี เครดิต ป๊อก เด้ง 888 โหลด แอ พ คา สิ โน ออนไลน์ เว็บ รวม สล็อต ทุก ค่าย เกม เล่น แล้ว ได้ เงิน ไม่ ต้อง ลงทุน ทาง เข้า amb555fifa555hd joker สล็อต ฟรี เครดิต 100 mafia 007 เกม สล็อต ออนไลน์ slot joker 899 โหลด เกม slot1234 เว็บ สล็อต วอ เลท slot jdb แตก ง่าย สมัคร joker วอ ล เล็ ต สล็อต วี สล็อต ออนไลน์ เติม วอ เลท ๋ joker123 mafia เกม สล็อต joker slot free credit สมัคร สล็อต ท รู วอ เลท เว็บ สล็อต jdb สล็อต เติม วอ ล เล็ ท joker8899 ระบบ สมาชิก สล็อต สนุก ฟรี all pgslot avenger 777slot joker168 game โหลด เกม พุ ช ชี่ 888 fifa55 fox sport สล็อต พุ ช ชี่ joker เครดิต ทดลอง เล่น bet สล็อต เครดิต ฟรี 20 รับ 100 live22 ี ufa191 epicwin slot online pg slot test slot ทดลอง เล่น roma mafia77 slot สล็อต แตก ดี ที่สุด โหลด เกม โจ๊ก เกอร์ เว็บ ทดลอง เล่น สล็อต ฟรี ดาวน์โหลด pg สล็อต 918kiss เครดิต ฟรี slot joker เปิด ใหม่ โหลด เกม มาเฟีย 007 pg slot โปร 100 slot เค ดิ ต ฟรี ไม่ ต้อง ฝาก สมัคร joker 100 สล็อต รู เล็ ต สล็อต ฟรี เกม betflix24 สมัคร เกมส์ ยิง ปลา รีวิว ดาว slotxo โหลด เกม joker123 joker123 ฝาก ถอน ออ โต้ โหลด slot live22 pg slot png demo pg soft แจ้ง ฝาก sbobetstep all slot 999 ทดลอง เล่น joker slot ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ทาง เข้า เว็บ joker สล็อต ฝาก ท รู วอ เลท ไม่มี ขั้น ต่ํา ตี ตุ่น เครดิต ฟรี สล็อต ฝาก ขั้น ต่ำ 100 บาท สมัคร slot xe88 แจก เครดิต ฟรี 5000 ts911 casino เล่น จริง ได้ เงิน จริง ไลน์ เกม สล็อต iprobet168 v1 เกม สล็อต super ufa แจก ฟรี 100 บาท เกม สล็อต ฝาก 10 รับ 100 joker สล็อต 888v1 พุ ช ชี่ 888 แอ พ เกม ออนไลน์ ได้ เงิน จริง เล่น slot ออนไลน์ ทดลอง เล่น สล็อต ฟรี joker joker123th auto 918 โหลด เว็บ โจ๊ก เกอร์ kiss scr888 sagame168 th สล็อต พี จี สล็อต joker ฟรี เครดิต สล็อต สมัคร รับ ฟรี 100 pg slot 188 pg slot mobile ดาว โหลด pgslot ฟรี เครดิต ทดลอง เล่น สล็อต สล็อต 918 ฟรี เครดิต เว็บไซต์ สล็อต ออนไลน์ เกม sweet bonanza อยู่ ค่าย ไหน เกม ที่ เล่น แล้ว ได้ เงิน จริง ไม่ ต้อง ลงทุน 2020 joker 777 slot มาเฟีย 88 ดาวน์โหลด เกม แมว สล็อต เงิน เดิมพัน ฟรี 2020 ลิ้ ง สล็อต โจ๊ก เกอร์ ดาวน์โหลด เกม pussy epicwin 77 slot joker ฝาก 50 ทดลอง เล่น สล็อต joker ทุก เกม gclub slot เปิด กี่ โมง slot ฝาก 100 ได้ 200 เข้า เล่น โจ๊ก เกอร์ 123 slot ฝาก น้อย ได้ 100 เกม เล่น แล้ว ได้ เงิน ไม่ ต้อง ลงทุน เล่น เกมส์ 918kiss wwwmm88win เกม สล็อต แจก เครดิต ฟรี 100 ไม่ ต้อง ฝาก ดาว โหลด แอ ป slotxo โจ๊ก เกอร์ เกมmm88aecเว็บ 88 ทดลอง sweet bonanza queen168 joker แนะ นํา เว็บ สล็อต 2020 free credit slot 2019 เว็บ บอร์ด joker game สมัคร marwin slot เว็บ สล็อต 555 roma slot joker demo slot007 download ยิง ปลา ท รู วอ ล เล็ ต pessy888 ดาว โหลด joker สล็อต 1 star vegas ได้ เงิน จริง ไหม mafia88 สล็อตแทง บอล วัน นี้ หา เว็บ เล่น สล็อต ทาง เข้า สล็อต 168 happy slot joker สมัคร สล็อต joker888 10 รับ 100xo ฟรี เงิน เดิมพัน 2020 แจก user ทดลอง เล่น ฟรี roma slot ทดลอง vscr888 ios สล็อต roma ทดลอง เกม สล็อต แตก ง่าย 2020 เกม สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ จริง golden joker slot sbobetstep แจ้ง ถอน สล็อต ค่าย red tiger สล็อต joker โบนัส 100 บา คา ร่า joker เล่น สล็อต ผล ไม้ สล็อต แตก ง่าย สุด 918kiss สล็อต ออนไลน์ เกม ฝาก ถอน ไม่มี ขั้น ต่ํา ดาวน์โหลด โจ๊ก เกอร์ สล็อต เกม ใหม่ pg sbobetstep สมัคร สล็อต ได้ เงิน ฟรี nikigame 999 สมัคร sbo slot แนะ นํา เว็บ สล็อต โหลด โจ๊ก เกอร์ xo slot online ทดลอง เล่น ฟรี ทาง เข้า xoslot เว็บ สล็อต ฝาก 10 รับ 100 เกม เล่น ได้ เงิน จริง ไม่ ต้อง ลงทุน แนะ นํา เกม สล็อต แตก ง่าย ทดลอง เล่น slotxo roma jokerauto slot www i99pro ทดลอง เล่น สล็อต joker ทุก เกม th888casino สล็อต แจก ฟรี 200 ทาง joker123 สล็อต วี betflix24 สมัคร สมาชิก game demo slot pg soft slot ท รู วอ เลท app สล็อต pg slot ฝาก ถอน ไม่มี ขั้น ต่ำโหลด เกม สล็อต xo slot joker ทดลอง เล่น ฟรี เว็บ สล็อต แตก ง่าย ล่าสุด สล็อต โอน ผ่าน true wallet เว็บ สล็อต ที่ ดี ที่สุด 2019 area789 สล็อต ฝาก 100 ฟรี 400 เกม แมว สล็อต เว็บ เกม เล่น แล้ว ได้ เงิน copa89 ดู บอล sugar pop เกม ดาวน์โหลด pussy 888 สล็อต ปั่น ฟรี 15 ครั้ง เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2020 เว็บ สแกน สล็อต การ เล่น สล็อต ผล ไม้ สมัคร เกม joker สล็อต วี slot ฝาก 15 บาท รับ 100 รวม เกมส์ ได้ เงิน จริง สล็อต ออนไลน์ ฟรี เครดิต ถอน ได้ ตัว เกม xo โปร วัน เกิด สล็อต เว็บ สล็อต ออนไลน์ pg ฟรี สล็อต สมัคร ด้วย วอ เลท joker slot 95 สล็อต m8 เกม คา สิ โน แจก เครดิต ฟรี slot ท รู วอ ล เล็ ต ทดลอง เล่น สล็อต ได้ เงิน จริง เกม สล็อต แตก ง่าย pantip ts911 casino แพนด้า 888 pg ฝาก 50 เครดิต ฟรี nxcasino สล็อต เว็บ ไหน ดี 168jk slot เว็บ โจ๊ก เกอร์ เดิมพัน ฟรี ไม่ ต้อง ฝาก 2020 playlive88 joker สล็อต ฝาก ทาง วอ เลท สมัคร สล็อต วอ เลท เกมส์ อะไร เล่น แล้ว ได้ เงิน จริง sweet bonanza ทดลอง เล่น สล็อต ออนไลน์ สมัคร ฟรี fifa55 หวยufabet888 สล็อต joker ฟรี เครดิต 20 รับ 100 วอ เลท สล็อต ออนไลน์ wallet สูตร บา คา ร่า เข้า ทุก ไม้ เกมส์ ล็ อ ต 777 ่ joker slot slot ฝาก ทาง วอ เลท สล อ ต เค ร ดิ ส ฟรี แจก โค้ด 333be ล่าสุด เว็บ สล็อต ออนไลน์ ที่ ดี ที่สุด sbobet777 ฝาก ถอน สล็อต ฝาก วอ ล เลท สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ 2019 big win slotxo สล็อต ครบ ทุก ค่าย nx casino แจก เครดิต ฟรี 918kiss สล็อต ออนไลน์ ทาง เข้า joker ติดต่อ ufabet365 แจก เครดิต ฟรี ยืนยัน ตัว ตน โหลด แอ พ สล็อต joker คิง ค อง slot เกม เล่น แล้ว ได้ เงิน ไม่ ต้อง ลงทุน เกม สล็อต pg แตก ง่าย slotxoth 22 กงล้อ ปั่น ฟรี xoclub99 สมัคร โหลด เกมส์ สล็อต pg ทดลอง ซื้อ ฟรี ส ปิ น sweet bonanza slot joker 1919 mm88win v8 joker slot 1788 mafia slot ทั้งหมด สล็อต ufa100 game slot789 ฝาก 10 รับ 100 สล็อต เว็บ ไหน ดี 2020 สมัคร เกม สล็อต joker โหลด เกม โจ๊ก เกอร์ 99 สล็อต ฝาก ผ่าน วอ เล็ ต epicwin โปร 100 โหลด เกม jokergame สล็อต เติม ไม่มี ขั้น ต่ํา ดาว โหลด เกม สล็อต live22 สล็อต ได้ ง่าย สล็อต มี ค่าย ไหน บ้าง หา เว็บ เล่น สล็อต สมัคร ubet89 สูตร บา คา ร่า ที่ แม่น ที่สุด 2020 joker1234 slot เกม ยิง ปลา pantipสล็อต ค่าย jiliเว็บ 168 joker123 pc ไอ ดี ไลน์ โจ๊ก เกอร์ สล็อต ที่ ดัง ที่สุด ทดลอง เล่น ค่าย joker โหลด เกม ออนไลน์ สล็อต gclub slot iphone fifa55 pantip เกมส์ ไพ่ ดั ม มี่ เงินสด www mm88fc vom mafia555 เครดิต ฟรี 50สล็อต คือ สมัคร โจ๊ก เกอร์ jdb ค่าย เกมส์ slot joker lucky god เกม สล็อต pussy รวม slot ทุก ค่าย โหลด เกมส์ สล็อต โจ๊ก เกอร์ pgautoslot เกม สล็อต หมุน ฟรี เครดิต ฟรี ฝาก 50 รับ 150 สมัคร ปั่น สล็อต roma slot joker demo ฝาก 100 รับ 250 โปร โม ชั่ น สล็อต ฝาก 10 บาท ได้ 100 ทาง เข้า xoslot joker slot 1234 jumbo joker pg soft slot online playlive88 joker pg slot joker ทดลอง เล่น สล็อต สวี ท โบ นั น ซ่า v9 slot joker ทาง joker สล็อต กา แล ค ซี่ slot พา รวย pg soft free play เกมส์ อะไร เล่น แล้ว ได้ เงิน จริง slot รวม ค่าย เว็บ สล็อต mafia สล็อต joker แตก บ่อย ล่าสุด สล็อต ที่ มี คน เล่น มาก ที่สุด 2020 slot joker777 เข้า เล่น ufa191 เว็บ เกมส์ โจ๊ก เกอร์ สล็อต พุ ช ชี่ a3ccc gclub1688 ทดลอง เล่น สล็อต ฟรี joker ซื้อ ฟรี ส ปิ น ค่าย pg โจ๊ก เก้อ เกม แนะ นํา เว็บ slot เกมส์ สล็อต sa สล็อต แบบ เติม วอ เลต แจก สูตร สล็อต xo เว็บ สล็อต ทดลอง เล่น เกม ออนไลน์ ฝาก ไม่มี ขั้น ต่ํา เล่น ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง เข้า เล่น เกม live22 skyslot88 joker โปรแกรม สร้าง สูตร บา คา ร่า สล็อต ฝาก วอ ล เลท 10 รับ 100 fifa55 ballsod ทาง pgslot pg 99 slot เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2019 pg slot ฝาก วอ เลท เข้า เว็บ โจ๊ก เกอร์ สล็อต สมัคร รับ ฟรี 100 ทาง เข้า เว็บ https www uro168club com ยูสเซอร์ ทดลอง เล่น pussy888 สล็อต 168 เครดิต ฟรี สล็อต รับ วอ ล เลท demo joker123 joker game winner55 สล็อต ฝาก ท รู วอ เลท ไม่มี ขั้น ต่ํา บา คา ร่า ฝาก 100 รับ 100 slot ใหม่ ๆ 123 vip casino 168 slot joker เกม slot999 pg slot วอ เลท สูตร บา คา ร่า ที่ แม่น ยํา ที่สุด yingplav1 เว็บไซต์ เล่น เกม ได้ เงิน ยิง ปลา ยิ่ง มี รา วา ส ยู ส ทดลอง เล่น slotxo ruby888 กระเป๋า เงิน joker168 auto สมัค โจ๊ก เกอร์ 123 เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน สมัคร ฟรี สล็อต slot แจก เครดิต ganesha fortune slot สล็อต joker ฝาก 10 รับ 100 pg pocket games แจก ทุน ฟรี ไม่ ต้อง ฝาก สล็อต ต่าง ประเทศ สล็อต เครดิต ฟรี 200 ไม่ ต้อง แชร์ หมุน วง ล้อ ได้ เงิน จริง ts911 lucky รวม ค่าย slot ผล บอล แม่น ยํา ล่าสุด เครดิต แจก ฟรี เกมส์ ยิง ปลา pantip pg soft demo วิธี สมัคร ole777 dummy online เงิน จริง joker ทดลอง เล่น โหลด โจ๊ก เกอร์ 123 เกม สล็อต 365 ทดลอง เล่น สล็อต เครดิต ฟรี joker slot 6688 สมัคร สล็อต ได้ เงิน ฟรี action joker slot ufavip848 แจก เครดิต ฟรี slot โร ม่า สล็อต ออนไลน์ wallet สล็อต wallet เครดิต ฟรี 2020 เว็บ ที่ มี สล็อต ทุก ค่าย เว็บ เล่น สล็อต ออนไลน์ ทาง เข้า joker1234 pg สล็อต เครดิต ฟรี slot แจก เครดิต ฝาก เงิน sbobetonline24 ปั่น สล็อต joker slot joker win ไพ่ป๊อก ได้ เงิน จริง สล็อต ส โบ เบ็ ต เว็บ สล็อต ฝาก 100 slot king888 สล็อต หมุน ฟรี ไม่ ต้อง ฝาก สล็อต โปร ดี เล่น เกม ไม่ ต้อง ลงทุน ได้ เงิน จริง epicwin สมัคร ฝาก 20 รับ 100 ท รู วอ เลท avenger slot ทดลอง เข้า สูตร บา คา ร่า ฟรี slotxoth live22 สมัคร scr779 20 รับ 100 live22 โจ๊ก เกอร์ ฝาก วอ เลท รับ เครดิต เดิมพัน ฟรี ติดต่อ sboibc888 pussy888 ดาวน์โหลด สล็อต ค่าย playstar สล็อต ได้ ง่าย ทาง เข้า joker 123 th ยูสเซอร์ ทดลอง เล่น xo สมัคร สมาชิก ใหม่ ฟรี เครดิต ไม่ ต้อง ฝาก สล็อต เติม ท รู วอ เลท ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง สล็อต avenger download slot pg แจก ฟรี สล็อต coin master ได้ เงิน จริง pgslot auto แจก โค้ด 333be 191 ยู ฟ่า สมัคร สล็อต ท รู วอ เลท ปั่น กงล้อ live22 เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2018 โปร สล็อต ฟรี ฝาก ผ่าน วอ ล เลท ฝาก ไม่มี ขั้น ต่ํา สล็อต joker ฟรี เว็บ สล็อต ไม่มี ขั้น ต่ํา สล็อต ไว กิ้ ง โจ๊ก เก อ เกม ไอ ดี เท ส joker ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง โหลด เกมส์ สล็อต live22 โหลด พุซซี่ 888 เว็บ สแกน สล็อต สล็อต ไม่มี ขั้น ต่ํา ฟรี โบนัส สมัคร epic slot โหลด 8richd เกม สล็อต ที่ แตก ดี ที่สุด เกม สล็อต apk sweet bonanza อยู่ ค่าย ไหน gamebet99 เครดิต ฟรี สล็อต ที่ แตก ง่าย 2020 สล็อต 918kiss เครดิต ฟรี ทดลอง เล่น สล็อต ออนไลน์ ฟรี pg soft slot เว็บ สล็อต คน เล่น เยอะ ที่สุด 48 slot pg slot55 joker ยูสเซอร์ ทดลอง เล่น live22 ทาง เข้า joker asia เว็บ สล็อต ที่ แตก ง่าย ที่สุด เกม แปะ แมว slotxo 35 สล็อต ไม่มี บัญชี ธนาคาร สมัคร slot เครดิต ฟรี สล็อต ออนไลน์ ฝาก ขั้น ต่ำ 50 avenger สล็อต slot mafia ฟรี เครดิต สล็อต ที่ เติม วอ เลต เบอร์ ติดต่อ ufabet365 สล็อต ที่ ดัง ที่สุด เข้า ระบบ โจ๊ก เกอร์ dafabet สล็อต แตก ง่าย joker123 สมัคร สมาชิก slotxo 365 สมัคร สล็อต ใหม่ รู บี้ 888 บา คา ร่า ถอน ขั้น ต่ำ 300เกม ออนไลน์ 666 เกม bonanza joker slot ฝาก ถอน ไม่มี ขั้น ต่ํา สล็อต พุซซี่ fifa55 สมัคร 50 live222th joker ufa191 ฝาก ถอน ได้ เอง แจก เครดิต ทดลอง เล่น ฟรี ไม่ ต้อง ฝาก เกม ฟรี เล่น ได้ เงิน จริง เครดิต สมาชิก ใหม่ dafabet เกม ได้ เงิน pg slot วอ เลท หมุน สล็อต ฟรี ได้ เงิน จริง สล็อต ค่าย jdb เกม ไหน แตก ง่าย รวม slot ทุก ค่าย สมัคร pg slot โปร 100 เว็บ สล็อต ไหน ดี สล็อต wallet เครดิต ฟรี 2020 vscr888 ios royal888 สมัคร สมัคร epicwin แอ ป สล็อต ได้ เงิน จริง ฝาก เงิน sbobetonline24 เว็บ สล็อต winner เกม 888 โล โย ออ น ลาย pg slot logo สมัคร slot online th โหลด เว็บ สล็อต ทาง เข้า joker1888 สมัคร เว็บ joker สมัคร copa89 เกม สล็อต แตก บ่อย slot spin999 joker สล็อต 91 เล่น สล็อต ไม่มี ขั้น ต่ํา เก ม์ สล็อต สล็อต ปั่น ฟรี 15 ครั้ง gclub slot เล่น ผ่าน เว็บ jokerth vip epicwin โปร 100 demo slot roma สล็อต รับ วอ เลต slot ฝาก 10 รับ 100 วอ เลท สูตร บา คา ร่า dg grand fifa555 hd line ts911 สมัคร สล็อต ออนไลน์ ฟรี เครดิต แจก user ทดลอง เล่น ฟรี 250 วิธี เล่น sweet bonanza ไท เกอร์ สล็อต เว็บไซต์ โจ๊ก เกอร์joker สล็อต 888 โจ๊ก เกอร์ เกมส์ 888 ทดลอง เล่น joker slot โหลด สล็อต 1234 โหลด เกม epicwin โหลด เกม โจ๊ก เกอร์ slot รวม ทุก ค่าย สล็อต ค่าย red tiger เล่น ไพ่ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง โปร โม ชั่ น วัน เกิด สล็อต แจก ทุน เล่น ฟรี joker ฝาก 10 รับ 100 วอ เลท สล็อต ฝาก ผ่าน วอ เล็ ต หมุน วง ล้อ สล็อต casinothai168 soccer slot ใหม่ ๆ เดิมพัน ฟรี ไม่ ต้อง ฝาก 2020 spin999 com สมัคร slot1168 joker slot ฝาก ท รู วอ ล เล็ ต โหลด แอ ป xo สล็อต ไม่ ใช้ บัญชี ธนาคาร เกมส์ ยิง ปลา รีวิว gucci slot joker slot nikigame slot joker xoth live 22 slot slot สบาย 99 โหลด โจ๊ก เกอร์ 69 สล็อต เกมส์ ไหน ดี โบนัส แตก บ่อย joker 2020 xoslot vip สมัคร สมาชิก ใหม่ เครดิต ฟรี สล็อต ออนไลน์ รวม ทุก ค่าย slot joker35 เกม สวี ท โบ นั น ซ่า อยู่ ค่าย ไหน เว็บ สล็อต เติม วอ เลต สล็อต ฝาก ผ่าน วอ เล็ ต สูตร บา คา ร่า sa game 1688 jokerth 999 game slot789 ฝาก 10 รับ 100 สล็อต มี ค่าย ไหน บ้าง วิธี แทง บอล sbobet slot joker lucky god สล็อต เติม true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา เว็บ โจ๊ก เกอร์ 666 พี จี สล็อต แจก ฟรี สล็อต โหลด โจ๊ก เกอร์ 123 mafia555 เครดิต ฟรี 50สล็อต คือ pantip สล็อต สล็อต wallet เครดิต ฟรี 2020 โหลด เกม joker สล็อต สล็อต ฟรี ส ปิ น ไม่ ต้อง ฝาก 2020 เกม ไพ่ แลก เงิน สล็อต 168 galaxy avenger slot ทดลอง slotxo 365 joker ฝาก สล็อต wallet เครดิต ฟรี 2020 สมัคร scr779 โหลด joker888 สร้าง โปรแกรม สูตร บา คา ร่า สมัคร เล่น เกม ได้ เงิน เกม สล็อต ออนไลน์ ได้ เงิน ufagoal168 ยูสเซอร์ 918kiss joker gaming เข้า สู่ ระบบ www gtr168bet สล็อต โจ๊ก เกอร์ ฝาก ผ่าน วอ เลท โหลด เกม avenger เข้า สู่ ระบบ ufa191 สูตร บา คา ร่า ห้อง sa สล็อต หมุน วง ล้อ ฟรี แล้ว ได้ เงิน สล็อต ออนไลน์ ฝาก 1 บาท รับ 100 เล่น เกม ฟรี ได้ เงิน จริง 2020 slotjoker เล่น หน้า เว็บ ถอนเงิน joker888 สมัคร joker ฝาก ไม่มี ขั้น ต่ํา slot ยืนยัน เบอร์ รับ เครดิต ฟรี slot24th pg ทาง เข้า joker1688 แจ้ง ฝาก sbobetstep golden สล็อต เงิน เดิมพัน ฟรี 2020 สล็อต xo ทดลอง ตัว เกม สล็อต xo ขั้น ตอน การ สมัคร เล่น เกม ดั ม มี่ ได้ เงิน จริง เล่น เกมส์ ไพ่ ได้ เงิน จริง ไม่ ต้อง ลงทุน รับ เครดิต ฟรี slot ทาง เข้า joker mvp มา รวย 99 apk แจก โค้ด bet911 slotjoker 666 เกม แคน ดี้ คา สิ โน แจก เงิน เดิมพัน ฟรี ดาวน์โหลด โจ๊ก เกอร์ 168แจก กระสุน ฟรี 300 ยู ส ทดลอง slotxo pg โปร 100 pg slot ฝาก ถอน ไม่มี ขั้น ต่ำ vscr888 ios เว็บ สล็อต ที่ คน เล่น เยอะ ที่สุด เกมส์ โจ๊ก เกอร์ slot mafia ฟรี เครดิต fifa55dna avenger slot ฟรี เครดิต สมัคร สมาชิก ใหม่ เครดิต ฟรี สล็อต โปร วัน เกิด เว็บ joker888 epicwin xo pg slot วอ เลท เล่น เกม 918 เครดิต ฟรี ปี ใหม่ เกม สล็อต pussy เกม สล็อต super ufa เกม 123 online รับ เงิน ฟรี 100 ดาวน์โหลด joker123 pc slot007 download ทาง เข้า ufa191 สมัคร สล็อต วอ เลท เว็บ สล็อต ดีๆ สล็อต royal online วง ล้อ เสี่ยง โชค ฟรี พุซซี่ 88 ฟรี เงิน เดิมพัน 2020 สล็อต ท รู วอ ล เล็ ต ไม่มี ขั้น ต่ํา ufavip848 แจก เครดิต ฟรี สล็อต ออนไลน์ ฝาก 1 บาท รับ 100 mafia slot 88 ไลน์ sbobet777 sweet bonanza xmas ทดลอง เล่น joker gaming fifa55 สล็อต โจ๊ก เกอร์ เกมส์ 888 joker game 999 เกม สล็อต โอน ผ่าน วอ เลท โหลด เกมส์ สล็อต 777 ยิง ปลา ยิ่ง มี รา วา ส 918kiss สมัคร สมาชิก โหลด เกม joker สล็อต โหลด เกม มา รวย 99 ios ตัว เกม 918kiss copa69 reward เกม ไพ่ ออนไลน์ เงิน จริง slotjoker เล่น หน้า เว็บ เว็บ สล็อต โดยตรง โจ๊ก เกอร์ วอ เลท สล็อต โปร วัน เกิด เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2020 โหลด เกมส์ สล็อต 1234 pg ฟรี สร้าง โปรแกรม สูตร บา คา ร่า pussy888 win yingplav1 ยูสเซอร์ ทดลอง เล่น king168 slot vip เครดิต ฟรี สล็อต ฝาก ผ่าน วอ เล็ ต เกม ยิง ปลา pantipสล็อต ค่าย jiliเว็บ 168 slot joker 777 ฝาก วอ เลท v9 slot joker สล็อต ออนไลน์ ไม่ ต้อง ฝาก สล็อต 888 แตก ง่าย สูตร บา คา ร่า เข้า ได้ ทุก เว็บ avenger slot ทดลอง ค่าย เกม สล็อต pg fifa55me joker gaming เข้า สู่ ระบบ แจก เค ดิ ต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เล่น สวี ท โบ นั น ซ่า demo pg slot vscr888 ios slot joker 1888 joker slot 1788 สล็อต เล่น ผ่าน วอ เลท สมัคร sboaaaa epicwin bet slot4u epicwin เกมส์ สล็อต fifa55 สมัคร joker game slotxo ยิง ปลา เว็บไซต์ โจ๊ก เกอร์joker สล็อต 888
            ninja 777 สล็อต| ทาง เข้า sbo slot club| casino hacker 6in1| ninja 777 สล็อต| สมัคร เอ เย่ น mm8bet| ufa191 app| laosbet88 สมัคร| gclub group| m online sbobet| โหลด royal online v2 apk| ทาง เข้า เอเย่นต์ sbobet| ninja 777 สล็อต| sbobet มือ ถือ android| ยู ฟ่า 191 pantip| ทาง เข้า ส โบ อัพเดท| เจษฎา เบ ท pantip| royal online v2 โหลด| หน้า เล่น sbo| ligaz888 สมัคร| casino hacker 6in1| เข้า เว็บ sbo| สมัคร ligaz888| angel88 slot| โรงแรม ใน ปอย เปต| เจษฎา เบ ท 888| รอยัล ออนไลน์| รถ ไป บ่อน ปอย เปต| book of ra temple of gold| fun888 mobile| sbo เข้า ไม่ ได้| ช่อง ทาง เข้า sbo| download royal online v2| sbobet อัพเดท ล่าสุด| slot happy| temple of tut| หน้า เล่น sbo| big cat slot| big cat slot| ดาวน์โหลด royal online v2 มือ ถือ| royal online v2 ฝาก เงิน| slot cat 777d| ทาง เข้า sbo slot club| royal online v2 มือ ถือ apk| royal online lao| เจษฎา เบ ท ปิด ตัว| gclub group| load gclub| เข้า เล่น sbobet| load gclub| slot hacker program| ทาง เข้า sbobet 168| slot hacker download| slot hacker program| เว ป เจ ษ ล่ม| เว ป เจ ษ 111| royal online apk| temple of tut| สมัคร เอ เย่ น mm8bet| สมัคร ak47bet| หน้า เว็บ sbobet| the casino hacker| 1 million megaways| mega ways| โหลด royal online v2| ทาง เข้า sbo อัพเดท ล่าสุด| diamond cats slot|