• <strike id="Go78Y"></strike><em id="Go78Y"><span id="Go78Y"><option id="Go78Y"></option></span></em><sub id="Go78Y"><address id="Go78Y"><nobr id="Go78Y"></nobr></address></sub>
    <sub id="Go78Y"></sub>
    1. <nav id="Go78Y"></nav>
      <form id="Go78Y"></form>

      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
         
        sbo เข้า ไม่ ได้ 100 cats slot สมัคร ts911 สมัคร เอ เย่ น mm8bet 3d roulette royal online lao sbobet อัพเดท ล่าสุด เว ป เจ ษ เปิด ใหม่ ufabet 72 สมัคร ufabet 72 สมัคร wwwsbobet mobile dragon fire megaways agent gclub sbobet มือ ถือ android lucky rich slot cat slot 888 royal online v2 ฝาก เงิน royal online v2 ฝาก เงิน สมัคร เอ เย่ น mm8bet ช่อง ทาง เข้า sbobet extra chili megaways new york slot เจษฎา เบ ท ใหม่ เข้า เล่น sbobet ดาวน์โหลด royal online v2 ios เจษฎา เบ ท 168 www potato222 diamond cats slot hack slot apk 40 shining crown slot micro knights fat cat slot crown 89 slot squad inferno hack casino 2020 เกม ส โบ เบ็ ต วิธี เข้า sbobet hacker casino 2020 royal online v2 ฝาก เงิน เข้า เล่น sbobet ssd pcie x16 card เจษฎา เบ ท 111 squad inferno slot happy ทาง เข้า sbo slot club 888 poker apk download happy 888 slot ช่อง ทาง sbobet ช่อง ทาง เข้า ส โบ ช่อง ทาง sbobet คา สิ โน ออนไลน์ รอยัล 1688 royal online lao slot fat santa ufa191 facebook แจ้ง ฝาก sbobet24hr roulette hacker the hacker casino royal casino hack sbobet888 สล็อต gclub 24 auto baba wild slot carrera ferrari trophy hack joker123 sbobet888 สล็อต เว ป เจ ษ 111 เจษฎา เบ ท ปิด ตัว fat santa online sbobet อัพเดท โหลด royal online v2 ios royal online v2 เปลี่ยน รหัส login gclub ทาง เข้า sbo slot hack joker123 book of ra temple of gold รถ ไป บ่อน ปอย เปต เว ป เจ ษ เปิด ใหม่ เจษฎา เบ ท ปิด ตัว sbobet888 สล็อต pretty gaming casino ทาง เข้า sbo click hack web casino royal online apk แจ้ง ฝาก sbobet24hr download royal online v2 ios สมัคร เอ เย่ น mm8bet ดาวน์โหลด royal online v2 gclub agent วิธี สมัคร royal online v2 ช่อง ทาง เข้า ส โบ เข้า เว็บ sbo รถ ตู้ ไป บ่อน ปอย เปต 3d roulette gclub 44 mykonamy ที่ นี่ ทาง เข้า sbo www sbobet88888 com mobile เจษฎา เบ ท ใหม่ ช่อง ทาง เข้า sbobet slot fat santa sbo เข้า ไม่ ได้ ได้ login gclub slot hacker download เว ป เจ ษ เปิด ใหม่ royal online v2 เปลี่ยน รหัส ช่อง ทาง เข้า ส โบ mega ways ที่ เด็ด ส โบ เบ็ ต สมัคร เว็บ การ พนัน ช่อง ทาง sbobet lucky cat slot big cat slot ที่ เด็ด ส โบ เบ็ ต sbobet888 สล็อต โหลด royal online v2 100 cats slot ที่ เด็ด ส โบ เบ็ ต ufa191 facebook fun888 mobile party pg slot sbo มือ ถือ เข้า เว็บ sbo ทาง เข้า sbobet 168 ufabet 72 สมัคร สมัคร สมาชิก ts911 spinomenal เข้า เว็บ sbo ufabet ดี มั้ ย royal online v2 โหลด ลิงค์ ส โบ party pg slot hack joker123 inferno star wars ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ เว ป เจ ษ เปิด ใหม่ dragon fire megaways sbo มือ ถือ วิธี สมัคร royal online v2 เข้า เล่น sbobet slot big cat hack casino 2020 royal online v2 เปลี่ยน รหัส inferno star wars sbobet อัพเดท www sbobet888 squad inferno the casino hacker ฟรี angel88 slot ทาง เข้า sbobet 168 sbo มือ ถือ sbo แจ้ง ฝาก gclub group pcie 3.0 x16 nvme ดาวน์โหลด royal online v2 มือ ถือ royal online apk link เข้า sbobet hack slot apk cat slotxo ทาง เข้า sbo click ยู ฟ่า 191 pantip สมัคร ligaz888 สมัคร เอ เย่ น mm8bet sbo แจ้ง ฝาก ยู ฟ่า 191 เข้า ระบบ sbo เข้า ได้ แน่นอน 888 poker android apk download sbo เข้า ไม่ ได้ ได้ สมัคร เว็บ การ พนัน fun888 mobile เอเย่นต์ ส โบ เบ็ ต lucky rich slot ninja 777 สล็อต ทาง เข้า เล่น sbobet royal online v2 เปลี่ยน รหัส download royal online v2 ios เจษฎา เบ ท อัตรา จ่าย hack game royal casino ninja slot v2 sbobet com เข้า ไม่ ได้ ทาง เข้า เอเย่นต์ sbobet 1 million megaways www potato222 sbobet มือ ถือ android ทาง เข้า lsm 2558 เจษฎา เบ ท pantip ช่อง ทาง เข้า sbo มือ ถือ sbobet มือ ถือ android เว ป เจ ษ 111 cat slot 888 big win cat 888 poker android apk download www sbo333 com euro sbobet888 สล็อต agent gclub lucky cat slot sbo เข้า ไม่ ได้ pcie 3.0 x16 nvme ช่อง ทาง เข้า sbo มือ ถือ bm hacker casino betsson jackpot โหลด royal online v2 sbobet อัพเดท ล่าสุด party pg slot จี 6666 แจ้ง ฝาก sbo24 micro knights sbo เข้า ได้ แน่นอน mykonamy royal online 69 แจ้ง ฝาก sbobet24hr cat slotxo ช่อง ทาง sbobet fun888 mobile เจษฎา เบ ท 168 คา สิ โน ออนไลน์ รอยัล 1688 royal casino hack สมัคร เว็บ บอล แจก เสื้อ download royal online v2 ios หน้า เล่น sbo royal ออนไลน์ sbobet อัพเดท เว ป เจ ษ ล่ม sbo เข้า ได้ แน่นอน hack game royal casino slot happy ทาง เข้า ส โบ อัพเดท angel88 slot หน้า เข้า sbo joker123 mobile download sbobet com เข้า ไม่ ได้ naughty santa slot เจษฎา เบ ท ปิด ตัว เบอร์ ส โบ เบ็ ต โหลด royal online v2 apk sbobet มือ ถือ android สมัคร เว็บ การ พนัน gclub 24 auto โหลด royal online v2 ios royal online v2 ฝาก เงิน sbo แจ้ง ฝาก pcie 3.0 x16 nvme สมัคร เอ เย่ น mm8bet ligaz888 สมัคร www potato222 pretty gaming casino ligaz888 สมัคร sbobet com เข้า ไม่ ได้ เจษฎา เบ ท เปิด ใหม่ fun888 เข้า ระบบ cat slotxo gclub 44 ทาง เข้า เอเย่นต์ sbobet book of ra temple of gold solar temple slot เจษฎา เบ ท เปิด ใหม่ เว ป เจ ษ เปิด ใหม่ เว ป เจ ษ พัน ทิป royal online 999 ninja 777 สล็อต betsson jackpot ทาง เข้า sbo slot club slot santa agent gclub spinomenal sbobet com เข้า ไม่ ได้ slot hacker download 40 shining crown slot www sbobet88888 com mobile hack casino 2020 ufabet ดี มั้ ย spinomenal royal online v2 ฝาก เงิน hack joker123 sbobet มือ ถือ android sbo mobile ล่าสุด ทาง เข้า ส โบ อัพเดท happy 888 slot sbo เข้า ได้ แน่นอน ทาง เข้า sbo slot เจษฎา เบ ท pantip download royal online v2 ios โร เยอ ร์ ออนไลน์ 40 shining crown slot ทาง เข้า sbobet 168 mega ways hack game royal casino ยู ฟ่า 191 pantip hacks casino www pic5678 th th slot santa big cat slot solar temple slot royal online v2 download ios slot happy ufa191 facebook ทาง เข้า sbobet 168 ufabet 72 สมัคร royal casino hack ทาง เข้า ส โบ อัพเดท ดาวน์โหลด royal online v2 ios royal online 999 pcie 3.0 x16 nvme 3d roulette ufa191 app the hacker casino เว ป เจ ษ ล่ม inferno star wars sbo แจ้ง ฝาก บริษัท เจษฎา เบ ท reel rush netent แจ้ง ฝาก sbobet24hr hack joker123 แจ้ง ฝาก sbo24 link to sbobet การ เข้า sbobet agent gclub ช่อง ทาง เข้า sbo มือ ถือ royal casino hack new york slot จี 6666 100 cats slot ทาง เข้า เล่น sbobet www potato222 load gclub 888 poker apk party pg slot the casino hacker ฟรี casino hacker 6in1 happy 888 slot รอยัล ออนไลน์ ali baba slot royal online v2 เปลี่ยน รหัส the casino hacker ฟรี ufa191 app เข้า เว็บ sbo mykonamy วิธี เข้า sbobet ninja 777 สล็อต โรงแรม ใน ปอย เปต carrera ferrari trophy sbo เข้า ไม่ ได้ ได้ เจษฎา เบ ท ใหม่ ทาง เข้า lsm 2558 roulette hacker 3d roulette load gclub royal online 999 888 poker apk download royal online v2 ios ลิงค์ ส โบ sbo mobile ล่าสุด royal online lao sbobet com เข้า ไม่ ได้ the casino hacker 2020 เจษฎา เบ ท อัตรา จ่าย เจษฎา เบ ท เปิด ใหม่ โหลด royal online v2 sbobet888 สล็อต ufabet 72 สมัคร solar temple slot royal online v2 เปลี่ยน รหัส วิธี สมัคร royal online v2 ทาง เข้า sbobet 168 sbobet888 สล็อต sbo มือ ถือ ทาง เข้า ส โบ อัพเดท ดาวน์โหลด royal online v2 มือ ถือ ทาง เข้า เอเย่นต์ sbobet 1 million megaways solar temple slot carrera ferrari trophy sbo mobile ล่าสุด link sbobet มือ ถือ www potato222 ufabet 72 สมัคร royal online 69 รอยัล ออนไลน์ ทาง เข้า sbo อัพเดท ล่าสุด pcie 3.0 x16 nvme ทาง เข้า sbobet 168 โหลด royal online v2 apk sbobet com เข้า ไม่ ได้ ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ เจษฎา เบ ท ใหม่ โหลด royal online v2 ios ดาวน์โหลด royal online v2 มือ ถือ สมัคร 928bet slot cat 888 gclub 44 sbo แจ้ง ฝาก happy slot 88 betsson jackpot โหลด royal online v2 apk ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ slot hacker download ufa191 app sbo222 wap จี 6666 40 shining crown slot หน้า เว็บ sbobet royal online v2 ฝาก เงิน sbobet อัพเดท ล่าสุด เจษฎา เบ ท pantip ทาง เข้า sbo slot sbobet มือ ถือ android hacker casino 2020 ts911 สมัคร fat santa online royal online 2v เอเย่นต์ ส โบ เบ็ ต vegasberry hack web casino เจษฎา เบ ท 888 เข้า เว็บ sbo หน้า เล่น sbo สมัคร 928bet 3d roulette sbobet888 สล็อต extra chili megaways ไป บ่อน ปอย เปต inferno star wars sbobet888 สล็อต เว ป เจ ษ 111 ที่พัก ปอย เปต pantip hacker slot game เจษฎา เบ ท ปิด ตัว โรงแรม ใน ปอย เปต ufa191 facebook ทาง เข้า lsm 2558 เจษฎา เบ ท 168 เจษฎา เบ ท 6 sbo แจ้ง ฝาก gclub 44 วิธี เข้า sbobet 40 shining crown slot sbobet อัพเดท extra chili megaways โหลด royal online v2 ios the hacker casino cat slot 888 casino hacker 6in1 ali baba slot ufa191 app เจษฎา เบ ท 111 hack slot apk sbo mobile ล่าสุด sbo แจ้ง ฝาก ninja 777 สล็อต ทาง เข้า sbo click slot ssd sata sbo mobile ล่าสุด 3d roulette sbobet มือ ถือ android ทาง เข้า lsm 2558 baba wild slot ดาวน์โหลด royal online v2 ios sbo เข้า ได้ แน่นอน แจ้ง ฝาก sbobet24hr sbobet อัพเดท ล่าสุด party pg slot ไป บ่อน ปอย เปต 3d roulette joker123 mobile download ทาง เข้า sbo slot club เว ป เจ ษ 111 ทาง เข้า sbo slot club spinomenal gclub platinum www sbobet888 ssd pcie x16 card royal online v2 pc download sbobet888 สล็อต royal online 69 ที่พัก ปอย เปต pantip ufa191 facebook โหลด royal online v2 apk mykonamy เว ป เจ ษ 111 hack game royal casino lucky rich slot เจษฎา เบ ท ติดต่อ royal online v2 โหลด fat cat slot book of ra temple of gold big win cat royal ออนไลน์ ninja 777 สล็อต โหลด royal online v2 apk sbo mobile ล่าสุด สมัคร เว็บ บอล แจก เสื้อ royal online 2v เจษฎา เบ ท 6 ทาง เข้า sbobet 168 crown 89 slot carrera ferrari trophy hack royal casino agent gclub ช่อง ทาง เข้า sbo มือ ถือ roulette hacker link to sbobet sbobet888 สล็อต sbobet อัพเดท ล่าสุด หน้า เข้า sbo gclub 44 ช่อง ทาง เข้า sbo เว ป เจ ษ 111 ที่ เด็ด ส โบ เบ็ ต ufabet ดี มั้ ย sbobet888 สล็อต royal online 999 1 million megaways gclub group เทคนิค ยิง ปลา royal casino หน้า เล่น sbo แจ้ง ฝาก sbobet ca bm hacker casino ufabet ดี มั้ ย ทาง เข้า sbo อัพเดท ล่าสุด เว ป เจ ษ 111 เข้า เว็บ sbo ทาง เข้า sbo slot club mykonamy โหลด royal online v2 sixmonth sbobet โหลด royal online v2 new york slot sbobet com เข้า ไม่ ได้ royal online v2 pc download temple of tut ทาง เข้า lsm 2558 royal ออนไลน์ โหลด royal online v2 ios extra chili megaways sbo เข้า ได้ แน่นอน baba wild slot ้ เจษฎา เบ ท แจ้ง ฝาก sbobet ca ที่ เด็ด ส โบ เบ็ ต sbobet อัพเดท ล่าสุด royal online 999 ทาง เข้า เอเย่นต์ sbobet royal online 9999 ที่ เด็ด ส โบ เบ็ ต ufabet ดี มั้ ย โหลด royal online v2 apk naughty santa slot royal online v3 squad inferno sbobet com เข้า ไม่ ได้ load gclub royal ออนไลน์ royal online apk ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ ทาง เข้า เอเย่นต์ sbobet vegasberry จี 6666 link เข้า sbobet hacks casino slot cat 888 royal online 2v cat slot 888 hack royal casino big cat slot ทาง เข้า sbo slot hack game royal casino เจษฎา เบ ท 888 888 poker android apk download sbobet com เข้า ไม่ ได้ โรงแรม ใน ปอย เปต cat slot 888 สมัคร ak47bet เจษฎา เบ ท pantip ufabet 72 สมัคร sbobet มือ ถือ android ufa191 facebook วิธี เข้า sbobet royal casino hack casino hacker 6in1 รถ ตู้ ไป บ่อน ปอย เปต ยู ฟ่า 191 เข้า ระบบ royal online 9999 royal online 9999 www pic5678 th th คา สิ โน ออนไลน์ รอยัล 1688 www sbo333 com euro lego star wars iden versio ligaz888 สมัคร ทาง เข้า lsm 2558 casino hacker ฟรี slot hacker program betsson jackpot ้ เจษฎา เบ ท เข้า เล่น sbobet royal online 9999 www sbobet88888 com mobile pcie 3.0 x16 nvme เว ป เจ ษ เปิด ใหม่ hacker casino 2020 royal online apk bm hacker casino 999 lsm gclub 24 auto happy 888 slot sbobet อัพเดท ล่าสุด hack game royal casino big cat slotxo หน้า เข้า sbo royal online lao hack royal casino hack casino 2020 100 cats slot โหลด royal online v2 ios crown 89 slot micro knights micro knights สมัคร 928bet เจษฎา เบ ท pantip royal online lao ดาวน์โหลด royal online v2 คา สิ โน ออนไลน์ รอยัล 1688 จี 6666 slot ssd sata bm hacker casino ที่ นี่ ทาง เข้า sbo sbobet com เข้า ไม่ ได้ เจษฎา เบ ท pantip เจษฎา เบ ท 888 ligaz888 สมัคร sbo mobile ล่าสุด ดาวน์โหลด royal online v2 โร เยอ ร์ ออนไลน์ download royal online v2 royal online v2 มือ ถือ apk m online sbobet gclub 555 สมัคร เว็บ บอล แจก เสื้อ ช่อง ทาง sbobet สมัคร 928bet gclub 24 auto big cat slotxo 888 poker apk download สมัคร ts911 sbo mobile ล่าสุด spinomenal new york slot สมัคร ts911 hack casino 2020 angel88 slot สมัคร ts911 happy 888 slot squad inferno the hacker casino ทาง เข้า sbobet 168 เข้า เล่น ส โบ เบ็ ต lego star wars iden versio ทาง เข้า lsm 2558 เจษฎา เบ ท อัตรา จ่าย hack royal casino ufa191 app hack casino 2020 ช่อง ทาง sbobet บริษัท เจษฎา เบ ท gclub group ทาง เข้า sbo อัพเดท ล่าสุด ทาง เข้า sbo slot club ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ sbo เข้า ไม่ ได้ ได้ ไป บ่อน ปอย เปต ninja 777 สล็อต เว ป เจ ษ ปิด ลิงค์ ส โบ เจษฎา เบ ท 888 แจ้ง ฝาก sbo24 happy 888 slot micro knights วิธี เข้า sbobet 888 poker android apk download slot fat santa รถ ไป บ่อน ปอย เปต เจษฎา เบ ท 168 โหลด royal online v2 royal online v2 ฝาก เงิน agent gclub เจษฎา เบ ท 168 temple of tut happy 888 slot lucky rich slot link sbobet ใหม่ www sbobet888 ligaz888 สมัคร inferno star wars laosbet88 สมัคร เว ป เจ ษ เปิด ใหม่ เข้า เล่น ส โบ เบ็ ต hack game royal casino www sbobet88888 com mobile royal online v2 เปลี่ยน รหัส login gclub gclub 44 hacks casino โหลด royal online v2 apk royal online v2 ฝาก เงิน hacker slot game cat slot 888 แจ้ง ฝาก sbobet ca bm hacker casino เว ป เจ ษ เปิด ใหม่ hacks casino micro knights บริษัท เจษฎา เบ ท แจ้ง ฝาก sbobet24hr slot big cat www sbobet888 เจษฎา เบ ท 222 royal online v2 pc download ยู ฟ่า 191 pantip sbo เข้า ได้ แน่นอน เทคนิค ยิง ปลา royal casino agent gclub lego star wars iden versio เจษฎา เบ ท 111 รอยัล ออนไลน์ cat slotxo วิธี สมัคร royal online v2 the casino hacker 2020 lucky cat slot new york slot เจษฎา เบ ท 6 ช่อง ทาง เข้า ส โบ เข้า เล่น sbobet party pg slot 888 poker apk เจษฎา เบ ท ปิด ตัว sbo เข้า ได้ แน่นอน royal online 9999 วิธี สมัคร royal online v2 ช่อง ทาง เข้า sbo ทาง เข้า sbo slot club เว ป เจ ษ ปิด big win cat ทาง เข้า sbobet 168 888 poker android apk download หน้า เล่น sbo เจษฎา เบ ท 888 sbobet888 สล็อต hack slot apk โรงแรม ใน ปอย เปต diamond cats slot ทาง เข้า sbobet 789 royal online v2 ฝาก เงิน roulette hacker สมัคร เว็บ บอล แจก เสื้อ ช่อง ทาง เข้า sbo laosbet88 สมัคร login gclub จี 6666 เจษฎา เบ ท pantip royal online v2 ฝาก เงิน เข้า เว็บ sbo carrera ferrari trophy ninja 777 สล็อต ts911 สมัคร ts911 สมัคร vegasberry สมัคร เว็บ การ พนัน เจษฎา เบ ท 6 solar temple slot royal online 69 888 poker apk happy slot 88 คา สิ โน ออนไลน์ รอยัล 1688 100 cats slot gclub agent mykonamy sbo mobile ล่าสุด royal online 999 www potato222 agent gclub เกม ส โบ เบ็ ต royal online 9999 ทาง เข้า sbo click เว ป เจ ษ 111 ทาง เข้า sbo อัพเดท ล่าสุด fat cat slot ligaz888 สมัคร fat santa online http www indukbola com th th euro hack game royal casino royal online 9999 ufabet ดี มั้ ย ทาง เข้า lsm 2558 link sbobet มือ ถือ vegasberry ali baba slot ทาง เข้า เล่น sbobet สมัคร เอ เย่ น mm8bet เจษฎา เบ ท อัตรา จ่าย agent gclub party pg slot big cat slotxo ช่อง ทาง เข้า sbo เจษฎา เบ ท 111 happy 888 slot ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ slot cat 777d download royal online v2 gclub 555 sixmonth sbobet fat santa online เว ป เจ ษ เปิด ใหม่ โหลด royal online v2 ios เทคนิค ยิง ปลา royal casino วิธี เข้า sbobet party pg slot slot ssd sata royal online v2 มือ ถือ apk new york slot ช่อง ทาง เข้า sbo www pic5678 th th gclub 555 www sbobet888 the hacker casino เจษฎา เบ ท 888 sbo เข้า ไม่ ได้ ได้ เว ป เจ ษ vip ts911 สมัคร download royal online v2 ios ligaz888 สมัคร ยู ฟ่า 191 pantip เจษฎา เบ ท 888 วิธี สมัคร royal online v2 ดาวน์โหลด royal online v2 ios เอเย่นต์ ส โบ เบ็ ต ทาง เข้า sbo slot club แจ้ง ฝาก sbobet ca royal online v4 hack game royal casino squad inferno casino hacker 6in1 3d roulette download royal online v2 ios the casino hacker ฟรี www sbo333 com euro เว ป เจ ษ เปิด ใหม่ lucky cat slot naughty santa slot สมัคร ligaz888 ssd pcie x16 card sbobet อัพเดท ล่าสุด ufabet 72 สมัคร 100 cats slot เจษฎา เบ ท 888 เจษฎา เบ ท ติดต่อ เว ป เจ ษ ล่ม รถ ตู้ ไป บ่อน ปอย เปต 100 cats slot sbo เข้า ไม่ ได้ hack joker123 link เข้า sbobet royal casino hack เจษฎา เบ ท 168 ninja 777 สล็อต sbobet อัพเดท party slot pg ดาวน์โหลด royal online v2 ts911 สมัคร ช่อง ทาง เข้า sbo มือ ถือ ้ เจษฎา เบ ท link sbobet มือ ถือ royal online v2 ฝาก เงิน the casino hacker royal online v2 มือ ถือ apk royal online v2 ฝาก เงิน ทาง เข้า เอเย่นต์ sbobet laosbet88 สมัคร the casino hacker 2020 ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ big win cat ทาง เข้า sbo slot new york slot royal online 999 crown 89 slot link sbobet ใหม่ m online sbobet รอยัล ออนไลน์ casino hacker ฟรี sbo222 wap load gclub สมัคร เว็บ การ พนัน ali baba slot hack slot apk sbobet888 สล็อต โหลด royal online v2 ios casino hacker ฟรี sbo เข้า ได้ แน่นอน สมัคร เอ เย่ น mm8bet link sbobet ใหม่ naughty santa slot betsson jackpot happy 888 slot extra chili megaways m online sbobet mega ways dragon fire megaways new york slot big cat slotxo sbo แจ้ง ฝาก ทาง เข้า sbo slot club เว ป เจ ษ vip ช่อง ทาง sbobet เว ป เจ ษ 111 ninja 777 สล็อต สมัคร เว็บ บอล แจก เสื้อ royal online v2 download ios royal ออนไลน์ เกม ส โบ เบ็ ต เจษฎา เบ ท เปิด ใหม่ เบอร์ ส โบ เบ็ ต บ่อน ออนไลน์ ปอย เปต link sbobet มือ ถือ เว ป เจ ษ ล่ม carrera ferrari trophy gclub group hack casino 2020 สมัคร เอ เย่ น mm8bet จี 6666 เอเย่นต์ ส โบ เบ็ ต เข้า เว็บ sbo the casino hacker ฟรี carrera ferrari trophy sbo เข้า ได้ แน่นอน เจษฎา เบ ท ปิด ตัว sbo เข้า ได้ แน่นอน casino hacker ฟรี www sbo333 com euro betsson jackpot ufabet ดี มั้ ย รอยัล ออนไลน์ ทาง เข้า sbo slot club ช่อง ทาง sbobet lucky cat slot หน้า เว็บ sbobet fun888 mobile เข้า เล่น sbobet the casino hacker wwwsbobet mobile party pg slot baba wild slot โหลด royal online v2 gclub 44 micro knights การ เข้า sbobet lucky rich slot sbobet มือ ถือ android squad inferno new york slot link sbobet มือ ถือ ช่อง ทาง เข้า sbo3333 สำหรับ มือ ถือ sbo222 wap เจษฎา เบ ท 6 reel rush netent crown 89 slot ufabet 72 สมัคร แจ้ง ฝาก sbobet ca ทาง เข้า sbobet 168 sbobet มือ ถือ android 888 poker apk ufabet ดี มั้ ย เจษฎา เบ ท 888 ช่อง ทาง เข้า ส โบ gclub agent royal online apk party pg slot sbo เข้า ไม่ ได้ gclub 555 gclub 24 auto หน้า เข้า sbo แจ้ง ฝาก sbobet ca 100 cats slot hack royal casino sbo มือ ถือ new york slot ยู ฟ่า 191 เข้า ระบบ sbobet มือ ถือ android เจษฎา เบ ท 222 sbobet888 สล็อต extra chili megaways ts911 สมัคร wwwsbobet mobile big win cat โหลด royal online v2 apk lucky cat slot เว ป เจ ษ พัน ทิป slot hacker program
        ้ เจษฎา เบ ท| royal online v2 มือ ถือ apk| royal online v4| the hacker casino| วิธี สมัคร royal online v2| hack slot apk| รถ ตู้ ไป บ่อน ปอย เปต| ali baba slot| happy 888 slot| เทคนิค ยิง ปลา royal casino| เอเย่นต์ ส โบ เบ็ ต| สมัคร สมาชิก ts911| 888 poker android apk download| sbobet มือ ถือ android| sbo เข้า ไม่ ได้ ได้| เว ป เจ ษ vip| sbo เข้า ไม่ ได้| วิธี เข้า sbobet| www potato222| link to sbobet| crown 89 slot| royal ออนไลน์| extra chili megaways| หน้า เล่น sbo| ยู ฟ่า 191 pantip| เอเย่นต์ ส โบ เบ็ ต| slot happy| royal online 69| 888 poker apk download| casino hacker ฟรี| www pic5678 th th| 888 poker apk| เจษฎา เบ ท 111| bm hacker casino| gclub 44| hack royal casino| โหลด royal online v2 apk| solar temple slot| cat slotxo| ufa191 facebook| ยู ฟ่า 191 pantip| royal online v2 เปลี่ยน รหัส| 999 lsm| sbo มือ ถือ| gclub group| hack royal casino| the casino hacker 2020| royal online v2 ฝาก เงิน| www potato222| ยู ฟ่า 191 pantip| sbobet888 สล็อต| ufa191 facebook| sbo แจ้ง ฝาก| inferno star wars| sbobet อัพเดท ล่าสุด| 3d roulette| สมัคร ts911| ufa191 app| เจษฎา เบ ท 168| เกม ส โบ เบ็ ต| โรงแรม ใน ปอย เปต| sbo เข้า ได้ แน่นอน| link sbobet มือ ถือ| the casino hacker ฟรี| sbo เข้า ได้ แน่นอน| royal online v2 เปลี่ยน รหัส|