<bdo id="o6h"></bdo>
  • <b id="o6h"></b>

        <xmp id="o6h"></xmp>
      1. 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
         
        ป๊อก เด้ง ออนไลน์ มือ ถือ ได้ เงิน จริง ทาง เข้า joker1888 สล็อต ฝาก เงิน ผ่าน ท รู วอ เลท 77up sport pussg888 joker slot mvp pg slots slotxo galaxy joker123th เล่น ผ่าน หน้า เว็บ สมัคร slot online th เกม ออนไลน์ ไม่ ต้อง ลงทุน gamebet99 เครดิต ฟรี mobile slot joker สมัคร เม ก้า 888 สล็อต ฟรี เครดิต 2562 สล็อต โปร ฝาก 1 บาท รับ 100 ไพ่ป๊อก เด้ง เงิน จริง เกม ยิง ปลา สมัคร ฟรี avenger slot ทดลอง เว็บ เล่น เกม ได้ เงิน joker สล็อต 91 ทาง เข้า ufa slot 35pg slot เว็บ สล็อต ออนไลน์ สล็อต ออนไลน์ 77 ยูสเซอร์ ทดลอง เล่น pussy888 slot joker8899 ไลน์ เกม สล็อต ทาง เข้า slot007 pussy888 เข้า เล่น เว็บ สล็อต เครดิต ฟรี 2019 แจก เครดิต ฟรี 20 บาท game slot letou slot ฟรี 50 สล็อต หมุน วง ล้อ ฟรี ทดลอง สล็อต roma demo roma slot เล่น สล็อต ออนไลน์ มือ ถือ ได้ เงิน จริง สล็อต โจ๊ก เกอร์ 24 ดาว โหลด เกม pg เกมส์ ตู้ สล็อต ผล ไม้ ออนไลน์ เล่น เกม ฟรี เครดิต slot pg โปร 100 หมุน วง ล้อ 918kiss joker slot roma demo เว็บ เล่น สล็อต เล่น เกม สล็อต 888 joker ท รู วอ ล เลท 918 โหลด pg soft demo slot สมัคร marwin slot เกม ไพ่ แลก เงิน ufa700 ทาง เข้า พุ ช ชี่ 888 สล็อต 1 บาท ก็ รวย ได้ ufa678 ทาง เข้า เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน jokerslotth สล็อต ตัว ใหม่ เกม สล็อต pussy pg slot apk download บา คา ร่า ใบ เดียวทีเด็ด บอล เต็ง วัน นี้ v2 ฟุต ซี่ 888 ระบบ สมาชิก joker8899 pg slot สมัคร ใหม่ เดิมพัน ฟรี ไม่ ต้อง ฝาก สมัคร เล่น เกม ได้ เงิน pg game soft joker888 ฝาก วอ เลท เครดิต ฟรี กด รับ ได้ เลย joker โปร 50 แจก ทุน ฟรี สล็อต 123 vip casino www gtr168bet สล็อต เกมส์ ไหน ดี โบนัส แตก บ่อย joker เล่น สล็อต บน เว็บ galaxy 168 slot pg ฝาก 30 รับ 100 สูตร บา คา ร่า sa ออ โต้สูตร เฮีย ขวาน เสือนอนกิน สล็อต แตก ง่าย pg joker slot 8998 pantip สล็อต ฝาก ขั้น ต่ํา 50 เข้า เว็บ สล็อต เกมส์ ออนไลน์ ฟรี เครดิต สล็อต ที่ แตก ง่าย 2020 สล็อต ได้ ง่าย joker slot สมัคร เล่น เกม รับ เงิน ฟรี riches888 ดาวน์โหลด เกมส์ สล็อต sa mafia slot ใหม่ เครดิต หมุน สล็อต ฟรี sboonline24 สมัคร v8abc super slot168 ทาง เข้า joker gaming pg gaming slot โหลด pgslot99 playlive88 joker 48 slot pg slot ท รู วอ เลท เกม แมว สล็อต joker สล็อต ฟรี เครดิต 100 สล็อต ได้ เงิน เยอะ สมัคร เกม ได้ เงิน โปร ฟรี สล็อต เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2019 โหลด เกมส์ โจ๊ก เกอร์ 888 ts911 auto สล็อต เติม ขั้น ต่ำ 1 บาท เครดิต ฟรี mafia slot slot joker55 ts911 asia สล็อต เว็บ ไหน ดี 2020 188bet แจก ฟรี เครดิต joker casino slots ไลน์ joker123 helloslotjoker slot joker 168 เงิน เดิมพัน ฟรี ไม่ ต้อง ฝาก เกมส์ pg app เกม สล็อต โหลด เกม โจ๊ก เกอร์ 99 สล็อต ที่ คน เล่น เยอะ ที่สุด แท่ง บอล ออนไลน์ 888 มา รวย 99 apk top play99 แจก user ทดลอง เล่น ฟรี 250 1xbet ฟรี 300 สมัคร joker888 net epicwin โปร โม ชั่ น joker game bz slot ไหน แตก ง่าย สมัคร เล่น ไพ่ ดั ม มี่ ออนไลน์ ได้ เงิน จริง พุ ช ชี่ 888 เกมส์ โบ นั น ซ่า slot joker roma demo pg soft mahjong ยู เบ็ ต 89 slot mafia 2020 สล็อต ผ่าน วอ ล เล็ ต สล็อต ฝาก ท รู วอ ล เล็ ต สวี ท โบ นั ท ซ่า jumbo joker slot เกมส์ ยิง ปลา โจ๊ก เกอร์ ufabet1688 ฝาก เงิน maxbet nova88 โจ๊ก เกอร์ เกมmm88aecเว็บ 88 สูตร บา คา ร่า เซ๊ ก ซี่ ยูสเซอร์ ทดลอง เล่น 918kiss เกม เล่น ฟรี แล้ว ได้ เงิน รวม เกมส์ ได้ เงิน จริง 2019 บอล ต่อ น่า เล่น วัน นี้ สล็อต 918 ฟรี เครดิต ไม่ ต้อง ฝาก เงิน 2020 แจก user ทดลอง เล่น ฟรี เล่น slot เว็บ ไหน ดี 77up sport สล็อต ออนไลน์ ฝาก 1 บาท รับ 100 slot joker สมัคร สมัคร scr99th โหลด สล็อต xoth ibet789 สล็อต pgautoslot โหลด เกม ตู้ สล็อต สูตร บา คา ร่า เข้า ทุก ไม้ เกม ยิง ปลา สมัคร ฟรี เว็บ สล็อต แตก ง่าย ที่สุด slot โปร วัน เกิด slot demo pg soft spin999 com สมัคร slot jdb แตก ง่าย สมัคร joker 100 สมัคร สล็อต ไม่มี ขั้น ต่ำ magix99 joker slot v pantip ทดลอง เล่น สล็อต ออนไลน์ ฟรี pg สล็อต เครดิต ฟรี สมัคร ยิง ปลา ฟรี เครดิต 191 ยู ฟ่า เกมส์ slot online slot demo roma เกม สล็อต ออนไลน์ pg สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2560 แจก เครดิต ทดลอง เล่น ฟรี 2020 ส ล๊ อ ต 123joker gclub slot download android ทาง เข้า joker หน้า เว็บ slot jack88 โหลด เกมส์ คา สิ โน 123 joker slot vip game สล็อต นาง เงือก ทาง เข้า ufa191 slot โปร วัน เกิด joker game winner55 โหลด เกม มาเฟีย 007 โหลด fhm99 เล่น สล็อต sbobet joker สล็อต 8899 สมัคร เกม สล็อต รับ เครดิต ฟรี สูตร บา คา ร่า เซ๊ ก ซี่ แจก เครดิต หวย ฟรี สมัคร เกม ออนไลน์ ได้ เงิน จริง slot โปร วัน เกิด สมัคร ฟรี สล็อต แนะ นํา สล็อต แตก ง่าย เกม ที่ ได้ เงิน ฟรี สล็อต ที่ เติม วอ เลต ได้ เกม สล็อต ไว กิ้ ง เว็บ สล็อต ฝาก ถอน ออ โต้ joker123th เล่น ผ่าน หน้า เว็บufaslot เกม ยิง ไข่ ได้ เงิน จริง ไม่มี ทุน เล่น สล็อต สมัคร ยิง ปลา ฟรี เครดิต มาเฟีย 88 ดาวน์โหลด เกมส์ สล็อต ออนไลน์ pantip เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2018 สล็อต โอน ผ่าน true wallet โหลด เกม เล่น ได้ เงิน จริง magix99 pg slot joker 6886 เกม ไพ่ สล็อต เอ เย่ น joker เกม ยิง ปลา pantipสล็อต ค่าย jiliเว็บ 168 joker dragon slot slotxo เกมส์ ไหน แตก ง่าย 2020 slot 1688เล่น เกม ยิง ปลา ฟรี fifa69net sbobetstep หมุน วง ล้อ ได้ เงิน จริง ซื้อ ส ปิ น pg สล็อต apk แจก รหัส ยูสเซอร์ epicwin 100 สล็อต เติม ขั้น ต่ำ 1 บาท ออนไลน์ สล็อต slot joker 899 slot พา รวย แอ พ เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 5 เกม สล็อต ยอด นิยม slotxo ทดลอง เล่น ฟรี เม กา 888 slot เกม ฟรี ดาว โหลด joker สล็อต พุ ช ชี 888 ฟรี เดิมพัน ไม่ ต้อง ฝาก joker ทาง เข้า แจก เครดิต ทดลอง เล่น ฟรี ถอน ได้ joker เว็บ ไหน ดี เกม ฝาก ผ่าน ท รู วอ ล เล็ ต เล่น ไพ่ป๊อก ให้ ได้ เงิน magix99 joker casinothai168 soccer joker168 gaming sweet bonanza เทคนิค ไลน์ joker123 slot ท รู วอ เลท การ เล่น สล็อต ออนไลน์ ทดลอง เล่น sweet bonanza เกมส์ สล็อต fifa55 slot joker777 หวย ออนไลน์ เครดิต ฟรี สล็อต ฝาก เงิน ผ่าน ท รู วอ เลท pragmatic play slot สมัคร slot joker1168 สล็อต ออนไลน์ วอ เลท เว็บ สล็อต รวม ค่าย โหลด เกม เล่น ได้ เงิน จริง slot007 ทาง เข้า สล็อต ทุน น้อย ล่าสุด ดาวน์โหลด pg หมุน สล็อต เครดิต ฟรี ganesha fortune slot 918 คา สิ โนเว็บ เกม สล็อต สล็อต สาย ฟรี เกม ออนไลน์ ได้ เงิน ไม่ ต้อง ลงทุน slot ฝาก ท รู วอ ล เล็ ต เกม ดั ม มี แลก เงิน เกมส์ ไพ่ ดั ม มี่ เงินสด โหลด เกม slot1234 slotxo agent เกม ยิง ปลา pantipสล็อต ค่าย jiliเว็บ 168 ทาง เข้า mafia1688 เกม ส โจ๊ก เกอร์ slot88 joker lucky777 ถอนเงิน โปร ฝาก 50 ฟรี 100 แจก เงิน เดิมพัน ฟรี ไม่ ต้อง ฝาก slot ออนไลน์ epic journey dragon slotxo สล็อต 1 บาท ก็ ฝาก ได้ mm88win v8 ไลน์ fifa555 แจก เครดิต ฟรี ยืนยัน ตัว ตน joker123 สมัคร สมาชิก เล่น สล็อต ฟรี ได้ เงิน จริง 2018 เว็บ ค่า สิ โน รวม สล็อต ทุก ค่าย slotxo 888th เว็บ เกม 888 รีวิว เกม ยิง ปลา slot joker roma เดิมพัน ฟรี ไม่ ต้อง ฝาก เข้า สู่ ระบบ สล็อต xo game slot letou putsy888 แทง บอล ส เต็ ป วัน นี้ แทง สล็อต ฟรี ทาง เข้า joker mobile วิเคราะห์ เตะ มุม บอล วัน นี้ โค้ด เครดิต ฟรี 333be pg slots โหลด เกม 888 slot168 ทดลอง เล่น เกม สวี ท โบ นั น ซ่า อยู่ ค่าย ไหน สูตร sahacker สมัคร เล่น คา สิ โน sboแทง บอล 77 เว็บ สล็อต แตก ดี เว็บ สล็อต วอ เลท pg slot 311 ๋ joker123 โหลด ตู้ สล็อต ผล ไม้ เครดิต ฟรี ต้อนรับ สมาชิก ใหม่ สล็อต หมุน ฟรี เครดิต ฟรี pg pocket games ไพ่ป๊อก เด้ง เงิน จริง สมัคร ขั้น ต่ํา 50 โหลด 918kiss ไม่ ได้ ยิง ปลา ท รู วอ เลท หมุน สล็อต ทุน น้อย joker madness slot เล่น เกม ได้ เงิน จริง 2018 เกม ฟรี โบนัส ปั่น สล็อต ฟรี pg เล่น เกมส์ ไพ่ ได้ เงิน จริง ไม่ ต้อง ลงทุน เว็บ เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต ออนไลน์ ฝาก ขั้น ต่ำ 50 fifa55 m เล่น slot007 ผ่าน เว็บ เว็บ สล็อต สมัคร joker โหลด เกม เล่น แล้ว ได้ เงิน รับ เครดิต ฟรี slot avenger ฟรี เครดิต แจก ทุน เล่น ฟรี เกม เม ก้า 888 xoslot เครดิต ฟรี แจก เครดิต ฟรี ให้ ยืนยัน ตัว ตน เว็บ สล็อต แตก ง่าย ล่าสุด slot v pantip โหลด slot live22 joker gaming next88 สมัคร เกม ออนไลน์ รับ เครดิต ฟรี โล เยน สล็อต สล็อต ต่าง ประเทศ เว็บ สล็อต แตก ง่าย 2020 สมัคร copa89 pg slot วอ เลท สล็อต ไหน แตก ดี pgslot 99th แจก ฟรี 300 สล็อต เกม ผล ไม้ ได้ เงิน จริง เกมส์ เล่น ได้ เงิน จริงๆ สูตร บา คา ร่า sa app slotgame66 ทดลอง เล่น โหลด แอ พ จี คลับ เกม สล็อต super ufa game demo slot pg soft joker123 ออ โต้ เกม ทดลอง สล็อต สล็อต หมุน ฟรี ไม่ ต้อง ฝาก slot007 download winner88 club สมัคร เล่น เกม ได้ เงิน โค้ด 333be ใหม่ ทดลอง ซื้อ ฟรี ส ปิ น sweet bonanza สมัคร เกม ได้ เงิน mafia88 mobile app nikigame 777 เว็บไซต์ เล่น เกม ได้ เงิน game demo slot pg soft slotxo 55 avenger slot ฟรี เครดิต ทาง เข้า slot joker123 โจ๊ก เก้อ เกม เว็บ สล็อต เติม เงิน ผ่าน wallet เกม ออนไลน์ 123 เข้า เล่น joker slot pg soft free play เล่น ไพ่ป๊อก เด้ง ได้ เงิน จริง roma slot joker demo joker ทุน น้อย เกม ไพ่ แลก เงิน ได้ จริง jokerizer เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต ufa100 เว็บ เกม joker ลิงค์ เข้า เล่น www joker123 net สล็อต ออนไลน์ ทดลอง เล่น ฟรี สล็อต เติม ท รู วอ เลท slot joker free slot 333 free credit เว็บ หลัก joker เกมส์ สล็อต fifa55 รวม ค่าย slot สมัคร สมาชิก ใหม่ 918kissแทง บอล ออนไลน์ 168 เกม สล็อต แตก ง่าย 2020 สล็อต โบ นั น ซ่า สูตร บา คา ร่า sa app เกม สล็อต ทํา เงิน royal888 สมัคร 1xbet ฟรี 300 สล็อต joker ฟรี เครดิต สมัคร สล็อต jdb168 สล็อต ขั้น ต่ํา โปร โจ๊ก เกอร์ สล็อต พุ ช ชี่ เว็บ สล็อต แตก ง่าย ที่สุด เล่น เกม ฟรี เครดิต เว็บ สล็อต ออนไลน์ ฟรี สมัคร marwin slot โหลด เกม โจ๊ก เกอร์ สมัคร เล่น คา สิ โน sboแทง บอล 77 fun88 สล็อต ยิง ปลา ยิ่ง มี รา วา จ pg slot ฝาก ผ่าน วอ เลท www mm88fc vom สล็อต เค ดิ ฟรี ลิ้ ง สล็อต โจ๊ก เกอร์ joker168 สมัคร ทาง เข้า เว็บ https www uro168club com sweet bonanza เทคนิค 1xbet ฟรี 300 slot joker ทดลอง เล่น ฟรี สล็อต ออนไลน์ ไม่ ต้อง ฝาก สมัคร slot 1688 epicwin 777 ดั ม มี่ กิน ตัง จริง เล่น เกม แล้ว ได้ เงิน ฟรี เว็บ เกมส์ สล็อต ออนไลน์ mafia77 slot ทาง เข้า joker หน้า เว็บ spin999 com สมัคร pg หน้า เว็บ สล็อต โจ๊ก เกอร์ เครดิต ฟรี การ เล่น ตู้ สล็อต การ เล่น สล็อต ออนไลน์ สล็อต ที่ ดัง ที่สุด สล็อต ออนไลน์ ได้ เงิน จริง pantip slot 918kiss สมัคร ช่วง เวลา เล่น สล็อต แล้ว ได้ เงิน ตัว เข้า เกม joker เกม สล็อต รับ เครดิต ฟรี โจ๊ก เกอร์ ฝาก ผ่าน วอ เลท dota2 พนัน สล็อต ออนไลน์ ผ่าน วอ เลท joker slot 1919 918kiss สมัคร สมาชิก แจก user ทดลอง เล่น ฟรี ถอน ได้ 2019 การ เล่น สล็อต ผล ไม้ vscr888 ios slot โปร น้อง ใหม่ สล็อต ออนไลน์ วอ เลท สล็อต คิง ค อง เว็บ ที่ มี สล็อต ทุก ค่าย เว็บ เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต ไม่ เสีย เงิน เติม เงิน joker เกม ออนไลน์ ฝาก ไม่มี ขั้น ต่ํา slot vip เครดิต ฟรี สมัคร สล็อต ท รู วอ ล เล็ ต ไม่มี ทุน เล่น สล็อต สล็อต bet2you เครดิต ฟรี ฝาก 50 รับ 150 เครดิต ฟรี สล็อต 2019 joker gaming ทดลอง สมัคร สมาชิก fifa555 สล็อต joker แตก บ่อย โจ๊ก เกอร์ ฝาก ผ่าน วอ เลท ฝาก 15 รับ 100 pg joker slot ทดลอง เล่น ฟรี v9slot pg v9 slot joker เกม ส โจ๊ก เกอร์ โหลด เกม มาเฟีย 007 สล็อต ฟรี ส ปิ น ไม่ ต้อง ฝาก 2020 เกม ยิง ปลา แจก เครดิต ฟรี 300 wwwfifa9999 slot โปร ฝาก 10 ได้ 100 joker ฝาก ท รู วอ เลท you slot 168 สมัคร เล่น เกม ได้ เงิน จริง slotxoz เล่น ไพ่ป๊อก เด้ง ได้ เงิน จริง a4ccc gclub1688 โจ๊ก เกอร์ 69 เกม ใน joker เกม สล็อต มาเฟีย 88 สล็อต ที่ ดัง ที่สุด สมัคร สล็อต ฝาก ถอน ไม่มี ขั้น ต่ํา ป๊อก เด้ง ออนไลน์ มือ ถือ ได้ เงิน จริง all slot 168 pg slot games สล็อต 4444 joker slot 95 โหลด เกม ยิง ปลา คา สิ โน www888 โจ๊ก เกอร์ สมัคร เล่น เกม ได้ เงิน จริง slot ทดลอง เล่น joker เกม สล็อต pussy all slotv9 ทดลอง สล็อต roma slot joker 1919 เล่น เกมส์ ไพ่ ได้ เงิน จริง ไม่ ต้อง ลงทุน สล็อต ฝาก ทาง วอ เลท เบอร์ โทร ส โบ เบ็ ต slot mafia ฟรี เครดิต jokergame 777 โหลด เกม slot1688 สล็อต เติม ขั้น ต่ำ 1 บาท แอ พ เกม ออนไลน์ ได้ เงิน จริง pg slot 198 joker gaming สมัคร เล่น สล็อต ทุน น้อย line ts911 หมุน slot สมัคร เล่น สล็อต เครดิต ฟรี สล็อต ค่าย playstar สล็อต ค่าย pg แตก ง่าย สล็อต joker วอ เลท area168 slot pg slot ฝาก ผ่าน วอ เลท ยูสเซอร์ ทดลอง slotxo สูตร บา คา ร่า ที่ แม่น ที่สุด 2020 slotxo 24th โปร เค ดิ ต ฟรี pg slot ท รู วอ เลท โหลด live22slot สล็อต joker เติม true wallet ไม่มี ขั้น ต่ํา โหลด เกม โจ๊ก เกอร์ 123 โจ๊ก เกอร์ ฝาก วอ เลท เล่น สล็อต ผ่าน วอ เลท แอ พ เกม ออนไลน์ ได้ เงิน จริง slots 66 casino สมัคร สล็อต ไม่มี ขั้น ต่ำ เกม ดั ม มี แลก เงิน เว็บ สล็อต ที่ แตก ง่าย ที่สุด ทาง เล่น joker 5 เกม สล็อต ยอด นิยม สล็อต คิง ค อง โจ๊ก เกอร์ 1234 ซื้อ ฟรี ส ปิ น sweet bonanza joker123th เล่น ผ่าน หน้า เว็บufaslot โปร เค ดิ ต ฟรี 168pgslot เกมส์ สล็อต ออนไลน์ ฟรี mafia slot 88 pg slot ฝาก ถอน ไม่มี ขั้น ต่ำ โหลด เว็บ โจ๊ก เกอร์ slotjokerth สมัคร sbobet 888 โหลด เกม 123 pg444 slot สล็อต ค่าย playstar เล่น เกม พุ ช ชี่ 888 slot joker 10 รับ 100 สล็อต โอน วอ ล เลท เกม 888 โล โย ออ น ลาย joker123 ทาง เข้า สมัคร สมาชิก ใหม่ เครดิต ฟรี 1pg slot เกม สล็อต ได้ ตังค์ เล่น เกม ไม่ ต้อง ลงทุน ได้ เงิน จริง you slot 168 สล็อต ออนไลน์ ฟรี เครดิต ถอน ได้ เว็บ สล็อต ที่ คน เล่น เยอะ ที่สุด star vegas แจก เครดิต ฟรี สล็อต ตัว ไหน แตก ง่าย เกมส์ ยิง ปลา ส ตา ร์ เว กั ส เว็บ ค่า สิ โน รวม สล็อต ทุก ค่าย highway kings คือ สมัคร joker mvp โปร สล็อต เครดิต ฟรี เว็บ เกม ออนไลน์ ได้ เงิน จริง พัน ทิป โจ๊ก เกอร์ ฝาก วอ เลท สล็อต แจก ฟรี 200 ดาวน์โหลด สล็อต โจ๊ก เกอร์ 168 ฟรี เครดิต สล็อต ออนไลน์ เกม ใน joker สล็อต ออนไลน์ เติม วอ เลท joker888 auto joker123th pc joker slot5g pg slot games แจก เครดิต ฟรี mafia pg slot ฟรี1ufabet pg slot asia88 slot joker8899 เล่น ป๊อก เด้ง ให้ ได้ เงิน เข้า เล่น ufa191 การ เล่น สล็อต ให้ ได้ เงิน ไม่มี ทุน เล่น สล็อต slot เกม ฟรี เล่น slot online xoslot ทาง เข้า live 22 slot เข้า ระบบ slotxo joker ทดลอง เล่น เกมส์ สล็อต jdb fifa55me ทดลอง เล่น ค่าย joker slot game 444 โหลด แอ ป pgเกม 88 เว็บ หมุน สล็อต ราคา บอล ไหล ทุก 15 นาที pg slot เกม ไหน แตก ดี ทาง เข้า joker pg slot joker ดาวน์โหลด โจ๊ก เกอร์ 168 สมัคร ยิง ปลา รับ เครดิต ฟรี ทดลอง เล่น joker game ดาว โหลด live22 โหลด แอ ป xo joker slot เข้า เล่น เล่น เกม ฟรี เครดิต joker123 ฝาก เงิน slot joker 96 หน้า เว็บ joker โหลด เกมส์ สล็อต scr888 สล็อต โจ๊ก เกอร์ xd สล็อต ไม่ ต้อง ทํา เท ริน เกม sweet bonanza อยู่ ค่าย ไหน epicwin slot download เกม สล็อต ได้ ตังค์ jokergame 777 auto jokerth โหลด คิด 918เว็บ ปั่น สล็อต mafia 1688 หมุน วง ล้อ joker โหลด พุ ช ชี่ 888 joker ท รู วอ เลท เล่น สล็อต sbobet แนะ นํา สล็อต joker สล็อต 88 mafia เม ก้า 888 918kiss โหลด ไม่ ได้ เกมส์ ล็ อ ต 777 สมัคร เล่น ไพ่ ดั ม มี่ ออนไลน์ ได้ เงิน จริง เว็บ โจ๊ก เกอร์ ufa147 แจก เครดิต ฟรี joker8899 download ทดลอง เล่น สล็อต joker ฟรี ไพ่ สล็อต เกมส์ ที่ ได้ เงิน จริง 2019 ทาง เข้า เว กั ส 168 slot ปั่น ฟรี pg สล็อต เครดิต ฟรี slot คิง ค อง แจก ฟรี 100 บาท เล่น โจ๊ก เกอร์ เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน โหลด แอ พ สล็อต ออนไลน์ slot live22 pgสล็อต xo เล่น ผ่าน เว็บ ts911 official เกม ออนไลน์ ได้ เงิน จริง 2019 joker slot หน้า เว็บ วัน นี้ สล็อต ตัว ไหน แตก โล เยน สล็อต คิง สล็อต joker สล็อต true wallet โหลด เกม มาเฟีย 007 แจก ฟรี สล็อต ฝาก ทาง วอ เลท หมุน สล็อต ฟรี ไม่ ต้อง ฝาก โปร โม ชั่ น ฝาก 10 บาท ได้ 100 สูตร บา คา ร่า เข้า ทุก ไม้ slot joker777 ทดลอง ยิง ปลา joker เล่น เกม ได้ ตัง จริง ไม่ ต้อง ลงทุน spk joker123 เว็บ สล็อต ดีๆ ufa168s รวม ค่าย สล็อต pgslot games สล็อต ฝาก วอ ล เลท slot galaxy 168 สูตร บา คา ร่า sa game 1688 บอล ต่อ น่า เล่น วัน นี้ mafia88 mobile 1234 joker ดาว โหลด พุ ช ชี่ เกม คา สิ โน แจก เครดิต ฟรี pussy888 หน้า เว็บ casino 1988 วิธี ถอนเงิน slotxo โจ๊ก เกอร์ 6666 โปร เค ดิ ต ฟรี mafia650 เครดิต ฟรี แจก เครดิต ทดลอง เล่น ฟรี 1000 ถอน ได้ joker สล็อต ทดลอง เล่น บา คา ร่า ถอน ขั้น ต่ำ 300เกม ออนไลน์ 666 ส ล้อ ด โจ้ ก เก อ โจ๊ก เกอร์ 24 สล็อต ฟรี เงิน เว็บ สล็อต ฝาก ผ่าน วอ เลท ufabet 600 pg444 slot เกม เล่น แล้ว ได้ เงิน จริง ไม่ ต้อง ลงทุน joker ล็อกอิน slot246 pg ทดลอง เล่น สล็อต เครดิต ฟรี asd124 slot โหลด เกม joker สล็อต เว็บ โจ๊ก เกอร์ 666 เงิน เดิมพัน ฟรี ไม่ ต้อง ฝาก เล่น slot pantip สล็อต ต่าง ประเทศ joker aec999 mafia สล็อต ทั้งหมด ดาว โหลด เกม 918 ทาง เข้า slot123 โค้ด 333be ล่าสุด 2020 slot mafia ฟรี เครดิต สล็อต ที่ ดี ที่สุด ตอน นี้ โปร สมาชิก ใหม่ ฟรี เครดิต ดาวน์โหลด โจ๊ก เกอร์ joker slot 1919 บอล ต่อ น่า เล่น วัน นี้ joker th 99 game ikan joker123 เล่น ไพ่ป๊อก เด้ง ได้ เงิน จริง fun88 สล็อต สล็อต ออนไลน์ ทดลอง เล่น ฟรี เกม ไม่ ต้อง ลงทุน ได้ เงิน จริง pg thaislot ซื้อ ส ปิ น joker joker ฝาก ลิ้ ง โจ๊ก เกอร์ 123 ทาง เข้า โจ๊ก เกอร์ ทาง เข้า เล่น joker 44thjoker slot pg cc ทาง เข้า nova 88 โจ๊ก เกอร์ 123 วอ เลท สล็อต มี วอ ล เลท โปร โม ชั่ น ฝาก 10 บาท ได้ 100 บา คา ร่า ถอน ขั้น ต่ำ 300เกม ออนไลน์ 666 ufabet1688 ฝาก เงิน slot pg soft โหลด ตู้ สล็อต ผล ไม้ เกมส์ pg วิธี แทง บอล ออนไลน์ sbobet mafia slot ใหม่ แจก ฟรี สล็อต สล็อต ค่าย epic หมุน วง ล้อ joker joker slot4u ทาง เข้า joker เว็บ เกม ออนไลน์ ได้ เงิน จริง พัน ทิป demo slot pg soft joker slot 9988 slot roma demo ดาว โหลด pg slot slot007 ทาง เข้า mm88win v8 pussy888 เข้า เล่น สล็อต apk slotxo ซื้อ ฟรี ส ปิ น 123 vip casino เกม ส โจ๊ก เกอร์ โหลด แอ พ โจ๊ก เกอร์ การ เล่น สล็อต สูตร dg บา คา ร่า ไท เกอร์ สล็อต ทดลอง เล่น ฟรี สล็อต joker ทาง เข้า เกม joker all slot 168 เกม ที่ เล่น แล้ว ได้ เงิน จริง ไม่ ต้อง ลงทุน 2020 ไม่มี ฝาก ขั้น ต่ํา fifa55 atm slot ท รู วอ ล เล็ ต slot joker roma demo ดาวน์โหลด joker123 pc ทดลอง เล่น สล็อต sweet bonanza slot ฝาก ทาง วอ เลท ไพ่ป๊อก เด้ง ได้ เงิน จริง pg slot เกม ไหน แตก ง่าย สล็อต joker เครดิต ฟรี slot supreme caishen สล็อต wallet เครดิต ฟรี 2020 เกมส์ ล็ อ ต 777 joker123 auto 3 pg pocket games สล็อต dragon free credit slot 2019 เดิมพัน ฟรี ไม่ ต้อง ฝาก 2020 slot nikigame สูตร บา คา ร่า dg grand ติดต่อ joker123 สูตร บา ค่า ร่า ที่ แม่น ที่สุด สล็อต ผ่าน วอ ล เล็ ต แนะ นํา สล็อต แตก ง่าย web joker slot 9889 register joker สล็อต 8899 เว็บ สล็อต ที่ คน เล่น เยอะ ที่สุด royal gclubth joker slot ทดลอง avenger สล็อต slot เว็บ เล่น สล็อต ฟรี ได้ เงิน จริง 2018 epicwin bet ลิ้ ง เกม สล็อต ufa168 epicwin สมัคร ป๊อก เด้ง ออนไลน์ มือ ถือ ได้ เงิน จริง สล็อต airpay โหลด เกม 123 สล็อต ถอน ผ่าน วอ เลท สมัคร slot joker เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2020 joker ทาง เข้า เล่น สล็อต ฟรี เกม แนะ นํา สล็อต แตก ง่าย ufabet 36 สวี ท โบ นั น ซ่า เล่น ฟรี สล็อต ทดลอง เล่น ได้ เงิน จริง สล็อต ทุน น้อย แตก บ่อย เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน ทาง เข้า xo168 สมัคร joker ฝาก ไม่มี ขั้น ต่ํา joker gaming เข้า สู่ ระบบ xoslot ทาง เข้า ฝาก 10 รับ 100 บา คา ร่า สล็อต joker โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ํา เกม ฟรี เล่น แล้ว ได้ เงิน slot ฝาก ทาง วอ เลท ไลน์ เกม สล็อต demo slot pg soft mahjong เครดิต เกม สล็อต ฟรี เกม สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ จริง สล็อต ที่ แตก ง่าย 2020 สล็อต ค่าย pg แตก ง่าย live22 เกม ไหน ดี เกม แคน ดี้ คา สิ โน โหลด slot joker demo slot captain bounty slot demo pg pgautoslot pg slot 999 pg slot ออ โต้ ค่าย เกม โจ๊ก เกอร์ pg slot 999 เม ก้า 888 โหลด แอ ป xo pgautoslot ทาง เข้า joker สล็อต joker789 joker โบนัส pg ฝาก 50 โจ๊ก เกอร์ vip 168slotxo pg slot joker เปิด ใหม่ joker ใหม่ ล่าสุด ทาง โจ๊ก เกอร์ สมัคร สมาชิก โจ๊ก เกอร์ เว็บ สล็อต ฝาก ถอน ออ โต้ ufascr v2 มาเฟีย 88 ดาวน์โหลด slot เว็บ ไหน ดี แอ พ เกม ออนไลน์ ได้ เงิน จริง สล็อต มือ ถือ ได้ เงิน จริง สล็อต ออนไลน์ ยิง ปลา dafabet สล็อต แตก ง่าย slot999 เข้า สู่ ระบบสล็อต ลอง เล่น ฟรี สล็อต แจก โบนัส เกม scr888 pg slot ฝาก 10 123xbet โจ๊ก เกอร์ เกมส์ 999 sweet bonanza ทดลอง ซื้อ ฟรี ส ปิ น kingkong pg slot สูตร บา คา ร่า ที่ ใช้ได้ ทุก เว็บ betflix24 line เกม สล็อต โอน ผ่าน วอ เลท สล็อต ค่าย ดัง ดาวน์โหลด และ ติด ตั้ง pgslot app เล่น สล็อต มือใหม่ joker slot เข้า เล่น ขอ เงิน ฟรี 2019 ส ล้อ ต 168 ทาง เข้า เล่น epicwin joker slot im slot joker easy บอล สกอร์ สูง คืน นี้ เกมส์ ยิง ปลา ส ตา ร์ เว กั ส ช่วง เวลา เล่น สล็อต แล้ว ได้ เงิน slot แคน ดี้ สมัคร เว็บ โจ๊ก เกอร์ ทาง เข้า joker88 copa89 ดี ไหม magix99 joker ฝาก 10 รับ 100 ผ่าน วอ เลท joker game winner55 เกมส์ slot ได้ เงิน จริง สล็อต ไม่ ต้อง ทํา เท ริน เข้า สู่ ระบบ joker88 ทดลอง เล่น สล็อต ค่าย joker ทาง เข้า โจ๊ก เกอร์ สล็อต เครดิต ฟรี ฝาก 50 รับ 150 ทาง เข้า mafia1688 เข้า ระบบ live22 เล่น สล็อต ให้ ชนะ สล็อต ออนไลน์ เติม ท รู วอ เลท slotxoz แจก ฟรี สมาชิก ใหม่ slot joker dragon สล็อต อา แปะ joker vip 168 เว ป pussy888 สล็อต แตก ง่าย ล่าสุด เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2018 slotjoker388 สล็อต ฝาก ผ่าน วอ เลท ไม่มี ขั้น ต่ํา sticky joker kiss918 โหลด สมัคร slot xe88 ufa888 เร็ว สล็อต ทำ เทิ ร์ น ร่วม เว็บ ค่าย jdbเกม ฟรี ได้ เงิน จริง mm88fifa 2 แอ พ เกม สล็อต xo สล็อต สมัคร ฟรี เครดิต ฟรี เกม pg แตก ง่าย สล็อต ค่าย gtm สมัคร สล็อต joker โบนัส 100 dummy เงิน จริง ทาง เข้า joker หน้า เว็บ สมัคร ฟรี สล็อต สล็อต ท รู วอ ล เล็ ต ไม่มี ขั้น ต่ํา ทาง เข้า joker เติม เงิน joker เครดิต ฝาก ครั้ง แรก เล่น เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน 2019 สล็อต ค่าย playstar สล็อต ค่าย ดัง ฝาก เงิน ufa168 สูตร บา คา ร่า ห้อง sa โจ ก เกอร์ 123 เกม ผล ไม้ ได้ เงิน จริง เงิน ฟรี สล็อต สล็อต หมุน ฟรี เครดิต ฟรี สล็อต caishen สล็อต รวม ทุก ค่าย สล็อต 1 บาท ก็ รวย ได้ เล่น เกมส์ ไพ่ ได้ เงิน จริง ไม่ ต้อง ลงทุน เกม ฟรี โบนัส โจ๊ก เกอร์ 99 pg slot ฝาก วอ เลท pg สล็อต เครดิต ฟรี แทง บอล ส เต็ ป วัน นี้ โจ๊ก เกอร์ หน้า เว็บ สล็อต 10 ฟรี 100 แจ็ ค พอ ต โจ๊ก เกอร์ โจ๊ก เก อ เกม ambbo slot สล็อต ไท เกอร์ สล็อต ที่ ดี ที่สุด ตอน นี้ jumbo slot joker app สล็อต เล่น เกม สล็อต ออนไลน์ ฟรี เกม สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ จริง ระบบ สมาชิก joker slot รวม ค่าย โหลด เกม puss888 บอล วัน นี้ fifa55 วิธี แทง บอล ออนไลน์ sbobet joker town slot เกม สล็อต หมุน ฟรี ยิง ปลา ท รู วอ เลท joker slot abc ร่วม เว็บ ค่าย jdbเกม ฟรี ได้ เงิน จริง 918 joker ฟรี เค ดิ ต ไม่ ต้อง ฝาก เกมส์ สล็อต 999 ติด ตั้ง โจ๊ก เกอร์ 123 pg slot ฝาก ถอน ไม่มี ขั้น ต่ำโหลด เกม สล็อต xo สล็อต 918 ฟรี เครดิต sweet bonanza ซื้อ ฟรี ส ปิ น fifa55dna สมัค เกม ส ล๊ อ ต mafia slot 1688 สล็อต ที่ แตก ง่าย 2020 ทาง เข้า joker เว็บ เกม ออนไลน์ ได้ เงิน จริง ไม่ ต้อง ลงทุน เว็บ สล็อต แตก บ่อย สูตร บา คา ร่า ฟรี 2019 เข้า ได้ ทุก เว็บ fifa55me สล็อต ฟรี 18 บาท เกม สล็อต แตก บ่อย
        เว็บ เจษฎา ออนไลน์| gclub casino มือ ถือ| sbo128 เข้า ไม่ ได้| xog สล็อต| mega joker casino| เจษฎา หวย หุ้น| cashapillar| gemix casino| sbobet cz| jetsadabet เปิด ใหม่| ลิงค์ รับ ส ปิ น ฟรี coin master ล่าสุด| ล อ ต โต วัน| 918kiss โหลด| new slot 2020| แทง หวย เจต| casino sbobet live| sboibc888 ถอนเงิน| ปั่น ส ปิ น ฟรี coin master| sbobet เข้า ไม่ ได้| เว ป lsm99| gclub goldenslot| sbobet333 เข้า ไม่ ได้| casino evolution gaming| ซื้อ หวย เจต| wwwbeer555| sbobet88888 มือ ถือ| ราคา บอล sbobet วัน นี้| เล่น poker เว็บ ไหน ดี| sboibc888 มือ ถือ| เข้า สู่ ระบบ 918kissauto| ซื้อ ฟรี ส ปิ น ถูก ๆ| แอ พ มือ ถือ fun88| all casino บา คา ร่า| คา สิ โน ปอย เปต 777| 128coffee sbobet| เว็บ เจ ษ หวย| sbothai mobile| แจก ฟรี 100 ไม่ ต้อง แชร์| เว็บ หวย เจ ษ ฏา เบ ท| โปรโมชั่นพนันออนไลน์| sbobet888| sakura slot| สมัคร 918kissauto| สล็อต ออนไลน์ 168| www fun88 asia com vn| sbobet777 คอม| สมัคร lsm9999| gclubpros| แจก ฟรี ไม่ ต้อง แชร์| รับ เพิ่ม ส ปิ น coin master| ส โบ เบ็ ต 777| casinò giochi| สล็อต 88888| poker ฟรี เครดิต| สมัคร แทง บอล ออนไลน์ ฟรี| crowncas| gclub md| 918kiss ios โหลด ไม่ ได้| ราคา ไหล sbobet| fun88 vip group| poker ได้ เงิน จริง918kiss| ace333 ฟรี เครดิต 2019| casinol| โปร สล็อต 20 รับ 100| สมัคร เกม สล็อต ออนไลน์| หาสปินฟรี coin master|