<form id="phE7"></form>

      <var id="phE7"><code id="phE7"><meter id="phE7"></meter></code></var><var id="phE7"></var>
    1. <nav id="phE7"></nav>

        <form id="phE7"></form>
            <sub id="phE7"><listing id="phE7"></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
             
            m928bet ufa678 เครดิต ฟรี ถอนเงิน ufabet1688 ทาง เข้า slotxo joker123 ยิง ปลา ฝาก 100 ฟรี 300 สมัคร เว็บ บอล ufabet ไลน์ แทง บอล แทง บอล รอง ทาง เข้า fifa55 ufabet เว็บ slotxo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 บา คา ร่า 50000 slotxo ฝาก 10 บาท ฟรี 100 บาท slotxo ฝาก 15 บาท รับ 100 เว็บ ufabet168 เกม บา คา ร่า คือ ทาง เข้า ufa800 ufabet 881 ส ปี ด บา คา ร่า s16 เครดิต ฟรี ง่ายๆ บา คา ร่า ทุน ฟรี สมัคร ยู ฟ่า 365 live22 slot download ufa55bet สมัคร เล่น สล็อต xo mm88bet sport casino 777 เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ บา คา ร่า ราคา ถูก ทาง เข้า slotxo joker123 live22 slot download mega888 แจก เครดิต ฟรี xo slot ทาง เข้า สมัคร ยู ฟ่า ufabet368 ufa678 ี ufabet 356 ufabet 787 sbobet888888 ฝาก 50 ฟรี 100 slotxo เว็บ ufa800 โปร ufa slotxo ฝาก ไม่มี ขั้น ต่ํา แจก จริง ไม่ ต้อง ฝาก เครดิต ฟรี ยู ฟ่า slot ฝาก 1 บาท รับ 99 วอ เลท บอ ท บา คา ร่า มือ ถือ เซ๊ ก ซี่ บา ufa9999999 ufabet 656 เว็บ พนัน บอล แจก เครดิต ฟรี 30 line fifa5555 แทง สด สด mm88bet vip ufa888 auto บา คา ร่า เกม ยิง ปลา ทาง เข้า slotauto888 บอล น่า แทง วัน นี้ ufabet ใหม่ แทง บอล บัตร ท รู บา คา ร่า sa gaming vip slotxo mobile ios ฝาก ขั้น ต่ํา 20 บาท ยู ฟา 191 ลงทุน บา คา ร่า แจก เครดิต ฟรี จริง ยู ฟ่า เบ ท 666 ยู ฟ่า สมัคร slotxo apk download slotxo 28 slotxo ดาวน์โหลด ufabet369 vip ufabet99th เว ป ยู ฟ้า fifa6886 slot แจก ฟรี เครดิต ufabet 20 รับ 100 แทง บอล ออนไลน์ fifa555 ทาง เข้า ufabet191 ฝาก 100 รับ 100 918kiss fifa55gol ฟรี เครดิต บอล joker999 เครดิต ฟรี sa gaming slot game uf9ba online ufa777 สมัคร web fifa555 ทาง เข้า 77up เครดิต ฟรี ไม่ ต้อง ฝาก ต้อง แชร์ เครดิต ฟรี ล่าสุด 2019 ดาว โหลด เกม xo slot เครดิต ฟรี 2019 ทาง เข้า xo slot เว็บ ยู ฟ่า 88 ฝาก ขั้น ต่ํา 10 แอ พ แทง บอล เครดิต ฟรี ไม่ ฝาก ufa800 แจก เครดิต ฟรี แทง บอล บัตร ท รู sa games 66 ufa365 มือ ถือ pay69 slot เครดิต ฟรี 123bet เครดิต ฟรี mm88macao mafia111 เครดิต ฟรี ไม่ ต้อง ฝาก รับ เครดิต ฟรี เว ป slotxo ufa988bet sa gaming 199 รับ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ี ufa888 sbobet89 ทาง เข้า slotxo88 โหลด เกมส์ สล็อต ออนไลน์ xo download ฟรี เครดิต ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก ทาง เข้า joker xo live22 แจก เครดิต ฟรี 2020 puss888 เครดิต ฟรี แจก ฟรี ไม่ ต้อง ฝาก sbobetclub168 slotxo ฝาก ไม่มี ขั้น ต่ํา ทาง เข้า ufabet888 ufabet888 ดี ไหม u ฟ่า 888 club388 เครดิต ฟรี แจก เครดิต ฟรี ถอน ได้ ไม่ ต้อง ฝาก แทง บอล ฟรี 300 ufabet แจก เครดิต ฟรี 24sbobet online line ufabet mafia เครดิต ฟรี ใหม่ ล่าสุด ufa800 แจก เครดิต ฟรี ดาวน์โหลด เกม สล็อต live22 mafia88 เครดิต ฟรี ไม่ ต้อง ฝาก ยู ฟ่า เครดิต ฟรี เล่น ยู ฟ่า 191 sa gaming ฟรี เครดิต ufa888 auto live22 เครดิต ฟรี 100 slotxo ฝาก ดาว โหลด เกมส์ live22 sa gaming group ufa988bet เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน sa gaming เข้า ไม่ ได้ สมาชิก ใหม่ ฟรี เครดิต 2020 ufaclub8 ยู ฟ่า เบ ท เครดิต ฟรี ufabet889 st911 บา คา ร่า ufabet037 ufabet info xo slot เครดิต ฟรี ufathai 6 sa gaming คา สิ โน ยิง ปลา ฟรี ได้ เงิน จริง ค่า สิ โน ออนไลน์ ufa69 เว ป ยู ฟ่า ฟรี เครดิต ยิง ปลา web ufabet main ราคา บอล ที่ น่า เล่น 123fazsv3 ufabet แทง บอล บา คา ร่า live22 ฝาก 100 รับ 100 ufabet ฝาก ผ่าน วอ เลท บา คา ร่า 11111 โหลด แอ พ สล็อต xo เว ป แทง บอล ที่ ดี ที่สุด ี ufa1688 บา ร่า คา ทาง เข้า fifa55 เครดิต ฟรี ไม่ ต้อง โอน sa gaming ts911 psthai888 เครดิต ฟรี ufabet เอ เย่ น ยู ฟ่า เบ ท 191 ufa369vip เครดิต ฟรี สมาชิก ใหม่ ไม่ ต้อง ฝาก ยู ฟ่า 888 ufa79g ufabet168 slotxo download apk ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก slot ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สมัคร สล็อต แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 เซ ค ซี่ บา คา ร่า ยู ฟ่า เบ ท 8 อยาก ได้ เครดิต ฟรี slotxo mobile ios เข้า ยู ฟ่า เบ ท ี ufathai ufawb998 ufabet555 แทง บอล ออนไลน์ 24 ชม ufabet 2019 ufabet mobile ligaz888 line slotxo 28 fifa55god ทาง เข้า ufabet8 สมัคร slot555 sa gaming 5 วิ fifa55th fifa55 แอ พ สล็อต ios แจก เครดิต ล่าสุด ฟรี เครดิต ยิง ปลา ufabet955 แอ พ บา คา ร่า pantip rg888 บา คา ร่า ufabet 115 บา คา ร่า 63 ufa7777 เครดิต ฟรี ไม่ ต้อง ฝาก slot ufabet แม่ ufabet955 สมัคร แทง บอล sa เกม มิ่ง vip ufabet ที่ คน เล่น เยอะ ที่สุด slotxoth download mt88casino sa แกม มิ ง เซ๊ ก ซี่ บา ดาวน์โหลด xo สล็อต ทาง ยู ฟ่า slotxo รับ เครดิต ฟรี xo เครดิต ฟรี สมัคร เว็บ ufa เครดิต ฟรี สมาชิก ใหม่ ไม่ ต้อง ฝาก แทง บอล ผ่าน เว็บ ยู ฟ่า เบ ท 168 vip สมาชิก ใหม่ ฟรี เครดิต ล่าสุด sa gaing บา คา ร่า sa gaming vip ufabet แจก เครดิต ฟรี 100 โบนัส วัน เกิด ไม่ ต้อง ฝาก เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน mm88wim fifa555 ฝาก ขั้น ต่ํา 10 บาท 1688 ufa สมัคร slotxo88 ติด ตั้ง xo เว็บ ยู ฟ่า 1688 ถอนเงิน ufa365 ufa147 มือ ถือ ดาว โหลด slot slotxo ฟรี ฟรี เครดิต ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก ufabet 77 sa casino vip ufabet 44 บา คา ร่า แอ พ เว ป ufa365 ufatexas89 888 ufa โปร ufabet slot online ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2020 บา คา ร่า 50000 ไลน์ ufabet888 slotxo โปร ดีๆ สมัคร betufa เข้า ยู ฟ่า เบ ท slotxo เข้า เกม ufabet v1 แทง บอล 10 บาท ufa55bet คูปอง sa gaming ufabet 189 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2020 918kiss แจก ฟรี เครดิต ลิ้ ง ค์ โหลด เกมส์ https www srd168th com slotxo เครดิต ฟรี ถอน ได้ เลย ตั้ง slotxo สล็อต xo ดาวน์โหลด slotxo ufa777 ทาง เข้า fifa55k โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก คูปอง sa gaming เช็ ก ชี่ บา คา ร่า 1688 แจก โบนัส ฟรี ไม่ ต้อง ฝาก ufabet855 โหลด slotxo ios ไม่ ได้ บา คา ร่า ประกันภัย ufa9999s ufa2bet vip sa gaming ufa9bet download slotxo เซ็ ค ซี่ บา คารา ฟี ฟ้า 55 sa gaming 1111 ี ufa9999 ยู ฟ่า เบ ทด อ ท คอม ufabet 879 sa77 บา คา ร่า sa บา คา ร่า fifa55 ฟรี เครดิต 100 บา คา ร่า pantip 2563 databet88 8 เปิดโปง บา คา ร่า แทง บอล sbobet888 ufabet88 ฟีฟ่า 55 123fazsv3 ี ufa9999 copa69com ufabet7 slot ฝาก 5 บาท ฟรี 99 บาท ทาง เข้า ufa369 เครดิต ฟรี slotxo โปร แทง บอล sa gaming 2020 ทาง เข้า ufabet แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th แซ ก ซี่ บา คา ร่า ลิ้ ง โหลด slotxo มา คา ร่า 168 ทาง เข้า เอ เย่ น ufabet เล่น บอล ออนไลน์ pantip bslot88 เครดิต ฟรี เข้า เล่น ufa fifa55u เครดิต ฟรี สมัคร สล็อต gclubsport888 เว ป ยู ฟ่า ufa auto 168 ufabet star ufabet เข้า เล่น เครดิต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด ufa88d ทาง เข้า แทง บา คา ร่า ที่ ufabet s ทาง เข้า slotxo บีบ บา คา ร่า vegus168 usa แอ พ slotxo ufabet แจก เครดิต ฟรี 2020 ยิง ปลา ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก สล็อต xo โบนัส 100 ดาวน์โหลด joker xo slotxo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 รับ เครดิต ฟรี 100 ไม่ ต้อง ฝาก เว็บไซต์ แจก เครดิต ฟรี mm88macao โหลด slotxo เว็บ แทง บอล ufabet slot ฝาก 1 บาท ฟรี 99 บาท 2020 ล่าสุด slotxo โบนัส บา คา ร่า จำลอง ยู ฟ่า เครดิต ฟรี sa gaming 168 เข้า สู่ ระบบ เข้า ufa slotxo ฝาก 1 บาท ฟรี 30 บาท ยู ฟ้า 800 ทาง เข้า เอ เย่ น ufabet sa gaming 07 สมัคร slotxo ฝาก ไม่มี ขั้น ต่ํา slot free 888 slotxo ฝาก 9 บาท รับ 100 ufabet agent login วิธี โหลด สล็อต ufabet1688 ทาง เข้า สมาชิก ใหม่ แจก ฟรี arma935 baccarat ดาวน์โหลด slotxo 2020 slot online ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2020 ทาง เข้า เล่น slotxo ยิง ปลา ฝาก 100 ฟรี 300 slotxo ios โหลด ไม่ ได้ ทาง เข้า ufa007 sa gaming ฝาก เงิน fifa55b เครดิต ฟรี ได้ จริงๆ เว็บ บอล ufabet ufa365 สล็อต ufabet 128 slot free เครดิต ยู ฟ้า 365 แทง บอล ให้ รวย แจก จริง ไม่ ต้อง ฝาก ดาว โหลด เกม xo slot ufabet cb8 sa gaming vip demo ufabet ที่ ดี ที่สุด ufabet ฝาก ขั้น ต่ํา vegus168 usa ถอนเงิน ufa365 ufabet955 ufa800 แจก ฟรี 100 ufabet777 แทง บอล 10 บาท ufa9999s วิธี ติด ตั้ง slotxo sa168 game แอ ป slotxo เว็บไซต์ แทง บอล ออนไลน์ ufabet pantip ufabet19 psthai888 เครดิต ฟรี demo sa gaming แจก ฟรี 100 ไม่ ต้อง ฝาก ฝาก 100 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น sboibc888 pantip เว็บไซต์ บอล ออนไลน์ live777th slot online เว็บ ufabet ดี ไหม fifa55gen แทง บอล ออนไลน์ 789 โปร ฟรี เครดิต ufa888s ี agent ufabet ufagold888 ufa345 ทาง เข้า ทาง เข้า ufabet มือ ถือ ยู ฟ่า เบ ท vip ufabet1688 สมัคร สมาชิก ufabet 100 sun34444 slot แจก เงิน ฟรี ufa ufabet เซ๊ ก ซี่ บา คา ร่า 66 slot ออนไลน์ ฟรี บา คา ร่า เช็ ก ชี แจก จริง ไม่ ต้อง ฝาก slotxo เว็บ ใหม่ ยู ฟ่า 88888 ยู ฟ่า เบ ท ออนไลน์ ufa แทง บอล สล็อต โปร ufa191 โกง ufabet 888888 ufabet demo ufa เว็บ ตรง slotxo ฝาก 88 รับ 300 slot ไม่ ต้อง แชร์ ufa168 สมัคร sa ฝาก 50 ได้ 150 เล่น บอล ให้ ได้ เงิน ทุก วัน รับ เครดิต ฟรี ง่ายๆ วิธี โหลด สล็อต ยู ฟ่ ส เบ ท slot007 ดาวน์โหลด sa gaming 168 th ufabet แจก เครดิต ฟรี 2020 ป๊อก เด้ง เงิน จริง ฟรี เครดิต สมัคร ufa sa gaming 199 slotxo ฝาก 10 รับ 100 วอ เลท slot free เครดิต ufa365 ฝาก หวย ufa ufalion 168 โปร โม ชั่ น ufabet เว็บ ยู ฟ่า ufabet ทาง เข้า ล่าสุด ยู ฟ่า เว็บ โปร บา คา ร่า ฟรี ยู ฟ่า เว็บ เล่น บา คา ร่า sa บา คา ร่า 345 เล่น บา คา ร่า sa เบ ท ยู ฟ่า m928bet โหลด joker slot ufa777 ทาง เข้า เซ็ ค ซี่ บา คา ล่า โปร โม ชั่ น บอล สล็อต xo ฝาก 1 บาท sa gaming casino ยู ฟา 88 ดาวน์โหลด สล็อต xo 888 ufa168 ดี ไหม รับ เครดิต ฟรี ไม่ ต้อง ฝาก web168v3 ี ufa188 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 sa88 gaming เครดิต ฟรี ทันที ufabet xxx แจก เครดิต ฟรี สมาชิก เก่า fifa55 หวย ufawb998v3 ufabet global ไม่ ต้อง ฝาก ถอน ได้ 2019 ลอง เล่น sa gaming copa88 เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ ufabet ท รู วอ เลท โปร โม ชั่ น เว็บ พนัน บอล สมัคร เว็บ ufa เครดิต ฟรี สมาชิก ใหม่ ไม่ ต้อง ฝาก ufabet1688 main บา คา ร่า sa สมัคร สมาชิก แทง บอล ออนไลน์ lsm99 บา คา ร่า slot free credit ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ sa gaming 1688 เข้า สู่ ระบบ ufabet ถอนเงิน ยิง ปลา แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 sa gaming ฝาก 50 รับ 150 cq9 slot ฟรี เครดิต ufabet ฟรี เครดิต ทาง เข้า ufabet99 ทาง slotxo แอ พ บา คา ร่า pantip แจก เครดิต ฟรี 500 ไม่ ต้อง ฝาก 2020 ล่าสุด xo เครดิต ฟรี เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 เครดิต ฟรี ได้ จริง 2020 ufabet 1668 ป๊อก เด้ง เงิน จริง ฟรี เครดิต แทง บอล true wallet download slotxo android sa gaming โบนัส 100 ufabet987 sa gaming ฟรี เครดิต sbothai8 เล่น บา คา ร่า ออนไลน์ ฟรี sa gaming ufabet ฝาก 100 ฟรี 100 แทง บอล ผ่าน เน็ต อยาก ได้ เครดิต ฟรี แทง บอล ขั้น ต่ำ 20 slotxo download android ufabet089 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ รับ เครดิต ฟรี fifa55 ทาง เข้า wwwvegus168 sbobetstep4 ufa55bet sbothai8 slotxo 56 ufabet1688 default smart mafia slot เครดิต ฟรี 2020 ufa147 sport ดาว โหลด เกม xo slot โปร โม ชั่ น สล็อต ออนไลน์ fifa69 vegus168 live สมัคร slotxo111 แทง บอล m8bet ฟีฟ่า 555 mega888 ฟรี เครดิต บา คา ร่า sa 66 บา คา ร่า c03 ufabet1688 main ufa1688 auto fifa555 ฝาก ขั้น ต่ำ 10 บาท ลิ้ ง ค์ โหลด เกมส์ https www srd168th com slotxo ufabet ใหม่ แทง บอล ออนไลน์ เครดิต ฟรี ufa68bet fa181818 แฉ บา คา ร่า slotxo รับ โปร 100 sa gaming 168vip เข้า สู่ ระบบ ยิง ปลา แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ฟรี เครดิต 200 ไม่ ต้อง ฝาก uf9ba online บา คา ร่า วัว ฟรี เครดิต บอล slot online เครดิต ฟรี โหลด แอ พ สล็อต xo สมัคร บอล ออนไลน์ ufabet ufabet8 ufa เว็บ ตรง เว ป แทง บอล ที่ ดี ที่สุด ufabet pantip fifa55sup รับ เครดิต ฟรี ง่ายๆ สล็อต xo ทาง เข้า แทง บอล ออนไลน์ i99win เสีย บา คา ร่า 10000 ufabet ทาง เข้า ล่าสุด rggame888 เอ เย่ น ยู ฟ่า ยูสเซอร์ ฟรี ยู ฟ่า เบ ท 1 sbobet285 มาเฟีย แจก เครดิต ฟรี ล่าสุด แทง บอล ออนไลน์ 24 ชม fifa55bet เครดิต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 www ufa777 con vegus168 usa ufabet997 เว ป vip2541 ยู ฟ้า 365 tbsbet 2562 slot1688 online สล็อต โปร slot ฟรี เครดิต 2020 แจก เครดิต ฟรี 2000 ไม่ ต้อง ฝาก 2019 สล็อต xo ฟรี เครดิต ufathai 88 สล็อต xo 24 สล็อต โปร ufabet456 บอล ออนไลน์ 55 ยู ฟ่า 168vip ฟรี เครดิต ถอน ได้ 918kiss แจก ฟรี เครดิต sa gaming th เสีย บา คา ร่า 10000 บา คา ร่า ufa88s ทาง เข้า ufa69 ฝาก 99 รับ 300 วอ เลท สมัคร slotxo รับ เครดิต ฟรี สุต บา คารา ยู ฟ้า 800 ยิง ปลา ออนไลน์ ฟรี เครดิต ดาวน์โหลด joker xo sa gaming slot สมาชิก ใหม่ แจก ฟรี ทาง เข้า ufabet 89 แทง บอล แม่น ๆ ี ufa678 ufabet mobile แจก เครดิต ฟรี 2019 ไม่ ต้อง แชร์ sa gaming 928 ufa เว็บ ตรง ี ufa168 ติดต่อ สล็อต xo ufabet881 สล็อต xo ออนไลน์ ี ufa66 ufabet ที่ ดี ที่สุด แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2562 โบนัส 100 บาท สำหรับ สมาชิก ใหม่ ufa800 สล็อต บอล ออนไลน์ 55 สมัคร พนัน บอล ufabet ฝาก 100 สมัคร งาน ufabet ทาง เข้า เล่น https slotauto888 com ดาวน์โหลด slotxo android sa gaming hacker ยู ฟ่า เบ ท 123 แซ ก ซี้ บา คารา 1688 แจก โบนัส ฟรี แจก โบนัส ฟรี เบอร์ ติดต่อ slotxo ดาวน์โหลด มือ ถือ http www happyslot88 com download เว็บไซต์ แทง บอล ออนไลน์ โหลด สล็อต 123 แทง บอล 24 ฝาก 100 รับ 200 xo ufabet 8888 เว ป บอล ดีๆ heng999 ฟรี เครดิต mega888 ฟรี เครดิต slotxo 49 ยู ฟ่า เบ ท 982 slot ฝาก ufapro888 pantip เว็บไซต์ บอล เครดิต ฟรี รับ ทันที ufabet 800 เครดิต ฟรี ได้ จริง 2020 ufabet agent ทาง เข้า เข้า ยู ฟ่า betufa ถอนเงิน vegus168 ไอ ดี ไลน์ sath88 slot mafia แจก เครดิต ฟรี 50 บาท ทาง เข้า ufabet999 สมัคร เล่น ufabet สมัคร ufabet88 แจก จริง เครดิต ฟรี winner55 โปร โม ชั่ น slotxo ฟรี 100 เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก ล่าสุด ยิง ปลา ฟรี 150 สมัคร slotxo ไลน์ ufa slot แจก เครดิต ฟรี 2020 แทง บอล ออนไลน์ ฟรี 300 mafia111 เครดิต ฟรี สล็อต xo ios สมัคร slot555 บอล เดี่ยว เริ่ม ขั้น ต่ำ 1 บาท ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ รับ เครดิต ฟรี โปร โม ชั่ น copa69 ufabet cash หวย ufabet ufa345 24hr fifa55u เครดิต ฟรี แทง บอล ออนไลน์ fifa mafia เครดิต ฟรี ล่าสุด เล่น slotxo ผ่าน หน้า เว็บ ufabet711 เครดิต ฟรี มา ใหม่ เปิด ยูสเซอร์ ฟรี เครดิต 2020 slotxo ios โหลด ไม่ ได้ ufabet บริษัท แม่ ี ufa1688 ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ยู ฟ่า เบ ท 800 เครดิต ฟรี ไม่ ต้อง ทำ เทิ ร์ น sa gaming 168 vip เข้า สู่ ระบบ ทาง เข้า xo slot เบ ท 88 เว็บ ตรง ยู ฟ่า slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ราคา แทง บอล ufabet368 ติด ตั้ง xo แทง บอล เดี่ยว login ufabet sa gaming 168 เข้า สู่ ระบบ ufabet888888 vegus168 sure ufabet 128 slot ฟรี เครดิต 2019 ufabet เข้า ฟรี 50 เครดิต สำหรับ สมาชิก ใหม่ ติด ตั้ง slotxo แทง บอล ยูโร ี ufa777 ufabet แจก โบนัส ฟรี ไม่ ต้อง ฝาก ติด ตั้ง xo เครดิต ฟรี ถอน ได้ ufabet ฝาก 50 รับ 100 slot สมาชิก ใหม่ รับ เครดิต ฟรี โหลด สล็อต 123 แจก ฟรี เครดิต mm88vivo บา คา ร่า วัว วัว sa slotxo pc download xo slot ฟรี เครดิต เกม สล็อต ออนไลน์ slotxo slotxo ฝาก 10 รับ 100 วอ เลท สมัคร slotxo ฝาก วอ ล เลท ufabet 8888 slotxo joker โปร 100 ทาง เข้า slotxo88 บา คา ร่า เปิด กี่ โมง slot แจก เครดิต ฟรี 300 918kiss แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2020 บรา ค่า ร่า ฟี ฟ้า 55 ufa เว็บ ตรง ufabet kik betufa ถอนเงิน ufa678 เข้า ไม่ ได้ ทาง เข้า ufa24 ufabet ดี ไหม pantip download slotxo android ยิง ปลา sa gaming ufa356 ฝาก fifa55mini คา สิ โน ออนไลน์ sa gaming xo slot ฟรี เครดิต เซ ค ซี่ บา คา ร่า rt slot เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ล่าสุด fifa55sup next88 รหัส ฟรี เครดิต databet88bet g2g เครดิต ฟรี sagaming99 sa gaming 5 วิ mmm88bet แจก เครดิต ฟรี สมาชิก เก่า slotxo apk download แจก ยูสเซอร์ ฟรี พร้อม เครดิต แทง บอล ออนไลน์ ไม่มี ขั้น ต่ํา slot สมาชิก ใหม่ รับ เครดิต ฟรี ทาง เข้า ufabet168vip web แทง บอล betufa แอ พ บา คา ร่า pantip ufabet 8k รับ เครดิต ฟรี 300 ไม่ ต้อง ฝาก ufa24h 5 ทาง เข้า slotxo joker 2019 แจก 100 ไม่ ต้อง ฝาก slot เงิน ฟรี ๊ ufa168 สล็อต xo ios fifa55gen ufabet88 ทาง เข้า ฟีฟ่า ทาง เข้า เว็บ ufa ดาวน์โหลด สล็อต ufabet kik slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด slotxo ฝาก 15 บาท ufa ufabet เปิด ยูสเซอร์ ฟรี ไม่ ต้อง ฝาก ยู ฟ่า เบ ท 24 แจก เครดิต ฟรี ปี ใหม่ ี ufa356 โปร โม ชั่ น บอล ออนไลน์ ufabet28 แจก เครดิต ล่าสุด slot credit free 48 pg slot เครดิต ฟรี ล่าสุด วัน นี้ fifa7777 ทาง เข้า บา ค่า ร่า เครดิต ฟรี ทาง เข้า ufabet 9999 ufabet th vip ติดต่อ สล็อต xo betufa agreement 8 ufabet 20 รับ 100 แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th ufabet cb8 ufabet login เครดิต ฟรี 10 รับ 100 ufabet711 โปร ฟรี เครดิต ufabet v4 บา คา ร่า เช็ ก ชี่ บา คา ร่า ก๊อ ต ทาง เข้า slotxo199 ยู ฟ่า แจก เครดิต ฟรี แทง ออนไลน์ sa gaming 5g slot roma เครดิต ฟรี ฝาก ถอน ufabet168 สมัคร slotxo111 casino sa gaming sa sa gaming ทาง เข้า ี ufabet ufabet6666 เครดิต ฟรี 50 ถอน ได้ 300 ufabet711 sa เกม มิ่ง vip ยู ฟ่า เบ ท 369 live22 slot download เล่น บา คา ร่า sa โหลด เกม slotxo แทง บอล หวย ออนไลน์ cq9 slot ฟรี เครดิต เครดิต แทง บอล ฟรี ไม่ ต้อง ฝาก สมาชิก ใหม่ ฟรี เครดิต ไม่ ต้อง ฝาก 2020 fifa555 ฝาก 50 ฟรี 100 ufabet369 vip ufabet cnv3 joker689 เครดิต ฟรี สมัคร สล็อต live22 โหลด สล็อต xo ios www databet88 com แจก ฟรี เครดิต ไม่ ต้อง ฝาก 2020 slot โบนัส ฟรี สล็อต xo โหลด ufabetsup เข้า เล่น ufa แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก sa gaming 168vip เข้า สู่ ระบบ สล็อต xo โหลด ฝาก ufabet แจก เครดิต ufabet 369 sa gaming ฝาก เงิน slotxo ฝาก 50 รับ 200 เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ แทง บอล แบบ 1x2 ufabet24h เครดิต ฟรี 100 ล่าสุด slot ฝาก 1 บาท รับ 50 ดาวน์โหลด สล็อต ออนไลน์ มือ ถือ ufabet6688 ยืนยัน เบอร์ รับ เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ufabet 1988 ติดต่อ live22 sbobet365th sa gaming เข้า เล่น sa ฝาก 50 ได้ 150 ufa356 ทาง เข้า ufa ที่ ดี ที่สุด download slotxo apk 77up บอล เครดิต ฟรี ไม่ ต้อง ฝาก ล่าสุด เว็บ ufa888 ยู ฟ่า เบ ท วิน fifa55mini ทาง เข้า ฟีฟ่า ยู ฟ่า 88888 slotxo ฝาก ครั้ง แรก 100 ufabet728 2pigs slot 918kiss sa gaming 5g winwin893 pok9 เครดิต ฟรี เว็บ ยู ฟ้า slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ไม่ ต้อง แชร์ บา คา ร่า วัว วัว sa fifa55 เครดิต ฟรี สมาชิก เก่า บอ ท บา คา ร่า ฟรี คูปอง sa gaming เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ี ufabet ทาง เข้า ufabet2499 sa gaming เครดิต ฟรี 300 slotxo แอ พ มือ ถือ ดาวน์โหลด เดี๋ยวนี้ slotxo ฝาก ครั้ง แรก 100 เอเย่นต์ ufabet สล็อต xo สมัคร sa gaming ปิด ปรับปรุง ถึง กี่ โมง โปร สล็อต joker เว ป ยู ฟ่า sa gaming 77 ufathai mafia88 เครดิต ฟรี 50 ถอนเงิน ufabet1688 โหลด สล็อต 22 ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี ถอน ง่าย 2020 สล็อต xo ออ โต้ เว็บ ยู ฟ่า 191 ufabet vip betufa 1688 ufabet365s ทาง เข้า slotxo 899 ฟ่า เบ ท แทง บอล คืน นี้ เว็บ ufa356 ยู ฟ่า เบ ท วิน ี ufa24 sa gaming 5 วิ 885ufabet เกม มัก คา ร่า sa แจก เครดิต ฟรี ไม่ ต้อง ฝาก ล่าสุด แทง บอล ออนไลน์ ฟรี 300 บา คา ร่า ฟรี 2020 โหลด เกม สล็อต slotxo live22 ufabet บา คา ร่า ออนไลน์ แจก เครดิต ฟรี ถอน ได้ บอล น่า แทง วัน นี้ ufabet kik โปร โม ชั่ น ฟุตบอล ufabet services เครดิต ฟรี เดือน นี้ ufa88v3 เปิด ยูสเซอร์ ฟรี เครดิต ไม่ ต้อง ฝาก ufa800 ดี ไหม pantip ufabet อัน ไหน ดี ค่า บา ล่า สล็อต xo ios ufabet369 vip เปิด ยูสเซอร์ รับ เครดิต ฟรี เล่น ufa ufa888 เข้า เล่น ufabet เว็บไซต์ ยู ฟ่า ufabet 1168 ทาง เข้า gaming 168 fifa69 pantip sa gaming เครดิต ฟรี 100 vegus168 vegus69 เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน sa gaming 79 all บา คา ร่า เครดิต ฟรี slot 918kiss เครดิต ฟรี 30 slot mg เครดิต ฟรี slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ไม่ ต้อง แชร์ เครดิต บอล ฟรี ufabet911 slotxo bonus 100 ts911 pantip ี ufa เข้า เล่น sa gaming slotxo ฝาก 1 บาท ได้ 100 วอ เลท sa gaming คือ แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th ฝาก ขั้น ต่ํา 10 โบนัส ฟรี ไม่ ต้อง ฝาก slot ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน เข้า เว็บ ยู ฟ่า เบ ท บา คา ร่า ค่า คอม สูง ufarich88 sa gaming 77 แทง บอล true wallet ฝาก 50 รับ 200 ไม่ ต้อง ทํา เทิ ร์ น มังกร บา คา ร่า r1 ufabet แจก เครดิต ฟรี 2019 ไม่ ต้อง แชร์ slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก สมาชิก ใหม่ ฟรี เครดิต 2020 sa เกม 77 ufa agent ทาง เข้า ี ufa356 ufa365 v2 databet88 เครดิต ฟรี ทาง เข้า เอ เย่ น ufa slotxo ไม่มี ขั้น ต่ํา vegus168 ฝาก เงิน sa gaming79 แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด สมัคร ufabet ดาวน์โหลด slotxo pc ufabet777 เครดิต ฟรี ufabet 256 ufabet 8888
            สมัคร เล่น บา คา ร่า ฟรี เครดิต| ww88 เครดิต ฟรี| บา คา ร่า 289| เว็บ 888 บา คา ร่า| 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก| ฝาก 5 บาท ฟรี 100 2020| เว็บไซต์ เกมส์ ออนไลน์| บา คา ร่า แจก ทุน ฟรี| พนัน ออนไลน์ ขั้น ต่ํา 100| ทาง เข้า เล่น บา ค่า ร่า| ทาง เข้า slotxo| dafabet ฟรี 300 2019| เว็บ บา คา ร่า 777| เว็บ บา คา ร่า ปลอม| บา คา ร่า เสมอ| ebet88 เครดิต ฟรี| ค่า สิ โน ออนไลน์ ฝาก เงิน ผ่าน ตู้ บุญ เติม| บา คา ร่า ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| siam99 คา สิ โน| ฝาก 100 คืน 100| ฝาก 1 ได้ 100 ล่าสุด| เครดิต ฟรี แค่ ยืนยัน เบอร์ 2020| เว็บ ทดลอง เล่น บา คา ร่า| เครดิต ฟรี ฝาก 1 บาท| joker ฝาก 10 ได้ 100| ocean99th สมัคร| เว็บ บา คา ร่า อันดับ 1| บา คา ร่า ทดลอง| บา คา ร่า ufabet777| เครดิต ฟรี 500 ไม่ ต้อง แชร์| สมัคร เล่น บา คา ร่า ฟรี เครดิต| แทง คา สิ โน ออนไลน์| สมัคร เกม ออนไลน์ ฟรี เครดิต| บา คา ร่า 5 บาท| sa บา คา ร่า ทดลอง| ฝาก 9 บาท ได้ 100| บา คา ร่า หลอกลวง| แจก ฟรี เครดิต ถอน ได้| starbets99 casino| เครดิต ฟรี 100 ไม่ ต้อง ฝาก| คา สิ โน ออนไลน์ ยู ฟ่า| บา ค่า ร่า ฝาก 100 ฟรี 300| ไพ่ ออนไลน์ เครดิต ฟรี| บา คา ร่า ออนไลน์ ufa747| ไพ่ ออนไลน์ 888| สมัคร sexy baccarat| เว็บ พนัน ฝาก ถอน ไม่มี ขั้น ต่ํา| บา คา ร่า s06| s บา คา ร่า| ค่า สิ โน ออนไลน์ ได้ เงิน จริง มือ ถือ| ufa777 ฝาก 10 รับ 100| fifa55 ฟรี เครดิต 200| ค่า สิ โน ออนไลน์ เครดิต ฟรี 2020| 333bee เครดิต ฟรี| สมัคร รับ เครดิต ฟรี ทันที ไม่ ต้อง ฝาก 2020| บา กา รา| l บา คา ร่า| แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ไม่ ต้อง แชร์| ฝาก เงิน gclub88888| เว็บ sagame1688| lsm69 ได้ เงิน จริง ไหม| joker ฝาก 9 บาท ได้ 100| เว็บ บา คา ร่า แจก เครดิต ฟรี ไม่ ต้อง ฝาก| สมัคร บา คา ร่า 5 บาท| sagamefun88| starbets99 มือ ถือ|