<wbr id="wfl4NZ"><pre id="wfl4NZ"></pre></wbr>
<em id="wfl4NZ"><th id="wfl4NZ"></th></em>

    1. <nav id="wfl4NZ"></nav>

    2. <nav id="wfl4NZ"><code id="wfl4NZ"></code></nav><nav id="wfl4NZ"><listing id="wfl4NZ"></listing></nav><var id="wfl4NZ"></var>

        <wbr id="wfl4NZ"><pre id="wfl4NZ"></pre></wbr>

            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
             
            ดาวน์โหลด เกมส์ สล็อต slotxo88 สมัคร slot555 ทาง เข้า ยู ฟ่า เบ ท 888 ค่า สิ โน ออนไลน์ ufa69 เครดิต ฟรี 400 ไฮโล ufabet ufabet ที่ ดี ที่สุด เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน โปร โม ชั่ น แทง บอล ออนไลน์ ufabet ขั้น ต่ำ 100 ทาง เข้า fifa55u ufabet799 ทาง เข้า slotxo auto betclic เอ เย่ น sagaming 07 เว็บ บอล ufabet ufa656 ทาง เข้า เว บ เครดิต ฟรี ไม่ ต้อง แชร์ sa gaming 888 slot ฟรี เครดิต 2019 ufa191 ยิง ปลา ufabet 888888 สมัคร สล็อต live22 บอล ดี ๊ ufa168 sa casino ปิด ปรับปรุง slot free credit ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ mm88fc vip fifa ฝาก 50 ฟรี 100 ทาง เข้า agent ufabet แทง บอล รอง pussy888 ฟรี เครดิต r1 ufabet ufabet29 ufabet เครดิต ฟรี 100 mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2020 mafia222 เครดิต ฟรี databet88bet ufabet 5g ufa369 ฝาก sa gaming vip เครดิต ฟรี ufabet 189 สมัคร ufa7777 บรา ค่า ร่า sa gaming 365 slotxo ฝาก 50 บา คา ร่า 2019 เล่น บอล แบบ นัก ลงทุน slotxo download ล่าสุด vegus168sure scr888th เครดิต ฟรี ufabet live joker689 เครดิต ฟรี ufa มือ ถือ ดาวน์โหลด เกม สล็อต live22 ufabet login ufabet123v1 เว ป slotxo ufabet888 pantip แทง บอล fifa55 mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ufabet928 ufabet fc fifa55star แจก เงิน ฟรี 2019 fifa1234 slotxo โหลด ดาวน์โหลด slot007 ufa55bet เครดิต ฟรี ล่าสุด 2019 slotxo สมัคร ใหม่ 100 สมัคร ufabet168 เว็บ บอล ufabet บา คา ร่า ufa88 ufa168com ufa168bet สล็อต xo ดาวน์โหลด slotxo การ ถอนเงิน ufabet sa เกม 77 ทาง เข้า เล่น ufa019 live22 slot ฟรี เครดิต fifa55u เครดิต ฟรี slotxo ฟรี ufabet v3 ib888 เครดิต ฟรี 2019 แอ ป slotxo ufabet 1168 เบอร์ โทร ufa365 alpha88 pc thaibet789 เครดิต ฟรี ทาง เข้า เกม สล็อต xo โหลด xo slot ดาวน์โหลด มือ ถือ http www happyslot88 com download slotxo ไม่ ต้อง ฝาก ทาง เข้า ufabet191 ufabet uefa บา คา ร่า โทรศัพท์ แทง บอล ufa350 slotxo ฝาก 5 บาท ฟรี 99 บาท แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2018 ufabet18 ดาว โหลด slot ufa88up แทง บอล 77 mafia เครดิต ฟรี ใหม่ ล่าสุด เว็บ ufa24h fifabet55 ufa191 สมัคร โปร โม ชั่ น copa69 download slotxo sa gaming คา สิ โน slotxo ใหม่ ล่าสุด ufabet1688 line sbobet888 line ufa168 มือ ถือ ufabet ลิ้ ง ufabet ถูก กฎหมาย ไหม copa69 ufabet18 โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก ufa365 มือ ถือ ufabet728 เครดิต ฟรี ไม่ ฝาก mafia เครดิต ฟรี ล่าสุด รับ เครดิต ฟรี ไม่ ต้อง ฝาก แทง บอล แม่น ๆ ufabet121 ถอนเงิน ufabet168 แทง บอล ออนไลน์ ขั้น ต่ํา 20 ufabet cnv3 แจก เครดิต ฟรี สมาชิก เก่า slot ฟรี เครดิต ไม่ ต้อง ฝาก ี ufabet co www ufax10 ดาว โหลด เกม ส ล๊ อ ต เว บ เครดิต ฟรี ไม่ ต้อง แชร์ ทาง เข้า ufabet1688 77uponline ยู ฟ่า เบ ท 911 แจก ยูสเซอร์ ฟรี พร้อม เครดิต ดาว โหลด เกม xo slot ยู ฟ่า โปร 888 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2018 ไม่ ต้อง ฝาก จุดอ่อน บา คา ร่า เข้า เกม xo เอ เย่ น ยู ฟ่า สมัคร เล่น เกม สล็อต fifa55 ยู ฟ่า เบ ท 9999 เครดิต ฟรี joker slot เว็บ ยู ฟ่า 88 ufabet12 fifa555pro vegus168 vegus69 ufabet บริษัท แม่ slot ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ mmm88bet แจก เครดิต ฟรี ปี ใหม่ slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2018 cq9 slot ฟรี เครดิต เครดิต ฟรี sa gaming ดาวน์โหลด slotxo apk เข้า เกม สล็อต xo เข้า sa gaming fifa888 แจก จริง เครดิต ฟรี โหลด joker slot ufabet vip ufabet อัพเดท mdatabet882 slotxo เวอร์ชั่น ล่าสุด ufa369 ลงทุน บา คา ร่า ยู ฟ่า ออนไลน์ 168 บา คา ร่า win915 ufa007s เข้า เล่น ยู ฟ่า isc123 โปร โม ชั่ น slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 เครดิต ฟรี ถอน ได้ บา คา ร่า excel slotxo สมาชิก ใหม่ 100 ufapro888 pantip ี ufabet6666 databet88bet slotxo 56 ex88 เครดิต ฟรี แอ พ แทง บอล sa เกม 199 ufabet 189 ufa147 มือ ถือ แทง esport sa gaming hacker ufabet 289 slotxo 56 ufabet369 net slot แจก เครดิต ฟรี 2020 แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th ufabet 119 ufa988bet slotxo เวอร์ชั่น ล่าสุด แจก เครดิต ฟรี 2000 ไม่ ต้อง ฝาก 2019 ี ufa24h 24sboonline slotxo free ยู ฟ่า เบ ท 365 ถอนเงิน จาก ufabet บา คา ร่า gaming alpha88 pc บอล fifa55 บา ร่า คา ufabet หลัก แอ พ สล็อต ios บา คา ร่า sa350 ufabet889 ี ufabet365 sa casino games ufa agent ทาง เข้า ยู ฟ่า เบ ท 88 ufabet55 g2g เครดิต ฟรี ufabet ฝาก 50 รับ 100 ฟรี เครดิต ยิง ปลา www ufabet cc fifa69 pantip ดาว โหลด ส ล็ ต xo www ufabet666 sa gaming โหลด แอ พ สล็อต xo เช็ ก ชี่ บา คา ร่า 66 มาเฟีย เครดิต ฟรี ล่าสุด ufabet ฝาก ผ่าน วอ เลท ufa191 ยิง ปลา fifa55fb xo เครดิต ฟรี ufa79g slotxo ios เล่น ไม่ ได้ โหลด เกม สล็อต slotxo live22 ufathai 777 เว็บ ยู ฟ่า 369 ufabet cb8 เว็บ ufa007 แจก ยูสเซอร์ ฟรี พร้อม เครดิต มาเฟีย แจก เครดิต ฟรี ล่าสุด ฟรี เครดิต ถอน ได้ ufa191 ufabet888 ดี ไหม slot online ฟรี เครดิต ไม่ ต้อง ฝาก 2020 บา คา ร่า แอ พ ufabet 11688 ทาง เข้า ufabet88888 แทง บอล ให้ ได้ เงิน สล็อต xo โบนัส 100 เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ufabet 100 ี ufa7777 บา คา ร่า วัว วัว เว็ ป แทง แจก เครดิต ฟรี ถอน ได้ sa gaming 5 บาท บา คา ร่า 50000 ตํา รา บา คา ร่า แจก เครดิต ฟรี 50 ไม่ ต้อง ฝาก ล่าสุด mafia111 เครดิต ฟรี ไลน์ vip2541 ufa888 pantip www slotxo3k net slotxo register php ติด ตั้ง สล็อต xo winwin893 ฟรี เครดิต ถอน ได้ เว็บไซต์ แทง บอล ออนไลน์ สมัคร เล่น ufabet ดาวน์โหลด slotxo 44 สมัคร เกม สล็อต download slotxo android ทาง เข้า เล่น https slotauto888 com บา คา ร่า คือ พัน ทิป app slotxo แจก เครดิต ฟรี ถอน ได้ ทาง เข้า ฟีฟ่า ufa800 pantip ufabet 1999 เครดิต ฟรี 100 ล่าสุด 2020 thaisbobet99 ufabet services บา คา ร่า pantip 2563 บา คา ร่า c03 ufabet แอ พ sa gaming 168vip บา คา ร่า holiday palace ace333 ฟรี เครดิต ไม่ ต้อง ฝาก เว็บ บา คา ร่า ufabet slotxo เวอร์ชั่น ล่าสุด สล็อต ออนไลน์ ios บา คา ร่า lsm sa gaming ปรับปรุง slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2019 prompay88 เครดิต ฟรี ufabet โกง ไหม ts38 บา คา ร่า ufabet 124 ts911ep3 เครดิต ฟรี ได้ จริง 2020 slot007 ดาวน์โหลด slotxo ฝาก 1 บาท ได้ 100 วอ เลท สมัคร แทง บอล slot เครดิต ฟรี ถอน ได้ ลงทุน บา คา ร่า slotxo ฟรี โหลด slotxo apk ดาวน์โหลด slotxo mobile ufabet cb8 บา คา ร่า ออนไลน์ sa gaming เว็บ ยู ฟ่า 88 slotxo ฝาก 15 บาท รับ 100 เครดิต ฟรี sa gaming fifa55 click เข้า ufa168 ufabet777 เครดิต ฟรี sa slot demo แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน sa gaming ปิด ufabet 789 โปร โม ชั่ น สล็อต ออนไลน์ sa gaming ปิด sa เกมส์ บา คา ร่า เว็บ ufa888 ดาวน์โหลด slotxo ล่าสุด แทง บอล รวย ufabet666 สล็อต xo ดาวน์โหลด slotxo เว็บ sa game ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ บา คา ร่า 2020 ufabet 1168 sa gaming ฟรี 300 ทาง เข้า ufabet1688 ufabet 515 slot 999 เครดิต ฟรี แจก เครดิต ฟรี ถอน ได้ ไม่ ต้อง ฝาก angel88 เครดิต ฟรี เครดิต 100 ไม่ ต้อง ฝาก เล่น slotxo ผ่าน หน้า เว็บ ufabet แจก เครดิต ฟรี 2020 เปิด ยูสเซอร์ รับ เครดิต ฟรี ufa345 24hr sa บา คา ร่า vip ทาง เข้า เกม สล็อต xo ถอนเงิน ufa7777 ufabet998 ufa191 บา คา ร่า c03 arma935 baccarat สมัคร ufabet ออนไลน์ เครดิต ฟรี ล่าสุด ดาว โหลด เกม live22 เว็บไซต์ ยู ฟ่า sa gamingth ทาง เข้า ี ufabet เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน โปร แจก เครดิต ฟรี ี ufa777 บา คา ร่า sexy66 sa เกม มิ่ง vip ufa356 แจก เครดิต ฟรี เว็บ ufa365 ดี ไหม สมัคร ufa191 สมัคร ufabet slotxo เปิด ใหม่ login ufa ตัวแทน ufabet ufabet asia ได้ บา คา ร่า ufabet บา คา ร่า ออนไลน์ ไลน์ แทง บอล ligaz678 เล่น บอล ให้ รวย sa gaming png sa gaming99 ยู ฟ้า 369 เว็บ ยู ฟ่า 678 ยู ฟ่า โปร 888 บา คา ร่า ทุน 1000 download slotxo android mm88wim slotxo ฝาก 1 บาท ฟรี 30 บาท เครดิต ฟรี 400 mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2020 ทํา เทิ ร์ น เครดิต ฟรี ufabet สมัคร สมาชิก แจก เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน ทาง เข้า slotxo bkk xo slot download ทาง slotxo ยู ฟ่า 88888 เครดิต ฟรี ไม่มี ขั้น ต่ำ ufabet แอ พ slotxo 1 ไลน์ vip2541 เล่น บอล ให้ รวย www ยู ฟ่า เบ ท betufa public chgpwd 2 ufabet888 ดี ไหม แจก รหัส คูปอง โบนัส fun88 เว็บ ยู ฟ่า 777 ufabet ใหม่ เว็บ ฟีฟ่า ดาวน์โหลด เกม สล็อต live22 เอเย่นต์ ufabet ufabet 879 ฟรี เครดิต บอล club388 เครดิต ฟรี ทาง เข้า fifa เครดิต ฟรี รับ ทันที omg89bet mafia88 เครดิต ฟรี ไม่ ต้อง ฝาก ยู ฟ่า เบ ufabet 99999 ไม่ ต้อง ฝาก เครดิต ฟรี บา คา ร่า sa gaming vip sa gaming77 ufabet 146 แทง บอล 10 xo ฟรี 100 ลิ้ ง ufabet slotxo เล่น ฟรี 100 sa gaming slot game ufa88 มือ ถือ fifa55mini slotxo ฝาก 100 รับ 100 ufabet net default 8 slotxo ฝาก 5 บาท ฟรี 99 บาท เครดิต ฟรี ถอน ได้ เกมส์ ออนไลน์ บา คา ร่า sa gaming เข้า สู่ ระบบ มาเฟีย เครดิต ฟรี ล่าสุด sa gaming 2020 ฝาก 200 ฟรี 300 1ufabet เครดิต ฟรี เครดิต ฟรี slot ยู ฟ่า เบ ท 191 แทง บอล เครดิต ฟรี โปร โม ชั่ น บอล ออนไลน์ เล่น ufabet รับ โบนัส ฟรี ไม่ ต้อง ฝาก slotxo ฟรี เครดิต 50 ไม่ ต้อง ฝาก sa gamingsexy live22 ฝาก 100 รับ 100 slot ไม่ ต้อง ทํา เทิ ร์ น slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2018 สมัคร สล็อต 1234 sa gaming เครดิต ฟรี 300 บา คา ร่า อัตโนมัติ ufabet agent ทาง เข้า ufabet slots แจก เครดิต ฟรี 2019 ไม่ ต้อง แชร์ ufabet 879 slotxo ios เล่น ไม่ ได้ sa gaming vip fifa6886 ทาง เข้า ufabet 169 โปร ufabet live777th slot online slot roma เครดิต ฟรี slotxo ฝาก 1 บาท ฟรี 99 บาท ล่าสุด mafia แจก เครดิต ฟรี ล่าสุด copa89 บา คา ร่า sa350 แจก เครดิต ฟรี ไม่มี เงื่อนไข แทง บอล 168 slot1688 online คา สิ โน ufabet ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน slot ออนไลน์ ฟรี สมัคร ufa191 โปร สมาชิก ใหม่ ฝาก 10 รับ 100 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2020 sagaming 07 ี ufa1688 เครดิต ฟรี ทํา เทิ ร์ น 2020 slotxo android แทง บอล ขั้น ต่ำ 1 บาท เครดิต ฟรี ยิง ปลา ค่าย sg ufabet 147 ให้ เครดิต ฟรี แท่ง บอล ออนไลน์ download slotxo pc ยู ฟ่า เครดิต ฟรี แทง บอล ฟรี 1000 เล่น ยู ฟ่า 123ufabet sa gaming ฟรี เครดิต fifa55y ๊ ufa168 รับ เครดิต ฟรี joker 188bet ฟรี เครดิต 2019 เช็ ก ซี่ บา คา ล่า แทง บอล รอง wwwufa9999 ufa88 มือ ถือ เข้า เว็บ ufabet isc123 โปร โม ชั่ น slotxo ฝาก 1 บาท ฟรี 99 บาท กา บอล ออนไลน์ สมัคร เกม สล็อต xo โหลด เกม slot แจก รหัส คูปอง โบนัส fun88 เว็บ ufa777 ทาง เข้า ufa95 ufa เว็บ ไหน ดี ufabet ลิ้ ง slotxo ฝาก 10 รับ 100 วอ เลท vegus168 usa ดาวน์โหลด xo สล็อต บา คา ร่า 2019 ยู ฟา 88 สมัคร สล็อต xo 888 ufabet191 sa gaming 168 เข้า สู่ ระบบ slot ฝาก ครั้ง แรก roma เครดิต ฟรี sa gaming 168 login slotxo888 ดาวน์โหลด rt slot เครดิต ฟรี ufabet1688 line ufabet star สมัคร พนัน บอล ออนไลน์ ลิ้ ง โหลด slotxo แทง บอล กิน ส่วน ต่าง บอล 168 แทง บอล ให้ ได้ เงิน ล้าน sath88 คา สิ โน sa gaming hacker ฟรี บา คา ร่า ราคา ถูก ยู ฟา 191 เช็ ก ชี่ บา คา ร่า 1688 ลิ้ ง ทาง เข้า ufabet fifa55 fifa555 แจก เครดิต ฟรี live22 เครดิต ฟรี 50 ถอน ได้ 300 เครดิต แทง บอล ฟรี mm88fair โหลด slotxoth แทง บอล ufabet ufabet 428 โหลด แอ พ สล็อต xo แทง ขั้น ต่ำ 10 บาท โปร โม ชั่ น แทง บอล ufabet16 clubfifa55 ufabet cn บา คา ร่า ล่าสุด sa gamingth slot ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน เครดิต ฟรี fhm99 slot รับ เครดิต ฟรี ไม่ ต้อง ฝาก ufa1688s3 sexybaccarat66 ทาง เข้า slotxo88 ufalion 168 slotxo โปร slotxo download apk sbobet888888888 ยู ฟ่า เบ ท 007 ufabet sa gaming ทาง เข้า slotxo168 เครดิต ฟรี ยิง ปลา ค่าย sg ดาวน์โหลด slotxo ลง คอม copa89 ดาวน์โหลด มือ ถือ http www happyslot88 com download slot เครดิต ฟรี ล่าสุด รับ เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ทาง เข้า ฟีฟ่า 888 ทํา เทิ ร์ น เครดิต ฟรี ฝาก 50 รับ 150 ไม่ ต้อง ทํา เทิ ร์ น ล่าสุด ufa หวย ี agent ufabet ufabet168 มือ ถือ ทาง เข้า ยู ฟ่า 1688 ยิง ปลา sa gaming isc888 ขั้น ต่ำ ufabet198 slot ฟรี เครดิต 2019 ufa 1668 ufa7777 fifa7777 แอ พ ufabet ufabet189 แทง บอล รวย agent ufabet1688 สมัคร สล็อต xo slot free เครดิต slot โบนัส ฟรี เข้า เล่น ufabet slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 slot house เครดิต ฟรี ยู ฟ้า เบ ท pay69 slot เครดิต ฟรี บา คา ร่า 1234 sath88 คา สิ โน ทาง เข้า ufabet1688 ฝาก ufa168 sa gaming v2 เว็บ ยู ฟ้า sa gaming88 slot เงิน จริง แทง บอล ออนไลน์ i99win ี ufa747 เครดิต ถอน ได้ เซ๊ ก ซี่ บา คา ร่า mm88wim แทง บอล fifa fifa55gold บา ค่า ร่า จี คลับ 1988 ดาวน์โหลด joker xo ufabet169 สมัคร สล็อต xo slot online ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ufa ออ โต้ sa gaming เข้า เล่น download slotxo android slotxo 56 sa88 gaming สมัคร สมาชิก เกม สล็อต ufabet id line ufabet 368 เล่น slotxo ผ่าน หน้า เว็บ club388 เครดิต ฟรี เครดิต ฟรี ได้ จริงๆ ยู ฟ่ ส เบ ท บา คา ร่า ล่าสุด ี ufabet777 ufabet955 ทาง เข้า ufa999 slotxo ฝาก 9 บาท รับ 100 vegus168 sure ดาวน์โหลด สล็อต xo168 เว ป slotxo เว ป แทง บอล ที่ ดี ที่สุด betufa default 8 ufabet ทาง เข้า มือ ถือ ฝาก 100 รับ 200 xo แทง ฟุตบอล ออนไลน์ ufabet asia สมัคร พนัน บอล ฟีฟ่า 555 ดาวน์โหลด เกมส์ live22 mysbo99 เครดิต ฟรี สมัคร ufabet369 บอล ต่ำ slot ไม่ ต้อง ฝาก ufa888s เครดิต ฟรี ฟุตบอล ufabet360 fifa55m แจก ยูสเซอร์ พร้อม เครดิต ฟรี สมัคร สล็อต xo วอ ล เล็ ต เครดิต ฟรี slot bslot88 เครดิต ฟรี 2pigs slot 918kiss ufabet9999 sa game asia แทง หวย ligaz888 co แทง บอล ยูโร รับ โบนัส ฟรี ไม่ ต้อง ฝาก ufabet168 ดี ไหม ฝาก ถอน ufa live22 slot download wwwufa7777com โหลด slotxo ufa356 ดี ไหม บอล ออนไลน์ 55 แจก ทุน ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ pg slot world ราคา แทง บอล วัน นี้ รับ เครดิต ฟรี ไม่ ต้อง ฝาก ufabet ท รู วอ เลท slot ไม่ ต้อง ทํา เทิ ร์ น slotxo app ufabet lucky sa slot ฝาก ขั้น ต่ํา 10 เครดิต ฟรี ก่อน ฝาก ทาง เข้า ufa369 เครดิต ฟรี ถอน ได้ slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 databet88 8 ufabet v3 ทาง เข้า slotxo ฝาก ถอน faz123 บา คา ร่า youlike222 เครดิต ฟรี บา คา ร่า sa350 ป๊อก เด้ง แจก ฟรี 300 ufabet 1668 ufabet default 8 ace333 ฟรี เครดิต ไม่ ต้อง ฝาก ufa191 fifa55u เครดิต ฟรี ufawb998 แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก wwwufa7777com slotxo 49 เปิด ยูสเซอร์ รับ เครดิต ฟรี web www ufa6666 ufabet 89 สมาชิก ใหม่ รับ ฟรี เครดิต บา คา ร่า sa350 slot roma เครดิต ฟรี ้ ufabet เล่น พนัน บอล ออนไลน์ slot ฝาก 1 บาท รับ 50 ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน 2020 agent ufabet ufa007s slotxo แอ พ มือ ถือ ufabet แจก ฟรี เครดิต ทาง เข้า ufathai แอ พ slotxo ufa หลัก บา คา ร่า วัว วัว sa slotxo เครดิต ฟรี เบ ท 888 ยิง ปลา เครดิต ฟรี ไม่ ต้อง แชร์ เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 ล่าสุด ี ufa369 สมัคร ufa147 ufabet net default 8 ฝาก 1 รับ 100 918kiss เครดิต ฟรี มา ใหม่ ทาง เข้า agent ufa แทง บอล ขั้น ต่ำ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ล่าสุด ดาวน์โหลด slotxobkk tbsbet 2562 ยูสเซอร์ ฟรี slot ฟรี เครดิต 2019 ufa98s แจก เครดิต ฟรี ufa23 โปร แจก เครดิต ฟรี sbobet888 ฝาก เครดิต ฟรี 400 ดาวน์โหลด xo สล็อต ยู ฟ่า แจก เครดิต ฟรี ufawb998 ฝาก ufabet ufa678 เครดิต ฟรี ufabet037 ufabet winner ufa678 หวย slotxo 09 ยู ฟ่า vip u ฟ่า 888 บ้าน บอล สด 88 เข้า เล่น เกม สล็อต xo แทง บอล ให้ ได้ เงิน ล้าน sa gaming ถอนเงิน ufabet scr slot ฝาก ligaz888 line slot1688 เครดิต ฟรี ทาง เข้า เล่น https slotauto888 com เครดิต ฟรี ค่าย ใหม่ แจก โบนัส 100 ufabet ฝาก 100 ฟรี 100 ufa356 ฟรี เครดิต mm88gol slotxo ฝาก 50 รับ 100 ufabet45 mm88aec xo โหลด ยู ฟ่า เบ ท vip ufa356 v2 ufabet 7777 ยู ฟ่า เบ ท 999999 บา คา ร่า ยู ฟ่า 168 ufa191 โกง เครดิต ฟรี ตอน นี้ slot ไม่ ต้อง ทํา เทิ ร์ น ufacasino168 ufabet99th เครดิต ฟรี 200 ล่าสุด เว็บ ยู ฟ่า bet vegus168 live เว็บ ยู ฟ่า 800 mafia เครดิต ฟรี ใหม่ ล่าสุด บา คา ร่า โทรศัพท์ โปร สมาชิก ใหม่ 100 slotxo สมัคร ufa7777 slotxo ฝาก 1 บาท ฟรี 99 บาท 2020 โบนัส ฟรี เครดิต เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 บา คา ร่า 1988 เครดิต ฟรี ใหม่ slot เครดิต ฟรี ล่าสุด ufa168 ทาง เข้า ufabet ufabet ทาง เข้า 369 fifa69 pantip ufa356 เครดิต ฟรี 100 fifa555pro ufa147 sport รับ โบนัส ฟรี ไม่ ต้อง ฝาก ufabet 99999 mafia88 เครดิต ฟรี 50 ufa6666 สมัคร sa บา คา ร่า 66 เบอร์ โทร ufa365 ufabet asia ufa9999 สมัคร สมาชิก slotxo ทาง เข้า ufa9999 youlike222 เครดิต ฟรี ufabet488 สมัคร ufabet777 prompay88 เครดิต ฟรี ติด ตั้ง xo เครดิต ฟรี ไม่ ฝาก เว็บ ufa777 ufabet ทาง เข้า ล่าสุด mafia เครดิต ฟรี ใหม่ ล่าสุด เปิด ยูสเซอร์ ฟรี ไม่ ต้อง ฝาก ufa777 ทาง เข้า slot เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 ฝาก ขั้น ต่ํา 10 slotxo mobile download ทาง เข้า เล่น ยู ฟ่า โหลด slotxo apk วิธี โหลด สล็อต บา คา ร่า super six คือ ี ufa369 slot ฟรี โบนัส คา สิ โน ufabet ติดต่อ live22 บา ค่า ร่า ฟรี เครดิต ไม่ ต้อง ฝาก เครดิต ฟรี เทิ ร์ น 1 เท่า 2020 www ufax10 ufabet 700 1ufabet เครดิต ฟรี ฟรี เครดิต ถอน ได้ สมัคร เกม live22 แจก เครดิต ฟรี ปี ใหม่ mvegus1682 fifa55 เว็บ ตรง เครดิต ฟรี ค่าย ใหม่ เปิด ยูสเซอร์ ฟรี เครดิต 2020 ufa88s บา คา ร่า c03 ufa877 คืน ยอด เสีย ufa356 ทาง เข้า sa gaming v2 ufabet super sport ทาง เข้า ufabet 72 download slotxo android ฟรี เครดิต ถอน ได้ 8 pg slot แทง บอล ฟรี เครดิต 2020 ufabet360 แทง บอล ขั้น ต่ำ 100 ufabet เข้า ไม่ ได้ ufabet สมัคร สมาชิก แอ พ สล็อต ios ufabet เว็บ แม่ ufabet ฝาก ถอน สมัคร เล่น slot บอล ต่ำ สมาชิก ใหม่ ฟรี เครดิต 300 fifa55hb ติด ตั้ง xo สมัคร slotxo88 slotxo ฝาก ขั้น ต่ํา 50 ฝาก ufa168 เค ดิ ต ฟรี slotxo สมัคร 168 gaming แทง บอล ออนไลน์ 24 ชม บอล หวย ตั้ง slotxo live22 slot ฟรี เครดิต โหลด เกม slotxoth slotxo download apk ufabet888888 บา คา ร่า 6 แต้ม บา คา ร่า ปิด ปรับปรุง นาน ไหม alpha88 pc ufa191 มือ ถือ sa gaming เข้า เล่น sa gaming line slot เติม 10 รับ 100 ทาง เข้า slotxo168 ฝาก 1 บาท รับ โบนัส 99 ล่าสุด ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ เอเย่นต์ ufabet เครดิต ฟรี ทันที ufabet998 slotxo เกม ฟรี เครดิต ฟรี ตอน นี้ best88 เครดิต ฟรี เว็บ ยู ฟ่า 191 ufa69b เว็บ ufa800 สมาชิก ใหม่ รับ เครดิต ฟรี แจก ยูสเซอร์ พร้อม เครดิต ฟรี แทง บอล ผ่าน ไลน์ ดาว โหลด เกม slot joker ufabet 24h slot รับ เครดิต ฟรี เปิด ยูสเซอร์ ฟรี เครดิต 2020 thaibet789 เครดิต ฟรี ยู ฟ่า 888 ทาง เข้า ufa88d ทาง เข้า ยู ฟ่า ออนไลน์ 168 slotxo 50 รับ 100 ทาง เข้า เล่น ufa ufabet777 ดี ไหม ufabet1688 ทาง เข้า ufabet default 8 แจก โบนัส ฟรี ไม่ ต้อง ฝาก sa gaming ปิด ปรับปรุง ถึง กี่ โมง วัน นี้ slotxo ฝาก 100 ฟรี 100 slotxo เกม ฟรี sa gaming 86 ดาว โหลด เกม ส ล๊ อ ต บา คา ร่า วัว วัว sa ufabet เอ เย่ น ufarich888 ติด ตั้ง slotxo ios ลิ้ ง ทาง เข้า ufabet ufa ฝาก ไม่มี ขั้น ต่ํา fifa55cash เครดิต ฟรี xo ufa168 ฝาก ufabet 77 slot ฝาก 1 รับ 50 rggame888 slotxo ฝาก 9 บาท รับ 100 ยู ฟ่า เบ ท 191 เว็บ ยู ฟ่า 369 รับ เครดิต ฟรี ไม่ ต้อง ฝาก ufa95s slotxo ฝาก 99 ได้ 300 ี ufa747 line vip2541 โบนัส ฟรี ไม่ ต้อง ฝาก ก่อน เครดิต ฟรี เดือน นี้ เสีย บา คา ร่า 5000 isc123 โปร โม ชั่ น สมัคร slotxo joker slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ไม่ ต้อง ฝาก ถอน ได้ 2019 สล็อต xo download ทาง เข้า slotxo mobile ufabet799 slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน slot free 888 ยู ฟ่า เบ ท 982 โบนัส ฟรี เครดิต ป๊อก เด้ง แจก ฟรี 300 ติด ตั้ง slotxo แอ น ด รอย ด์ fifa55r sa gaming 689 77up บอล บีบ บา คา ร่า mega888 ฟรี เครดิต betufa ทาง เข้า สมัคร slotxo รับ เครดิต ฟรี เข้า เว็บ ufabet ไม่ ได้ สมัคร sa game 66 เครดิต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด แจก เครดิต ฟรี live22 ufabet เครดิต ฟรี ไม่ ต้อง ฝาก ufa777com แจก ทุน ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ บา คา ร่า 1 ufa88 pantip โปร แจก เครดิต ฟรี sa baccarat 1988 โบนัส เครดิต ฟรี ไม่ ต้อง ฝาก slotxo ติดต่อ สมัคร ufa356 ufawb998v3 vegus168 เว็บ ufabet ดี ไหม mm88fc vip ufabet เว็บ บอล ออนไลน์ ไลน์ ligaz888 ufabet 289 บา คา ร่า ผิด กฎหมาย ไหม ufabet91 ยู ฟ่า เบ ท 777 แจก เครดิต ฟรี ง่ายๆ ufabet pro เว็บ ยู ฟ่า 191 www fifa555 ufa55net บา คา ร่า 1234 ufagold168 เครดิต ฟรี ล่าสุด ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ บอล รวย วัน นี้ fhm99 ฟรี เครดิต ufabet27 sa350 บา คา ร่า
            สูตร เฮีย หมู บา คา ร่า| สูตร บา คา ร่า royal online v2| โปรแกรม สูตร บา คา ร่า 2019 ฟรี| บอล ชุด เน้น| สูตร บา คา ร่า เว็บ lsm99| ที่ เด็ด บอล วัน| สูตร sagame66 ฟรี| ทีเด็ด บอล วัน นี้ เน้น ๆ 100| ทีเด็ด บอล เต็ง ฟรี วัน นี้| สูตร บา ค่า ร่า sa ฟรี| ทีเด็ด บอล ชุด 99| ข่าว กีฬา ล่าสุด สั้น ๆ| ข่าว ฟุตบอล กั ล โช่| สูตร ถัง ทอง บา คา ร่า| smmtv วิเคราะห์ บอล| ทีเด็ด บอล วัน นี้ 4 คู่ วัน นี้ ล่าสุด 2561 คือ| ราคา บอล พรุ่งนี้ ทุก ลีก ทีเด็ด| royal online สูตร| บอก สูตร บา คา ร่า| ล้ม โต๊ะ บอล ราคา บอล เต็ง| กู รู บอล วัน นี้| ทีเด็ด บอล ต่อ ทีเด็ด บอล รอง| ตาราง สูตร บา คา ร่า ฟรี ufabet| ราคา บอล วัน นี้ 7m| ข่าว ฟุตบอล พรีเมียร์ อังกฤษ| ทีเด็ด ฟุตบอล เต็ง| สูตร บา คา ร่า tss911| ทีเด็ด บอล เต็ง บอล ส เต็ ป| บอล พรุ่งนี้ ทีเด็ด| ที เด็ด สุมหัว| เซียน บอล ที่ แม่น ที่สุด| บอล ชุด 4 คู่| ทีเด็ด บอล สูง ต่ำ วัน นี้| บา คา ร่า ทบ ไม้| ตาราง สูตร บา คา ร่า sexy| บา คา ร่า สูตร เซียน| สูตร บา คา ร่า 123goal| ทีเด็ด บอล วัน เสาร์ นี้| ทีเด็ด ผล บอล เมื่อ คืน| ที่ เด็ด บอล เต็ง วัน นี้| ใช้ สูตร บา คา ร่า ฟรี| บอล วัน นี้ lomtoe| สูตร บา คา ร่า ufa888| live22 ฝาก 1 บาท รับ 99| tded net| ที่ เด็ด บอล 4 คู่| สูตร บา คา ร่า sa gaming ai| บ้าน ผล บอล พรุ่งนี้ ทีเด็ด| ข่าว สปอร์ต พูล วัน นี้| โปรแกรม บา คา ร่า 2019| ฝาก 100 รับ 100 ล่าสุด| รูป สูตร บา คา ร่า| บอล วัน นี้ ทีเด็ด ล้ม โต๊ะ| สูตร บา คา ร่า ae| ทีเด็ด บอล เต็ง 2 คู่| สูตร sagame66 ฟรี| betluckmak slot| สูตร บา คา ร่า โพ นี่| วิเคราะห์ สปอร์ต พลู| แจก เครดิต ฟรี slot| เว็บ ข่าว กีฬา อังกฤษ| ทีเด็ด บอล เต็ง วัน นี้ 1 ตัว| สูตร เซ็กซี่ บา คา ร่า 2020 ฟรี| สุด ยอด โปรแกรม โกง บา คา ร่า| วิเคราะห์ บอล สกอร์ สูง ต่ำ วัน นี้| เว็บ พนัน ออนไลน์ 88|