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

        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
         
        สล็อต 888 คา สิ โน ออนไลน์ 918ki สล็อต live22 เว็บ แทง บอล fifa slotxo สล็อต slot2you mega888 slot ทาง เข้า fifa888 เครดิต ฟรี ไม่ ต้อง ฝาก 150 789 slot 289slot 918kiss ฝาก ผ่าน ท รู วอ เลท เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง แชร์ เครดิต ฟรี 168slotxo pantip slotxo45 slotxo ฝาก 10 บาท ฟรี 90 บาท fifa55 โดน จับ 918kiss star v2 xo slot 369 xo thai888 slotxo ฝาก 20 ได้ 100 riches666 เครดิต ฟรี slotxo ฟรี เครดิต 300 918kiss อัน ไหน ดี slotv9 live22 เล่น slotxo หน้า เว็บ 99 ocean เครดิต ฟรี slotxo mb 789 game slot ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท slotjoker888 เว็บ โจ๊ก เกอร์ 888 รีโมท ไฮโล เว็บ kiss918 gclub 918 918kiss เวอร์ชั่น ใหม่ live22 ฝาก ไม่มี ขั้น ต่ำ โกง ไฮโล มือ ถือ slot7777 ไฮโล ฝาก ระ ติ๊ บ c2slot live22 ฝาก ถอน ไม่มี ขั้น ต่ํา รวม เกม ไฮโล download 3cha slotxo slotxo ฟรี เครดิต 300 joker ฝาก ถอน ไม่มี ขั้น ต่ํา poker ออนไลน์ หน้า ลูกเต๋า ไฮโล 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ wwwfifa69 star slot777 xo สล็อต 69 โป เกอร์ slotxo xs สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 สมัคร fifa55 ฝาก ขั้น ต่ํา 100 ไฮโล ขั้น ต่ำ 1 บาท โป๊กเกอร์ เงิน จริง 168slotxo auto สล็อต xo ทุน น้อย allbet slotxo scr99th 918kiss joker true wallet ไม่มี ขั้น ต่ำ 918kiss33 918kiss monkey 888 โจ๊ก เกอร์ ฟีฟ่า 555 สมัคร joker god slot slotxo logo ไพ่ แบ ล็ ค แจ็ ค ออนไลน์ joker โบนัส 100 auto ace333 slot สล็อต xo easy ไฮโล ได้ เงิน จริง สล็อต xo 999 3win8 casino line 918kiss ป๊อก เด้ง ออนไลน์ เงิน จริง pantip scr888 918kiss download fin888 เครดิต ฟรี ฟรี เครดิต 918kiss slotxo asia 777 สมัคร เครดิต ฟรี 2020 win55 เครดิต ฟรี สมัคร ฟรี เครดิต ฟรี เครดิต ฟรี เล่น ได้ ถอน ไป เลย slotxo ฝาก 10 คิ ส 918 777slotvip slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slotjoker99 รู เล็ ต ราคา 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา ไฮโล 2014 joker slot ฝาก ไม่มี ขั้น ต่ํา ฟีฟ่า 888 slotxo ฝาก 19 บาท รับ 100 โปร ทุน น้อย slot slotxo es สมัคร fifa9999 slotxo ฝาก 20 mm88bet sport & casino xo slotxo slot free credit no deposit slot epic win skyslot7 winner55 เครดิต ฟรี 918kiss69 slotxo mafia fifa55 palace 918kiss download 2019 pc สล็อต xo 888 slot joker89 queen slot 999 slot s9 slotxo ฝาก 20 รับ 100 เครดิต ฟรี 100 ไม่ ต้อง แชร์ joker slot 911 ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ xo สล็อต 69 slot joker89 ดู ทีวี ออนไลน์ fifa55 เข้า เล่น xo โหลด แอ พ คา สิ โน สล็อต xo191 area111 slot fifa55 แจก เครดิต ฟรี ลูกค้า เก่า เครดิต ฟรี auto 918kiss download ios สมัคร เว็บ ฟีฟ่า 555 918kissbig slotxo logo png slotxo 1234 slot333 สมัคร เว็บ fifa69 slotxo ฟรี เครดิต 300 ึึึึ 77up dafabet เครดิต ฟรี 2018 slot mario fifa55 ถอนเงิน ไม่ ได้ 918kiss เวอร์ชั่น ล่าสุด 918kiss ฝาก ไม่มี ขั้น ต่ํา slotxo ฟรี เครดิต ไม่ ต้อง ฝาก 2019 22thxo gclub เครดิต ฟรี joker slot 77 slot kiss joker123 ไม่มี ขั้น ต่ํา ไฮโล คลาสสิค ออนไลน์ สล็อต 77 คา สิ โน ออนไลน์ slot dreamtech ไฮโล png joker681 เครดิต ฟรี pussy888 slot www918kiss 918slot slotjoker99 ไฮโล ออนไลน์ ได้ เงิน จริง 2 slots 918kissworld joker681 เครดิต ฟรี พนัน ออนไลน์ ฟรี เครดิต fifa55 200 บาท ไพ่ โป ก เกอร์ ออนไลน์ slot โปร ทุน น้อย joker666 slot slotxo 91 เครดิต ฟรี แค่ กรอก เบอร์ ล่าสุด เข้า xo ดา ฟา เบ ท เครดิต ฟรี 918kiss ฝาก 50 ฟรี 50 ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก เครดิต ฟรี ระบบ ออ โต้ 918kiss เวอร์ชั่น ใหม่ 2in2 เครดิต ฟรี ฝาก 10 รับ 100 ล่าสุด xo m918kiss slot god โป เกอร์ เล่น โป ก เกอร์ ออนไลน์ เงิน จริง 2pj slot slotxo เกม ไหน แตก ง่าย 2020 slotxo ฝาก 10 รับ 100 ล่าสุด หมุน วง ล้อ xo winner55 ฟรี เครดิต เว็บ ฟีฟ่า 55 168slotxo joker slot joker true wallet ไม่มี ขั้น ต่ํา 918kiss ฝาก ท รู วอ เลท slot68 918kiss แจก เครดิต ฟรี 918kiss monkey fin slotxo slot33 winner55 เครดิต ฟรี slotxo v9 megaways slot mafia345 เครดิต ฟรี slotxo 100 1 เทิ ร์ น สมัคร sbobet ฟรี ไม่ ต้อง ฝาก โค๊ ต เครดิต ฟรี xo บน เว็บ hacker slot45 apk slotxo slotxo เติม เงิน fifa9999 login เครดิต ฟรี 888 slot 1668 q9win ฟรี เครดิต slotxo online slot machine 918kiss โปร ไฮโล 641 slotxo เข้า เล่น taibet88 เครดิต ฟรี slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ poker ได้ เงิน จริง slot joker xo fifa55 เครดิต ฟรี 1000 88 slotxo สล็อต sbu slot slot123 fifa55run casa98 ฟรี เครดิต slotxo เล่น ใน เว็บ แอด มิ น 918kiss 918kiss อั่ ง เปา slotxo51 slot red ยิง ปลา fun88 888 slot th slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา slotso slotxo 191 mm88bet สมัคร 918kiss คือ เครดิต ฟรี ไม่ หลอก แชร์ fifa55 แจก เสื้อ ฟรี เครดิต 50 คูปอง เครดิต ฟรี slot12 ป๊อก เด้ง เครดิต ฟรี 918kiss slotxo slotxo 91 slot1688xo 888 slotxo สล็อต xo 123 slotxo56 slotxo ทั้งหมด สล็อต xo989 slotxo 191 slot 345 คา สิ โน ออนไลน์ 918kiss http slotxo สล็อต เอ็กซ์ โอ goldenslot777 slot joker89 https www slot12 com member slotxo ทาง เข้า fifa55m slot345 4ux slot slotxo456 slotxo sb กติกา รู เล็ ต 918 ฟรี เครดิต คา สิ โน 918kiss ไลน์ fifa55 ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 ไพ่ โป ก เกอร์ 1 ยู ส เท ส xo 918kiss แจก อั่ ง เปา ผล บอล เกม เสมือน จริง ฟุตบอล เสมือน จริง dslot 918kiss starvegasgame fastbet98 เครดิต ฟรี เข้า ฟีฟ่า 555 slotxo 999 เว็บ 918kiss slot2499 สล็อต xo311 gclub 918 1168slot slotxo spin999 เครดิต ฟรี 30 บาท แอ พ ไฮโล ออนไลน์ fifa55 gold 168 gaming slotxo fox88 ฟรี เครดิต 918kiss ท รู วอ เลท 2019 xo slotxo สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท slot dreamtech 12ww เครดิต ฟรี best88 slot slotxo es databet88 ดี ไหม slotxo ถอน ไม่มี ขั้น ต่ํา เล่น xo ใน เว็บ เติม เกม slotxo slot เครดิต ฟรี 50 ไฮโล ออนไลน์ ได้ เงิน จริง pantip ไฮโล ออนไลน์ m88 slot777 เครดิต ฟรี slot1688 pantip สล็อต 999 คา สิ โน ออนไลน์ web slot shangri la slot game 918kiss 123 เติม เครดิต slotxo slot777 เครดิต ฟรี เกม xo สล็อต slot ถอน ไม่มี ขั้น ต่ํา slot 2499 เฮง เฮง เฮง เครดิต ฟรี สมัคร สล็อต ออนไลน์ มือ ถือ mega888 download 2019 246 slot fifa555 สมัคร โจ๊ก 888 918kiss billion เครดิต ฟรี sbobet xo slot xo slotxo 1234 slot ฝาก 100 รับ 300 ราคา ไฮโล slotxo playlive88 exp slotxo 168bet slot เล่น เสือ มังกร ออนไลน์ kiss918 เครดิต ฟรี สล็อต xo live22 slotxo7 slotxo game 88 slotxo เกม ไหน แตก ง่าย 2020 ถอนเงิน fifa55 ไม่ ได้ 918kisskiss918 ไม่ ต้อง แชร์ เข้า vegus168 slotxo168 slot44th sabai99 slot slot99 fifa1234 login สมัคร fifa55 ฝาก ขั้น ต่ํา 100 918kaya เครดิต ฟรี ขอรับ เครดิต ฟรี ครับ แอ พ โกง ไฮโล 888 เครดิต ฟรี โปร สล็อต ค่าย pg gclub8 line ฝาก 1 บาท ฟรี ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท 918kiss ถอนเงิน slot free credit slot2p slot joker xo สล็อต xo11 slot live22 ไฮโล สูง ต่ํา gclub ฟรี mafia ฟรี เครดิต ไม่ ต้อง ฝาก slot1688 pantip slotxo เล่น ใน คอม ถอนเงิน xo เล่น poker ออนไลน์ xs slotxo game slot 66 ค่าย slotxo กติกา รู เล็ ต slot joker 69 ไฮโล ต่ำ vegus168 ถอนเงิน vegus168 ถอนเงิน 918kiss เครดิต ฟรี ล่าสุด โกง ไฮโล ออนไลน์ เล่น blackjack ออนไลน์ ทาง เข้า vegus168 sure fifa55 rmcc slot888vip สล็อต xo ฝาก วอ เลท slotxo วอ ล เล็ ต 7vip slotxo สมัคร เครดิต ฟรี 100 scr918kiss th slot 10 fifa55 เครดิต ฟรี 2020 joker slot 555 ไฮโล ออนไลน์ ได้ เงิน จริง pantip สล็อต xo 191 918kissworld 918kissscr888 slotxo123 เว็บ 918 slot4u joker xo thai888 ป๊อก เด้ง ขั้น ต่ำ 10 บาท 918kiss true wallet ไม่มี ขั้น ต่ํา สมัคร สมาชิก vegus168 คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ 918kissauto download เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ สมัคร เว็บ fifa69 joker slot auto เครดิต ฟรี 120 poker ไพ่ top slot 2pigs 918kiss slotxo เติม true wallet ไฮโล ออนไลน์ สด fifa55 link ไฮโล ต่ำ safari gold megaways demo สล็อต เอก โอ rmuaab555 เกม ไฮโล ออนไลน์ ได้ เงิน จริง slotxo1 555slot 918 เครดิต ฟรี 100 ถอน ได้ 2019 ufa slot เครดิต ฟรี 918kiss v7 สมัคร winner55 เครดิต ฟรี ไม่ ต้อง แชร์ เครดิต ฟรี เครดิต ฟรี mega888 slot c ดู ทีวี ออนไลน์ fifa55 เกม สล็อต xo แตก ง่าย 918kiss slots ไพ่ โป ก เกอร์ 1 fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก mm88bet sport & casino slotxo omg xo slot z 2pigs 918kiss slotxo โปร ฝาก 10 รับ 100 mm88bet สล็อต sg game เครดิต ฟรี joker1919 gaming slotxo แจก เครดิต ฟรี 100 mega888 download 2019 slotxo24 2pigjoker ufa slot ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา slots 500 joker123 true wallet ไม่มี ขั้น ต่ํา joker ถอน ไม่มี ขั้น ต่ํา slotxo โจ๊ก เกอร์ โปร สล็อต ค่าย pg เครดิต 50 คา สิ โน 918kiss 918kiss monkey เว็บ บอล ufa365 fifa55 แจก เครดิต ฟรี ลูกค้า เก่า xo24hr slotxo god slot ไม่มี ขั้น ต่ํา taibet88 เครดิต ฟรี ไพ่ แค ง เครดิต ฟรี เว็บ แทง บอล fifa สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slot99 เครดิต ฝาก 1 บาท 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก เล่น สล็อต roma ฟรี เครดิต 100 ไม่ ต้อง ฝาก 2563 โปร โม ชั่ น slot สล็อต คา สิ โน live22 ฝาก 1 บาท joker123 allbet asia slot โปร ทุน น้อย คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ pg slot โปร ทุน น้อย slotxo 10 บาท ak47max เครดิต ฟรี มาเฟีย เครดิต ฟรี ไม่ ต้อง แชร์ pgslot789 918kisstm ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ joker123 ไม่มี ขั้น ต่ํา slotxo 2020 mafia789 เครดิต ฟรี ฝาก 100 ฟรี 500 joker123 true wallet ไม่มี ขั้น ต่ํา www168slotxo slot777 เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง โอน ก่อน ไฮโล รีโมท เว็บ พนัน fifa55 slot777 ฟรี เครดิต ลูกเต๋า ไฮโล slotxo 24 th mafia ไม่ ต้อง แชร์ slot69 แบ ล็ ค แจ็ ค joker ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo ฝาก ผ่าน วอ ล เลท slot galaxy หาเงิน จาก คา สิ โน ไฮโล รีโมท slotfree88 9gspin เครดิต ฟรี 918 ออ โต้ fifa55 รับ โบนัส ฟรี 200 บาท เก้า เก คา สิ โน เกมส์ สล็อต วิธี สมัคร databet88 918kisskiss918 918kiss แตก ง่าย 2020 1168slot fifa ทาง เข้า 918kiss 100 ฟรี 100 slot456 918kissstar slot god xo slot x0 sagame66 slot เว็บ โจ๊ก เกอร์ 888 slot8899 official918kiss ไฮโล คือ slotxo 1168 html5 slot machine winner55 เครดิต ฟรี 918 slot online bein sport 1 fifa55 918kiss2you 007slotxo เล่น สล็อต xo หน้า เว็บ xo thai888 slotxo credit สล็อต xo ทุน น้อย ฝาก เงิน live22 joker game slot slot mafia88 ทาง เข้า ฟีฟ่า 55 คิง เครดิต ฟรี live22 369slot xe88 slot ฝาก ไม่มี ขั้น ต่ำ ถอน ไม่มี ขั้น ต่ํา ไฮโล ออนไลน์ ถ่ายทอด สด real 918kiss wwwufa24h ฟรี เครดิต 50 gclub8 line 918kissauto 2 official918kiss ฟรี เครดิต 200 winner555 เครดิต ฟรี สล็อต xo 99 vscr888 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2020 สมัคร เว็บ ฟีฟ่า 555 918kissworld joker ฝาก ไม่มี ขั้น ต่ำ 918kiss แตก ง่าย 2020 สล็อต xo โจ๊ก เกอร์ slotxogame365 slot bmx slotxo bbet99 เครดิต ฟรี มาเฟีย เครดิต ฟรี ไม่ ต้อง แชร์ joker true wallet ไม่มี ขั้น ต่ำ roma slot joker ฟรี เครดิต เดือน เกิด ไฮโล ส กิ ด slot365 slo xo เครดิต ฟรี วัน เกิด ไม่มี เงื่อนไข เกม สล็อต ไลน์ 22 slot24th joker แอ พ 918kiss ไพ่ เสือ มังกร ออนไลน์ สมัคร gclub ฟรี เครดิต joker456 เครดิต ฟรี สล็อต xo 99 slot ฝาก 50 ได้ 100 sabai99 slot ไพ่ โป ก เก อ joker hunter 888 live22 ฝาก ไม่มี ขั้น ต่ำ xo slot168 4u slotxo fifa55bonus เติม เงิน slotxo slotxo 888 เครดิต ฟรี 918 slot red 918kissbet 35 slotxo คา สิ โน ไพ่ ดั ม มี่ slot911 เกม แทง ไฮโล 918kaya เครดิต ฟรี เครดิต ฟรี ทํา เทิ ร์ น ถอน ได้ red tiger slot สล็อต xo ท รู วอ ล เล็ ต winner555 เครดิต ฟรี slotxo 66 เครดิต ฟรี 133 บาท 918kisskingdom ไพ่ แค ง เล่น ได้ เงิน จริง เล่น slotxo ufa365 ดี ไหม เติม เงิน เข้า สล็อต 981kiss joker456 เครดิต ฟรี 918 auto slotxo234 live22 auto best88 สมัคร สล็อต xo หน้า เว็บ สล็อต xo888 v slot casino 918kiss เครดิต ฟรี 100 บาท รู เล็ ต เครดิต ฟรี tss911 เครดิต ฟรี เล่น โป ก เกอร์ 918kiss d xo slot cafe www fifa55bet com สมัคร sbobet ฟรี ไม่ ต้อง ฝาก xo slot168 2pj slot เครดิต ฟรี otp m918kiss เกม ไฮโล ฟรี mafia999 slot fifa55 memberbet net chklogin เครดิต ฟรี epic ไฮโล ออนไลน์ w88 918kiss v1 xo slot1234 slotxo 888 ฟีฟ่า 1688 joker true wallet ไม่มี ขั้น ต่ำ ไฮโล ออนไลน์ โบนัส ฟรี สล็อต xo เกม xo สล็อต คา สิ โน ออนไลน์ ป๊อก เด้ง slotxo สล็อต เครดิต ฟรี ไม่มี เงื่อนไข 2020 joker123 โปร โม ชั่ น slotxo 666 slot roma ค่าย ไหน 819 kiss download 2pslot slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา fifa55boom fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 2019 slot 66 databet88 ถอนเงิน 918kiss slotxo เครดิต ฟรี ไม่มี เทิ ร์ น slotxopug ro slotxo big win slot 24th slot วิธี สมัคร databet88 mafia เครดิต ฟรี 50 สล็อต xo วอ ล เลท slot cq9 jackpotxo joker slot68 สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท game slotxo 918kiss th slotxo ฝาก 20 รับ 100 sagame168th เครดิต ฟรี sicbo คือ ฝาก 100 ฟรี 500 เกม xo สล็อต vip slotxo ace333 slot jackpotxo สมัคร slotxo 999 สล็อต เอ็ ก โอ slot 1168 สล็อต 1234xo red tiger slot win 777 slot slot 345 siam slot สล็อต 888 คา สิ โน ออนไลน์ xoslot123 slotxo 1234 slotxo แตก ง่าย 2020 free เครดิต joker ถอน ไม่มี ขั้น ต่ํา safari gold megaways demo testament slot ufa365 สมัคร slot promotion 918kiss mobile slotat ราคา รู เล็ ต slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา สล็อต xo joker 918kiss 1234 ทาง fifa55 918kiss ท รู วอ เลท 2019 joker ฝาก ไม่มี ขั้น ต่ำ 9gspin เครดิต ฟรี 918kiss allbet member slotxo 918kissauto v4 slotxo2 vegus168 memberbet net chklogin เครดิต ฟรี 20 caesar88 slot โกง เกม ไฮโล ถอนเงิน joker123 สล็อต x0 ฟรี เครดิต 20 slotxo pantip สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 ufa slot เครดิต ฟรี สล็อต xo 191 918kiss ฝาก ขั้น ต่ํา 50 บาท เข้า เล่น fifa55 slotxo51 99 ocean เครดิต ฟรี slot ฝาก ไม่มี ขั้น ต่ำ เครดิต ฟรี 99 slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 winner55 ฟรี เครดิต 35 joker slot slot free credit no deposit คา สิ โน ออนไลน์ ป๊อก เด้ง เครดิต ฟรี 50 ล่าสุด xoslotz1688 แอ พ การ พนัน ได้ เงิน จริง live22 ไม่มี ขั้น ต่ํา slotxo king189 jackpot slot 918kiss royal 918kiss เครดิต ฟรี ไม่ ต้อง แชร์ slot vip 777 สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท slot777 ฟรี เครดิต slotxo สล็อต ฝาก 10 บาท รับ 100 slotxo 10 ได้ 100 9gspin เครดิต ฟรี betway เครดิต ฟรี 918kiss โปร 918thailand slotxo 91 เล่น xo หน้า เว็บ 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก 69slot สล็อต ได้ เงิน จริง เข้า บัญชี จริง 198 kiss ฟรี เครดิต lucky slot 888 slot auto all live22 ฝาก ไม่มี ขั้น ต่ํา เว็บ ตรง 918kiss slotxo ฝาก 20 บาท รับ 100 คา สิ โน ออนไลน์ 918kiss สล็อต xo เล่น ผ่าน เว็บ slot xo168 mafia เครดิต ฟรี 50 slot free credit 2020 เครดิต ฟรี 120 riches777 เครดิต ฟรี slotxo1 คา สิ โน ออนไลน์ 918 ฝาก 1 บาท ฟรี 99 บาท red slot 168 สล็อต xo slotxo2 slotxo ฝาก ถอน วอ เลท joker ฝาก ไม่มี ขั้น ต่ำ slotxo ฝาก วอ เลท slot thai888 สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ไฮโล ทอย ลูกเต๋า เกม ไฮโล ออนไลน์ slotxo ฝาก วอ ล เลท ฟีฟ่า 1688 slotxo credit free เล่น ไพ่ โป ก เกอร์ ออนไลน์ ที่ไหนได้ เงิน จริง slot ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo 22th ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo fruit slot 1234slotxo slotxo 48 สมัคร ไม่ ต้อง ฝาก fifa55 โปร โม ชั่ น ไฮโล ฝาก ระ ติ๊ บ เกมส์ สล็อต เล่น สล็อต xo สล็อต xo วอ ล เล็ ต เทิ ร์ น 1 เท่า fifa55 reward fifa55best mm88bet ฝาก เงิน slotxo thxo www 77up me หน้า เกม slotxo แอ พ ไฮโล สั่ง ได้ joker slot 777 เกม xo slot แทง รู เล็ ต แอ พ คำนวณ รู เล็ ต 555slot slot ฝาก 10 joker slot 9669 สล็อต xo โมบาย คา สิ โน ออนไลน์ เสือ มังกร win555 เครดิต ฟรี เล่น poker pg slot โปร ทุน น้อย fifa55 palace xo บน เว็บ databet88 ดี ไหม spk slotxo ยิง ปลา บา คา ร่า slot48 mafia เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 918kisstm สล อ ต เอก โอ slot joker99 918kiss starvegasgame เว็บ ตรง 918kiss เครดิต ฟรี 120 สมัคร สมาชิก fifa55 คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ vegus168 win สล็อต xo11 mvegus1682 memberbet net fm99bet เครดิต ฟรี แทง ไฮโล ให้ ถูก ไฮโล 11 slot ฝาก 19 รับ 100 slot sanook เครดิต 50 เกม xo slot 918kiss เครดิต ฟรี 100 บาท click slotxo 888 โจ๊ก เกอร์ แอ พ คำนวณ รู เล็ ต 918kiss บน pc เกม live22 918kisskingdom vip ค ริ ส 918 ฝาก 10 รับ 100xo pgslot1234 9gspin เครดิต ฟรี fifa555fc gclub ฟรี เว็บ slotxo slot168 ฟรี เครดิต 100 ไม่ ต้อง ฝาก 2563 48 slotxo slot333 xe888 เครดิต ฟรี ไม่ ต้อง แชร์ เครดิต ฟรี สูง ต่ำ ไฮโล สล็อต xo เติม เงิน ผ่าน wallet 888 slotxo http slotxo slot sagame66 joker slot 678 slotjoker1234 ทาง เข้า 55 918kiss บน pc mega joker free slot auto888 918kiss ฝาก ไม่มี ขั้น ต่ํา ไฮโล ส กิ ด 3 หน้า live22 โปร โม ชั่ น เครดิต ฟรี 50 ไม่ ต้อง ฝาก lucabet789 เครดิต ฟรี slot hd คา สิ โน สล็อต ออนไลน์ joker xo auto สล็อต live22 โป๊กเกอร์ fifa555 สมัคร vegus168ag bet365 เครดิต ฟรี เข้า slotxo 918kissthailand แทง ไฮโล ขั้น ต่ํา 10 บาท เครดิต ฟรี ระบบ ออ โต้ http slotxo 918kiss888 918kiss download ios game slotxo 918kiss club 918kiss demo เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ 918kiss auto ไฮโล ออนไลน์ 5 บาท bein sport 1 fifa55 เกมส์ สล็อต มือ ถือ fifa55 ฝาก ขั้น ต่ํา 50 เล่น สล็อต roma slot xo 777 mafia เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก ทาง เข้า vegus168 www 77up me slot hall slotxo 828 mafia191 เครดิต ฟรี แอ พ เครดิต ฟรี สล็อต xo1668 pragmatic play ฟรี เครดิต slot ฝาก 50 เครดิต ฟรี 50 เว็บ แทง บอล fifa55 lucabet789 เครดิต ฟรี slotxo png เครดิต ฟรี dada99thai xo slot club fifa55we gott7 slot 918kisshero slot 888 joker slotxo 24th slot โปร สมาชิก ใหม่ infinity slot สมัคร ใหม่ ฟรี เครดิต xo slot 777 ufa365 ดี ไหม pantip www fifa8888 kiss918 ฟรี เครดิต ไฮโล ออนไลน์ เดิมพัน ขั้น ต่ำ 10 monday 918kiss joker โบนัส 100 auto ไพ่ แบ ล็ ค แจ็ ค pantip wwwfifa555net slotxo ลอง เล่น เครดิต ฟรี pussy888 xo slot xo สล็อต เอ็ ก โอ สมัคร gclub ฟรี เครดิต slotxo ฝาก 30 รับ 100 918kissauto 2 ถอนเงิน สล็อต xo slot 10 แป น ไฮโล ด ค ร ดิ ต ฟรี 918kiss เครดิต ฟรี 50 แอ พ 918kiss สมัคร เว็บ ฟีฟ่า 555 ฟรี เครดิต gclub slot online ไม่มี ขั้น ต่ํา 007slotxo kiss918 เครดิต ฟรี slotxo วง ล้อ slot god โจ ก เกอร์ 888 ฟรี เครดิต 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ คา สิ โน ป๊อก เด้ง slotxo ฝาก 10 รับ 100 ล่าสุด slot joker auto shangri la slot เครดิต ฟรี ไม่ ต้อง ทํา เท ริน easy live22 เครดิต ฟรี ไม่ ยุ่งยาก slot868 918kiss แจก เครดิต ฟรี live22 pgslot slot joker ไม่มี ขั้น ต่ํา ฝาก เงิน live22 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2563 คิง ค อง สล็อต xo slot777 เครดิต ฟรี slotxo 12 exp slotxo แทง ไฮโล ออนไลน์ เครดิต 2020 168galaxy joker ยิง ปลา ฝาก ขั้น ต่ํา 50 slot แจก เครดิต ฟรี ไม่ ต้อง แชร์ 168 gaming xo ไฮโล ส กิ ด 3 หน้า ราคา red slot joker123 ฟรี เครดิต ไม่ ต้อง ฝาก slotxo 236 168 สล็อต xo 918kiss เครดิต ฟรี 2019 py69 slot slotxo god 918kissworld xo slot 899 twin79 เครดิต ฟรี slot joker โปร โม ชั่ น เกม ไฮโล ได้ เงิน จริง fifa55 เข้า ไม่ ได้ แทง ไฮโล ให้ ถูก ฟีฟ่า 1688 slotxo 1668 สล็อต 1688xo bn slotxo 5g slotxo หน้า เว็บ xo xo slot ถอนเงิน
        เกม แต่งตัว 18| ค่า สิ โน ออนไลน์ ใช้ เงิน มือ ถือ| เล่น เกมส์| ฟุตบอล ยู 19| คา สิ โน ดี ที่สุด| เกม valorant| เกม อาหาร| เว็บ คา สิ โน ได้ เงิน จริง| ทดลอง เล่น บา คา ร่า ออนไลน์| เล่น บา คา ร่า ดี ไหม| เกม หนอน กิน ขนม หวาน| เกม พนัน ออนไลน์ มือ ถือ| บา คา ร่า เครดิต ฟรี 100 ไม่ ต้อง แชร์| เล่น เกม คา สิ โน ได้ เงิน จริง ไหม| สด ฟุตบอล ออนไลน์| บา คา ร่า 007| เล่น เกมส์ คา สิ โน ออนไลน์ ฟรี| สมัคร บา คา ร่า ฝาก ขั้น ต่ํา 100| ออก ของ dota| บา คา ร่า จี คลับ มือ ถือ| เกม ยิง ซอมบี้ pc| เกม มา ย ครา ฟ ของ จริง| เกม ออนไลน์ 2019 pc ฟรี| เว็บ ฟี ฟาย| โหลด gta iv| บา คา ร่า 24| คา สิ โน สมัคร รับ เงิน ฟรี| บอร์ด เกมส์| ถ้วย ฟุตบอล| ทาง เข้า บา คา ร่า มือ ถือ| ดาวน์โหลด บา คา ร่า| คา สิ โน เงิน จริง| จี คลับ ฝาก ถอน ไม่มี ขั้น ต่ํา| ข่าว กีฬา ทั้งหมด| เล่น บา คา ร่า เครดิต ฟรี| บา คา ร่า ที่ เล่น ได้ เงิน จริง| 365 บา คา ร่า| viva9988 holiday| เล่น เกม เครดิต ฟรี| เล่น บา คา ร่า ให้ ได้ เงิน ทุก วัน| เกม ซอมบี้ ปะทะ พืช| game online น่า เล่น| เกม แคน ดี้| แผ่น เกม pc| ts911s| ข่าว กีฬา 2562| วอลเลย์บอล ไทย เกาหลี| เล่น เกม บน google| gclub88888| เว็บ คา สิ โน ฟรี เครดิต ไม่ ต้อง ฝาก| ดู ข่าว กีฬา วัน นี้| เกม ระเบิด| เล่น เกม gta v ฟรี| winner55bonus| ข่าว ฟุตบอล พรีเมียร์ ลีก อังกฤษ| ufa191 โปร โม ชั่ น| เล่น คา สิ โน ได้ เงิน จริง| คา สิ โน| เว็บ คา สิ โน โปร โม ชั่ น| เว็บ casino| เว็บ คา สิ โน ออนไลน์| ฝึก เล่น บา คา ร่า ฟรี| vegus168 โปร โม ชั่ น| บา คา ร่า ฝาก ขั้น ต่ำ 20| ข่าว ลิเวอร์พูล สยาม สปอร์ต| ทาง เข้า คา สิ โน|