<em id="mUG3X2g"></em>

    <sub id="mUG3X2g"><code id="mUG3X2g"></code></sub>

    1. <nav id="mUG3X2g"></nav>
      1. A playground for University of Bologna Students and a 6-days seminar about digital tools.

        Digital generative tools are a very important part of architectural education. Andrew Kudless during his conference at SimAE was telling about chinese traditional woodcraftsmen: they spend their first two years of apprentice in making their own tools. Today, we have a large pool of digital ready made tools, built to respond to more or less specific problems or tasks, while keeping a level of flexibility and personalization. The majority of these tools have hidden capabilities, which can only be accessed bypassing the conventional interface and getting close to the machine logic of programming or building parametric components which generate shapes. Thus, seriality, differentiation, complexity can be implemented in architectural projects through code, in order to exploit the power of algorithmic based complex systems which are the basis of biological systems.


        But, before going through such complexity, we must start with simple tasks and simple rules. Before playing seriously we need practice. This is the playground where a bunch of students will start to practice, a pool where they will share their results and questions. Maybe the stuff here that will be posted will seem obvious or naive to the navigated code-monkey, but, as I mentioned before, we all start from the basics and this is intended as a place to start. However, any comment and contribution is appreciated.

        Playground is open, let's play! _ Alessio

        2.11.09

        L-system [test]

        Working on the same principles of my last post I realized a new script based on self-learning system.
        The concept is easy. A simple L-system start to grown randomly from a seed, and after every generation it try to touch other L-systems, that are growing from different one seed.

        [edit]
        I forgot to explain some aspects. In this script singles L-system recive a feedback from others, because configuration of every generation depend on configuration of previous one.
        Unlike my previous script there isn't only one final perfect configuration, but infinity ones... because every random event of system "A" affects other systems in next generation, thus itself in following one.
        [/edit]


        Option Explicit
        ' Script written by Alessandro Zomparelli
        ' alessandro.zomparelli@gmail.com
        ' http://alessandrozompa.altervista.org/
        ' Script version domenica 1 novembre 2009 14.40.18

        Call Main()
        Sub Main()
        'picking seed points
        Dim arrSeed, arrSub
        ReDim arrSeed(0)
        arrSeed(0)=Rhino.GetObjects("pick seed points",1)

        'defining number of branch
        Dim dblBrN
        dblBrN=Rhino.GetInteger("number of branches",2,1)

        'defining number of branch generation
        Dim dblBranch
        dblBranch=Rhino.GetInteger("number of branch generation",3,1)
        ReDim Preserve arrSeed(dblBranch)

        Dim arrData, dblVote, arrVote
        ReDim arrData(dblBranch), arrVote(0)

        'defining number of generations and amount of mutation between following generations
        Dim dblGen, dblMut, strLine
        dblGen=Rhino.GetInteger("set number of generations",100,2,10000)
        dblMut=Rhino.GetReal("set mutation value",2,0.1,100)

        Call Rhino.EnableRedraw(False)

        'starting evolution system
        Dim i,j,z,k,y,m,a

        Dim dblDis, arrDist, strC1, strC2
        ReDim arrDist(0)

        'generation of different layers
        Dim strL1: strL1="lines"
        Call Rhino.AddLayer(strL1)

        'evaluation of distance between seed points for a better L-System scale
        dblDist=Rhino.Distance(Rhino.PointCoordinates(arrSeed(0)(0)),Rhino.PointCoordinates(arrSeed(0)(1)))
        For i=0 To ubound(arrSeed(0))
        For j=0 To ubound(arrSeed(0))
        If i<>j Then
        If Rhino.Distance(Rhino.PointCoordinates(arrSeed(0)(i)),Rhino.PointCoordinates(arrSeed(0)(j)))<>0 Then
        arrSeed(i)=arrSub
        End If
        arrData(i)=arrSub
        For j=0 To ubound(arrSeed(i))
        arrData(i)(j)=array(0,array(0,0,0),array(0,0,0),dblDis)
        Next
        Next


        For z=0 To dblGen-1
        Call Rhino.Print(int(z*100/(dblGen-1))&"%")
        For i=1 To dblBranch
        'generation of branches
        For j=0 To ubound(arrSeed(i-1))

        For y=0 To dblBrN-1
        'defining vector scattering direction
        arrData(i)(j*(dblBrN)+y)(2)=array(arrData(i)(j*(dblBrN)+y)(1)(0)+dblMut*(dblGen-z)/dblGen*(rnd-rnd),arrData(i)(j*(dblBrN)+y)(1)(1)+dblMut*(dblGen-z)/dblGen*(rnd-rnd),arrData(i)(j*(dblBrN)+y)(1)(2)+dblMut*(dblGen-z)/dblGen*(rnd-rnd))

        'propotional scaling factor
        arrData(i)(j*(dblBrN)+y)(2)=Rhino.VectorUnitize(arrData(i)(j*(dblBrN)+y)(2))
        arrData(i)(j*(dblBrN)+y)(2)=Rhino.VectorScale(arrData(i)(j*(dblBrN)+y)(2),arrData(i)(j*(dblBrN)+y)(3)/i/3)
        arrSeed(i)(j*(dblBrN)+y)=Rhino.CopyObject(arrSeed(i-1)(j),arrData(i)(j*(dblBrN)+y)(2))

        'drawing last generation
        If z=dblGen-1 Then
        strLine=Rhino.AddLine(Rhino.PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)))
        Call Rhino.objectlayer(strLine,strL1)
        If i=1 Then
        strC1=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i-1)(j)(3)/20/i)
        Else
        strC1=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i-1)(j)(3)/40/(i-1))
        End If
        strC2=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i)(j*(dblBrN)+y)(3)/40/i)
        Call Rhino.AddLoftSrf(array(strC1,strC2))
        If i=1 Then
        Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i-1)(j)(3)/20/i)
        'Else
        ' Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i-1)(j)(3)/30/(i-1))
        End If
        Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),arrData(i)(j*(dblBrN)+y)(3)/40/i)
        Call Rhino.DeleteObjects(array(strC1,strC2))
        End If

        'for display colors of different generation
        'If z/10=int(z/10) Then
        ' strLine=Rhino.AddLine(Rhino.PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i)(j*2+y)))
        ' Call Rhino.ObjectColor(strLine, RGB(255-255/dblGen*z,0,255/dblGen*z))
        'End If
        Next
        Next

        'recordn data of individual branches
        For j=0 To ubound(arrSeed(i-1))
        For y=0 To dblBrN-1
        a=-1
        'defining votes for branches generated from different seeds
        For k=0 To ubound(arrSeed(i-1))
        If int(k/(dblBrN^(i-1)))<>int(j/(dblBrN^(i-1))) Then
        For m=0 To dblBrN-1
        a=a+1
        ReDim Preserve arrVote(a), arrDis(a+1)
        'defining a vote for element efficiency
        arrVote(a)=(Rhino.Distance(PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i-1)(k)))-Rhino.Distance(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),Rhino.PointCoordinates(arrSeed(i-1)(k))))
        'recording distance from detected points
        arrDist(a)=Rhino.Distance(PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i-1)(k)))
        Next
        End If
        Next
        dblVote=Rhino.Max(arrVote)

        'recording dist for nearest point
        For k=0 To ubound(arrVote)
        If arrVote(k)=dblVote Then
        arrDist(a+1)=arrDist(k)
        End If
        Next

        'recording data about the new element
        If dblVote>arrData(i)(j*(dblBrN)+y)(0) Then
        arrData(i)(j*(dblBrN)+y)(0)=dblVote
        arrData(i)(j*(dblBrN)+y)(1)=arrData(i)(j*(dblBrN)+y)(2)
        arrData(i)(j*(dblBrN)+y)(3)=arrDist(a+1)
        End If
        Next
        Next

        Next
        For i=1 To dblBranch
        Call Rhino.DeleteObjects(arrSeed(i))
        Next

        Next
        Call Rhino.LayerVisible(strL1,False)
        Call Rhino.EnableRedraw(True)
        Call Rhino.Print("100%")

        End Sub

        31.10.09



        Like human body and ant colony, later generations reduce scattering for a more accurate configuration. Studying countless generations, the family should reach the target specified.

        Specifying different rules for worms should be possible to study emergent systems whose behavior is not predictable from the study of individual elements, like organic complexity L-systems.




        Option Explicit
        ' Script written by Alessandro Zomparelli
        ' alessandro.zomparelli@gmail.com
        ' http://alessandrozompa.altervista.org/
        ' Script version venerdì 30 ottobre 2009 16.59.03

        Call Main()
        Sub Main()
        Dim strTarget, arrFamily, arrTarget, n
        n=Rhino.GetInteger("set number elements",20,2,100)

        ReDim arrFamily(n), arrTarget(2)
        arrFamily(0)=Rhino.GetObject("pick starting point")
        'check for starting point
        If Rhino.IsPoint(arrFamily(0))=False Then
        Exit Sub
        End If
        strTarget=Rhino.GetObject("pick target point")
        'check for target point
        If Rhino.IsPoint(strTarget)=False Then
        Exit Sub
        End If
        arrTarget=Rhino.PointCoordinates(strTarget)

        Dim dblDist
        dblDist=Rhino.Distance(Rhino.PointCoordinates(arrFamily(0)),arrTarget)

        'defining number of generations and amount of mutation between following generations
        Dim dblGen, dblMut
        dblGen=Rhino.GetInteger("set number of generations",100,2,1000)
        dblMut=Rhino.GetReal("set mutation value",2,0.01,100)

        'defining an array to collect data about different family
        Dim arrData
        ReDim arrData(n)

        'defining a value for better step-element of different family
        Dim dblVote

        'defining counters, array for data recording and an array for scattering direction
        Dim i, j, arrVect, arrVect0, arrRec
        ReDim arrVect(2), arrVect0(2), arrRec(1)

        'defining random data for first generation
        For j=1 To n
        arrVect=array(rnd-rnd,rnd-rnd,rnd-rnd)
        dblVote=0
        arrData(j)=array(dblVote,arrVect)
        Next

        Dim strLine

        'starting evolution system
        For i=0 To dblGen-1

        Call Rhino.EnableRedraw(False)
        'starting family growning
        For j=1 To n
        arrRec=arrData(j)
        arrVect0=arrRec(1)
        arrVect=array(arrVect0(0)+dblMut*(dblGen-i)/dblGen*(rnd-rnd),arrVect0(1)+dblMut*(dblGen-i)/dblGen*(rnd-rnd),arrVect0(2)+dblMut*(dblGen-i)/dblGen*(rnd-rnd))
        arrVect0=Rhino.VectorUnitize(arrVect)
        arrVect=Rhino.VectorScale(arrVect0,dblDist/n)
        'generation of new element of the family
        arrFamily(j)=Rhino.CopyObject(arrFamily(j-1),arrVect)
        strLine=Rhino.AddLine(Rhino.PointCoordinates(arrFamily(j-1)),Rhino.PointCoordinates(arrFamily(j)))
        Call Rhino.ObjectColor(strLine, RGB(255-255/dblGen*i,0,255/dblGen*i))

        If Rhino.Distance(Rhino.PointCoordinates(arrFamily(j)),arrTarget)arrRec(0) Then
        arrData(j)=array(dblVote,arrVect)
        End If
        End If
        Next
        For j=1 To n
        Call Rhino.DeleteObject(arrFamily(j))
        Next

        Call Rhino.EnableRedraw(True)
        Next

        End Sub

        12.6.09

        tens.tesselation


        Here some other surface tesselation experiments, I have already posted the first one but now it is fixed (no more Rhino.command!). Anyway there is not a relevant physics accuracy in both scripts, take them just as tries.





















        ' CASE 10 SURFSTARS

        Sub surfstars(strsurf,upar,vpar)
        upar = upar*5
        vpar = vpar*5
        Dim dblheight : dblheight = rhino.getreal("extrusion height?" ,.05)
        If isnull (dblheight) Then Exit Sub
        Dim attrpoint : attrpoint = rhino.getobject("point attractor",1)
        Dim arrpoint : arrpoint = rhino.PointCoordinates(attrpoint)
        Call rhino.enableredraw(False)
        Dim i, j
        Dim uvalone(1), uvaltwo
        Dim arrUone, arrVone
        Dim arrpttemp, pointtwo
        Dim pt1, pt2, pt3, pt4, pt5, pt6, PT7, Pt8, pt5b, pt6b, pt7b, pt8b, ptc1, ptc2, pt1c, pt2c, pt3c, pt4c
        ReDim matrix (upar, vpar)
        Dim tempt
        arruone = array (0,0)
        arrVone = array (0,0)
        Dim strcell, arrct, arrptsurf, arrnorm, arrnormend,arrnormenddown, arrline, strcell2
        Dim pt1b,pt2b,pt3b,pt4b
        If rhino.IsSurface(strsurf) Then
        arruone = rhino.surfacedomain(strsurf,0)
        arrVone = rhino.surfacedomain(strsurf,1)
        End If
        For i=0 To upar
        For j=0 To vpar
        uvalone(0)= ((arruone(1)-arruone(0))/upar)*i
        uvalone(1) = ((arrVone(1)-arrVone(0))/vpar)*j
        arrpttemp = rhino.EvaluateSurface(strsurf,uvalone)
        matrix(i,j) = arrpttemp
        Next
        Next
        Dim oct1, oct2, oct3, oct4, arrlinehuge, arrel1, arrel2, arrdom, midplane, midcircle1, midcircle2
        Dim rn, crvtemp, dbldist

        For i = 1 To upar-1
        For J=0 To vpar-1
        pt1 = matrix(i,j)
        pt2 = matrix(i+1,j)
        pt3 = matrix(i,j+1)
        pt4 = matrix(i+1,j+1)
        pt5 = array( (pt1(0)+pt2(0))/2,(pt1(1)+pt2(1))/2,(pt1(2)+pt2(2))/2)
        pt6 = array( (pt2(0)+pt4(0))/2,(pt2(1)+pt4(1))/2,(pt2(2)+pt4(2))/2)
        pt7 = array( (pt3(0)+pt4(0))/2,(pt3(1)+pt4(1))/2,(pt3(2)+pt4(2))/2)
        pt8 = array( (pt1(0)+pt3(0))/2,(pt1(1)+pt3(1))/2,(pt1(2)+pt3(2))/2)
        ptc1 = array( (pt5(0)+pt7(0))/2,(pt5(1)+pt7(1))/2,(pt5(2)+pt7(2))/2)
        ptc2 = array( (pt6(0)+pt8(0))/2,(pt6(1)+pt8(1))/2,(pt6(2)+pt8(2))/2)
        dbldist = rhino.Distance(ptc1,arrpoint)
        dbldist = Rhino.Log10 (dbldist*3)
        If dbldist<1 dbldist ="">
        pt5b = array( pt5(0)+(ptc1(0)-pt5(0))/(dbldist),pt5(1)+(ptc1(1)-pt5(1))/(dbldist),pt5(2)+(ptc1(2)-pt5(2))/(dbldist))
        pt6b = array( pt6(0)+(ptc2(0)-pt6(0))/(dbldist),pt6(1)+(ptc2(1)-pt6(1))/(dbldist),pt6(2)+(ptc2(2)-pt6(2))/(dbldist))
        pt7b = array( pt7(0)+(ptc1(0)-pt7(0))/(dbldist),pt7(1)+(ptc1(1)-pt7(1))/(dbldist),pt7(2)+(ptc1(2)-pt7(2))/(dbldist))
        pt8b = array( pt8(0)+(ptc2(0)-pt8(0))/(dbldist),pt8(1)+(ptc2(1)-pt8(1))/(dbldist),pt8(2)+(ptc2(2)-pt8(2))/(dbldist))

        Call rhino.AddCurve(array(pt1,pt2,pt4,pt3,pt1),1)
        strcell = rhino.addcurve(array(pt1,,pt5b, pt2,pt6b, pt4, pt7b,pt3,pt8b,pt1),1)

        arrct = array( (pt4(0)+pt1(0))/2,(pt4(1)+pt1(1))/2,(pt4(2)+pt1(2))/2)
        arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
        arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
        arrnorm = rhino.VectorScale(arrnorm, dblheight)
        arrnormend = rhino.PointAdd(arrct,arrnorm)
        arrnormenddown = rhino.Pointsubtract(arrct,arrnorm)
        crvtemp = rhino.AddSrfPt(array(pt1,arrnormend,pt5b))
        crvtemp = rhino.AddSrfPt(array(pt5b,arrnormend,pt2))
        crvtemp = rhino.AddSrfPt(array(pt2,arrnormend,pt6b))
        crvtemp = rhino.AddSrfPt(array(pt6b,arrnormend,pt4))
        crvtemp = rhino.AddSrfPt(array(pt4,arrnormend,pt7b))
        crvtemp = rhino.AddSrfPt(array(pt7b,arrnormend,pt3))
        crvtemp = rhino.AddSrfPt(array(pt3,arrnormend,pt8b))
        crvtemp = rhino.AddSrfPt(array(pt8b,arrnormend,pt1))

        crvtemp = rhino.AddSrfPt(array(pt1,arrnormenddown,pt5b))
        crvtemp = rhino.AddSrfPt(array(pt5b,arrnormenddown,pt2))
        crvtemp = rhino.AddSrfPt(array(pt2,arrnormenddown,pt6b))
        crvtemp = rhino.AddSrfPt(array(pt6b,arrnormenddown,pt4))
        crvtemp = rhino.AddSrfPt(array(pt4,arrnormenddown,pt7b))
        crvtemp = rhino.AddSrfPt(array(pt7b,arrnormenddown,pt3))
        crvtemp = rhino.AddSrfPt(array(pt3,arrnormenddown,pt8b))
        crvtemp = rhino.AddSrfPt(array(pt8b,arrnormenddown,pt1))
        arrline = rhino.AddLine(pt1,pt2)
        arrdom=rhino.CurveDomain(arrline)
        midplane=rhino.CurvePerpFrame(arrline,arrdom(0))
        midcircle1=rhino.AddCircle(midplane,0.09)
        midplane=rhino.CurvePerpFrame(arrline,arrdom(1))
        midcircle2=rhino.AddCircle(midplane,0.09)
        Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
        arrline = rhino.AddLine(pt3,pt4)
        arrdom=rhino.CurveDomain(arrline)
        midplane=rhino.CurvePerpFrame(arrline,arrdom(0))
        midcircle1=rhino.AddCircle(midplane,0.09)
        midplane=rhino.CurvePerpFrame(arrline,arrdom(1))
        midcircle2=rhino.AddCircle(midplane,0.09)
        Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))

        Next
        Next

        Call rhino.deleteobject(strsurf)
        Call rhino.EnableRedraw(True)
        End Sub



        '----- CASE 11 SURFholetens -----


        Sub SURFholetens (strsurf,upar,vpar)
        Dim dblheight : dblheight = rhino.getreal("elements height?" ,.6)
        Dim attrpoint : attrpoint = rhino.Getobject("attractor",1)
        Dim attrpointcoord : attrpointcoord= rhino.pointcoordinates(attrpoint)
        If isnull (dblheight) Then Exit Sub
        Call rhino.enableredraw(False)
        Dim i, j
        Dim uvalone(1), uvaltwo
        Dim arrUone, arrVone
        Dim arrpttemp, pointtwo
        Dim pt1, pt2, pt3, pt4, pt5, pt6, pta, ptb, ptc,ptd
        ReDim matrix (upar, vpar)
        Dim tempt
        arruone = array (0,0)
        arrVone = array (0,0)
        Dim arrct, arrptsurf, arrnorm, arrnormend, arrline
        If rhino.IsSurface(strsurf) Then
        arruone = rhino.surfacedomain(strsurf,0)
        arrVone = rhino.surfacedomain(strsurf,1)
        End If
        For i=0 To upar
        For j=0 To vpar
        uvalone(0)= ((arruone(1)-arruone(0))/upar)*i
        uvalone(1) = ((arrVone(1)-arrVone(0))/vpar)*j
        arrpttemp = rhino.EvaluateSurface(strsurf,uvalone)
        matrix(i,j) = arrpttemp
        Next
        Next
        Dim dbldist
        Dim strquad1,strcentr,strquad2,strcell, midline,midcircle1,midcircle2, midplane,arrdom,ptmid
        Dim midp1,midpoint1
        Dim midp2,midpoint2
        For i = 1 To upar-2 Step 3
        For J=0 To vpar-2 Step 4
        pt1 = matrix(i,j)
        pt2 = matrix(i+1,j)
        pt3 = matrix(i+2,j+1)
        pt4 = matrix(i+1,j+2)
        pt5 = matrix(i,j+2)
        pt6 = matrix(i-1,j+1)
        pta = matrix(i-1,j)
        ptb = matrix(i+2,j)
        ptc = matrix(i+2,j+2)
        ptd = matrix(i-1,j+2)
        strcell = rhino.AddCurve(array(pt6,pt1,pt2,pt3,pt4,pt5,pt6),2)
        strquad1 = rhino.AddCurve(array(pta,ptb,ptc,ptd,pta),1)
        Call rhino.objectcolor(strquad1,rgb(255,255,255))'bianco
        arrct = array( (pt6(0)+pt3(0))/2,(pt6(1)+pt3(1))/2,(pt6(2)+pt3(2))/2)
        arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
        dbldist=rhino.Distance(arrct,attrpointcoord)
        dbldist = Rhino.Log10 (dbldist*7)
        If dbldist < dbldist ="">
        strcell = rhino.scaleobject(strcell,arrct,array(0.95/dbldist,0.95/dbldist,0.95/dbldist))
        arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
        arrnorm = rhino.VectorScale(arrnorm, dblheight)
        arrnormend = rhino.PointAdd(arrct,arrnorm)
        arrline = rhino.AddLine(arrct,arrnormend)
        Call rhino.AddLoftSrf(array(strcell,strquad1))
        strquad2=rhino.copyObject(strquad1,arrct,arrnormend)
        strcentr=rhino.copyobject(strcell,arrct,arrnormend)
        Call rhino.addloftsrf(array(strquad2,strcentr))
        Call rhino.addloftsrf(array(strquad2,strquad1))
        Call rhino.addloftsrf(array(strcentr,strcell))

        midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
        midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
        ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
        midpoint1=rhino.addpoint(midp1)
        midpoint2=rhino.AddPoint(midp2)
        Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
        midp1=rhino.PointCoordinates(midpoint1)
        midp2=rhino.PointCoordinates(midpoint2)
        midline = rhino.AddLine(midp1,midp2)
        arrdom=rhino.CurveDomain(midline)
        midplane=rhino.CurvePerpFrame(midline,arrdom(0))
        midcircle1=rhino.AddCircle(midplane,dblheight/6)
        midplane=rhino.CurvePerpFrame(midline,arrdom(1))
        midcircle2=rhino.AddCircle(midplane,dblheight/6)
        Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
        Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
        Next
        Next
        For i = 2.5 To upar-2 Step 3
        For J=2 To vpar-2 Step 4
        pt1 = matrix(i,j)
        pt2 = matrix(i+1,j)
        pt3 = matrix(i+2,j+1)
        pt4 = matrix(i+1,j+2)
        pt5 = matrix(i,j+2)
        pt6 = matrix(i-1,j+1)
        pta = matrix(i-1,j)
        ptb = matrix(i+2,j)
        ptc = matrix(i+2,j+2)
        ptd = matrix(i-1,j+2)
        strcell = rhino.AddCurve(array(pt6,pt1,pt2,pt3,pt4,pt5,pt6),2)
        strquad1 = rhino.AddCurve(array(pta,ptb,ptc,ptd,pta),1)
        Call rhino.objectcolor(strquad1,rgb(255,255,255))'bianco
        arrct = array( (pt6(0)+pt3(0))/2,(pt6(1)+pt3(1))/2,(pt6(2)+pt3(2))/2)
        arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
        dbldist=rhino.Distance(arrct,attrpointcoord)
        dbldist = Rhino.Log10 (dbldist*7)
        If dbldist < dbldist ="">
        strcell = rhino.scaleobject(strcell,arrct,array(0.95/dbldist,0.95/dbldist,0.95/dbldist))
        arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
        arrnorm = rhino.VectorScale(arrnorm, dblheight)
        arrnormend = rhino.PointAdd(arrct,arrnorm)
        arrline = rhino.AddLine(arrct,arrnormend)
        Call rhino.AddLoftSrf(array(strcell,strquad1))
        strquad2=rhino.copyObject(strquad1,arrct,arrnormend)
        strcentr=rhino.copyobject(strcell,arrct,arrnormend)
        Call rhino.addloftsrf(array(strquad2,strcentr))
        Call rhino.addloftsrf(array(strquad2,strquad1))
        Call rhino.addloftsrf(array(strcentr,strcell))
        midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
        midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
        ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
        midpoint1=rhino.addpoint(midp1)
        midpoint2=rhino.AddPoint(midp2)
        Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
        midp1=rhino.PointCoordinates(midpoint1)
        midp2=rhino.PointCoordinates(midpoint2)
        midline = rhino.AddLine(midp1,midp2)
        arrdom=rhino.CurveDomain(midline)
        midplane=rhino.CurvePerpFrame(midline,arrdom(0))
        midcircle1=rhino.AddCircle(midplane,dblheight/6)
        midplane=rhino.CurvePerpFrame(midline,arrdom(1))
        midcircle2=rhino.AddCircle(midplane,dblheight/6)
        Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
        Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
        Next
        Next
        Call rhino.DeleteObject(strsurf)
        Call rhino.EnableRedraw(True)
        End Sub
         
        live22 slotxo live22 ไม่มี ขั้น ต่ํา joker ฝาก ไม่มี ขั้น ต่ํา สมัคร สล็อต ออนไลน์ มือ ถือ ทาง เข้า ฟีฟ่า 55 คิง เครดิต ฟรี ไม่ ต้อง ทํา เท ริน เครดิต ฟรี ระบบ ออ โต้ 918kiss money 918kiss ฝาก ถอน เครดิต ฟรี 50 ไม่ ต้อง แชร์ joker123 net live22 ฝาก ไม่มี ขั้น ต่ำ slot ฝาก 20 บาท รับ 100 zap918kiss slot1234 xo slotxo 777 th slotxo ฝาก 20 บาท รับ 100 918kiss บน pc สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก xo slot game รู เล็ ต คือ แจ็ ค พอ ต xo super999 slot 168bet slot slot hall slotxo ผ่าน วอ เลท สล็อต xo 1234 vip slotxo ไฮโล คือ 2pigsslot live22 ไฮโล สะกิด 99 ocean เครดิต ฟรี เครดิต ฟรี ไม่มี เงื่อนไข 1thslot c2slot slot888online slotxo เว็บ ไฮโล เงิน จริง ไฮโล ขั้น ต่ำ 1 บาท สมัคร ครั้ง แรก ฟรี เครดิต dreamtech slot v88slot xo slot cafe fifa55 คา สิ โน slot 918 ถอนเงิน joker123 jokerslot888 เล่น สล็อต xo สล็อต xo 99 918kiss ท รู วอ เลท 2019 fifa9999 login morgana megaways 8 bit slot xo สล็อต เอ็กซ์ โอ slotxo playlive88 winner55 เครดิต ฟรี ไม่ ต้อง ฝาก slot live22 slot viva สล็อต xo3k ลิ้ ง 918kiss mafia95 slot slot mario joker โบนัส 100 auto slot casino online slotcafe ฝาก xo mafia เครดิต ฟรี 50 ราคา ไฮโล เครดิต ฟรี otp c8 slot joker123 slotxo โป็ ก เกอร์ ออ น ไล ไฮโล มือ ถือ 333be โค๊ ด ฟรี 133 sco88 เครดิต ฟรี 133 919kiss เสือ มังกร ออนไลน์ mm88bet ฝาก slotxo โบนัส 100 เทิ ร์ น 2 เท่า slot team slotxo 639 ไพ่ โป๊ก เก อ 918kiss 123 lucky god slot 168slotxo auto xo slot69 โป๊กเกอร์ ได้ เงิน จริง สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ถอนเงิน ได้ xe88 เครดิต ฟรี xo slot 777 j9slot สล็อต เอ็กซ์ โอ slotxo8 scr888 เครดิต ฟรี คา สิ โน 918kiss slotxo77 เว็บ ตรง 918kiss hungry 918kiss elmo slot สล็อต xo168 w168club เครดิต ฟรี 22thxo red365 เครดิต ฟรี slotxo234 เครดิต ฟรี live22 918kissscr888 joker slot1234 ufaallslot777 ฟรี เครดิต 20 918kiss android android สมัคร fifa5555 demo slotxo สมัคร ฟรี เครดิต ฟรี ไพ่ แค ง เครดิต ฟรี https www slot12 com member slotxo เกม ไพ่ แบ ล็ ค แจ็ ค เว็บ ตรง 918kiss slot345 databet88 agent vegus168ag slotxo mod apk เครดิต sahacker slotxo สล็อต ออนไลน์ หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ xo ฝาก ถอน slotxo jb ตัวแทน live22 slotxo78 slotxo 88888 auto slotxo big win 777 fifa55 palace โป เกอร์ slot เครดิต ฟรี 50 บาท slotxo24th 918kiss slot 918kiss ถอน ไม่มี ขั้น ต่ํา fifa55 เข้า ไม่ ได้ slot เครดิต ฟรี ไม่ ต้อง แชร์ เล่น poker ออนไลน์ jack slot 918kiss download 2019 pc slot joker xo 888 โจ๊ก เกอร์ สล็อต ออนไลน์ xo สมัคร ได้ เครดิต ฟรี slot 888 9gspin เครดิต ฟรี คา สิ โน ออนไลน์ 918 35 slotxo slotxo 88th 888 slotxo คา สิ โน ไพ่ ดั ม มี่ live22 1234 mega888 slot 918kiss allbet asia slotxo แจก เครดิต ฟรี 2019 8 bit slot xo 66 slot 918kiss4you mafia ฟรี เครดิต ไม่ ต้อง แชร์ slotxo ฝาก 9 บาท slotxo auto 100 เข้า สล็อต xo slot win สมัคร fifa55 ฝาก ขั้น ต่ํา 100 gclub เครดิต ฟรี ถอน ได้ สล็อต xo ท รู วอ ล เล็ ต slot xo168 918kiss ออ โต้ 918kiss v8 เว็บ เล่น บา ค่า ร่า ufa800 slot6996 slotxo demo ไฮโล โทรศัพท์ วิธี เล่น databet88 joker898 slot slotxo 89 ufa365 com ได้ เลย ค่ะ ace333 เครดิต ฟรี 918kiss slots ป๊อก เด้ง ขั้น ต่ำ 10 บาท www fifa55hd com ลูกค้า เข้า ผ่าน google chrome นะ คะ joker35 slot โปร โม ชั่ น pgslot slot999vip 918kiss free slotxo ฝาก 1 รับ 100 ราคา รู เล็ ต 168 slot xo slot cafe 918kiss ระบบ ออ โต้ สยาม โป็ ก เกอร์ ไม่ ต้อง ฝาก slot joker ฝาก ไม่มี ขั้น ต่ํา คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ slot fun888 ฝาก 500 ฟรี 200 slotxo tz pg slot โปร ทุน น้อย slotxo เติม เงิน wallet 918kissslots ufa365 หนัง mafia เครดิต ฟรี 2020 slotxo199 joker123 ไม่มี ขั้น ต่ํา slot มา ใหม่ slot hacker fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก slot vip 888 qtech slot ทาง เข้า ฟีฟ่า 55u slotxo199 สล็อต slotxo slot z slotxo 444 game slot 66 goldenslot777 slot889 168 สล็อต xo ้ ค ร ดิ ต ฟรี xo roma ฝาก 100 ฟรี 100 sg เครดิต ฟรี game slot 66 megaways jack ไลน์ live22 เว็บ บอล 55 สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 slot2p 918kiss ระบบ ออ โต้ ไฮโล ออนไลน์ ได้ เงิน จริง 8bitslotxo slotxo โปร ฝาก 10 รับ 100 เล่น ไพ่ เงิน จริง โจ๊ก เกอร์ 888 คา สิ โน xo joker slot slotxo credit free ufaallslot777 เครดิต ฟรี 200 ไม่ ต้อง แชร์ slotxo ปิด ปรับปรุง slotxo ฝาก ถอน เกม สล็อต slotxo สล xo ดู ทีวี ออนไลน์ fifa55 slotxo6 slot 888 casino สล็อต xo easy slot ฝาก ไม่มี ขั้น ต่ํา game 918 q9win slot joker slot โปร 100 เล่น xo slot slot888vip เครดิต ฟรี 200 ไม่ ต้อง แชร์ slot hd live slot เครดิต ฟรี 555 joker123 ไม่มี ขั้น ต่ํา fifa5555 ดี ไหม aladdin slot ยิง ปลา fun88 pg slot โปร ทุน น้อย เครดิต ฟรี ทํา เทิ ร์ น น้อย เว็บ แทง บอล fifa55 poker ออนไลน์ 918 เครดิต ฟรี สล็อต xo777 xo บน เว็บ สล็อต xo3k xoslot69thai slotxo pc red slotxo เว็บ ตรง 918kiss เครดิต ฟรี 133 fifa55na sanook xo slot 918 ฝาก ไม่มี ขั้น ต่ํา ป๊อก เด้ง เครดิต ฟรี mafia เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 77up football mafia789 เครดิต ฟรี live22 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ world1688s slot ผล ฟุตบอล เสมือน จริง ufa365 net สล็อต xo1668 สล็อต ufa365 24th slotxo joker168 ฟรี เครดิต เว็บ ฟีฟ่า 888 ไฮโล ออนไลน์ m88 slot24hr ถอน เงิน slotxo slot ฝาก 50 โจ๊ก เกอร์ 888 77up now joker123 ไม่มี ขั้น ต่ํา slot cat888 ฟรี เครดิต 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิต ฟรี ไม่ หลอก แชร์ slot เครดิต ฟรี 50 บาท 918 เครดิต ฟรี เกม ไพ่ 21 สยาม โป็ ก เกอร์ เว็บ พนัน บอล ดี ที่สุด 2021 สล็อต เอ็ ก โอ slot joker91 191slot slot mobile สล็อต xo ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2020 fifa55 idea slotxo ฝาก ผ่าน ท รู วอ เลท live22 โปร โม ชั่ น mm88bet สล็อต slot 888 v1 win55 เครดิต ฟรี playlive88 slotxo jackpotxo live22 เครดิต ฟรี 200 981kiss mafia เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิต ฟรี เล่น ได้ ถอน ไป เลย star joker slot เล่น ไพ่ แบ ล็ ค แจ็ ค 4ux slot twin79 เครดิต ฟรี joker8899 เครดิต ฟรี 918kiss ฟรี 1000 fifa55u ดู บอล แทง รู เล็ ต สูตร บา คา ร่า ufa800 198 kiss download slot222 007slotxo mafia789 เครดิต ฟรี เครดิต ฟรี 20 บาท fortune 918kiss วง ล้อ เสี่ยง โชค ออนไลน์ kiss slot ถอนเงิน live22 ฝาก 1 บาท ฟรี 50 บาท scr888 918kiss download เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ โจ๊ก เกอร์ ฟรี เครดิต ยิง ปลา ฝาก ขั้น ต่ํา 50 fifa555 สมัคร ไฮโล ออนไลน์ 888 สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slot joker xo slot918 slot เติม 10 ได้ 100 slot ฝาก 50 fifa55 ฟีฟ่า j9slot เครดิต ฟรี kiss918 win88 เครดิต ฟรี slot191 slotxo ค่าย ไหน ดี scr888 เครดิต ฟรี dl19 918kiss 9118kiss สล็อต slotxo เว็บ แทง บอล fifa55 slot ฝาก ไม่มี ขั้น ต่ํา ฟุตบอล เสมือน จริง saba 550ww เครดิต ฟรี joker ฝาก ไม่มี ขั้น ต่ำ mafia เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก ฟรี เครดิต 50 ไม่ ต้อง ฝาก เว็บไซต์ คา สิ โน ออนไลน์ ดี ที่สุด slot xo888 918kiss slot game vegus168 lucky สล็อต xo ฝาก วอ เลท สล็อต ออนไลน์ ฝาก ถอน ไม่มี ขั้น ต่ำ ยู ส เท ส 918kiss 8bet slot เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ caesar88 slot winner55 ฟรี เครดิต slotxo ฝาก 9 บาท 168slot เว็บ พนัน เล่น ฟรี ได้ เงิน จริง www fifa55hd com ลูกค้า เข้า ผ่าน google chrome นะ คะ เครดิต ฟรี 50 สล็อต xo เติม เงิน ผ่าน wallet เครดิต ฟรี ไม่ ต้อง โอน ก่อน เครดิต ฟรี 10 918kiss เครดิต ฟรี ล่าสุด 168slotxo pantip มาเฟีย เครดิต ฟรี 50 all slot 9slot ป๊อก เด้ง คา สิ โน ลิ้ ง 918kiss 918kiss ฟรี 100 สมัคร ace333 ฟรี เครดิต la slot ฝาก xo slot free credit 2020 joker123 โปร โม ชั่ น แทง ไฮโล ให้ ได้ เงิน สล็อต xo 236 http slotxo เเ ป น ไฮโล mafia55 เครดิต ฟรี 50 รู เล็ ต สายฟ้า dafabet slot html5 slot machine 918kiss เวอร์ชั่น เก่า สมัคร ไม่ ต้อง ฝาก สล็อต xobkk หลักการ แทง ไฮโล slot ฝาก 20 บาท รับ 100 boxing slot fafafa2 เกม ไฮโล สล็อต xo v9 918kiss billion wwwfifa555net ฝาก 10 รับ 100 wallet ฟีฟ่า 777 slot s9 เล่น สล็อต xo 168bet ฟรี เครดิต jackpotxo live22 8richd เครดิต ฟรี demo slotxo ggbet168 เครดิต ฟรี slotxo lucky god สมัคร 300 ฟรี 100 xo ฝาก ผ่าน วอ เลท แบ ล็ ค แจ็ ค ออนไลน์ slotxo456 ไม่ ต้อง ฝาก ถอน ได้ โป๊กเกอร์ เงิน จริง slotxo ผ่าน เว็บ slot 66 เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ เครดิต ฟรี winner55 ทาง เข้า ฟีฟ่า 55u สมัคร ครั้ง แรก ฟรี เครดิต 918kisstm 3win8 casino slotxo45 xe88 เครดิต ฟรี slot s9 slotxo mafia88 joker gaming 888 เกม slot เข้า ฟีฟ่า 55 slot1688 pantip 918kissth v3 slot 345 918kiss ตู้ ม้า playstar slot โปร โม ชั่ น 918kiss 918kissbet live22 รับ 100 35 xo slot slot casino online ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ำ เล่น ไพ่ เงิน จริง โค๊ ต เครดิต ฟรี ถอนเงิน slotxo 11 xoslotauto slotv9 slotxo 95 www777 slot เว็บ ตรง 918kiss สล็อต live22 เกม ไฮโล ได้ เงิน จริง fifa55crown slot24th xo golden hoyeah ไฮโล รีโมท slot 9 เว็บ 918kiss winner55 ฟรี เครดิต เล่น ไพ่ เก้า เก ออนไลน์ ได้ เงิน จริง 918kiss ฝาก ขั้น ต่ํา 50 บาท payslot call ufa365 v2 918kiss ท รู วอ ล เล็ ต slot auto เครดิต ฟรี 888 1xslot 918kiss v แป น ไฮโล joker โบนัส 100 auto slotxo com sign in เครดิต ฟรี ฝาก 20 slotking88 live22 ฝาก ถอน ไม่มี ขั้น ต่ํา fifa55 โดน จับ 918kiss ฝาก 200 ฟรี 200 slotxo56 sunbet slot easy slot fifa5555vip เครดิต ฟรี ไม่ ต้อง โอน ก่อน slot ฝาก 20 ได้ 100 โกง ไฮโล มือ ถือ slotcafe สล็อต ได้ เงิน จริง เข้า บัญชี จริง rg888 slot ufa365 ดี ไหม 918kiss lucky 918kiss me 2 slotxo ฝาก เงิน joker slot 444 mega joker slot slot joker 888 โจ ก เกอร์ 888 สมัคร fifa55u 918kiss โปร สมัคร ใหม่ ฟรี เครดิต slotxo456 slot ฟรี 100 black mamba slot 48 slot slot joker ฟรี เครดิต สมัคร vegus168 คา สิ โน ดั ม มี่ hack918kiss สมัคร joker689 918kissauto v4 kiss918 แจก อั่ ง เปา slotxo โปร วัน เกิด slotvip777 slotxo 66 555 slotxo เซียน รู เล็ ต เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ joker โบนัส 100 auto เครดิต ฟรี วัน เกิด ไม่มี เงื่อนไข slot demo joker สล็อต xo game r35 xo slot 3win8 casino free allslot999 live22 auto slotxo567 สล็อต xo77 918kiss starvegasgame ไฮโล ออนไลน์ มือ ถือ หน้า เกม slotxo joker456 เครดิต ฟรี slotxo ฝาก 20 jokerslot69 เครดิต ฟรี สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก rg888 slot เกม live22 joker888 เครดิต ฟรี poker ออนไลน์ 918kiss billion slot9999 slotxo 91 แอ พ เกม ไฮโล ได้ เงิน จริง lucky slotxo หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ คา สิ โน ป๊อก เด้ง ออนไลน์ ฟรี เครดิต เดือน เกิด สมัคร mm88bet slotxo blue 918kiss ฝาก 19 hacker slot45 riches777 เครดิต ฟรี ff55 ทาง เข้า เกม แบ ล็ ค แจ็ ค ฟรี เครดิต 918kiss 918kiss pantip slotxo auto ฟรี เครดิต ไม่ แชร์ ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 10 บาท slot 789 vip kiss me 918 xoslot69 sbobet ฟรี เครดิต ล่าสุด เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ fifa8888 login ไฮโล น้ำยาเคมี tiger slot 888 gxy888 เครดิต ฟรี safari gold megaways demo รู เล็ ต ออนไลน์ joker8899 เครดิต ฟรี slot1688 เครดิต ฟรี pussy888 slot ฝาก ถอน ไม่มี ขั้น ต่ํา slot35 ฝาก 1 บาท ฟรี 50 บาท slot auto888 เล่น ได้ 200 ถอน ได้ 100 slot online joker123 slotxo ฝาก 9 บาท slot s9 แอ พ fifa55 928kiss slotxo โอน เงิน 35xo slot เว็บ เล่น บา ค่า ร่า ufa800 slot ฟรี เครดิต 100 168bet ฟรี เครดิต slot ฝาก 10 รับ 100 สมัคร เครดิต ฟรี slot cat888 เว็บ fifa55 ดี ไหม xo ฝาก ถอน jackpotxo สมัคร happy slotxo88 ไฮโล ขั้น ต่ำ 1 บาท slot เครดิต ฟรี 50 เครดิต ฟรี 200 ไม่ ต้อง แชร์ best slot live22 ฝาก 1 บาท call ufa365 v2 918kisskingdom vip slotxo ฝาก 1 รับ 100 slot333 joker slot 96 slot899 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา รู เล็ ต กด เอง ไฮโล pantip เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด slotxo ฝาก 10 ได้ 100 สมัคร โจ๊ก เกอร์ 888 heng888 เครดิต ฟรี สมัคร สล็อต ออนไลน์ มือ ถือ 918kiss dafuq888 fifa555fc fifa55 idea สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 หมุน วง ล้อ joker123 เครดิต ฟรี แอด ไลน์ mega888 malaysia ฟุตบอล เสมือน จริง saba the kingslotxo ไฮโล ฟรี kiss918 ฟรี เครดิต สล็อต เอก โอ สล็อต xo 236 928kiss เครดิต sahacker joker123slotthai 918kiss free fifa55 สมัคร รับ เครดิต ฟรี joker ฝาก ถอน ไม่มี ขั้น ต่ำ king77 slot slotxo 22th winner55 เครดิต ฟรี ไฮโล เครดิต ฟรี rad slotxo เครดิต ฟรี 888 มาเฟีย 007 เครดิต ฟรี scr888 sn888 เครดิต ฟรี ถอน ไม่ จํา กัด เครดิต ฟรี ถอน ได้ ไม่ จํา กัด สล็อต xo คิง ค อง super joker slot ฝาก เงิน live22 คา สิ โน ออนไลน์ 918 ทาง เข้า vegus168 sure joker โปร โม ชั่ น โจ ก เกอร์ 888 สล็อต xo 899 เข้า ฟีฟ่า 55 เล่น slotxo sn888 kiss review slot ฝาก 10 เกม แบ ล็ ค แจ็ ค scr888 918kiss download สมัคร mega888 ฟรี เครดิต 11 ไฮโล คือ คา สิ โน ออนไลน์ สุด ฮิต 918kiss ฝาก ขั้น ต่ำ 100 royal 918kiss slotxo ฝาก ถอน วอ เลท joker hunter 888 mobile joker123 ฟรี ไม่ ต้อง ฝาก ก่อน slot top game ทาง เข้า fifawin365 slotxo ท รู วอ ล เล็ ต joker ฝาก ไม่มี ขั้น ต่ํา เว็บ บอล ฟีฟ่า 55 slot xo168 slot vip 99 slot mafia88 mega888 เครดิต ฟรี slot mafia928 คา สิ โน 918kiss ฟรี เครดิต 50 slotxo 666 joker โบนัส 100 auto แอ พ ไฮโล สล็อต xo ท รู วอ ล เล็ ต ไฮโล apk slotxo 48 slot games 66 slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา ทาง เข้า ff55 rmuaab555 slot999 xo slotxo qs 666slot slot 888 casino fifa55n ufa365 s b2y เครดิต ฟรี โกง ไฮโล ออนไลน์ bein sport 1 fifa55 slo xo slotxo168 slotxo joker 918 slot online slot 66 scr888th v5 fifa55 เครดิต ฟรี 200 grand918kiss หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ไฮโล หน้า ลาย เครดิต ฟรี ไม่ แชร์ ไม่ ฝาก 918kiss ถอน ไม่มี ขั้น ต่ํา เกม สล็อต 1234 slotxo ท รู วอ ล เล็ ต slot 10 ได้ 100 เกม ไฮโล y8 เครดิต ฟรี dada99thai รู เล็ ต ออนไลน์ มือ ถือ joker slot999 slot mafia191 สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก 2020 โปร โม ชั่ น fifa55 918 ฝาก ถอน ไม่มี ขั้น ต่ํา xo slot168 ace333 ฟรี เครดิต ไฮโล น้ำยาเคมี 918kiss kiss ถอนเงิน fifa55 ไม่ ได้ เว็บ บอล fifa55 slot joker99 slotxo เล่น น้ํา ยา ส กิ ด ไฮโล สล็อต xo ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด สมัคร ใหม่ ฟรี เครดิต 918kiss ฝาก 50 ฟรี 50 918kiss th ติดต่อ ufa365 5g slot joker หน้า เกม slotxo mafia ไม่ ต้อง แชร์ slot ฝาก 100 ฟรี 100 ace333 slot สล็อต xo123 918kissbig fifa55 โดน จับ สล็อต live22 mafia เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 918kiss 333 slot 69 เเ ป น ไฮโล fifa55club slotxo555 เกม แบ ล็ ค แจ็ ค ไพ่ โป ก เกอร์ 1 ไพ่ โบรกเกอร์ ออนไลน์ ไฮโล เงิน จริง ufa slot เครดิต ฟรี slot xe88 เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด 666slot ไฮโล 11 slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา gclub slot 1688 เครดิต ฟรี 1000 joker slot1234 slot ฝาก 100 ฟรี 100 xojackpot เว็บ บอล ฟีฟ่า 55 caesar88 slot 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก เกม สล็อต live22 ไฮโล ออนไลน์ มือ ถือ joker slot โปร โม ชั่ น joker xo sagame66 ดี ไหม เครดิต ฟรี ไม่ ต้อง แชร์ 918 เครดิต ฟรี mb slotxo อั่ ง เปา สล็อต xo เครดิต ไม่ ต้อง ฝาก ก่อน slot 918 ดา ฟา เบ ท เครดิต ฟรี slot machines by igg 918kiss แตก ง่าย 2020 2pj slot slotxo เทิ ร์ น 2 เท่า ด ค ร ดิ ต ฟรี สล็อต ออนไลน์ บน มือ ถือ 2mbet เครดิต ฟรี best slot ทาง เข้า 55 royal 918kiss 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก ฝาก 1 บาท ฟรี 99 บาท 918 slot โจ๊ก 888 ฝาก ถอน 918kiss โปร 100 918kiss 918kiss true wallet ไม่มี ขั้น ต่ํา 918kiss kiss slotxo credit ฝาก 10 รับ 100 slotxo โจ๊ก เกอร์ 888 sicbo คือ best88 สมัคร 9gspin เครดิต ฟรี ไฮโล ได้ เงิน จริง slotxo234 apk slotxo สล็อต ออนไลน์ บน มือ ถือ star slot777 slotxo ลอง เล่น xo918 เว็บ 918 best88 สมัคร สมัคร fifa5555 เสือ มังกร ออนไลน์ fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 2020 extra slot สล็อต ออนไลน์ บน มือ ถือ fifa69 ดี ไหม 1thslot magicious xo ฝาก ผ่าน วอ เลท member slotxo 918kiss 8richd เครดิต ฟรี เครดิต ฟรี ทํา เทิ ร์ น kingslots gclub เครดิต ฟรี ถอน ได้ 168 สล็อต xo สล็อต xo live22 918kiss พี่ เสือ slot โปร 10 บาท slotxo ฝาก ถอน ไม่มี ขั้น ต่ํา mario xo slot 2pigsslot joker 918kiss me 2 3win8 ฟรี เครดิต slot xo888 เครดิต ฟรี 10 slot7777 slotxo เล่น ใน เว็บ mafia เครดิต ฟรี 50 pgslot88 xo ฝาก ผ่าน วอ เลท ไฮโล เจ้ามือ fifa55 sport casino เข้า ฟีฟ่า 55 mafia555 slot ยู ส เท ส xo rmuaab555 slot live22 เครดิต ฟรี superslot999 xo เครดิต ฟรี ค่าย cq9 slot joker ไม่มี ขั้น ต่ํา joker โปร โม ชั่ น โปร โม ชั่ น slot slot joker 69 918kisskingdom เครดิต ฟรี kiss918 ไพ่ โบรกเกอร์ slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา bonus slotxo fifa555 สมัคร slotxo qs บอล เสมือน จริง คือ วิธี สมัคร databet88 joker slot mobile slotxo24 918kiss เว็บ ไหน ดี 918kiss4you slotxo 95 บ้าน บอล fifa55 win three card ไฮโล ส กิ ด 3 หน้า ราคา เว็บ 77up เว็บ live22 สมัคร ฟีฟ่า 55 happy slotxo xo918 slot fun888 ทาง เข้า ฟีฟ่า 8888 xovip slot star slot777 918kissth v3 918kiss เครดิต ฟรี 3000 007 slot fifa55 palace เครดิต ฟรี 20 บาท live slot สมัคร ฟรี เครดิต 2020 happyslot88v1 slot777 เครดิต ฟรี 918kiss เครดิต ฟรี 2020 nuovo casino slot24th xo เล่น เกม สล็อต xo วิธี สมัคร databet88 winner55 เครดิต ฟรี slot6996 ฝาก วอ เลต ไม่มี ขั้น ต่ํา 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก situs slot joker123 โจ ก เกอร์ 888 ติดต่อ ufa365 ไท เกอร์ คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ เล่น ฟรี ถอน ได้ 918kiss 1234 คา สิ โน ออนไลน์ สุด ฮิต ดา ฟา เบ ท เครดิต ฟรี mafia55 เครดิต ฟรี 50 ไพ่ แบ ล็ ค แจ็ ค slotxo111 เครดิต ฟรี 1000 918kiss69 918kiss download ios ล่าสุด วิธี เล่น databet88 เข้า fifa55 สล็อต xo 99 live222th slotxo mm88bet ฝาก เงิน 918kiss bettopfive 918kiss แจก อั่ ง เปา bbet99 เครดิต ฟรี joker ไม่มี ขั้น ต่ํา สมัคร fifa888 xo thai888 แบ ล็ ค แจ็ ค ไพ่ 918kiss อัน ไหน ดี kiss918 th xo slot007 บอล เสมือน จริง fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก สมัคร fifa9999 918tiger2 918kiss ฟรี 1000 สล็อต xo หน้า เว็บ เครดิต ฟรี 500 ล่าสุด 2020 slot 35 kiss slot 918kiss คืน ยอด เสีย xoslotauto slot888vip slot2you บ้าน บอล fifa55 fifa55 เข้า ไม่ ได้ เกมส์ ไฮโล เหมือน จริง เกมส์ สล็อต slotgame666 slot555 joker ts911 games live22 ฝาก 1 บาท 918kiss ถอน ไม่มี ขั้น ต่ํา 918kiss ฝาก ขั้น ต่ำ 100 slotxo v1 มาเฟีย เครดิต ฟรี ไม่ ต้อง แชร์ joker slot 678 slot999vip ฟีฟ่า 777 สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ 88 slotxo สล็อต cq9 gaming 918thailand สล็อต roma 918kiss เว็บ ตรง slotxo โจ๊ก เกอร์ 918kiss android android slot ฝาก 10 ได้ 100 slotxo ฝาก 19 บาท รับ 100 สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ slot hall ขอรับ เครดิต ฟรี ครับ gaming world slotxo สมัคร เครดิต ฟรี 2020 slotjoker888 joker123 ฝาก ถอน ไม่มี ขั้น ต่ํา โค๊ ต เครดิต ฟรี เติม เงิน slotxo เครดิต ฟรี 20 บาท 69slot ค ริ ส 918
        slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019| ส ปี ด บา คา ร่า| ufabet global| ทาง เข้า ufabet356| slotxo joker เครดิต ฟรี| ufabet 800| slotxo download apk| prompay88 เครดิต ฟรี| ufabet vip| slotxo สมาชิก ใหม่| slotxo 56| บอล น่า แทง วัน นี้| slot1688 online| บา คา ร่า sa gaming 66| ี ufa678| แทง บอล พรีเมียร์ ลีก| ufabet 1668| เว ป ยู ฟ่า 191| ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก| slotxo ios download| โปร สมาชิก ใหม่ 100 slotxo| แทง บอล ออนไลน์ 789| ufabet99999| ทาง เข้า joker xo| slot ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน| ufabet 123| เว็บ เดิมพัน กีฬา| สมัคร สล็อต ออ โต้| ufabet world| ยุ ฟา เบส 888| angel88 เครดิต ฟรี| ฝาก 50 รับ 150 ไม่ ต้อง ทํา เทิ ร์ น ล่าสุด| ทาง เข้า ufabet777| g2g เครดิต ฟรี| ยู ฟ่า เบ ท 99| fifa55b| แทง ฟรี ไม่ ต้อง ฝาก| slot ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| ๊ ufa168| ufabet 800| บอล fifa55| ufabet28| ลอง เล่น sa gaming| sa gaming 928| แทง ฟุตบอล ออนไลน์| แทง บอล 88| ทาง เข้า ฟีฟ่า 888| fifa555 ฝาก ขั้น ต่ำ 10 บาท| bslot88 เครดิต ฟรี| slot ฝาก 100 รับ 100| สมัคร ufa88| fifa55r| 55fifabet| ฝาก เงิน ufa888| slotxo apk download| แทง ฟรี ไม่ ต้อง ฝาก| เครดิต ฟรี บอล| มาเฟีย เครดิต ฟรี ล่าสุด| ufabet198| ufabet ค่า คอม| slotxo ฝาก 1 บาท ได้ 100 วอ เลท| ทาง เข้า agent ufa| ufabet ไม่ ผ่าน เอ เย่ น| ufabet default smart| เครดิต ฟรี ไม่ ต้อง ฝาก 200| สล็อต ออนไลน์ ios|