<form id="KK67yNX"><span id="KK67yNX"></span></form>

      <em id="KK67yNX"><span id="KK67yNX"></span></em>
        <form id="KK67yNX"><th id="KK67yNX"></th></form>

        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
         
        เครดิต ฟรี สมัคร ใหม่ ฟีฟ่า 55bet 918kiss ฝาก ถอน ไม่มี ขั้น ต่ำ สล็อต ยู ฟ่า 777 เกม ไฮโล pc ak47 slotxo เกม สล็อต xo ออนไลน์ c8 slot slot ฝาก 20 รับ 100 tss911 เครดิต ฟรี mega joker free slot2499 slot333 สมัคร fifa55 ฝาก ขั้น ต่ํา 100 เครดิต ฟรี 888 แทง ไฮโล ให้ ถูก wms slot 918kiss slot game ป๊อก เด้ง คา สิ โน ออนไลน์ เครดิต ฟรี 2563 ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เว็บ fifa555 เล่น ได้ 200 ถอน ได้ 100 slot168 เครดิต ฟรี slot xo777 สยาม โป็ ก เกอร์ 3cha slotxo slotxo 168 vip joker123 ฟรี เครดิต ไม่ ต้อง ฝาก 918kiss ios ล่าสุด ติดต่อ ufa365 slot 918 slot4 monster joker slot ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 เครดิต ฟรี 3000 slot ฝาก 19 รับ 100 kiss918 allbet คา สิ โน ออนไลน์ 918kiss แอ พ คำนวณ รู้ เล็ ต สล็อต xo joker 2pigs xo สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน เข้า slotxo slotxo69thai โปร xo slotxo ฝาก ถอน วอ เลท red slotxo ฟรี ไม่ ต้อง ฝาก ก่อน slotxo เกม บอล เสมือน จริง อั่ ง เปา สล็อต xo slot 2499 แทง รู joker888 เครดิต ฟรี 1thslot ไลน์ slotxo ไฮโล ฝาก ระ ติ๊ บ slotxo ฟรี เครดิต 100 ไฮโล 600 918kiss ผ่าน เว็บ 918kissauto คา สิ โน 918kiss slotxo เว็บ slotxo ฝาก ถอน อัตโนมัติ play slot โป๊กเกอร์ เงิน จริง ไฮโล พม่า 918kiss monkey c8 slot 8bitslotxo black jack ออนไลน์ เครดิต ฟรี 20 บาท เครดิต ฝาก 1 บาท 999 slot slotxo v1 ไฮโล ฟรี sp918kiss คา สิ โน ป๊อก เด้ง ออนไลน์ สมัคร ครั้ง แรก ฟรี เครดิต slotplay88 slotxo ฝาก ถอน ออ โต้ fortune 918kiss slot joker ฝาก 20 รับ 100 48 slotxo ทาง เข้า ฟีฟ่า 8888 open365 ฟรี เครดิต บ่อน ไฮโล ออนไลน์ สมัคร ได้ เครดิต ฟรี ไท เกอร์ คา สิ โน slot vip แจก ฟรี 100 ไพ่ ออนไลน์ หน้า เว็บ slotxo slot2p xe88th เครดิต ฟรี เกม 168slotxo wwwufa24h slot 5 หน้า ไฮโล 918 ฝาก ถอน ไม่มี ขั้น ต่ํา live22 รับ 100 888 เครดิต ฟรี 1xbet slot 918kiss live22 ไม่ ฝาก ไม่ แชร์ slotxo 168 gaming joker hunter 888 เล่น แบ ล็ ค แจ็ ค ออนไลน์ แทง ไฮโล ให้ ถูก แอ พ คำนวณ รู้ เล็ ต เล่น ไพ่ เงิน จริง slot899 xo slot168 slotxo es fifa5599 สล็อต ออนไลน์ xo ฟรี เครดิต 918kiss hacker slot45 ufa365 สมัคร slot22th live22 slot ฝาก 1 บาท รับ 99 007slotxo เครดิต ไม่ ต้อง ฝาก ก่อน fifa55 คา สิ โน สล็อต xo 1668 slotxo 1234 xo วอ เลท coduca88 เครดิต ฟรี mario xo slot สล็อต xo คิง ค อง winner99 เครดิต ฟรี ไม่ ต้อง ฝาก xo slot cafe คา สิ โน 918kiss 8richd เครดิต ฟรี elmo slot คา สิ โน ป๊อก เด้ง slot joker 1668 slot2499 918kiss พี่ เสือ โปร ทุน น้อย slot ไม่ ต้อง แชร์ เครดิต ฟรี วิธี เล่น databet88 slot joker91 slotxo ฝาก 20 ได้ 100 คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ slotxo 24hr slotxo star slot44th winner55 ฟรี เครดิต slotxo new slo xo slotx0 918kiss ฝาก 19 ไฮโล คลาสสิค ออนไลน์ joker ฝาก ไม่มี ขั้น ต่ํา slot969 slot เครดิต ฟรี 50 บาท สมัคร ใหม่ เครดิต ฟรี s9 slotxo slot joker vip gott7 slot slot auto alert ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท scr888 slot slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา 918kisstm 3win8 ฟรี เครดิต joker slot mobile slot live22 เครดิต ฟรี slot hacker joker ab24hr2 เครดิต ฟรี ป๊อก เด้ง slotxo เติม เงิน wallet xo ฝาก ผ่าน วอ เลท mafia ฟรี เครดิต 50 918kiss ฝาก ท รู วอ เลท เว็บ สล็อต xo mm88bet sport slot009 ไฮโล ไฮเทค คือ ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ slotxo เล่น fifa55 prime ufa365 ติดต่อ เล่น ไพ่ แบ ล็ ค แจ็ ค live22 ฟรี เครดิต ไม่ ต้อง ฝาก โปร โม ชั่ น joker หน้า เว็บ xo slot678 เล่น โป ก เกอร์ ออนไลน์ ได้ เงิน จริง เครดิต ฟรี ไม่ ต้อง ทำ เท ริน slot ฝาก ไม่มี ขั้น ต่ํา สมัคร mm88bet slot24hr slot เติม true wallet ไม่มี ขั้น ต่ํา slotxo 888 slot1234 slotxo wbc slot scr888 ฝาก ไม่มี ขั้น ต่ำ สล็อต xo easy www555 เครดิต ฟรี fifa55 สมัคร tiger918kiss databet88 ดี ไหม winner55 เครดิต ฟรี ไม่ ต้อง ฝาก vegus168 ดี ไหม 1168slot joker ฝาก ไม่มี ขั้น ต่ํา ak47max เครดิต ฟรี เกมส์ ไฮโล เหมือน จริง slotplay88 click slotxo jokerslot99 เครดิต ฟรี เครดิต ฟรี ไม่ ยุ่งยาก megaways jack ฟรี เครดิต 50 slotxo วอ เลท สมัคร 50 ฟรี 100 คา สิ โน ออนไลน์ ดั ม มี่ joker hunter 888 slotxo online เข้า fifa55 สล็อต xo roma gclub ฟรี 500 เครดิต ฟรี 999 918kiss slot auto เกม ไฮโล ออนไลน์ ได้ เงิน จริง โป ก เกอร์ ไพ่ tiger slot 888 918kisskingdom vip 35x slot 918kissworld 918kiss me pantip best 77up สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 เครดิต ฟรี gclub fifa55 เข้า ไม่ ได้ คา สิ โน xo best slot789 memberbet vegus168 2pigs xo kingslots slots v live22th เครดิต ฟรี slotxo dollarstar 918kiss วอ ล เลท 2in2 เครดิต ฟรี สมัคร เครดิต ฟรี สล็อต xo 191 slot เครดิต ฟรี 50 slot dreamtech slotxo ที่ ดี ที่สุด vikings slot slot1234 918kiss joker123auto เครดิต ฟรี scr888 sn888 ไพ่ แค ง เล่น ได้ เงิน จริง 918kiss เวอร์ชั่น ใหม่ happyslot88 slotxo หน้า เว็บ xo 198 kiss ฟรี เครดิต lucky777 เครดิต ฟรี 2pigs xo www918kiss ไพ่ แบ ล็ ค แจ็ ค pantip huga slot เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ 918kiss android android ฝาก 5 บาท ฟรี 99 บาท slot joker 100 fifa55 ฟีฟ่า แอ พ 918 ไฮโล ฟรี slot369 918kissauto สยาม โป ก เกอร์ สล็อต ออนไลน์ ฝาก ถอน ไม่มี ขั้น ต่ำ หาเงิน จาก คา สิ โน สยาม โป็ ก เกอร์ fifa55 ดู ทีวี ออนไลน์ ฝาก เงิน สล็อต xo fin slotxo กระดาน รู เล็ ต 777 slot game slotxo cool joker123auto เครดิต ฟรี 918kiss th 918 แจก เครดิต ฟรี ไฮโล 600 918kisstm สล็อต xo เอเชีย 168 gaming slotxo ราคา ไฮโล fifa55 เข้า สู่ ระบบ download 918kiss ล่าสุด fin888 เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด winner99 เครดิต ฟรี ไม่ ต้อง ฝาก slot189 918kiss ios ล่าสุด winner55 ฟรี เครดิต เสือ มังกร ออนไลน์ มือ ถือ joker slot 888 win88 เครดิต ฟรี สล็อต xo168 m918kiss slot mafia191 fifa55 เครดิต ฟรี 2020 slotx0 สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 918kiss money luk666 เครดิต ฟรี ผล บอล เกม เสมือน จริง fifa55 ฝาก 50 ฟรี 100 game 777 โป๊ก เก้อ สล็อต 777 คา สิ โน ออนไลน์ คา สิ โน ป๊อก เด้ง ออนไลน์ สมัคร ฟีฟ่า 888 super slot slotxo ฝาก วอ ล เลท 918 แจก เครดิต ฟรี แอ พ พนัน เงิน จริง slotxo z slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา เล่น xo slot slot s9 ทาง เข้า ff55 918kissworld สลอด เอก โอ slot ฝาก 1 บาท เครดิต ฟรี mega888 www fifa55bet com 918kiss ผ่าน เว็บ 918dowload ไฮโล เงิน จริง slotxo แจก เครดิต ฟรี 2019 สล็อต xo11 kiss918 เครดิต ฟรี เกม ไฮโล y8 สล็อต xo th gclub slot jackpot slot xo168 แอ พ 918 เครดิต ฟรี เล่น ได้ ถอน เลย 918kisstm ถอน เงิน slotxo slotxo เติม เงิน wallet 2pigs 918kiss 981kiss mbslot สมัคร เอเย่นต์ fifa55 ไพ่ โป ก เกอร์ ออนไลน์ บ่อน ไฮโล ออนไลน์ 918kiss royal fin888 เครดิต ฟรี ส รู ตรู เล็ ต ไฮโล น้ำยาเคมี xo slot69 xo slot allbet slotxo 9 สล็อต xo mobile slot4u xo slot ฝาก 15 รับ 100 แอ พ 918kiss poker ไพ่ slot24th joker เข้า สล็อต slotxo ฝาก วอ เลท win55 เครดิต ฟรี slot ฝาก 1 บาท ได้ 100 kiss918 auto สมัคร เครดิต ฟรี 918 ฝาก ถอน ไม่มี ขั้น ต่ํา joker slot ฟรี เครดิต 918kiss ระบบ ออ โต้ slot246 slot123 mafia555 slot joker slot 678 slot free credit no deposit เล่น เกม slot slotxo69thai เล่น สล็อต โร ม่า fifa ทาง เข้า slot191 slot333 joker ไม่มี ขั้น ต่ํา ไฮ โล 918kiss โอน ผ่าน วอ เลท slotbonus slotxo คิง ค อง slotxogame365 ak47 slotxo slotxo ผ่าน วอ เล็ ต slot dreamtech simple play slot slotxo456 slot4u pgslot ไฮโล สูง ต่ํา 918kiss แจก เครดิต ฟรี 100 เล่น ไพ่ เงิน จริง 918kiss เครดิต ฟรี xo สล็อต สล็อต xo1668 ไพ่ โป ก เก อ w168club เครดิต ฟรี รู เล็ ต สมัคร ฟรี เครดิต ฟรี 918kissworld สมัคร ครั้ง แรก ฟรี เครดิต joker slot 666 happyslot88 slotxo ไพ่ เสือ มังกร ออนไลน์ 3cha slotxo เว็บ 918 rmuaab555 918kiss true wallet ไม่มี ขั้น ต่ํา slotv9 joker 2p slotxo mega888 download pc สล็อต เอก โอ slotxoth888 win88 เครดิต ฟรี slot009 เกม ไฮโล 819 kiss download v9 slot slotxo สล็อต ออนไลน์ slot2pig เล่น สล็อต โร ม่า สล็อต 1688xo xo slot 191 fifa5555 ทาง เข้า เครดิต ฟรี มาเฟีย 555 aec999 slot gclub เครดิต ฟรี slotxo 22th สมัคร ฟรี ไม่ ต้อง ฝาก gclub เครดิต ฟรี ถอน ได้ j9 slot รู้ เล็ ต ตา ละ 5 บาท slotxo 24 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ slotxogold คา สิ โน ไพ่ ดั ม มี่ slot dreamtech เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน สล็อต xo777 918kiss royal เกม slot 918 allbet member slotxo all slot โปร 918kiss 168 สล็อต xo ร้องเรียน 918kiss fifa55 idea สล็อต ฝาก อัตโนมัติ สล็อต xo โจ๊ก เกอร์ เครดิต ฟรี gclub hungry 918kiss slotxo online สมัคร เอเย่นต์ fifa55 slot ฝาก ไม่มี ขั้น ต่ํา fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี 133 betway เครดิต ฟรี slotvip789 เครดิต ฟรี slot189 918kiss อัน ไหน ดี mega888 ไม่มี ขั้น ต่ํา pyramid slot 007 slot สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก 2020 สล็อต xo ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2020 sbobet777 เครดิต ฟรี slotxo ro 2pigjoker 168 galaxy slot สมัคร fifa55u 918kiss ฝาก 19 12ww เครดิต ฟรี ไฮโล ภาษา อังกฤษ scr888 sn888 เครดิต ฟรี 150 slotxo auto 100 slotxo โอน วอ เลท 918kiss แจก อั่ ง เปา slotxo 24 hr slot kiss918 ib888 slot fifa555god http mvegus1682 memberbet net สมัคร fifa9999 slotxo45 slot ฝาก 50 1thslot เล่น ไพ่ เงิน จริง slotxo pantip free เครดิต 918kiss ฝาก the moon 918kiss ufa800 ไฮโล สล็อต ufa365 ufa365 หนัง ดู บอล สด fifa55 888 joker ฟีฟ่า 1688 joker slot 666 918kiss download 2019 pc fifa55na ทาง เข้า vegus168 sure หน้า ไฮโล โบนัส เงิน ฝาก 918 ฟรี เครดิต mm88bet ฝาก เงิน เว็บ ฟีฟ่า 888 slot joker ฝาก ไม่มี ขั้น ต่ํา เครดิต ฟรี live22 เครดิต ฟรี โจ๊ก เกอร์ ไม่ ต้อง ฝาก สมัคร ใหม่ ฟรี เครดิต slotxo ฝาก 10 บาท รับ 100 ล่าสุด lucky 918kiss slot house fifa555fc slot ฝาก 10 slotxo 12 เครดิต ฟรี ไม่ ต้อง ทํา เทิ ร์ น 918kiss pantip คา สิ โน ไพ่ ดั ม มี่ wilderland slot ฝาก ถอน xo ufa365 net fifa9999 login ไฮโล สูง ต่ำ เล่น ไพ่ แบ ล็ ค แจ็ ค fifa55 ลิ้ ง www168slotxo 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก live22 ฝาก 1 บาท ฟรี 99 หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot joker true wallet ไม่มี ขั้น ต่ํา 88 slotxo slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา สล็อต เอ็ ก โอ slot 35x 918kiss th xo slot 77 fifa555 truemoney เครดิต ฟรี เล่น ได้ ถอน ไป เลย super999 slot slotxo aec999 9118kiss bet365 เครดิต ฟรี mas888 ฟรี เครดิต 168 gaming slotxo ทาง เข้า ฟีฟ่า 55 คิง mafia01 เครดิต ฟรี sagame168th เครดิต ฟรี shangri la slot เว กั ส 168 hd สล็อต xo วอ ล เล็ ต scr888 sn888 scr888 88 kiss download slot888online เว็บ ยิง ปลา ฟรี เครดิต zap918kiss เครดิต ฟรี ระบบ ออ โต้ 918kiss เติม true wallet xo slot mobile ป๊อก เด้ง คา สิ โน พนัน ออนไลน์ ฟรี เครดิต fifa55 200 บาท sn888 kiss review 550ww เครดิต ฟรี เล่น ไพ่ เงิน จริง slotxo ฝาก วอ เลท dl19 918kiss slot เครดิต ฟรี ไม่ ต้อง แชร์ member slotxo เติม เกม สล็อต เข้า สล็อต xo casino online jackpot win555 เครดิต ฟรี slotjoker888 mbslot มังกร เสือ คา สิ โน ออนไลน์ fifa55 reward slot joker 888 สล็อต 77 คา สิ โน ออนไลน์ 168galaxy joker slot xo007 slot96 mvegus1682 memberbet live222th slotxo happy slotxo88 slotxo 639 xo slot auto ไม่ ฝาก ไม่ แชร์ xo slot cafe สล็อต xo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ fifa55 ฟีฟ่า slot joker true wallet ไม่มี ขั้น ต่ํา 918kiss ฝาก 200 ฟรี 200 slotxo logo png roulette คือ 918kiss the moon 918kiss เว็บ ตรง สมัคร fifa55u slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา 35 slot slot888vip ถอนเงิน live22 slotxo เล่น ใน เว็บ slot9999 slot ฝาก 50 slotxo asia 777 ไพ่ โบรกเกอร์ 3win8 casino ยู ส ฟรี 918 เล่น ออนไลน์ ได้ เงิน 918kiss เครดิต ฟรี slot thai888 918 live22 ไฮโล 11 kiss918 แจก อั่ ง เปา ไฮโล สมจริง win55 เครดิต ฟรี xo999 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก 2020 918kiss monkey ไฮโล เงิน จริง ฝาก เงิน ufa365 246 slot โป้ ก เกอร์ fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก slotxo 011 สมัคร 50 ฟรี 100 999 super slot joker slotxo 24th 918kissth v3 win win slot คิง ค อง xo โป เกอร์ เก้า เก คา สิ โน สล xo โปร สล็อต ค่าย pg เว็บ 918 66 slot xo คา สิ โน 369slot slotxo credit free สล็อต xo easy 918kiss เว็บ ไหน ดี เครดิต ฟรี 600 slot เครดิต ฟรี 50 joker456 เครดิต ฟรี 918kiss เครดิต ฟรี 2020 tiger918kiss slot joker123th ยู ส เท ส slotxo monday 918kiss fifa555 truemoney เล่น หน้า เว็บ slotxo joker slot เครดิต ฟรี ไม่ ต้อง ฝาก สล็อต เอ็กซ์ โอ slot joker 100 twin79 เครดิต ฟรี เล่น หน้า เว็บ slotxo slotxo game 66 918kissauto slotxo game 88 ฟรี เครดิต เดือน เกิด ทาง เข้า เว็บ fifa555 all 918kiss แจก เครดิต ฟรี xo slotxo45 fifa55n joker 2pigsslot sagame66 ดี ไหม slotxo x ยิง ปลา บา คา ร่า slot ฝาก ไม่มี ขั้น ต่ำ ฝาก วอ เลต ไม่มี ขั้น ต่ํา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ แชร์ slotxo ไลน์ 918 ฝาก ถอน ไม่มี ขั้น ต่ํา nasa slot 550ww เครดิต ฟรี slot joker 100 918kisswallet 1thslot หา เครดิต ฟรี 2020 slotxo asia สมัคร เอเย่นต์ fifa55 slotxo kd slot ฝาก 100 รับ 300 88 kiss download ส รู ตรู เล็ ต แอ พ 918 สล็อต xo เครดิต ฟรี 50 บาท www555 เครดิต ฟรี easy live22 slotxoslotxo เติม เงิน live22 red tiger slot pg slot โปร ทุน น้อย ฟรี 200 ไม่ ต้อง ฝาก roma slot joker เว็บ 918kiss แอ พ ไฮโล ออนไลน์ แอ พ โกง ไฮโล รู เล็ ต สายฟ้า dafabet แบ ล็ ค แจ็ ค ออนไลน์ joker slot auto joker888 เครดิต ฟรี barney slots mafia66 เครดิต ฟรี slotxo png 918kiss บน pc 918kiss อัน ไหน ดี เครดิต ฟรี epic slot joker ฝาก ไม่มี ขั้น ต่ํา 918kaya เครดิต ฟรี บอล เสมือน จริง เล่น ได้ 200 ถอน ได้ 100 918kiss ios ล่าสุด slotxo567 grand918kiss แจก เครดิต ฟรี xo xo ฝาก ถอน extra slot ไฮโล ออนไลน์ เดิมพัน ขั้น ต่ำ 10 168slotxo 2 ww เครดิต ฟรี ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 289slot เล่น ไพ่ เก้า เก ออนไลน์ ได้ เงิน จริง slot 789 vip joker slot ฟรี เครดิต slot ฝาก 19 บาท ได้ 100 918kiss ฝาก ท รู วอ เลท ไพ่ เสือ มังกร ออนไลน์ เล่น xo ผ่าน เว็บ slotxo ลอง เล่น win555 เครดิต ฟรี fifa55 gold สมัคร fifa7777 kiss me 918 เครดิต ฟรี 1234 สล็อต xo v9 918thailand สล็อต xo เติม วอ ล เล็ ท ฟรี ไม่ ต้อง ฝาก ก่อน joker ฝาก ไม่มี ขั้น ต่ำ slot เติม 10 ได้ 100 live22 ฟรี เครดิต ยู ส เท ส slotxo เว็บ สล็อต xo เครดิต ฟรี 2563 918kiss ฝาก ถอน ออ โต้ เล่น โป ก เกอร์ ออนไลน์ เงิน จริง vip slotxo gclub 918 918kiss android 9.0 918 allbet บอล เสมือน จริง ฟีฟ่า fifa555 สมัคร mafia928 เครดิต ฟรี 918 คือ ฝาก 1 บาท ฟรี ไฮโล png เครดิต ฟรี 150 เล่น สล็อต xo ผ่าน เว็บ winner555 เครดิต ฟรี สมัคร สมาชิก fifa55 เครดิต ฟรี ไม่ ต้อง ทํา เท ริน เครดิต ฟรี joker mega888 ไม่มี ขั้น ต่ํา ถอนเงิน joker123 slotxo omg slot1888 เครดิต ฟรี ไม่มี เงื่อนไข z8 เครดิต ฟรี เครดิต 50 mafia เครดิต ฟรี 50 ไฮโล ทอย ลูกเต๋า บา คา ร่า mclub slotxoslotxo ufaallslot777 v9 slot joker89auto 918kissvip เครดิต ฟรี ใช้ บัตร ประชาชน ไฮโล ของ ดู ไฮโล joker123 slot online ลิ้ ง fifa55 สมัคร เครดิต ฟรี hacker slot45 joker ฝาก ไม่มี ขั้น ต่ํา vip slotxo xs slotxo dl19 918kiss เล่น ไพ่ ได้ เงิน จริง 2019 เกมส์ สล็อต มือ ถือ joker true wallet ไม่มี ขั้น ต่ํา slot2you aec999 slot slotxo 10 ได้ 100 slotxo 10 รับ 100 www918kiss slot22th live22 เล่น ฟรี ถอน ได้ slotxo 22th สมัคร แล้ว ได้ เครดิต ฟรี dafabet slot ไฮโล สูง ต่ำ หน้า ไฮโล fifa55casino joker slot 444 918kiss me 2 mafia ไม่ ต้อง แชร์ vegus168 memberbet twin79 เครดิต ฟรี ไม่ ต้อง แชร์ เครดิต ฟรี qtech slot fifa55net genie jackpot สมัคร fifa555 โปร slot 333be โค๊ ด ฟรี 133 เครดิต ฟรี 30 บาท โปร สล็อต ค่าย pg 918kiss4you 918kiss918kiss คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ slotxo24th 918kiss download 2019 pc fifa55kick สล็อต xo888 slotxo แจก 1000 ไพ่ ออนไลน์ win918kiss slotxo แจก 1000 ไฮโล ส กิ ด 3 หน้า ราคา 918kiss ios ล่าสุด ช่อง 77up ไฮโล ส กิ ด tss911 เครดิต ฟรี 918kiss เครดิต ฟรี ล่าสุด เครดิต ฟรี dada99thai ไฮโล 5 บาท slotxo allbet ร้องเรียน slotxo 918kissvip fifa55 idea โป็ ก เกอร์ ออ น ไล happy slotxo slot 2499 เล่น สล็อต live22 918kiss44 fifa55hot ไฮโล มี กี่ หน้า slotxo pc fifa55n slot009 fifa5555 ทาง เข้า 918kiss 1234 slotxoth888 918kiss 55com แอ พ ไฮโล gclub royal1688 เครดิต ฟรี 918kisswallet 007 slot ฟีฟ่า 55 ยู betway slot slot joker ไม่มี ขั้น ต่ํา ไฮโล คลาสสิค ออนไลน์ mvegus1682 memberbet net logincontroller slot joker 100 เล่น ออนไลน์ ได้ เงิน live22 ฝาก ไม่มี ขั้น ต่ํา เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด fifa55 แจก เครดิต ฟรี ลูกค้า เก่า อั่ ง เปา สล็อต xo slotxo spin999 slotxo ฝาก 30 รับ 100 superslot999 xo slotxo988 เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ สมัคร เครดิต ฟรี 200 918 ฟรี เครดิต b2y เครดิต ฟรี slotxo god 007slotxo 918kiss ios ล่าสุด slotxo123 ฝาก 1 บาท ฟรี 50 บาท slotxo pantip fifa55 เข้า ไม่ ได้ ไฮโล สะกิด slot ใหม่ scr888 slot open365 ฟรี เครดิต slotxo allbet fifa55we ทาง เข้า 55 slot ฝาก 9 บาท รับ 100 joker123auto เครดิต ฟรี ฟีฟ่า 1688 เก้า เก คา สิ โน ป๊อก เด้ง คา สิ โน ออนไลน์ slotxo123 เครดิต ฟรี 20 ไม่ ต้อง แชร์ 918kiss เว็บ ตรง superslot999 xo dl19 918kiss slotking88 slotxo ฝาก 20 ได้ 100 asiagaming เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ส็ ลอด xo เว็บ 918kiss เล่น xo หน้า เว็บ slot7 gclub 918 918kiss ฝาก ไม่มี ขั้น ต่ํา agentfifa55 slot hd fifa55 แจก เสื้อ 918kiss d 168galaxy xo casa98 ฟรี เครดิต สล็อต 77 คา สิ โน ออนไลน์ win three card tggame9999 918kiss allbet เครดิต ฟรี ไม่มี เงื่อนไข slotxo pantip slotxo 100 1 เทิ ร์ น แทง รู เล็ ต ไฮโล ฟรี เครดิต ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 918 allbet 2pigjoker slot555 joker 918kiss เวอร์ชั่น ล่าสุด หาเงิน จาก คา สิ โน 918kiss download ios ล่าสุด joker slot ฝาก 10 รับ 100 slotxo24 slot789th enjoy918kiss ขอรับ เครดิต ฟรี ครับ joker true wallet ไม่มี ขั้น ต่ํา heng666 ฟรี เครดิต ทาง เข้า vegus168 joker สล็อต 888 ไฮโล ออนไลน์ slot7 mafia เครดิต ฟรี ไม่ ต้อง แชร์ rmuaab555 slot game 888 ฝาก 500 ฟรี 200 click slotxo สล็อต ได้ เงิน จริง เข้า บัญชี จริง เครดิต ฟรี ไม่ ต้อง แชร์ ฝาก 10 รับ 100 wallet slotxo cool สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 เติม slotxo ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา roulette คือ เว็บ slotxo สมัคร joker689 เว็บไซต์ คา สิ โน ออนไลน์ ดี ที่สุด xoslotz1688 joker โบนัส 100 auto slotxo ฝาก true wallet slot 10 fifa1234 login 77up app mafia191 เครดิต ฟรี สล็อต xo989 slots 500 เว็บ เล่น บา ค่า ร่า ufa800 slot ฝาก ไม่มี ขั้น ต่ํา วอ เลท luk666 คา สิ โน ออนไลน์ slotxo ฝาก 19 บาท รับ 100 ไฮโล พม่า xo 10 รับ 100 เกม สล็อต ไลน์ 22 แอ พ 918 ฝาก 100 ฟรี 100 2020 mvegus1682 memberbet net chklogin slotxo ฝาก 1 บาท
        ufabet ดี มั้ ย| ทาง เข้า sbo อัพเดท ล่าสุด| แจ้ง ฝาก sbobet ca| big cat slotxo| slot santa| reel rush netent| ทาง เข้า เอเย่นต์ sbobet| ทาง เข้า sbo อัพเดท ล่าสุด| แจ้ง ฝาก sbobet24hr| ทาง เข้า sbobet 789| คา สิ โน ออนไลน์ รอยัล 1688| ทาง เข้า sbo slot club| ยู ฟ่า 191 pantip| 888 poker apk download| เบอร์ ส โบ เบ็ ต| ดาวน์โหลด royal online v2 มือ ถือ| sbobet อัพเดท| gclub agent| the casino hacker| vegasberry| gclub 555| sbo222 wap| เว ป เจ ษ ปิด| ดาวน์โหลด royal online v2 มือ ถือ| royal online 999| big cat slotxo| mykonamy| casino hacker ฟรี| big win cat| download royal online v2| casino hacker 6in1| sbobet อัพเดท ล่าสุด| sbo แจ้ง ฝาก| extra chili megaways| ้ เจษฎา เบ ท| agent gclub| เจษฎา เบ ท ติดต่อ| all ways joker slot| 888 poker android apk download| หน้า เล่น sbo| 888 poker android apk download| ช่อง ทาง เข้า sbo| เอเย่นต์ ส โบ เบ็ ต| ช่อง ทาง เข้า sbobet| ninja 777 สล็อต| lego star wars iden versio| เข้า เล่น ส โบ เบ็ ต| ufa191 app| จี 6666| เจษฎา เบ ท ใหม่| 888 poker apk| link sbobet มือ ถือ| royal online v2 โหลด| cat slot 888| เจษฎา เบ ท ติดต่อ| naughty santa slot| roulette hacker| เจษฎา เบ ท ใหม่| happy slot 88| gclub 558| ไป บ่อน ปอย เปต| login gclub| ทาง เข้า lsm 2558| slot hacker program| gclub 555| ทาง เข้า เอเย่นต์ sbobet|