1. <label id="2FcJb"></label>
      1. <tbody id="2FcJb"><optgroup id="2FcJb"><var id="2FcJb"></var></optgroup></tbody>

        <nobr id="2FcJb"></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
         
        918kaya สมัคร tiki slot ผล ฟุตบอล วัน นี้ ล่าสุด ssd ram slot สล็อต รับ เครดิต ฟรี 100 สล็อต rg888 casino non deposit bonus สมัคร เว็บ บอล bet356 poker 918kiss ฝาก ขั้น ต่ํา 50918kiss สมัคร top play casino gta v the diamond casino slot auto 779 vegas slot 888 สมัคร mafia ผล ฟุตบอล จุฬา ธรรมศาสตร์ 69slotxo ทาง เข้า psthai888 hutbet casino download app joker slot 918kis bet mega joker slot netent game slot 999 เกม ใน เว็บ ได้ เงิน สมัคร ใหม่ รับ โบนัส ฟรี สล็อต เครดิต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ casino bez deposit bonus เครดิต สล็อต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ดาวน์โหลด joker เวอร์ชั่น ล่าสุด เว็บ คา สิ โน แจก เครดิต ฟรี 2019 slotomania jackpot ลิ้ ง slotxoเล่น สล็อต xo poker offline แจก เครดิต ฟรี สมัคร รับ เลย casino online gratis bonus senza deposito 168 galaxy slotxo 888slotxo เว็บ ซื้อ ฟรี ส ปิ น ได้ ดาวน์โหลด fhm99 สล็อต แจก เครดิต ฟรี 100 ทาง เข้า jokergame โหลด เกมส์ ยิง ปลา ได้ เงิน poker free offline diamond gta v ยิง ปลา apk christmas slot gta 5 diamond area168 slot auto สล็อต ออนไลน์ royal https 168 galaxy nuovi casino online italiani เข้า เกมส์ joker dark slot roulette 1 สมัคร สล็อต ฟรี เครดิต 2020 4king casino no deposit 10 euro สล็อต ออนไลน์ เครดิต ฟรี ไม่ ต้อง แชร์ merkur slot machine สมัคร win888 slot the dog house sven bet casino สมัคร เล่น เกมส์ ออนไลน์ panda 777 slot pcie x16 to m2 สล็อต ฟรี เครดิต ไม่ ต้อง แชร์ 2020 สล็อต เกมส์ ไหน แตก ง่าย red tiger สล็อต slot club 444 ทาง เข้า joker8899z amatic free slot pcie ssd x16 สล็อต เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2020 คา สิ โน ออนไลน์ โบนัส ฟรี live222 ฟรี เครดิตslotxo ฟรี เครดิต 100 slot max american slot jokerxoth สมัคร สล็อต ฟรี เครดิต 100 สมัคร hero88 เกมส์ 666 slot777 slot casino gta 5 online 5 euro no deposit bonus casino อัตรา ต่อ รอง บอล สูง ต่ํา ยืนยัน ตัว ตน รับ เครดิต ฟรี 200 royal casino ถอนเงิน ได้ ไหม ฝาก ครั้ง แรก 10 บาท stars slot เกมส์ สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ผล บอล ซีเกมส์ 2019 วัน นี้ ล่าสุด สมัคร เอเย่นต์ ฟรี the dog house megaways duck slot circus bet slot1168 vip slot online paypal คา สิ โน ฝาก ถอน true wallet โหลด เกม 88 ราคา สกอร์ สูง ต่ํา ล่าสุด ยืนยัน ตัว ต้น รับ เครดิต ฟรี 100 เครดิต เดิมพัน ฟรี slot v9 xo autoslot hammer of vulcan slot slot all auto สล็อต เกมส์ ไหน แตก ง่าย โปร ฝาก 10 ได้ 100 africa slot เติม 10 รับ 100 casino bet 89 wolf megaways slotxo 69 th คา สิ โน่ 888 ยืนยัน เบอร์ รับ เครดิต ฟรี ไม่ ต้อง ฝาก ล่าสุด สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก 2019 super fortune dragon แจก สล็อต party live22 wow slot th วิธี เล่น บอล 1x2 spinacasino สมัคร เว็บ แท่ง บอล ออนไลน์ ฟา โร 777 ทาง เข้า banslot69 joker123 th สยาม สปอร์ต ผล บอล ghost slot www live222th com สมัคร สมาชิก the best slot online casino paypal einzahlung merkur joker123 auto alert hammer of vulcan slot jokerxoth book of ra deluxe slot free play ทาง เข้า genting club mafia ฝาก ถอน ไม่มี ขั้น ต่ำ joker slot 345 casino slotv ดาวน์โหลด joker888 mega flip slot twin casino promo code 2019 slot game 77 แจก เดิมพัน ฟรี สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ 40 mega slot สมัคร win888 ผล บอล 7 สี 168 bet slot slot pg99 sic bo analyzer เติม 10 บาท รับ 100 gta 5 casino ps4 สมัคร goldenslot slots 4u สล็อต รับ เงิน ฟรี ยืนยัน ตัว ตน รับ เครดิต ฟรี 2020 ล่าสุด www sbobet com livecasino versailles gold free ผล บอล อี ฟุตบอล ลี ก้า โปร เล่น 12 นาที สมัคร bet88thai amazing slot ถอนเงิน joker gaming isc123 สมัคร pcie ssd x16 เครดิต ฟรี กงล้อ ผล อี ฟุตบอล สล็อต เครดิต ฟรี 2019 casanova slot 777 slotciti dg casino app ผล ฟุตบอล สด วัน นี้ book of ra slot machine gratis joker123 th สล็อต แจก ฟรี ไม่ ต้อง ฝาก dragon slot 888 bar slot casino สมัคร สล็อต 100 บาท sa king 168 slot credit dark slot shagila slot bet slot 168 คา สิ โน ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ดาวน์โหลด sabai99 slot 918 autoสล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2562 jokerxoth เครดิต ฟรี qq808 free bet สมัคร 918kiss plus big jack slot live22 รอยัล สล็อต 777 ios 18 club casino download app joker slot evolution game roulette mafia a333 slot doble casino www star77casino myth slot สล็อต เครดิต ฟรี 300 ไม่ ต้อง แชร์ 2020 ทาง เข้า jokergame giochi di videopoker casino on net jugar gratis สล็อต เค ดิ ต ฟรี ไม่ ต้อง ฝาก สล็อต เครดิต ฟรี แค่ ยืนยัน ตัว ตน 10 euro free casino casino hacker vip mon jeu casino club slot machine android yeti casino bonus slotvip7 joker123 auto v2gudar casino ฝาก ขั้น ต่ำ 10 ดู ฟุตบอล u19 casino napoli no deposit bonus doble casino ฝาก 10 รับ 100 2020 megaways slot demo free star vegas pirate megaways สล็อต รอยัล จี คลับ slotxd ฝาก 10 รับ 100 ทาง เข้า xo888th mafia789 slot เว็บ sweet bonanza ฝาก 50 บาท รับ 100 สมัคร wm casino king189 free quick slot โหลด บา คา ร่า 1688 sagame 5555 เครดิต ฟรี lenovo legion y520 m2 slot fafafa tgmcasino bestbettingcasino slot m2 pcie รอยัล สล็อต ออนไลน์ all slot333 spartan slot casino best 88 slot พันธมิตร เว็บ บอล ทาง เข้า wm casino win blaster slot ผล ฟุตบอล ซีเกมส์ 2019 skill slot เกมส์ 888 slotxo 69 th เกมส์ สล็อต xo 918 slot club v2สล็อต ฝาก 1 บาท โบนัส 99 2020 ฟรี เครดิต สล็อต น้อง ใหม่ 300 บาท การ เล่น สกอร์ สูง ต่ํา 369 super slot star roulette สมัคร รับ เครดิต ฟรี สล็อต slot10 casino 4king casino ดาวน์โหลด joker เวอร์ชั่น ล่าสุด เครดิต ฟรี รับ หน้า เว็บ casino online italiani senza deposito royal xo slot ทาง เข้า chanabet555 slot pay boomslot888 ผล ฟุตบอล ต่าง ประเทศ คืน นี้ โปร โม ชั่ น ฝาก 1 บาท ได้ 100 วิธี โหลด แอ พ ufabet ผล ฟุตบอล สดๆ stars genie slot คา สิ โน โอน ผ่าน วอ เลท 20 euro free no deposit ssd pci x16 ผล การ แข่งขัน ฟุตบอล ซีเกมส์ 2019 ผล ฟุตบอล พรีเมียร์ ล่าสุด slot ufa191 ผล บอล ซีเกมส์ วัน นี้ เดิมพัน ออนไลน์ แจก เครดิต ฟรี hotline 2 slot legend of cleopatra slot คา สิ โน แจก เครดิต ฟรี 2019 สล็อต เครดิต live22 เข้า สู่ ระบบ sun slot volcano slot แจก เครดิต เครดิต ฟรี ไม่ ต้อง ฝาก 2019slotking99 สมัคร มาเฟีย slot club 99 สมัคร เล่น บอล patrick mcreary gta v sunny fruits slot kingslot 189 เครดิต ฟรี รับ หน้า เว็บ joker slot 345 fifa55 ไลน์ สมัคร จี คลับ สล็อต สมัคร เล่น xe88 ฟรี เครดิต ยืนยัน เบอร์ โบนัส ฟรี สล็อต wild toro ฝาก 10 รับ 100 2020 pgsloteasy บ้าน ผล บอล สยาม สปอร์ต dragons slot ผล บอล นักเรียน 7 สี วัน นี้ 777ww2 คา สิ โน great 88 slot เล่น เกม โร ม่า ฟรี ฝาก 10 รับ 100 ถอน ไม่ อั้น social slot ค่าย เกมส์ สล็อต casino no deposit bonus 10 euro golden euro casino no deposit bonus ไฮ ไล ท์ ฟุตบอล ทั่ว โลก กีฬา ผล บอล สด atlantis slot สมัคร king168 ฟุตบอล วัน นี้ ผล บอล สด bet poker 365 casino royal palace slotplus casino mafia bkk สล็อต all slot222 casino gg super slot777 club 888 casino ผล การ แข่งขัน ฟุตบอล หญิง ซีเกมส์ magic 27 slot free เดิมพัน ออนไลน์ แจก เครดิต ฟรี ผล ฟุตบอล พรีเมียร์ ลีก ตอน นี้ สล็อต ฝาก 200 รับ 200 สล็อต รอยัล จี คลับ pg slot ฝาก วอ เลทKeyword slotsmagic เกมส์ กงล้อ jdb168 ดาวน์โหลด mighty kong slot ผล บอล หญิง ไทย ซีเกมส์ king slot 88 ผล ฟุตบอล 7m เครดิต เล่น สล็อต ฟรี bet slot joker kingslot 88 777 slotciti แจก เครดิต เครดิต ฟรี ไม่ ต้อง ฝาก 2019slotking99 ผล บอล ผล บอล สด ผล ฟุตบอล ล่าสุด fortune rangers slot c2 xoslot รีวิว ปอย เปต sabai99 apk john hunter da vinci slot คา สิ โน ฝาก ถอน true wallet การ เล่น สกอร์ สูง ต่ํา ผล การ แข่งขัน ฟุตบอล พรีเมียร์ ผล ฟุตบอล ซีเกมส์ ezugi roulette allslot 444 สมัคร เล่น เกมส์ ออนไลน์ party poker app android ผล บอล ซีเกมส์ รอบ รอง สมัคร 77up peking luck poker slot machine free สมัคร jack88 เกมส์ สล็อต ฝาก 10 บาท รับ 100 บาท พุ ช ชี่ 888 ไทย สมัคร เล่น สล็อต จี คลับ 123vip line สมัคร บอล แจก เสื้อ เครดิต ฟรี ปั่น สล็อต สมัคร สล็อต ฟรี เครดิต 2020 แจก เค ดิ ต ฟรี บา คา ร่า เกมส์ mega888 juegos de casino free ฝาก 10 บาท ได้ 99 member sbobet la galaxy 88 casino เว็บ jdb magic journey slot 899 slot เครดิต ฟรี 100 ยืนยัน เบอร์ midas gold slot play star slot slot bmx kingslot xo mafia99th เกมส์ พา รวย slot007v1 คา สิ โน ใหม่ ฟรี เครดิต 50 rich 777 slot 1xslot promo code สมัคร สมาชิก star vegas royal xo slot ผล การ แข่งขัน ฟุตบอล พรีเมียร์ a ฟุตบอล วัน นี้ casino lucky win ฝาก 10 รับ 100 บาท ทดลอง เล่น แคน ดี้ ป๊ อบ zentaurus slot free สล็อต เครดิต ฟรี 100 ไม่ ต้อง ฝาก ก่อน ลง ทะเบียน รับ เครดิต ฟรี 100 euromania casino bonus retro slot การ แทง บอล ชุด เข้า สู่ ระบบ mafia488 เติม 10 บาท รับ 100 สมัคร joker789 ปอย เปต คอม ผล เบสบอล thscore ยู ส เท ส 918 ลง ทะเบียน สล็อต สล็อต ฟรี เครดิต 50 mafia a333 slot ผล ฟุตบอล พรีเมียร์ วัน นี้ igrice slot masine สมัคร live222 egt slot gratis slot ฝาก ผ่าน paypal hyper slot ผล การ แข่งขัน บอล ซีเกมส์ ผล บอล หญิง ไทย ซีเกมส์ สล็อต ฟรี เครดิต ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ roulette bet counter chanabet555 service la galaxy casino ice slot sic bo analyzer รับ เครดิต ฟรี หน้า เว็บ allslot v2 โปร ฝาก 10 บาท ได้ 100 สมัคร avenger98 sata m2 slot fruitinator demo สมัคร สล็อต ฟรี เครดิต 2020 mamabonus casino jack998 สมัคร สมัคร สล็อต รอยัล la galaxy casino สมัคร win888 slot m2 ssd สมัคร goldclub 777ww casino language เว็บ สล็อต ซื้อ ฟรี ส ปิ น ได้ mafia 66 slot big bonus slot slot demo pp social bet777 ดาวน์โหลด jokerslot99 mafia88 ทาง เข้า lord spin casino aaa slot fruits slot สล็อต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ slotxo 69 th ฟุตบอล เมือ คืน ผล ฟุตบอล วัน นี rock slot ฝาก 10 รับ 100 2020 ผล บอล ฟุตบอล วัน นี้ สล็อต ออนไลน์ แจก เครดิต ฟรี ไม่ ต้อง ฝาก circus casino mobile ผล บอล อี ฟุตบอล เว็บ คา สิ โน แจก เครดิต ฟรี 2019 ผล อี ฟุตบอล win win won slot panda slot ผล ฟุตบอล ซีเกมส์ ไทย อินโดนีเซีย เครดิต ฟรี รับ หน้า เว็บ เข้า เกม joker888 ผล ฟุตบอล กรม พละ 18 ปี ก 2562 dragons pearl slot เกมส์ joker empire777 สมัคร 5 euro free no deposit สล็อต เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2020 สมัคร เกม แคน ดี้ เครดิต ฟรี สล็อต ฝาก ขั้น ต่ำ ฝาก 22 รับ 100 ล่าสุด slot สมัคร 1 บาท เกมส์ ออนไลน์ ฟรี ได้ เงิน จริง cobra casino bonus code ผล ฟุตบอล วัน นี play slot 88 พุซซี่ 888 โปร 100 tesla slot dreamtech สมาชิก ใหม่ 100 ผล ฟุตบอล fox88 casino slot1234 kiss918 ny spin casino casino zeppelin slotฝาก 9 บาท รับ 100 ล่าสุด ผล ฟุตบอล ซีเกมส์ ไทย เวียดนาม ผล บอล วัน นี้ ซีเกมส์ white rabbit slot spartan fire slot lucky olaf casino ผล ฟุตบอล ซีเกมส์ royal casino slot ฝาก ขั้น ต่ำ 10 สล็อต รอยัล จี คลับ bet2u no deposit bonus black jack 18 santa maria casino royal bet777 เข้า 918kiss candy burst ได้ เงิน จริง ไหม โหลด xo168 เว็บ เล่น สล็อต pantip ฝาก 10 รับ 100 pussy เครดิต สล็อต ฟรี 2020 ดาวน์โหลด jokerslot99 แจก ทุน สล็อต ผล บอล อี ฟุตบอล อี ลิ ท expslotxo สมัคร เกม ยิง ปลา ออนไลน์ epic jackpot slot star vegas 345 ค่าย เกมส์ สล็อต เกม สล็อต แคน ดี้ ป๊ อป ผล การ เลือกตั้ง นายก สมาคม ฟุตบอล slot betway คา สิ โน โอน ผ่าน วอ เลท สล็อต แจก เครดิต ฟรี 1000 ไม่ ต้อง ฝาก golden lotus slot free play สมัคร เล่น เกม สล็อต ออนไลน์ program slot สมัคร king168 ผล ฟุตบอล สด ล่าสุด street racer slot casino top 5 บ้าน ผล บอล สยาม สปอร์ต สล็อต แจก ฟรี เครดิต ไม่ ต้อง ฝาก ดาวน์โหลด jokerslot99 ฝาก 10 รับ 100 ถอน ไม่ อั้น boxing slotxo slot 888 v5 คา สิ โน ออนไลน์ ท รู วอ เลท v slot 3d printer คา สิ โน โอน ผ่าน วอ เลท 888 casino game สมัคร เล่น บอล mafia88 ทาง เข้า คา สิ โน มา รวย slot hoyeah สยาม กีฬา บ้าน ผล บอล ทดลอง เล่น แคน ดี้ ป๊ อบ เว็บ แจก โบนัส ฟรี ผล ฟุตบอล ล่าสุด คืน นี้ bonus casino senza deposito 2016 jackpot king slotxo 2 win casino lady slot live222th ฝาก ถอน เกมส์ สล็อต 777 mega888 ไม่มี ขั้น ต่ําcasino lucky pussy888 ฝาก 20 sa slot big slot 888 v5 qq star vegas สล็อต แจก ทุน เวฟ แจก เครดิต ฟรี ผล ฟุตบอล แชมป์ กีฬา 7 สี 2019 ดาวน์โหลด fhm99 columbus deluxe slot slot dog house sata m2 slot ผล ฟุตบอล u23 วัน นี้ เว็บ แจก เครดิต ฟรี 100 black jack android winbigjoker 168 club casino bear slot www star77casino slot777 th tgmcasino เวฟ แจก เครดิต ฟรี สมัคร ufa555 mafia ถอน ไม่มี ขั้น ต่ํา สล็อต ฟรี เครดิต ไม่ ต้อง แชร์ 2020 เครดิต สล็อต ฟรี ไม่ ต้อง ฝาก 2020 เกมส์ slot แตก ง่าย tiger slot เครดิต ฟรี ดู ฟุตบอล u19 mega888 สมัคร สมาชิก wm casino สมัคร168galaxy bongo gg casino ผล ฟุตบอล สด คืน นี้ casino 10 euro no deposit bonus เทคนิค การ เล่น บอล รอง kingslot 189 ผล ฟุตบอล พรีเมียร์ ลีก ตอน นี้ สมัคร สล็อต ฟรี 100 caesar slot casino ผล ฟุตบอล สด วัน นี้ ทุก ลีก wm casino คา สิ โน ออนไลน์ slot555 login slotxo24hr thai official coin365bet casino fruit party demo safari megaways star vegas 168 maya slot casino non stop bwin casino mobile hibet8 ทาง เข้า king168th สมัคร sclub คา สิ โน เครดิต ฟรี 2019 zeus 1000 สมัคร sclub majestic megaways boyaa texas poker ios igame bonus code 2019 สมัคร sboslots tome of madness super sic bo evolution สล็อต เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2019 ocean treasure slot เติม 10 บาท รับ 100 168 club casino ufa100 สล็อต spielen roulette online ผล ฟุตบอล ยู 23 วัน นี้ kfc slot mafia88 ทาง เข้า super 7 slot black jack gratis online ผล การ แข่งขัน ฟุตบอล ซีเกมส์ 2019 สล็อต จี คลับ 888 game slot kiss 918 เครดิต ฟรี ไม่ ต้อง ฝาก สล็อต สมัคร สมาชิก ใหม่ ฝาก 10 รับ 100 roshtein slots boss media poker โหลด เกม ที่ เล่น แล้ว ได้ เงิน จริง ยืนยัน ตัว ตน รับ เครดิต ฟรี 2020 ล่าสุด สล็อต rg888 ทดลอง เล่น ฟรี ส ปิ น ผล ฟุตบอล บุรีรัมย์ วัน นี้ casino online italiani senza deposito สล็อต แนะนำ เพื่อน mega win casino spin999 สล็อต ผล ฟุตบอล u23 slotebi 777 สล็อต เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2563 alien slot ผล ฟุตบอล โลก รอบ คัดเลือก เกมส์ สล็อต 777 เว็บ แจก โบนัส ฟรี ghost slot 1 บาท ก็ ถอน ได้ giochi di carte da casino แจก รหัส สล็อต casino gta 5 offline ไฮ ไล ท์ ฟุตบอล จตุรมิตร sbobet เอเย่นต์ 168slotxo ทดลอง alice slot สมัคร hack4slot star vegas 345 ดู รายการ ฟุตบอล วัน นี้ ดู ฟุตบอล u19 fhm99 apk gclub8 vip ผล ฟุตบอล premier league ค่าย เกมส์ สล็อต สล็อต ฟรี เครดิต 100 ไม่ ต้อง ฝาก เงิน casino bingo no deposit bonus bwin casino mobile joker millions jackpot สมัคร playstar พุ ช ชี่ 888 ไทย blackjack kamagames slotsmagic instacasino mobil top play casino morgana megaways demo คา สิ โน ออนไลน์ ท รู วอ เลท flowers slot sboslots สมัคร สมัคร live777th m joker99th slots 10 casino deposito minimo 1 euro paypal gclubgod สล็อต ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก 2019 game slot 999 jackpot admiral bet slot 789 ผล ฟุตบอล วัน นี้ ล่าสุด absolut slots sexy stars casino panda master slot เล่น star vegas เฮง เฮง เฮง 666 คา สิ โน สล็อต เกมส์ ไหน แตก ง่าย neon staxx slot ผล e ฟุตบอล 777ww contact center moon slot primal megaways star vegas 100 slot48 xo gclub เทพ เอเชีย ดาวน์โหลด king168 ล่าสุด สมัคร สมาชิก mafia88 สล็อต ฟรี เครดิต สมาชิก ใหม่ the best slot tiara slot ฟา โร 777 แจก เครดิต เครดิต ฟรี ไม่ ต้อง ฝาก 2019slotking99 ผล บอล หญิง ซีเกมส์ ไทย เวียดนาม jack megaways slot 889 th euro moon casino สล็อต เครดิต ฟรี 1000 ace333 คือ ผล บอล เมื่อ คืน สยาม สปอร์ต kingslot 189 เว็บ jdb casino online gratis bonus senza deposito hugo slot สมัคร เว็บ ฟีฟ่า เจ้ามือ บอล spin win roulette casino zeppelin slotฝาก 9 บาท รับ 100 ล่าสุด ผล ฟุตบอล ซีเกมส์ วัน นี้ คูปอง wm casino สล็อต แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2019 mafia ฝาก ถอน ไม่มี ขั้น ต่ำ igame bonus code 2020 เกมส์ แจก เงิน ฟรี เว็บ พนัน ต่าง ประเทศ ถูก กฎหมาย mister winner casino star vegas สมัคร ยู ส เครดิต ฟรี bonus casino 1xbet ผล การ แข่งขัน ฟุตบอล ต่าง ประเทศ secret romance slot 888 casino app ผล ฟุตบอล สล็อต รับ เงิน ฟรี dragon king slot สมัคร สล six bo pragmatic play สมัคร สมัคร hero88 slotxogame 999 ผล ฟุตบอล เอเชีย น คั พ ibc9 เงิน ฝาก ของ คุณ อนุมัติ แล้ว โชค ดี ค่ะ royal casino slot ex 88 slot game jackpot automat 888 casino app all star vegas 4king casino แจก เครดิต เครดิต ฟรี ไม่ ต้อง ฝาก 2019slotking99 gta v online casino ทดลอง เล่น ฟรี ส ปิ น สมัคร sagame666 slot machine android ผล ฟุตบอล โลก รอบ คัดเลือก โซน เอเชีย 2022 casino slot demo star casıno ฟุตบอล สด เมื่อ คืน black jack gratis online slotxo 69 th 918kiss plus สมัคร ผล บอล กีฬา 7 สี heng666 สมัคร สมาชิก 1234 superslot red tiger slot free ฟรี เครดิต ยืนยัน เบอร์ gta 5 online casino diamond ubet89 ดี ไหม สมัคร slotv สยาม สปอร์ต ผล บอล สด เข้า เกมส์ joker สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก 2020 เครดิต ฟรี 100 ยืนยัน เบอร์ เว็บ คา สิ โน แจก เครดิต ฟรี 2019 inferno joker slot the dog house slot สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ 2020 สล็อต ฟรี เครดิต 100 ไม่ ต้อง ฝาก เงิน slot ฝาก ผ่าน paypal ดู บอล ออนไลน์ 789 sic bo analyzer poker90 สมัคร jdb vegas slot 888 สมัคร เอเย่นต์ mystery joker 6000 slot สล็อต ยืนยัน ตัว ตน รับ เครดิต ฟรี 2020 mafia slot bkk super rich slot safari megaways slot 889 th โหลด เกม แก๊ง ส ตา ร์ เว กั ส โปร casino 365 games tiki vikings ดู รายการ ฟุตบอล คืน นี้ 5 euro bonus no deposit สมัคร แจก ฟรี เครดิต hammer slot สล็อต สมัคร รับ เครดิต ฟรี 2020 ผล ฟุตบอล พรีเมียร์ ลีก ตอน นี้ allslot vip slot demo games ไฮ ไล ท์ ฟุตบอล 7 สี poker free offline win win club casino ผล การ แข่งขัน ฟุตบอล หญิง ซีเกมส์ สมัคร สล็อต ผ่าน วอ เลท slotciti สมัคร sa โปร 100 slotxo 369 v2 africa slot 888game ผล บอล ซีเกมส์ ล่าสุด creality ender 3 prusa i3 5 euro bonus no deposit ฟรี เงิน เดิมพัน เครดิต ฟรี สล็อต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 สล็อต dreamtech sky918kiss casino on net jugar gratis ผล เทนนิส สด ทุก ลีก empire777 สมัคร 369 super slot ฟุตบอล สดๆ ๆ autoslot 888 slot wolf gold slot777 slot vegas 888 slot playamo askgamblers roshtein slots m2 to pcie x16 casino gta online ดู ผล ฟุตบอล พรีเมียร์ ลีก ฝาก 10 บาท ได้ 99 สมัคร สมาชิก มาเฟีย 88 สมัคร สมาชิก jdbaa western slot program slot machine chip pop slot free ไฮ ไล ท์ ฟุตบอล 7 สี ได้ ส ปิ น ฟรี เกม หมู seven 7's slot morgana megaways demo kingslot 189 gta 5 online casino diamond สล็อต ฟรี เครดิต 2020 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ mafia bkk สล็อต slot machine android ทาง เข้า psthai888 kingbilly promo code gclub888 download euro casino slots 189 slot เครดิต ฟรี แบบ ยืนยัน ตัว ตน ยืนยัน รับ เครดิต ฟรี แอ พ เล่น พนัน 10 euro free casino no deposit สล็อต 555 ฟรี เครดิต mafia39 slot online casino merkur spiele paypal สมัคร สล็อต รับ เครดิต ฟรี ไม่ ต้อง ฝาก สล็อต ออนไลน์ จี คลับ สมัคร joker789 888 casino app fox88 casino all star vegas 88 fortune slot vip casino v1 ฝาก 10 รับ 100 pussy rainbow slot สล็อต แจก ฟรี ไม่ ต้อง แชร์ เว็บ jdb slotxo 69 th star casıno ดาวน์โหลด joker เวอร์ชั่น ล่าสุด kazino slot book of ra for free casino on net jugar gratis รอยัล คา สิ โน pc app casino 888 poker no deposit 2020 sa king 168 สล็อต แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 no deposit bonus euro คา สิ โน wallet 100 euro free no deposit casino slot วัน เกิด 40 mega slot สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก 2020 slotxo 369 v2 winner55 ทาง เข้า สล็อต ผล ฟุตบอล สด 888 สมัคร สมาชิก 8richd slot777 thเล่น สล็อต xo jokerxoth สมัคร jdb casino gta 5 ps3 doa 2 slot ถอนเงิน joker gaming credit free casino buffalo king slot ดาวน์โหลด king168 ล่าสุด gta online ps3 casino ผล ฟุตบอล วัน นี้ พรีเมียร์ ลีก การ พนัน สล็อต legend slot โหลด รอยัล สล็อต casino no deposit 2019 สมัคร 588ws playamo25 สมัคร เว็บ บอล แถม เสื้อ telegram roulette ฟรี เครดิต สล็อต น้อง ใหม่ 300 บาท ผล ฟุตบอล สด วัน นี้ ทุก ลีก asia999 สมัคร jokerslot888 ดาวน์โหลด slot xo69 แอ พ การ พนัน casino ios app merlin slot ทดลอง เล่น สล็อต red tiger รับ เครดิต ฟรี ยืนยัน เบอร์ www sbobet com livecasino บา คา ร่า แจก โบนัส คา สิ โน ออนไลน์ โบนัส ฟรี แจก สล็อต fastbet 98 ฟุตบอล ราชบุรี tiger warrior slot golden chance slot dragon champion slot ice wolf slot 888 black jack สมัคร เว็บ บอล ไม่ ผ่าน เอเย่นต์ ฝาก ถอน 1 บาท slot ch star vegas สมัคร casino gta online ps3 pcie ssd x16 joker สมัคร รับ เครดิต ฟรี superslot 1234 สมัคร win888 slot 889 th king money slot casino con bonus senza deposito lista completa gta v online casino roulette sa slot big slot golden สล็อต ทดลอง เล่น xo slot 918 autoสล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2562 ขอ เครดิต ฟรี สล็อต สมัคร จี คลับ สล็อต สล็อต ไม่ ต้อง แชร์ agent 007 casino royale sky slot88 คา สิ โน ออนไลน์ โบนัส ฟรี เกมส์ สล็อต แตก ง่าย เติม สล็อต ผ่าน วอ เลท สล็อต ต่าง ประเทศ เครดิต ฟรี 2020 mega win casino mate 10 pro sd card slot area168 slot auto สล็อต แจก ฟรี ไม่ ต้อง แชร์ slot 100 bonus slot rabbit autoslot magua 888 เว็บ ฝาก ขั้น ต่ํา 1 บาท virtual city casino 50 free สล็อต แจก เครดิต ฟรี 1000 ไม่ ต้อง ฝาก เครดิต สล็อต ฟรี 2020 downtown slot รับ เครดิต ฟรี ยืนยัน เบอร์ ผล ฟุตบอล เอเชีย น เกมส์ slot auto 779 siamsport ผล บอล สด playamo 20 lucky lady's multifly casino แจก เครดิต ฟรี สมัคร เสร็จ รับ เลย ฟรี เค ดิ ต บา คา ร่า ทดลอง เล่น ฟรี joker ทุน น้อย ฝาก 10 รับ 100 โหลด เกม ที่ เล่น แล้ว ได้ เงิน จริง ดาวน์โหลด joker8899z tiger สล็อต slots gratis 2019 shanghai beauty slots ผล ฟุตบอล ล่าสุด พรีเมียร์ ลีก ผล การ แข่งขัน ฟุตบอล u23 วัน นี้ kingslot 888 สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก 2020 สมัคร สล็อต 100 บาท golden hoyeah slots pantip the jackpot 918kiss
        สมัคร เล่น สล็อต ไม่มี ขั้น ต่ํา| ibc9 คือ อะไร pantip| joker8899 download| เกม สล็อต ออนไลน์ ที่ ดี ที่สุด| 1 star vegas ได้ เงิน จริง ไหม| betflix24 สมัคร สมาชิก| เล่น ป๊อก เด้ง ให้ ได้ เงิน| เกม สล็อต ที่ แตก ดี ที่สุด| เกมส์ เล่น ได้ เงิน จริงๆ| แอ ป xo| เกม แคน ดี้ คา สิ โน| sweet bonanza อยู่ ค่าย ไหน| ตัว เกม xo| สล็อต โจ๊ก เกอร์ ฝาก ผ่าน วอ เลท| 123vip สมัคร| สล็อต ที่ มี คน เล่น มาก ที่สุด 2020| joker th vip| โปร สมาชิก ใหม่ 100 สล็อต| live22 แตก ง่าย| ทดลอง เล่น bonanza| เกม ทดลอง เล่น joker| โปร ฟรี สล็อต| เว็บ สล็อต เครดิต ฟรี 2020| ดาว slotxo| slot pg โปร 100| dummy เงิน จริง| slotjoker 666| สมัคร sbobet 777| สวี ท โบ นั น ซ่า เล่น ฟรี| หมุน สล็อต ฟรี 15 ครั้ง| ufa slot แตก ง่าย| เว็บ สล็อต เครดิต ฟรี 2019| เกม แมว สล็อต| pg slot online| fifa55 ดี ไหม ครับ| jokerauto 123| สมัคร ฟรี สล็อต| โปร เว็บ สล็อต| demo slot captain bounty| เกม สล็อต pussy| สล็อต เว็บ ไหน ดี 2020| ทาง เข้า โจ๊ก เกอร์ สล็อต| เครดิต ฟรี กด รับ เอง 2020| slot supreme caishen| โหลด เกมส์ slotxo| สล็อต เล่น ฟรี ไม่ ต้อง ฝาก| pgslot 99th| เกม ฝาก ผ่าน ท รู วอ ล เล็ ต| เกม เล่น ได้ เงิน จริง ไม่ ต้อง ลงทุน| เกม ออนไลน์ ฝาก ไม่มี ขั้น ต่ํา| ufaonline24| สูตร บา คา ร่า dg grand| joker slot im| สล็อต ไม่ ต้อง ทํา เท ริน| เล่น เกม ได้ เงิน จริง ไม่ ต้อง ฝากเกม สล็อต ฟรี เครดิต| demo pg slot| เกม sweet bonanza ได้ เงิน จริง ไหม| slot joker 6886| เล่น ไพ่ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง| slot game 444| joker บา คา ร่า| ฟรี เงิน เดิมพัน 2020| sweet bonanza สมัคร| สล็อต pussy 888| สมัคร สมาชิก ใหม่ เครดิต ฟรี| โค้ด ฟรี 333be|