• <em id="39s2N0k"></em>

  • <em id="39s2N0k"></em>
        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
         
        วิธี เล่น sweet bonanza ทดลอง เล่น สวี ท โบ นั น ซ่า ฟรี slot jokergame slot เค ดิ ต ฟรี ไม่ ต้อง ฝาก ufa slot อัน ไหน ดี slot nikigame แจก โค้ด 333be ดาว slotxo pg slot auto slot โปร วัน เกิด เกม หาเงิน เครดิต ฟรี123 สล็อต avenger slot สมัคร สล็อต rt เครดิต ฟรี เครดิต ฟรี 2020 สล็อต เล่น เกม ได้ ตัง ฟรี ทดลอง เล่น สล็อต ค่าย joker joker123 ฝาก เงิน ออนไลน์ สล็อต สล็อต 888 แตก ง่าย โหลด เกม ออนไลน์ ได้ เงิน จริง สล็อต ใน ไลน์ ufa007 pantip สล็อต เติม ท รู วอ เลท ดาวน์โหลด เกมส์ สล็อต โหลด ตู้ สล็อต ผล ไม้ joker game ทาง เข้า ทาง joker โบ นั น ซ่า สล็อต sagame 1111 เล่น slot online slot รวม ทุก ค่าย โจ๊ก เกอร์ 911 ts911 goal เกมส์ ล็ อ ต 777 โหลด 918kiss ไม่ ได้ เกม สล็อต gtm ts911 casino สล็อต ปลา นี โม่ โหลด แอ พ สล็อต joker สล็อต ค่าย pt demo game pg soft ทาง เข้า slot joker ufa168s โปร slot 100 pg soft mahjong 2 รอยัล สล็อต เครดิต ฟรี สล็อต ที่ แตก บ่อย ที่สุด ่ joker slot 2p slot joker สล็อต แตก บ่อย ที่สุด พอ ส ซี่ 888 เว็บ ที่ มี สล็อต ทุก ค่าย ts911 royal สมัคร slot เครดิต ฟรี demo pg soft ฝาก ขั้น ต่ำ 50 สล็อต ครบ ทุก ค่าย big win slotxo slot168 gaming พอ ส ซี่ 888 เว็บ pg สล็อต ฝาก ถอน ผ่าน วอ เลท pg soft mahjong pg888 slot เกม ดั ม มี แลก เงิน slot1234 pg เครดิต ฟรี สล็อต ออนไลน์ เว็บ สล็อต ฝาก 10 รับ 100 slot pg auto โค้ด เครดิต ฟรี 333be slotjoker true wallet ไม่มี ขั้น ต่ํา วิธี สมัคร ufa191 สล็อต ออนไลน์ 222 sweet bonanza อยู่ ค่าย ไหน สล็อต rt เครดิต ฟรี หมุน ฟรี 15 ครั้ง โปร โม ชั่ น สล็อต ฝาก 1 บาท ได้ 100 เล่น roma เล่น โจ๊ก เกอร์ slot roma demo load joker123 เว็บไซต์ โจ๊ก เกอร์ demo slot captain bounty เกม เล่น ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต avenger สูตร บา คา ร่า เซ๊ ก ซี่ joker888 auto ปัน ส ล๊ อ ต ฟรี มา รวย 99 apk app เล่น ไพ่ ได้ เงิน จริง เว็บ slot ออนไลน์ โหลด เกมส์ คา สิ โน สล็อต เว็บ ไหน แตก ง่าย โหลด 918kiss ลง คอม slotxo galaxy ค่าย เกม สล็อต แตก ง่าย fifa55 pantip เกมส์ slot casino สล็อต เครดิต ฟรี 200 ไม่ ต้อง แชร์ ดาวน์โหลด live22 easy สมัคร ubet89 sweet bonanza เทคนิค สล็อต ais สล็อต สบาย ดี 99 สล็อต ออ น ลาย โปร ฟรี สล็อต สล็อต ฝาก เงิน ท รู วอ ล เล็ ต โหลด สล็อต มาเฟีย 88 48 slot pg joker slot 169 แท่ง บอล 3m สล็อต ท รู วอ ล เล็ ต ไม่มี ขั้น ต่ํา sweet bonanza ทดลอง ซื้อ ฟรี ส ปิ น เกม แคน ดี้ เครดิต ฟรี สูตร บา คา ร่า ที่ ใช้ได้ จริง โหลด แอ พ สล็อต รับ เครดิต ฟรี slot gam สมัคร เว็บ slot สูตร บา คา ร่า ที่ แม่น ที่สุด 2020 เว็บ เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน pg slot apk download เกม สล็อต ออนไลน์ ทดลอง เล่น ฟรี เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน ติดต่อ sboibc888 สล็อต ทดลอง เล่น ได้ เงิน จริง slot joker download slot joker 555 jokerslotth โบนัส เกม สล็อต roma slot joker demo สล็อต ฝาก เงิน ท รู วอ ล เล็ ต ตู้ คา สิ โน สมัคร สล็อต joker โบนัส 100 สล็อต 888 แตก ง่าย เกม สล็อต เกม ไหน แตก ง่าย สุด สมัคร sweet bonanza pussg888 123 joker gclub slot เล่น ผ่าน เว็บ ทาง เข้า joker หน้า เว็บ betflix24 สมัคร สมาชิก joker gaming download ทาง เข้า joker ผ่าน เว็บ ฝาก 50 ฟรี slot gold 789 สล็อต เว็บ ไหน ดี แตก ง่าย 2020 เว็บ สล็อต ฝาก ท รู วอ ล เล็ ต lucky god 2 jokerking99 joker slot 9988 123xbet สล็อต เติม วอ ล เล็ ท slot pg soft joker slot sf joker เกม ไหน แตก ง่าย สมัคร scr99th เกม ผล ไม้ ได้ เงิน จริง epicwin bet slot mafia ทั้งหมด สล็อต สมัคร ฟรี เครดิต ฟรี slot joker777 บา คา ร่า ใบ เดียวทีเด็ด บอล เต็ง วัน นี้ v2 joker slot 8868 แจก เครดิต ทดลอง เล่น ฟรี 1000 ถอน ได้ สล็อต หมุน ฟรี ไม่ ต้อง ฝาก เล่น เกม ได้ ตัง จริง ไม่ ต้อง ลงทุน สมัคร สมาชิก ใหม่ joker joker ฝาก joker123th เล่น ผ่าน หน้า เว็บ เล่น เกมส์ 918kiss betflix24 line สมัคร สมาชิก ใหม่ รับ ฟรี เครดิต v9slot pg เกม สล็อต pussy ทาง เข้า copa88 ทาง เข้า โจ๊ก เกอร์ เว็บ ที่ สล็อต แตก ง่าย ยูสเซอร์ ทดลอง เล่น live22 joker ท รู วอ ล เลท joker 123 pussy888 pc slot joker เว็บ ไหน ดี slot โปร ฝาก 1 บาท รับ 100 บา คา ร่า ใบ เดียวทีเด็ด บอล เต็ง วัน นี้ v2 เกม slot ฟรี โหลด สล็อต 1234 sweet bonanza ทดลอง เล่น โหลด ตัว เกม 918kiss สล็อต ไท เกอร์ copa69 reward เว็บ สล็อต แตก ดี เกม สล็อต 365 สล็อต ฝาก วอ ล เลท สวี ท โบ นั น ซ่า อยู่ ค่าย ไหน พุ ช ชี่ 888 วอ เลท เกม สล็อต คิง ค อง slotxo เกมส์ ไหน ดี สล็อต ออนไลน์ ฟรี เครดิต ถอน ได้ สล็อต 777 ฝาก ขั้น ต่ํา 100 ถอนเงิน joker888 ฟรี เงิน เดิมพัน 2020 ทดลอง เล่น สล็อต joker โร ม่า เกมส์ สล็อต sa เล่น เกม สล็อต 888 สล็อต เว็บ ไหน แตก ดี เว็บ สล็อต mafia สมัคร เล่น เกม ได้ เงิน จริง หมุน สล็อต ได้ เงิน เครดิต ฟรี ปี ใหม่ โหลด pgslot99 agen slot pg soft สล็อต ได้ ง่าย ฟัน สิงโต โร ม่า เครดิต ฟรี 2020 สล็อต เล่น เกม ฟรี เครดิต pg slot ฝาก วอ ล เล็ ต ติดต่อ joker123 วิธี เล่น sweet bonanza เว็บ joker8899 สล็อต ฝาก ไม่มี ขั้น ต่ํา วอ เลท ปั่น สล็อต แตก 55 slotxo สมัคร epic slot เว็บไซต์ โจ๊ก เกอร์joker สล็อต 888 slot ฝาก ทาง วอ เลท แจก ฟรี 300 สล็อต เกม ยิง ไข่ ได้ เงิน จริง สล็อต joker เครดิต ฟรี ไม่ ต้อง ฝาก สล็อต แตก ง่าย แตก บ่อย โค้ด 333be ล่าสุด 2020 slot ไท เกอร์ สล็อต joker แตก บ่อย ล่าสุด all slot 168 ฟรี เดิมพัน ไม่ ต้อง ฝาก slot demo pg soft ufabet1688 com main aspx สล อ ต 168 joker168 สมัคร สล็อต ฟรี 2020 เกม สล็อต pussy สล็อต ฟรี เครดิต 2562 joker123 thailand slot สมัคร รับ เครดิต ฟรี ทันที โจ๊ก เกอร์ ออ โต้ 123 แอ พ เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน ฝาก 20 รับ 100 ท รู วอ เลท joker slot หน้า เว็บ เข้า เกม สล็อต ไม่ ได้ สล็อต gp เล่น สล็อต บน เว็บ เกม สวี ท โบ นั น ซ่า อยู่ ค่าย ไหน www mm88fc vom ทาง เข้า โจ๊ก เกอร์ slotxoth live22 สมัคร ดั ม มี ออนไลน์ ได้ เงิน จริง ี ufa168bet เกม ตู้ ออนไลน์ แจก เงิน เดิมพัน ฟรี ทาง เข้า เว็บ โจ๊ก เกอร์ เกม โจ๊ก เกอร์ แตก ง่าย เล่น โจ๊ก เกอร์ เกม สล็อต โบนัส ฟรี slot joker download เครดิต แจก ฟรี 2020 สมัคร สล็อต w88 สล็อต ฟรี ส ปิ น ถอน ได้ สมัคร ยิง ปลา รับ เครดิต ฟรี สล็อต pg แตก ง่าย ป๊อก เด้ง ได้ เงิน จริง jokergame pgslot รับ เครดิต ฟรี ยิง ปลา joker game โจ๊ก เกอร์ เกมส์ เกม สล็อต ฝาก 10 รับ 100 สล็อต สมัคร ฟรี เครดิต ฟรี สล็อต มือ ถือ ที่ ดี ที่สุด แจ็ ค พอ ต joker เกม เม ก้า 888 สมัคร เว็บ slot demo slot captain bounty slot ยอด ฮิต ทดลอง เล่น ค่าย joker jokerslot89 สล็อต แจก เงิน เล่น ฟรี slot joker 6886 สล็อต ไม่มี ขั้น ต่ำ ยอด นิยม โปร สมาชิก ใหม่ 100 สล็อต เว็บ สล็อต ที่ มี คน เล่น มาก ที่สุด แท่ง บอล 168 โจ๊ก เกอร์ 123 ทาง เข้า ibet789 สล็อต สล็อต ฝาก ทาง วอ เลท เกม sweet bonanza ได้ เงิน จริง ไหม เกม แคน ดี้ ฟรี เครดิต บอล วัน นี้ fifa55 โจ้ ก เก้อ ส ล้อ ต สล็อต 918 ฟรี เครดิต ไม่ ต้อง ฝาก เงิน 2020 เล่น สล็อต ไม่มี ขั้น ต่ํา โหลด เกม pussy สล็อต ส โบ เบ็ ต top play99 สล็อต อา แปะ ทดลอง เล่น สล็อต ฟรี joker joker slot 8668 เว็บ พุซซี่ 888 โหลด เกม avenger สล็อต pg 99 ฝาก ถอน sbobetstep เกม เล่น ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต ฝาก ด้วย วอ ล เลท ทดลอง เล่น สล็อต ค่าย โจ๊ก เกอร์ สล็อต เติม ไม่มี ขั้น ต่ํา สล็อต โอน ผ่าน วอ ล เล็ ต โหลด เกม 888 royal1688 เล่น ผ่าน โทรศัพท์ ดั ม มี่ กิน ตัง จริง เว็บ เล่น เกมส์ ได้ เงิน mafia1688 เข้า สู่ ระบบ www ufa 700 dummy เงิน จริง สล็อต พุ ช ชี่ 888 โปร สมาชิก ใหม่ 100 สล็อต ยู ส ทดลอง joker เกม ทดลอง สล็อต สล็อต เติม ขั้น ต่ำ 1 บาท สล็อต 4444 thai mini game joker ฝาก ผ่าน ท รู วอ ล เล็ ต ทาง เข้า fifa55asia epicwin โปร โม ชั่ น โปร 100 joker ดาวน์โหลด joker123th โหลด เกม slot1234 โหลด เกม เล่น ได้ เงิน จริง 48pgslot casinothai168 soccer รอยัล สล็อต เครดิต ฟรี สมัคร สล็อต วอ ล เล็ ต โจ๊ก เกอร์ ฝาก วอ เลท เข้า สู่ ระบบ joker88 slot 168 club สมัคร เกม ออนไลน์ ได้ เงิน จริง slot369 joker joker123 โหลด ทาง เข้า joker asia bet สล็อต เครดิต ฟรี เกมส์ สล็อต โจ๊ก เกอร์ 888 สมัคร สมาชิก joker 918kiss สมัคร สมาชิก สล็อต 1 บาท ก็ ฝาก ได้ เว็บ บอร์ด joker game เล่น โจ๊ก เกอร์ เว ป slotxoสล็อต โจ๊ก เกอร์ 8899 โหลด เกม pussy88 พุซซี่ 888 ดาวน์โหลด สมัคร เว็บ slot เว็บ เกม เล่น แล้ว ได้ เงิน เงิน เดิมพัน ฟรี ไม่ ต้อง ฝาก slot007 ทาง เข้า รวม สล็อต ทุก ค่าย line joker123 slot mafia ทั้งหมด โจ๊ก เกอร์ ฝาก ผ่าน วอ เลท โปร epicwin candy สล็อต เกม สล็อต เงิน จริง มือ ถือ แจก ฟรี 100 บาท หมุน วง ล้อ 918kiss เว็บ สล็อต ออนไลน์ ฟรี โหลด แอ ป เกม โจ๊ก เกอร์ โหลด เกม luk666 สล็อต ฝาก เงิน ท รู วอ ล เล็ ต ป๊อก เด้ง ออนไลน์ มือ ถือ ได้ เงิน จริง แจก จริง ไม่ ต้อง แชร์ ดาว โหลด เกม สล็อต live22 สมัคร สวี ท โบ นั น ซ่า 168slotxo pg สล็อต ฝาก ขั้น ต่ํา 50 บาท demo slot online pg soft สล็อต ออนไลน์ ยิง ปลา jokerth 999 slot ฝาก 10 รับ 100 ฝาก ผ่าน ท รู วอ เลท รวม สล็อต ทุก ค่าย ใน เว็บ เดียว เกม สล็อต แลก เงิน จริง ทาง เข้า โจ๊ก เกอร์ 123 ผ่าน หน้า เว็บ joker slot 91 เครดิต สมาชิก ใหม่ เครดิต ฟรี สล็อต ออนไลน์ โหลด เกม slot1234 ทาง เข้า joker mobile สล็อต หมุน ฟรี เครดิต ฟรี 20 รับ 100 live22 ufa 600 ทาง เข้า joker1888 ทาง joker123 ผล บอล แม่น ยํา แต้ม รีวอร์ด fun88 คือ joker 10000 slot แตก ง่าย 2020 สล็อต ค่าย playstar ฝาก 300 รับ เพิ่ม 200 winner88 club com coin master ได้ เงิน จริง ดาว โหลด joker สล็อต epicwin bet joker gaming ผ่าน เว็บ เว็บ โจ๊ก เกอร์ 89 สมัคร joker mvp gclub slot iphone เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน ขอ เงิน ฟรี 2019 slot ทดลอง เล่น roma slot joker แตก ง่าย ซื้อ ฟรี ส ปิ น pg slot สล็อต ฟรี 2000 super ufa slot joker mvp สมัคร slot joker เปิด ใหม่ โหลด เว็บ โจ๊ก เกอร์ เล่น เกม ได้ เงิน 2020 ไม่ ต้อง ลงทุน สมัคร marwin slot โจ๊ก เกอร์ 388 mm88fc ดี ไหม joker auto slot 20 รับ 100 วอ เลท สล็อต เครดิต ฟรี 18 บาท สล็อต ออนไลน์ โปร โม ชั่ น เว็บ มังกร 888 รวม ค่าย เกม สล็อต สูตร บา คา ร่า เข้า ทุก ไม้ สล็อต ลาว สล็อต โบนัส เฮา ส์ สมัคร joker mvp ่ joker game สมัคร โจ๊ก เกอร์ 89 มา รวย 99 apk ยิง ปลา png เว็บ โจ๊ก เกอร์ 89 เว็บ ไหน สล็อต แตก ง่าย roma slot joker demo joker slot ทดลอง ฝาก ผ่าน ท รู วอ ล เล็ ต slot joker 999 ทาง เข้า โจ๊ก เกอร์ รวม ค่าย สล็อต ใน เว็บ เดียว happyluke999 สล็อต ufa100 joker ฝาก 20 รับ 100 วอ เลท slot6886 auto jokerth mafia 1688 เกม สล็อต ผ่าน วอ เล็ ตสล็อต ออนไลน์ 888 ดาว โหลด พุ ช ชี่ 888 โหลด เกมส์ สล็อต 918kiss พุซซี่ 88 dafabet สล็อต แตก ง่าย pg สล็อต เครดิต ฟรี สล็อต ออนไลน์ ฝาก 10 รับ 100 เกม ทดลอง สล็อต เล่น สล็อต บน เว็บ วิธี สมัคร ole777 avenger 777slot เกม ได้ เงิน ไม่ ต้อง ลงทุน สล็อต วัน เกิด ufa แจก เครดิต ฟรี 100 siam slot168 มาเฟีย 88 สูตร บา คา ร่า ที่ แม่น ยํา ที่สุด ดาวน์โหลด สล็อต โจ๊ก เกอร์ 168 สมัคร sboaaaa สล็อต ออนไลน์ สมัคร ฟรี เอ เย่ น joker สล็อต ปลา นี โม่ โหลด เกม ออนไลน์ ได้ เงิน จริง สมัคร joker688 slot โปร วัน เกิด โหลด fhm99 สล็อต 777 ฟรี เครดิต 2019 สูตร บา คา ร่า ที่ แม่น ยํา ที่สุด สมัคร สมาชิก ใหม่ เครดิต ฟรี pg soft free play เกมส์ เล่น ได้ เงิน จริงๆ ts911 casino สล็อต gp 123 vip casino เว็บ สล็อต วอ ล เล็ ต สล็อต เล่น ง่าย ได้ เงิน เล่น เกม ได้ ตัง จริง ไม่ ต้อง ลงทุน slot ฝาก 10 บาท ฟรี 90 บาท 2020 ดาว โหลด joker slot pg gaming slot เครดิต ฟรี กด รับ ได้ เลย ทาง เล่น joker โบนัส joker ทดลอง สล็อต roma เกม ออนไลน์ มือ ถือ ได้ เงิน จริง เครดิต ฟรี ฝาก 50 รับ 150 ดาวน์โหลด เกม พุซซี่ 888 ทาง เข้า เล่น เกม โจ๊ก เกอร์ แจก เครดิต ทดลอง เล่น ฟรี 2019 เว็บ รวม สล็อต ทุก ค่าย sbobet สล็อต slot ฝาก ผ่าน ท รู วอ เลท โหลด แอ พ สล็อต รับ เครดิต ฟรี สมัคร โจ๊ก เกอร์ xo joker ฝาก 20 สล็อต สมัคร เครดิต ฟรี แจก โบนัส สล็อต โหลด เกม รับ เครดิต ฟรี เว็บ สล็อต โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ํา เกม สล็อต ฝาก 1 บาท สล็อต เกมส์ ไหน ดี สล็อต gp สล็อต joker88 เกม สวี ท โบ นั น ซ่า อยู่ ค่าย ไหน หน้า เว็บ โจ๊ก เกอร์ demo pg slot โปร เค ดิ ต ฟรี slot ให้ เครดิต ฟรี ฟรี เค ดิ ต ไม่ ต้อง ฝาก เกม ลงทุน น้อย fifa55 ดี ไหม ครับ viewbet 888 เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2020 sagame 1111 เว็บ รวม สล็อต ทุก ค่าย joker slot 9988 สล็อต แจก เครดิต ฟรี 20 บาท ทาง เข้า สล็อต 168 mafia slot 777 เกมส์ เงิน จริง สล็อต ได้ เงิน จริง pantip 10 รับ 100xo โจ๊ก เกอร์ 8888 happyluke999 สล็อต ผ่าน ท รู วอ ล เล็ ต call ufa700 slot เติม เงิน วอ เลท โหลด สล็อต xoth pgslot ฝาก ถอน auto star vegas แจก เครดิต ฟรี ขอ เงิน ฟรี 2019 ดาว โหลด ฟุ ด ชี้ 888 สล็อต ให้ ทุน ฟรี สล็อต เติม วอ เลต slot ทดลอง เล่น roma ไพ่ป๊อก เด้ง เงิน จริง ทาง เข้า เว็บ ufa191 สล็อต ครบ ทุก ค่าย แจก เครดิต ทดลอง เล่น ฟรี ไม่ ต้อง ฝาก สล็อต เติม วอ ล เล็ ท เงิน เดิมพัน ฟรี ไม่ ต้อง ฝาก แจก เครดิต ทดลอง เล่น ฟรี 2019 ตัว เกม xo pg slot 198 เล่น ไพ่ป๊อก เด้ง ได้ เงิน จริง หมุน วง ล้อ live22 joker slot ทดลอง ทดลอง เล่น สล็อต ค่าย โจ๊ก เกอร์ 123vip สมัคร mafia88 สล็อตแทง บอล วัน นี้ เว็บ โจ๊ก เกอร์ เกม รับ เครดิต เล่น ฟรี เกม ยิง ปลา เว็บ ไหน ดี สุดKeyword เกม โร ม่า สล็อต โหลด เกม มาเฟีย 88 joker vip th ดาวน์โหลด โจ๊ก เกอร์ 168 pussy888 หน้า เว็บ เว็บ สล็อต ฝาก 10 ได้ 100 สล็อต ไว กิ้ ง ค่าย ไหน เกมส์ slot machine ฟรี ufavip848 แจก เครดิต ฟรี เกม ทดลอง สล็อต แจก ฟรี เครดิต ทดลอง เล่น สล็อต ท รู วอ ล เล็ ต ไม่มี ขั้น ต่ํา slot joker8899 สล็อต pg 99 jokergod164 ไลน์ joker joker madness slot โหลด เกมส์ 888 โหลด starvegas เล่น 918 โหลด เกม ace333 ฝาก 10 รับ 100 epicwin สล็อต สมัคร ผ่าน วอ เลท รับ เครดิต ฟรี slot pg slot แตก ง่าย th888casino เล่น เกม ได้ เงิน 2020 ไม่ ต้อง ลงทุน pg auto slot joker แตก ง่าย star vegas แจก เครดิต ฟรี โหลด แอ พ pussy888 สล็อต 10 ฟรี 100 โหลด เกมส์ สล็อต pc สล็อต โปร ฝาก 1 บาท รับ 100 joker2020 slot jokerslotth roma slot demo ดาว โหลด pgslot โหลด เกม มาเฟีย 88 vegus69 สมัคร เกมส์ สล็อต sa สล็อต ค่าย sg ทดลอง แจก ฟรี สมาชิก ใหม่ แทง สล็อต ออนไลน์ สล็อต วอ เลท เครดิต ฟรี โหลด เกมส์ สล็อต ฟรี โจ๊ก เก้อ เกม สล็อต หมุน วง ล้อ ฟรี แล้ว ได้ เงิน ปั่น สล็อต ฟรี pg สล็อต ฟรี เงิน เกมส์ สล็อต โจ๊ก เกอร์ เกม ยิง ปลา pantipสล็อต ค่าย jiliเว็บ 168 joker magix99 เล่น เกม ได้ เงิน ไม่ ต้อง ลงทุน joker ฝาก 20 รับ 100 วอ เลท โจ๊ก เกอร์ 24 สล็อต 168 galaxy สล็อต เติม วอ ล เล็ ท เกม สล็อต ผ่าน วอ เล็ ตสล็อต ออนไลน์ 888 สล็อต ออนไลน์ 77 ปั่น สล็อต joker โจ๊ก เกอร์ 388 โหลด เกมส์ slotxo สมัคร โจ๊ก เกอร์ xo สมัคร fifa1234 ufa191 เข้า สู่ ระบบ joker 1 บาท ก็ รวย ได้ viewbet 888 riches888 ดาวน์โหลด ทาง เข้า joker หน้า เว็บ royal1688 มือ ถือ ดาวน์โหลด เกมส์ สล็อต pg24 slot สล็อต รวม ทุก ค่าย 918kiss สมัคร สมาชิก dafabet เกม ได้ เงิน เกม สล็อต ออนไลน์ pg slot joker 10 รับ 100 สมัคร ขั้น ต่ำ 50 โหลด เกม ออนไลน์ สล็อต joker1888 สมัคร สล็อต ค่าย epic sbobetstep แจ้ง ถอน สล็อต ได้ เงิน เยอะ ี ufa168bet เล่น ไพ่ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ทาง เข้า joker หน้า เว็บ แคน ดี้ แจก เครดิต ฟรี ไม่ ต้อง ฝาก การ สมัคร สล็อต ออนไลน์ โจ๊ก เกอร์ 69 แจก user ทดลอง เล่น ฟรี 2019 แอ พ เกม สล็อต xo mafia 168 slot แนะ นํา เว็บ เล่น สล็อต สมัคร เล่น สล็อต เครดิต ฟรี fifa555 hd www i99pro สล็อต joker วอ เลท joker123 สล็อต สมัคร รับ ฟรี 100 ทดลอง เล่น สวี ท โบ นั น ซ่า ฟรี joker123 thailand สล็อต เครดิต ฟรี 20 โปร เว็บ สล็อต slot joker 666 ฝาก 100 ฟรี 400 sweet bonanza ซื้อ ฟรี ส ปิ น สล็อต ที่ แตก ดี ที่สุด โหลด สล็อต โจ๊ก เกอร์ การ ปั่น สล็อต ดาว โหลด joker slot สล็อต ที่ ดี ที่สุด ตอน นี้ slot พา รวย slot pg แตก ง่าย ส โบ เบ็ ต 999 star vegas แจก เครดิต ฟรี 10 รับ 100xo app สล็อต joker 123 th download dragon slotxo หมุน สล็อต ฟรี 15 ครั้ง slotxo galaxy รับ เครดิต ฟรี mafia แจก จริง ไม่ ต้อง แชร์ สล็อต joker88 fifa55 dash dummy online เงิน จริง ติดต่อ ufabet365 35pg slot pg slot allslot auto สล็อต ไว กิ้ ง สมัคร เกม joker sagame 1111 ยูสเซอร์ ทดลอง เล่น mega888 โจ๊ก เกอร์ วอ เลท สล็อต เม ก้า 888 sweet bonanza อยู่ ค่าย ไหน เกม สล็อต รับ เครดิต ฟรี สล็อต เครดิต ฟรี 200 ไม่ ต้อง แชร์ เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2018 สล็อต เติม เงิน ผ่าน ท รู วอ ล เล็ ต ค้นหา เกม สล็อต slot live22 easy ป๊อก เด้ง ออนไลน์ แจก เครดิต ฟรี slot joker ฝาก 50 เว็บ สล็อต รวม ค่าย auto pg slot สล็อต rt เครดิต ฟรี โปร โม ชั่ น สล็อต ฝาก 1 บาท ได้ 100 สล็อต ไว กิ้ ง mafia เกม สล็อต lucky god 2 เล่น สวี ท โบ นั น ซ่า สล็อต แจก เงิน เล่น ฟรี เล่น slot007 ผ่าน เว็บ เกม เล่น แล้ว ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต 168 gaming สล็อต วอ เลท ไม่มี ขั้น ต่ํา สูตร บา คา ร่า ที่ แม่น ยํา ที่สุด เล่น สล็อต ฟรี ได้ เงิน จริง ไหม เว็บไซต์ โจ๊ก เกอร์ sagame 1111 pg slot 88 โหลด เกม มา รวย 99 ios joker roma demo เข้า เกม สล็อต ไม่ ได้ ufascr v2 เม กา 888 สล็อต รับ วอ ล เลท sbobetstep แจ้ง ถอน mafia1688 download สล็อต ที่ ได้ เงิน ง่าย ที่สุด สล็อต ufa100 pg slot1688 เว็บ เกมส์ สล็อต โหลด เกม starvegas slot joker free fifa555 hd ทาง เข้า เว็บ https www uro168club com โหลด เกม โจ๊ก เกอร์ 99 slot24th pg แจก เครดิต หวย ฟรี xoclub99 สมัคร เกม ค่าย pg แตก ง่าย สล็อต โจ๊ก เกอร์ เติม true wallet ไม่มี ขั้น ต่ํา ติดต่อ joker123 demo slot online pg soft สล็อต a ถอนเงิน fifa555 ไม่ ได้ joker เข้า ระบบ สล็อต joker เติม true wallet ไม่มี ขั้น ต่ํา ts911 goal โจ๊ก เกอร์ 168 แจก เงิน เดิมพัน ฟรี ไม่ ต้อง ฝาก บา คา ร่า ฝาก 10 รับ 100 betflix24 สมัคร สมาชิก panda888 slot สล็อต เครดิต ฟรี 18 บาท เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2020 joker ฝาก 10 รับ 100 วอ เลท สล็อต ท รู มัน นี่ สล็อต โปร ดี ไม่มี ฝาก ขั้น ต่ํา pg slot download android สล็อต ให้ เครดิต ฟรี วิธี สมัคร ole777 เครดิต ฟรี avenger ทดลอง ยิง ปลา joker slot joker1688 th joker slot roma demo เครดิต ฝาก 20 รับ 100 joker99 slot เครดิต ฟรี avenger สล็อต แตก ง่าย แตก บ่อย สมัคร ดั ม มี่ ออนไลน์ ได้ เงิน จริง สล็อต 123goal สล็อต ฝาก ผ่าน วอ เล็ ต เกม ฟรี โบนัส ufa slot แตก ง่าย สล็อต 100 บาท 123 vip casino v9 slot joker ไอ ดี เท ส joker สล็อต ค่าย sa โหลด พุ ช ชี่ 888 วิธี แทง บอล ออนไลน์ sbobet slot avenger เกม 88 joker slot joker ทดลอง เล่น ฟรี joker aec999 สูตร บา ค่า ร่า ที่ แม่น ที่สุด แจก เครดิต ทดลอง เล่น ฟรี epicwin77 เครดิต ฟรี slotxo เข้า ระบบ joker slot5g เข้า ระบบ โจ๊ก เกอร์ สล็อต ค่าย epic ส ล๊ อ ต 123joker เว็บ สล็อต gott7 ซื้อ ฟรี ส ปิ น pg slot เกม ทดลอง สล็อต ฟัน สิงโต โร ม่า ไลน์ sbobet777 supreme caishen slot copa89 ดี ไหม 918kiss โหลด ไม่ ได้ สล็อต โจ๊ก เกอร์ 999 golden joker slot ราคา บอล ส เต็ ป 99 เกม ตี ตุ่น เครดิต ฟรี pg slot เว็บ ตรง slot ฝาก แรก ของ วัน mm88win v2 ทาง เข้า เว็บ 168 สมัคร fifa1234 ทาง เข้า เล่น โจ๊ก เกอร์ ทดลอง เล่น ยิง ปลา joker เว็บ สล็อต ฝาก ท รู วอ ล เล็ ต เกม ดั ม มี แลก เงิน pussy888 โกง เว็บ สล็อต วอ เลท ts911 asia สล็อต ได้ เงิน จริง pantip วัน นี้ สล็อต ตัว ไหน แตก สล็อต เค ดิ ฟรี โหลด เกม มา รวย 99 ios slotv9 pg ลิ้ ง เกม สล็อต ทาง เข้า โจ๊ก เกอร์ เว็บ สล็อต 555 สูตร บา คา ร่า ออนไลน์ บริการ จาก gclubmember สล็อต ออนไลน์ ทดลอง เล่น pg slot เว็บ ตรง แจก เงิน เดิมพัน ฟรี all slot 999 สล็อต เครดิต ฟรี 18 บาท joker slot 1234 เว็บ สล็อต แตก บ่อย slot246 pg mafia77 slot pg888 slot slot joker8899 สล็อต เว็บ ไหน แตก ดี slot โร ม่า เล่น เกม สล็อต เครดิต ฟรี pussy888 หน้า เว็บ mm88fc ทาง เข้า slot mafia ทั้งหมด slotxo 55 สมัคร สล็อต ผล ไม้ เกม ที่ เล่น แล้ว ได้ เงิน จริง ไม่ ต้อง ลงทุน 2020 918 เกม ไหน แจก joker สล็อต 999 สล็อต ที่ ดัง ที่สุด ufabet 600 เกมส์ สล็อต เหมือน จริง ไลน์ joker สล็อต 50 รับ 100 เว็บ ทดลอง เล่น สล็อต demo slot pg soft joker123 ทาง เข้า ฝาก 20 บาท รับ 100 วอ เลท เกม สล็อต ที่ แตก บ่อย avenger แจก เครดิต ฟรี สล็อต ค่าย epic pg slot ออ โต้ สล็อต หมุน วง ล้อ ฟรี แล้ว ได้ เงิน fun88 สล็อต เกมส์ โจ๊ก เกอร์ joker 011 slot การ สมัคร สล็อต ออนไลน์ joker game winner55 ทาง เข้า joker1888 ตัว เกม สล็อต xo ทดลอง เล่น สล็อต ฟรี joker sweet bonanza ซื้อ ฟรี ส ปิ น โปร epicwin สมัคร เกม joker สล็อต รับ วอ ล เลต ให้ ทุน เล่น สล็อต joker123 ออ โต้ สล็อต เติม ผ่าน true wallet สล็อต เว็บ ไหน ดี joker สล็อต 8888 สล็อต ถอน ไม่มี ขั้น ต่ํา วอ เลท live22 เกม ไหน ดี fun88 สล็อต ไม่มี ทุน เล่น สล็อต เล่น sbobet ผ่าน มือ ถือ หน้า เว็บ โจ๊ก เกอร์ เกม สล็อต คิง ค อง ufa007 pantip ufa nova88 สมัคร เล่น คา สิ โน sboแทง บอล 77 วัน นี้ สล็อต ตัว ไหน แตก slot เว็บ ไหน ดี เงิน ฟรี สล็อต slot007 เล่น บน เว็บ เกม สล็อต โบนัส slot pg cc 123 joker สมัคร joker game สล็อต ฟรี เงิน joker1234 slot สล็อต joker ฟรี เครดิต ดาว โหลด เกม พุ ช ชี่ 888 slot รวม ค่าย สมัคร สมาชิก ใหม่ เครดิต ฟรี เว็บ สล็อต ฝาก ผ่าน วอ เลท fifa55 fox sport ts911bet ถอนเงิน แทง สล็อต ฟรี เกม สล็อต คน เล่น เยอะ เล่น สล็อต ผล ไม้ เว็บ โจ๊ก เกอร์ เกมส์ สล็อต แจก ฟรี 200 สล็อต สมัคร รับ ฟรี 100 slot168 gaming betflix24 สมัคร สมาชิก สล อ ต 168 เว็บ สล็อต ฝาก 100 เว็บ สล็อต รวม ค่าย slotxo 567 สมัคร สล็อต ใหม่ pussg888 พนัน เทนนิส epicwin bet สล็อต ออนไลน์ ทดลอง เล่น ฟรี joker vip เล่น ผ่าน เว็บ ทาง เข้า เว็บ 168 ยิง ปลา ฝาก 10 ได้ 100 ่ joker168 เว็บ สล็อต ฝาก 25 รับ 100 โหลด เกม โจ๊ก เกอร์ 123 สล็อต ค่าย pt สร้าง โปรแกรม บา คา ร่า slot ค่าย ไหน แตก ง่าย เว็บ บอร์ด joker game เกม ออนไลน์ มือ ถือ ได้ เงิน จริง สล็อต 10 ฟรี 100 เล่น เกมส์ 918kiss super ufa slot ระบบ ฝาก ถอน joker goldclubslot mafia slot 88 เว็บ เกม ได้ ตัง ฝาก ขั้น ต่ำ 50 sbobet777 ดี ไหม สมัคร ยิง ปลา รับ เครดิต ฟรี สมัคร epic slot ทดลอง เล่น สล็อต ค่าย โจ๊ก เกอร์ เว็บ สล็อต ที่ ดี ที่สุด 2019 สล็อต แจก เงิน เล่น ฟรี สล็อต ไม่มี ขั้น ต่ํา ฟรี โบนัส 2020 ufabet 356 123xbet casino ดาวน์โหลด และ ติด ตั้ง pgslot app สมัคร joker สมัคร สมาชิก ใหม่ รับ ฟรี เครดิต slot ambbo joker slot club fun888 สล็อต royal888 สมัคร pussy888 แตก ง่าย สล็อต ต่าง ประเทศ เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน ทาง เข้า reddragon88 sbobetstep โจ๊ก เกอร์ 123 ทาง เข้า โหลด เกมส์ slotxo แจก เครดิต ทดลอง เล่น ฟรี ไม่ ต้อง ฝาก ผล บอล แม่น ยํา pg soft demo เกม ออนไลน์ 123 slot joker roma slot joker 10 รับ 100 หมุน วง ล้อ live22 สมัคร สล็อต ได้ เงิน จริง ส รู สล็อต สมัคร slot online th สูตร บา คา ร่า ที่ ดี ที่สุด ฟรี ufa678 ทาง เข้า สล็อต roma ทดลอง เกม ค่าย pg แตก ง่าย หมุน สล็อต เครดิต ฟรี บา คา ร่า ใบ เดียวทีเด็ด บอล เต็ง วัน นี้ v2 ดาว โหลด เกม สล็อต 888 สล็อต 168 gaming slot ฝาก แรก ของ วัน เกม ส ส ล็ อด joker slot ทาง เข้า เครดิต ฟรี ต้อนรับ สมาชิก ใหม่ jdb ค่าย เกมส์ 188bet ฟรี เครดิต slotxo เกมส์ ไหน แตก ง่าย 2020 เล่น สล็อต ไม่ ต้อง ฝาก ถอน ได้ ไม่มี ขั้น ต่ํา
        royal online v2 เปลี่ยน รหัส| gclub agent| ยู ฟ่า 191 pantip| ts911 สมัคร| รถ ไป บ่อน ปอย เปต| the hacker casino| m online sbobet| fat santa online| party pg slot| big win cat| 1 million megaways| royal online apk| วิธี สมัคร royal online v2| inferno star wars| diamond cats slot| ลิงค์ ส โบ| วิธี เข้า sbobet| ช่อง ทาง เข้า sbobet| royal online v2 เปลี่ยน รหัส| หน้า เข้า sbo| dragon fire megaways| pcie 3.0 x16 nvme| 999 lsm| โรงแรม ใน ปอย เปต| carrera ferrari trophy| royal online 999| sbo เข้า ไม่ ได้| fat santa online| 888 poker android apk download| ทาง เข้า sbo slot| sbo เข้า ได้ แน่นอน| ช่อง ทาง เข้า sbo มือ ถือ| 888 poker android apk download| เข้า เว็บ sbo| the casino hacker ฟรี| sbo เข้า ได้ แน่นอน| ลิงค์ ส โบ| wwwsbobet mobile| เจษฎา เบ ท 6| big win cat| สมัคร ak47bet| slot cat 888| ufa191 facebook| 3d roulette| เจษฎา เบ ท ติดต่อ| เทคนิค ยิง ปลา royal casino| new york slot| download royal online v2| ทาง เข้า sbo slot| gclub 555| ufa191 app| slot santa| รอยัล ออนไลน์| ทาง เข้า lsm 2558| hacker slot game| ช่อง ทาง เข้า ส โบ| big cat slotxo| วิธี เข้า sbobet| link เข้า sbobet| all ways joker slot| ทาง เข้า sbo อัพเดท ล่าสุด| ทาง เข้า sbo slot| slot fat santa| lucky rich slot| เข้า เล่น sbobet| big cat slot|