<sub id="re41W"><rp id="re41W"><delect id="re41W"></delect></rp></sub>
<sub id="re41W"><listing id="re41W"></listing></sub>
<form id="re41W"></form>
        <form id="re41W"></form>

        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
         
        rolet casino all new gclub fun88 ฝาก เงิน ค่าย จี คลับ poker เงิน จริง ios ฮ อ ลิ เดย์ ปอย เปต คา สิ โน 918kiss33 ดาวน์โหลด ส โบ เบ็ ต 222 casino maxbet poker ออนไลน์ เงิน จริง เพิ่ม ส ปิ น coin master pantip แจก ฟรี ส ปิ น เกม coin master gclub goldenslot gclub678 gclub 98 ดาว โหลด เกม 918kiss iosเครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร ฟรี สล็อต ออนไลน์ bilion casino วิธี แลก ส ปิ น coin master sbobetv8 โบนัส เงิน คืน ท รู เครดิต คา สิ โน ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 angel slot jetsadabet vip wwwsbobet888 ส โบ 888 split casino starmania slot เแ สีิ pssuy888 happyluke slot 999lsm login sbobet 123 ทาง เข้า sbobet24h lsm99 sport สล็อต หมุน ฟรี ใน google รับ ไป เลย ฟรี เครดิต 100 บาท lara croft slot casino caesar mg slot168 royal casino ถอนเงิน รู น แทง ค์ ถึก ๆ duell casino ทาง เข้า sbobet online ฝากเงินครั้งแรกรับโบนัส 200% สูงสุด 8,000 บาท ล อ ต โต วัน casino dices ทาง lsm99 dafabet fun88 วิธี เพิ่ม ส ปิ น coin master ios fun888 มือ ถือ ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ สล็อต ฝาก เงิน ท รู้ วอ เลท เสื้อ fun88 เว็บ ไฮโล แจก ฟรี สมัคร fin88 happy halloween slot lsm99th m88 casino online slot io สล็อต happyluke happyluke สล็อต kiss777th รับ ส ปิ น coin master gclub45 โบนัส เว็บ พนัน ออนไลน์ สล็อต ออนไลน์ ufa345th ลิ้ ง ส ปิ น ฟรี coin master ล่าสุด casino pullman สมัคร สมาชิก sbobet ทาง เข้า gclub ล่าสุด spinomenal slots ส โม เบ ท 555 วิธี หา ส ปิ น ฟรี coin master gclub iphone สมัคร fun888 สมัคร lsm99 www gclub666 แจก ส ปิ น ฟรี coin master จี คลับ 5555 รับ ฟรี ส ปิ น coin master บิงโก สล็อต เครดิต ฟรี ล่าสุด 2020 ลำดับ ไพ่ โป ก เกอร์ ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ ทาง ส โบ เบ็ ต gclubthailand sbobet rich88 ทาง เข้า sbobetmix sbo128 ทาง เข้า google sbobet222 มือ ถือ เค ดิ ต ฟรี ทํา เทิ ร์ น สูตร ยี่ กี่ jetsadabet gclub ฟรี 500 2018 lsm99 net temple slot wwwsbo666 สล็อต ออนไลน์ ufa345th สมัคร 10 รับ 100 ส โบ เข้า ไม่ ได้ jackie casino หวย ออนไลน์ jetsadabet sbobet สมัคร ใหม่ sbo24hr ทาง เข้า w2 99lsm live casino house ทาง เข้า casino bronze sbobet pc รู น แทง ค์ sbobet560 สล็อต ค่าย ไหน ดี pantip mafia ฝาก 1 บาท gclubmember สล็อต ฝาก ถอน วอ เลท เว็บ ส โบ เบ็ ต สล็อต ฝาก ขั้น ต่ำ 20 บาท gclub 711 ไฮโล มือ ถือ การ พนัน 100 ฟรี ส ปิ น coin master หวย หุ้น เจษฎา แจก เงิน ฟรี 300 เครดิตฟรีไม่ต้องฝากไม่ต้องแชร์ royalonlin คา สิ โน happyluke lsm999 โบนัสฟรีสปิน 888 casino android สมัคร สล็อต ไม่มี ขั้น ต่ํา สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา all slot online รับ ส ปิ น ฟรี เกม coin master casinomodule สมัคร sbobet คา สิ โน tomato888 ป๊อก เด้ง เครดิต ฟรี ไม่ ต้อง ฝาก blackjack vip เข้า sbobet มือ ถือ ไม่ ได้ gsm casino วิธี ส่ง ส ปิ น เกม coin master babe casino แจก ส ปิ น ฟรี coin master ฟรี 123 plus casino ส ปิ น วัน นี้ m onlinesbobet สล็อต ฟรี เครดิต 2019 casino flash วิธี เก็บ ส ปิ น coin master ส โม เบส 88 happyluke เกมส์ winner55 สล็อต sbobet888 ทาง เข้า ล่าสุด w88 mobile casino แทง หวย เว็บ เจษฎา www w2 lsm99 สมัคร ace333 alpha222 mobile 888 gold slot coin master เพิ่ม ส ปิ น ทาง เข้า sbo188 jetsadabet allnew8888 ส ปิ น ฟรี coin master ล่าสุด จี คลับ 97 123 plus casino world gclub casino sms deposit poteau casino coin master รับ ส ปิ น ฟรี หวย เจษฎา vip สล็อต ฟรี เครดิต 2019 lsm99 sport เกม พนัน ไฮโล ทาง เข้า จี คลับ ใหม่ สล็อต happy ส ปิ น coin master ฟรี 3n2 net gclub xoslot168 สล็อต ผ่าน วอ เล็ ต sbobet777 ทาง เข้า www fun88 com vn sbo888 ทาง เข้า โบนัสต้อนรับ 918kiss download ios 2019 dragon club casino หวย เจษฎา ออนไลน์ เครดิต ฟรี สมัคร รับ ทันที gold vip casino 7kasino เข้า ส โบ ไม่ ได้ royal online 8888 ส ปิ น ฟรี เกม coin master ทาง เข้า ส โบ 8888 ร็ อ ค โค่ แค ป ฝาก ผ่าน ท รู วอ เลท ฟรีสปิน15ครั้ง สล็อต ขั้น ต่ำ 1 บาท แจก ส ปิ น coin kiss777th sbobet online mobile ฝาก เงิน vscr888 gclub678 coin master เพิ่ม ส ปิ น fun88 นางฟ้า 918kiss ดาวน์โหลด android ซื้อ หวย เว็บ เจ ษ coin master ส ปิ น ฟรี android indukbola เค ดิ ต ฟรี บา คา ร่า 2020 happyluke 999 เข้า ระบบ jetsadabet โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท royal 6666 online slottojam casino เล่น จี คลับ join casino 21 casino online วิธี เพิ่ม ส ปิ น coin master ฟรี เว็บ หวย ออนไลน์ jetsadabet fun88 ทาง เข้า 2018 วัน นี้ สมัคร ใหม่ รับ เครดิต ฟรี ทันที 2020 เค ดิ ต ฟรี 2020 ล่าสุด การ เล่น โป ก เกอร์ ออนไลน์ เล่น จี คลับ ผ่าน เว็บ rolet casino 888 casino paypal คา สิ โน gclub gclub บน มือ ถือ สมัคร สมาชิก 918kiss โบนัส 100 เค ดิ ต ฟรี 2020 ล่าสุด ขอโบนัส การ หา ส ปิ น ฟรี sbobet beer777 jetsadabet777 918kiss download pc การ เล่น โป ก เกอร์ ออนไลน์ เล่น จี คลับ เกม บิงโก ตัวเลข dafabet ไว กิ้ ง โหลด 918kiss ios login fun88 สมัคร kiss918 ฟรี เครดิต ส โบ 88 coin master โปร ส ปิ น 2020 dafabet pantip ส โบ เบ ท สูตร coin master ทาง เข้า บา คา ร่า จี คลับ วิธี หา ส ปิ น coin master lsm99 ทาง ไลน์ 18bet casino สล็อต playstar รอยัล ออนไลน์ 888 สปินฟรี coin master ฟรีไม่จํากัด sbobet129 หมุน สล็อต ฟรี 2019 ้ happyluke fun555 ทาง เข้า เว็บ แทง หวย jetsadabet poker online เว็บ ไหน ดี สมัคร รับ เครดิต ฟรี ไม่ ต้อง แชร์ เค ดิ ต ฟรี ไม่ ต้อง แชร์ happyluke คือ gclub pro 2bcasino online bet soft bacc6666 สมัคร gclub free สมัคร mega888 ib888 เข้า สู่ ระบบ sbobet347 สมัคร เครดิต ฟรี luck แจก ฟรี ส ปิ น 2020 coin master coin master แจก ส ปิ น ฟรี wildslots casino lsm99 สมัคร แจ็ ค พอ ต gclub เกม บิงโก ตัวเลข ล็ อ ต โต้ วี ไอ พี jetsadabet เอ เย่ น ไหน ดี pantip เค ดิ ต ฟรี ทํา เทิ ร์ น เว ป 1000 ล็ อ ต โต้ แจก ส ปิ น coin master ฟรี fun788 login เค ดิ ต ฟรี ล่าสุด ไม่ ต้อง แชร์ tomato555 เค ดิ ต ฟรี 2020 spartacus casino 888 ล็ อ ต โต้ royalfever gclub โป๊ก เก อร fun888 login เติม 100 ฟรี 300 fun555 มือ ถือ jetsadabet allnew8888 ts911 แจก เครดิต ฟรี sbobetmix halloween jack slot royal gclub666 ทาง เข้า sboasia jetsadabet pantip reel rush 2 slot coahuila casino สมัคร fun888 ลำดับ ไพ่ โป ก เกอร์ เข้า fun88 จี คลับ 5555 take 5 slot สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา fun88 ทาง เข้า pc เกมส์ สล็อต ได้ เงิน จริง 888 jetsada vip royalfever gclub poipet 555 ww77 casino แจก ทุน เล่น สล็อต ฟรี tervetulobonus เว็บ เจษฎา เบ ท วิธี แลก ส ปิ น coin master สล็อต เครดิต ฟรี ล่าสุด 2020 dafabet เว็บ บอล sbobet wwwsbobet888 angel slot ทีเด็ดบอล คา สิ โน ใน ปอย เปต 918kiss 918kiss kiss918 vipเครดิต ฟรี เทิ ร์ น 1 เท่า 2020 แบบ บิงโก สูตร เพิ่ม ส ปิ น coin master super gclub ส โม เบ ท 555 sbfplay 99 สูตร coin master 918kiss download 2019 ios ล็ อ ต โต้ 77 เอา ส ปิ น coin master ฟรี ปอย เปต รีสอร์ท happyluke ฟรี 300 บาท coin master ส ปิ น ฟรี android fun88 ทาง เข้า ล่าสุด bocasino gclub55555 gclubs ฝากเงินครั้งแรกรับโบนัส 200% สูงสุด 8,000 บาท อยาก ได้ ส ปิ น เยอะ ๆ coin master สล็อต แตก จริง สมัคร รับ เครดิต ฟรี ล่าสุด dafabet 99 สล็อต คืนสูงสุด 7% เครดิต ฟรี 100 ไม่ ต้อง แชร์ 2019 โค้ด รับ ส ปิ น ฟรี coin master เข้า ส โบ เบ ท winner55 รับ เครดิต ได้ ส ปิ น ฟรี coin master เล่น poker online ฟรี โปร ส ปิ้ น coin master tervetulobonus ติดต่อ เอ เย่ น จี คลับ zulabet casino ทาง เข้า gclub888 fun888 casino ทาง เขา sbobet high roller slot live casino house ฟรี 300 คา สิ โน ออนไลน์ gclub ปอย เปต 777 ไลน์ lsm99 คาสิโน โบนัสดีที่สุด โล ยั ล คา สิ โน ฝาก ถอน คา สิ โน gclub วิธี เอา ส ปิ น เกม coin master หวย เว็บ เจษฎา sbobetrich88 slot1234xo gclub online casino tek789 เข้า ไม่ ได้ ไอ ดี ไลน์ lsm99 ทาง เข้า agent sbobet jetsadabet ปิด เว็บ g gclub mega joker casino high roller slot เครดิต ฟรี 100 ไม่ ต้อง แชร์ 2019เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร รับ spin ฟรี coin master fun88 สมัคร ลิงค์ บา ค่า ร่า สมัคร 918kissauto pgslot567 bingo เกม ยี่ กี เจษฎา สล็อต ผ่าน วอ เล็ ต เว็บ ปอย เปต 168 lsm99 mobi isc123 เครดิต ฟรี 996 casino แจกเครดิตฟรี 300 ไม่ต้องฝาก2020 ยี่ กี เจต zig zag 777 การ เล่น โป ก เกอร์ ออนไลน์ highroller casino bonus live22fb ลิ้ ง ส ปิ น ฟรี coin master วัน นี้ fun88 pantip สล็อต เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ best casino slots bingo & poker เครดิต ฟรี 150 2020918kiss ฟรี เครดิต 1000 บาท หา กลุ่ม ไลน์ เครดิต ฟรี jetsada555 คา สิ โน lsm99 918kiss download android 2020 mafia ฝาก 1 บาท รับ 50 นางฟ้า fun88 goldenslot games slot online casino online joker ฟรี เครดิต ไม่ ต้อง แชร์ สล็อตฟรี maxcasino mafia slot ล่าสุด ฟัน ธง sbobet สมัคร ยูสเซอร์ ฟรี star gclub สมัคร ace333 slot out line lsm99 gclub คืน ยอด เสีย jetsada555 ส โบ 88 โปร เกม coin master ส ปิ น สล็อต w88 sbobet official website colourcee เครดิตฟรีแค่สมัครล่าสุด qq808 casino ส ป ริ้น ฟรี coin master เข้า lsm99 รับ เพิ่ม ส ปิ น coin master คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 viking clash slot ทาง เข้า fun88 มือ ถือ slot happyluke SBFPLAY99 เข้า ส โบ ทาง เข้า gclub ล่าสุด วิดีโอเกม แจก ฟรี ส ปิ น coin master แจก เครดิต ฟรี 300 ฝาก ถอน mafia88 ทาง เข้า sboibc888 american poker 90 ส ปิ น ฟรี coin master ล่าสุด funbet casino 198 kiss apk สล็อต 198 เว ป ล็ อ ต โต้ 888 เสื้อ fun88 เว็บ หวย เจต ใหม่ mobil blackjack วิธี แทง ไฮโล ให้ ถูก บา คา ร่า s10 ทาง เข้า agent sbobet ล่าสุด สล็อต ขั้น ต่ํา 100 ช่อง ทาง เข้า จี คลับ jetsada เข้า สู่ ระบบ บา ค่า ร่า ฝาก ออ โต้ sb0bet888 sbo128 เข้า ไม่ ได้ ฝาก gclubauto เว็บ บา คา ร่า ปอย เปต blackjack vip 918kiss เกมส์ ไหน ดี แตก ง่าย 128coffee sbobet gclub69 ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด เค ดิ ต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร northern sky slot ส ปิ น ฟรี coin master ios สล็อต น้อง ใหม่ แจก เครดิต ฟรี เล่น poker online ฟรี สมัคร ยูสเซอร์ ฟรี โกง ฟรี ส ปิ น coin master สมัคร 999lsm สล็อตฟรี gold vip casino sbobet999 ทาง เข้า สมัคร lsm9999 จี คลับ ผ่าน เว็บ sbo555 ไว้ใจ ได้ E-Sport โบนัสต้อนรับ 100% สูงสุดถึง 1,000 บาท แจก ส ปิ้ น เกม coin master k9win สล็อต coin master ฟรี ส ปิ น ไม่ จํา กัด coin master แจก ส ปิ น ฟรี บา ค่า ร่า ฝาก ออ โต้ ลิ้ ง sbobet norsk online casino เกม บิงโก ตัวเลข black jack วิธี เล่น sbobetsh สมัคร sbobet 789 ทาง เข้า lsm65 sbobet444 ส โบ 222 3n2 net gclub sbobet ninja สมัคร ส โบ เบ็ ต 888 บา คา ร่า ทํา เทิน red ping win เว็บ จี คลับ ออนไลน์ หมุน ส ปิ น ฟรี coin master croupier blackjack poker online เว็บ ไหน ดี lsm99 king รอยัล v2 ไฮโล ออนไลน์ ได้ เงิน จริง ผ่าน มือ ถือ isoftbet slots fun88 pantip vip fun88 สมัคร รับ เครดิต ฟรี ล่าสุด 918 สล็อต happyluke เกมส์ โหลด xe88 ฮ อ ลิ เดย์ พา เล ซ ปอย เปต รับ ฟรี ส ปิ น coin master pic5678 มือ ถือ UFAGALAXY88 สล็อต วอ ล เลท m84sbobet หา ส ปิ้ น ฟรี coin master asia 777 slot casino บา คา ร่า ปอย เปต pantip 9988 gclub maxcasino หวย เว็บ เจษฎา การ เล่น ไพ่ โป๊กเกอร์ เว็บ ส โบ เบ็ ต คา สิ โน all slot online โปร โม ชั่ น dafabet รอยัล คา สิ โน 88 เข้า จี คลับ ไม่ ได้ www funfree55 con สมัคร 918kiss ท รู วอ เลท uefa fun88 wm casino bet gclub5555 ให้สล็อตฟรี 15 ครั้ง พร้อมโบนัสสูงถึง 5,000 บาท! โร เยอ ร์ คา สิ โน fun888 มือ ถือ slot out sbobet69 snake arena slot แจก ฟรี 100 บาท ไม่ ต้อง ฝาก แอ พ เล่น ไฮโล live casino house ฟรี 300 สมัคร สล็อต ไม่มี ขั้น ต่ํา ปอย เปต ออนไลน์ ทาง เข้า จี คลับ 88888 gclub royal 456 ดาวน์โหลด mega888 ล่าสุด โป ก เก อร ส โบ 168 asia 777 slot casino jetsadabet คือ gclub10 royal online มือ ถือ gclub plus สมัคร scr888 ฟรี เครดิต รอยัล คา สิ โน โหลด xe88 sbobet333 เข้า ไม่ ได้ 918kiss hack download mrvegas casino แจก โค้ด ส ปิ น coin master โรล ลิ่ ง บา คา ร่า ฝาก 300 ฟรี 500 สมัคร สมาชิก happyluke วิธี แลก ส ปิ น coin master บา ค่า ร่า bet หวย เว็บ เจษฎา casino f 123play casino scr888 ฟรี เครดิต เกม poker ออนไลน์ สมัคร ace333 ล อ ต โต วัน fun88 vip group kclubs online casino สมัคร happyluke gold vip casino หา กลุ่ม ไลน์ เครดิต ฟรี เค ดิ ต ฟรี ทํา เทิ ร์ น เทคนิค การ ฟัง เสียง ไฮโล ฝาก ระ ติ๊ บ ทาง เข้า ส โบ มือ ถือ lsm99 โปร โม ชั่ น lsm99 asia jetsadabet เข้า สู่ ระบบ เว็บ jetsada สล็อต รับ เครดิต ฟรี ไม่ ต้อง ฝาก สมัคร รับ เครดิต ฟรี 2020 ส โบ 88 สมัคร sbobet777 999lsm สล็อต ขั้น ต่ำ 1 บาท c9bet99 สปินฟรี coin master pantip ไฮโล น้ำเต้า ปู ปลา ออนไลน์ เว็บ ส ปิ น ฟรี coin master gclub pro slots joker slot191v1 เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2019เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร เข้า เล่น จี คลับ 168 918 download ios วิธี เล่น แบ ล็ ค แจ็ ค ดาว โหลด เกม 918kiss royal 6666 online ทาง เข้า happyluke เอ เย่ น lsm99 jetsadabet ปิด เว็บ 35x สล็อต สมัคร บอล ฟรี ลำดับ ไพ่ โป ก เกอร์ เจษฎา เว็บ หวย สมัคร lsm999 casino lucky 7 casino maxbet 918kiss เครดิต ฟรี 500918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2020 สมัคร sbobet mobile สล็อต playstar คา สิ โน ออนไลน์ จี คลับ sbobet777 สมัคร lsm99 ดี ไหม sbobet mobile 777 lsm99vip all new gclub จี คลับ คา สิ โน ออนไลน์ ทาง เข้า gclub8888 wildtornado casino vip fun88 royalsbobet โปร โม ชั่ น วัน เกิด คา สิ โน bilion casino สล็อต ฟรี เครดิต 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ gclubgroup gclub pc lsm99 โปร โม ชั่ น casino f wm casino ดาวน์โหลด ล อ ต โต วัน โป ก เกอร์ ลํา ดับ ไพ่เล่น โป ก เกอร์ ออนไลน์ เงิน จริง sbobet8888 ทาง เข้า sbobet5678 sportfun88 คา สิ โน ปอย เปต ที่ไหน ดี pantip goal club sbobet slot lsm99 joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ gclub online 999 เว็บ poker starmania slot สมัคร ส โบ เบ็ ต 888 918kiss สมัคร auto เกม บิงโก ตัวเลข sbobet online ทาง เข้า สล็อต เครดิต ฟรี ล่าสุด 2020 lsm99 up โบนัสเงินฝาก 918kissauto เครดิต ฟรี เครดิต ฟรี winsor 9988gclub 359 sbobet ยืนยันเบอร์ รับเครดิตฟรี เกม พนัน ไฮโล inferno star slot ufabet slot sbobet888 ทาง เข้า มือ ถือ วิธี หมุน ส ปิ น coin master ปอย เปต 147 สมัคร sbobet ca โปร โม ชั่ น pussy888 ทาง เข้า sbo168 เกม poker ออนไลน์ ส ปิ่น ฟรี ซื้อ ฟรี ส ปิ น ถูก ๆ 168galaxy slot happyluke mobile วิธี เอา ส ปิ น coin master ฟรี sbobet777 ทาง เข้า net 888 casino fun88 คำ ค้นหา ที่ แนะนำ เพิ่มเติม reel rush 2 slot โปร ส ปิ น coin master ไม่ จํา กัด sbobet official website กระบอง joker slot gaming ทาง เข้า lsm ล่าสุด lsm99 vip 918kiss scanner hack 2019 free เว ป 1000 ล็ อ ต โต้ 100 ฟรี ส ปิ น coin master รอยัล v2 casino no deposit 2020 poipet โปร โม ชั่ น sbobet7777 สมัคร fan88joker123 ฟรี เครดิต ไม่ ต้อง ฝาก 188bet poker โปร ส ปิ้ น เกม coin master วิดีโอเกม lsm99 net 918kiss เติม เงิน วอ เลต ล่าสุด 2019 ติดต่อ lsm999 ts888 casino 918 download ios e16811 club388 casino การ เล่น ไพ่ โป๊กเกอร์ รู น rov แทง ค์ bonus dafabet se88 slot สมัคร 918kiss ท รู้ วอ เลท sbobettotal สมัคร sbobet โดยตรง เครดิต ฟรี ไม่ ฝาก ไม่ แชร์ รับ เครดิต หน้า ระบบ m onlinesbobet ทาง เข้า fun88 qq888 casino wm casino 555 บา คา ร่าไฮโล ออนไลน์ ได้ เงิน จริง ผ่าน มือ ถือ sagame เครดิต ฟรี 100 ลิ้ ง ส ปิ น ฟรี coin master 2020 shangri la สล็อต เครดิต ฟรี ufa ufa แจก เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2020 lsm99 ฝาก ขั้น ต่ํา สล็อต น้อง ใหม่ แจก เครดิต ฟรี 918kiss 918kiss kiss918 vipเครดิต ฟรี เทิ ร์ น 1 เท่า 2020 casino riviera las vegas ลิ้ ง ส ปิ น ฟรี coin master 2020 โบนัส เครดิต ฟรี แบบ ไม่ ต้อง ฝาก เงิน sbo365 มือ ถือ sbobet365 ทาง เข้า สล็อต เครดิต ฟรี 20 บาท lsm99 2019 line fun88 เว ป ล็ อ ต โต้ 888 pic5678 คอม คา สิ โน lsm99 sbobet โปร โม ชั่ น sportbet casino agentgclub ลิ้ ง ส โบ มือ ถือ สล็อต ออนไลน์ แจก ฟรี เครดิต sbothai mobile โรล ลิ่ ง บา คา ร่า sbobet 2019 เว็บ บอล lsm99 ฟรีสปิน15ครั้ง ทาง เข้า จี gclub app ฟรี ส ปิ น สมาชิกใหม่ k9win ดาวน์โหลด สมัคร สมาชิก fun88 sbo168 เข้า ไม่ ได้ 7kasino happyluke ได้ เงิน จริง ไหม เว็บ ส โบ บิงโก แบบ หมุน leolasvegas sbobet 5678 sbobetnew ป๊อก เด้ง เครดิต ฟรี ไม่ ต้อง ฝาก gclub มือ ถือ ทาง เข้า https ufafever com ufabet login 918kiss hack download ฟรีสปิน15ครั้ง euromania online casino gold vip casino fafa 117 คา สิ โน วอ เลท ิ beer777 เว็บ ซื้อ หวย jetsadabet maxgoal casino live casino house ฟรี 300 g gclub mega slot casino ส lsm99 วิธี ส่ง ส ปิ น เกม coin master sbobet888 สมัคร สล็อต ฟรี วัน เกิด cat slot gclub89 slotxo89 เว็บ หวย jetsadabet ส โบ เบ็ ต 222 วิธี ปั่น ส ปิ น coin master ฟรี ส ปิ น coin master วัน นี้ coin master ฟรี ส ปิ น ไม่ จํา กัด ส โม เบ ท 777 เครดิต ฟรี คา สิ โน 2020 แอ พ ล็ อ ต โต้ jetsadabet หวย สมัคร ใหม่ รับ เครดิต ฟรี ทันที 2020 facebook fun88 royal online ส ปิ่น ฟรี opera casino โหลด ส ปิ น ฟรี coin master ส ปิ น ฟรี coin sbobet 2019 สล็อต angel88 สมัคร เอ เย่ น sbobet แอ พ เล่น ไฮโล sbobet 2019 เก น ส ล็ อด gclub ฟรี 500 2018 สมัคร live22th สูตร เพิ่ม ส ปิ น coin master ล็ อ ต โต วี ไอ พี fantan casino ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 เค ดิ ต ฟรี บา คา ร่า 2020 โค๊ ด ส ปิ น ฟรี fifa เครดิต ฟรี ไม่ ต้อง ฝาก happyluke ทาง เข้า สล็อต เครดิต ฟรี ถอน ได้ ถอนเงิน dafabet 99a gclub168 lsm99 hot sbo128 เข้า ไม่ ได้ ฟรี เค ดิ ต ไม่ ฝาก ไม่ แชร์ เครดิต ฟรี 150 2020918kiss ฟรี เครดิต 1000 บาท lara croft slot gclub pro ทาง fun88 วิธี เก็บ ส ปิ น coin master jetsadabet ใหม่ เว็บ jetsadabet gclub link ลิ้ ง ส โบ มือ ถือ jetsadabet ดี ไหม ป๊อก เด้ง เครดิต ฟรี ไม่ ต้อง ฝาก royal online v2 มือ ถือ ios สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก ballchockdee โบนัสฟรีสปิน แจก 300 ฟรี app gclub highroller casino bonus รู น แท๊ ง ค์ rov casino splendido gclub 998 คาสิโนออนไลน์ new slot 2020 sbobet888 ทาง เข้า มือ ถือ สมัคร สล็อต ไม่มี ขั้น ต่ํา โปร โม ชั่ น จี คลับ โปร ส ปิ้ น coin master lsm99 agent ทาง เข้า วิธี แลก ส ปิ น coin master เข้า sbo มือ ถือ แอ พ ล็ อ ต โต้ rating casino สล็อต ค่าย ไหน ดี pantip คี โน่ ออนไลน์ ส โม เบส 88 ไพ่ โป ก เก อ คือ tarzan slot ถอนเงิน sbobet168 royalonlien โป ก เกอร์ เกม wildslots casino jetsada จ่าย สล็อต ขั้น ต่ำ 1 บาท dafabet 63 เกม โป๊กเกอร์ ออนไลน์ เกมสล็อต วิธี หา ส ปิ น ฟรี coin master โปร ส ปิ น coin หวย เจษฎา ออนไลน์ โบนัสแนะนำเพื่อน บิงโก แบบ หมุน dafabet poker pantip ทํา เทิ ร์ น บา คา ร่า casino evolution gaming สล็อต คืนสูงสุด 7% เกม โป้ ก เกอร์ โปร ส ปิ น coin ทาง เข้า 24sbo kkkk99 net happy star casino แจก ส ปิ น ฟรี coin master วัน นี้ golden dragon slot ทีเด็ด ส โบ เบ็ ต www99lsm บา คา ร่า ปอย เปต สมัคร betrally casino ลิ้ ง ค์ รับ ส ปิ น coin master สมัคร 10 รับ 100 k9win สล็อต สมัคร pay69 ส ปิ่น ฟรี ทาง ส โบ เบ็ ต sbobet online mobile fun881851 ฝาก ถอน lsm99 casino ทาง เข้า gclub ล่าสุด ขอ โบนัส wwwpic5678 เว็บ ไฮโล แจก ฟรี แจก เครดิต ฟรี แค่ สมัคร line slot แจก ฟรี ส ปิ น เกม coin master ลำดับ ไพ่ โป ก เกอร์ สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 แจก ฟรี 100 บาท ไม่ ต้อง ฝาก ยืนยันเบอร์ รับเครดิตฟรี ลิ้ ง เข้า ส โบ fantan casino live22fb ลิ้ ง แจก ส ปิ น เกม coin master poker เงิน จริง บิงโก ซื้อ ที่ไหน สล็อต ฝาก วอ เลท ไม่มี ขั้น ต่ํา รับ ส ปิ น ฟรี coin master ios playlive88 live22 ส ปิ น ฟรี coin master pantip gclub ฟรี 500 2018 เครดิต สล็อต ฟรี ไม่ ต้อง ฝาก casino pullman สล็อต ออนไลน์ 168 8888 casino online sbobetv8 ทาง เข้า agent sbo slot 918kiss auto วิธี โปร coin master sboibc888 เข้า ไม่ ได้ ลิ้ ง แจก ส ปิ น ฟรี coin master kiss777th 918kiss เติม เงิน วอ เลต ล่าสุด 2019 live22 โปร สมาชิก ใหม่ เว็บ หวย เจษฎา ใหม่ สล็อต ออนไลน์ 168 สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา ทาง เข้า ส โบ เบ็ ต มือ ถือ วิธี ทํา ให้ ได้ ส ปิ น เยอะ ๆ coin master ส โบ เบ ท 5678 แจก ฟรีสปิน2020 สมัคร 10 รับ 100 โปร โม ชั่ น วัน เกิด คา สิ โน campo casino beer555 all slot online ทาง เข้า sbo มือ ถือ 918kiss รับ เครดิต ฟรี สูตร coin master ฟรี fun88 desktop ฝาก 100 รับ 300 ล่าสุด สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก 2020 fun88fun88 mrvegas casino bonus dafabet https ab24hr allbetasia com login php ส โบ 888 ถอนเงิน sbobet168 หวย jetsadabet ทีเด็ด sbobet casino faraon lsm99 slot วิธี หา ส ปิ น coin master xoslotzv3 joker ฟรี เครดิต ไม่ ต้อง แชร์ ทาง เข้า sbobet 222 sbobet444 เว็บ ส ปิ น ฟรี coin master บริการ gclub แจก ส ปิ น coin master ล่าสุด เข้า เล่น royal lsm99 cash slot angel88 gclub886 สมัคร สมาชิก 918kiss โบนัส 100 เว็บ หวย เจษฎา ล็ อ ต โต้ สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 www w2 lsm99 วิธี รับ ส ปิ น ฟรี coin master ios fun88 โกง วิน เซอร์ คา สิ โน ปอย เปต ฝาก ขั้น ต่ํา 50 บาท หวย เจษฎา เบ ท คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 m onlinesbobet auto918kiss แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2563 sbobet555 casino splendido วิธี หา ส ปิ น coin master sbobet168 club ct855 live casino สล็อต happyluke บิงโก หมุน bonus dafabet สล็อต angel88 918kiss download ios 2019 casino iphone
        บา คา ร่า 928| ufabet747| สมัคร ufabet| ufabet36| ufabet9999| แจก ยูสเซอร์ ฟรี พร้อม เครดิต| sa 168 vip เข้า สู่ ระบบ| หาเงิน จาก บา คา ร่า pantip| sa gaming demo vip| ufabet8888| ufabet slots| เกมส์ มา ส คา ร่า| ufa656 ทาง เข้า มือ ถือ| บา คา ร่า pantip| แทง บอล vip| สมัคร slotxo 100| รับ ฟรี ไม่ ต้อง ฝาก| slot สมาชิก ใหม่ รับ เครดิต ฟรี| jdb289 เครดิต ฟรี| ไลน์ ยู ฟ่า เบ ท| แจก ฟรี เครดิต| mm88win| สมัคร ufa147| เครดิต ฟรี 200 ไม่ ต้อง ฝาก ก่อน| ถอนเงิน ufabet1688| ดาวน์โหลด เกม สล็อต live22| slot สมาชิก ใหม่ รับ เครดิต ฟรี| 777slot เครดิต ฟรี| sa gaming link| ufawb998| แว็ ป บอล| sexybaccarat66| download slotxo apk| slotxo ฝาก แรก 50| gaming66| sa gaming 1| เช็ ก ชี่ บา คา ร่า 168| ufawb998v3| 168 vegus168| แจก เครดิต ฟรี 50 ไม่ ต้อง ฝาก ล่าสุด| slotxoth download| ufabet ที่ ดี ที่สุด| บา คา ร่า super six คือ| ทาง เข้า xo mobile| sa gaming th88| สมัคร ufabet| ยู ฟ่า ออนไลน์ 24| sbobet168 line| สมัคร ยู ฟ่า 888| มาเฟีย เครดิต ฟรี ล่าสุด| ี ufa66| slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก| sa gaming 199| 89fifa บา คา ร่า| ufabet 3333| แทง บอล โลก| sa gaming link| ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้| ufabet 1168| ufabet 8111| ufabet2_888| แทง บอล true wallet| slot เงิน ฟรี| ufapro88| ทาง เข้า ufabet 72| เว็บ กา บอล|