<table id="cxu3"><th id="cxu3"><center id="cxu3"></center></th></table>

<menuitem id="cxu3"><strong id="cxu3"><source id="cxu3"></source></strong></menuitem>
  • <menuitem id="cxu3"><acronym id="cxu3"></acronym></menuitem>

  • <nobr id="cxu3"><optgroup id="cxu3"></optgroup></nobr>
      1. <label id="cxu3"><label id="cxu3"></label></label>
      2. <output id="cxu3"></output>
        <cite id="cxu3"></cite>

      3. <code id="cxu3"></code>
        <tbody id="cxu3"></tbody>
      4. <output id="cxu3"></output>
        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
         
        แจก ส ปิ้ น coin master โบนัส แนะนำ เพื่อน crowncas เว็บ แทง ฟุตบอล fun88com jackpotxo3 ทาง เข้า จี ล็ อ ต โต้ 8888 เค ดิ ต ฟรี วัน นี้ วิธี เล่น ไฮโล pantip 918 สล็อต jetsadabet สมาชิก fun88 ทาง เข้า 2018 วัน นี้ galaxy casino online บิงโก สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา gclub pc เล่น poker เว็บ ไหน ดี mega slot casino ฝาก 19 รับ 100 ล่าสุด luckme casino ส โบ 222 918kiss download 2020 sbothaiclub coin master ส ปิ น ฟรี คา สิ โน happyluke วิธี ทํา ส ปิ น ฟรี coin master เทคนิค การ เล่น ไฮโล ฝาก ระ ติ๊ บ หวย ยี่ กี เจษฎา เบ ท สมัคร รับ เครดิต ฟรี 2020 mafia 808 เครดิต ฟรี sbobet88888 มือ ถือ สล็อต ฝาก ออ โต้ sbobet rich88 สมัคร สมาชิก mega888 โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท ราคา ไหล sbobet สล็อต 198 ทาง เข้า บา คา ร่า 1688 ทาง เข้า jetsadabet 918kiss slot game download หา ส ปิ้ น ฟรี coin master ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ โบนัสเครดิตฟรี ไม่ต้องฝาก สล็อต ยิง ปลา เครดิต ฟรี 100 ไม่ ต้อง แชร์ join slot ฝาก 1 บาท รับ 100 2020 k9win สมัคร สมาชิก สมัคร เว็บ fun88 dafabet แอ พ lsm99s winner55 รับ เครดิต เล่น ก่อน ไม่ ต้อง ฝาก lsm99 เข้า ไม่ ได้ fun88 สมัคร jetsadabet เว ป เจต เล่น สล็อต ฟรี ได้ เงิน จริง ไม่ ต้อง ฝาก ทีเด็ด ส โบ เบ็ ต 888 jetsadabet ล่ม รู น rov แทง ค์ เข้า สู่ ระบบ gclub เกม poker ออนไลน์ ดาวน์โหลด เกม 918kiss sbo365 มือ ถือ เว็บ เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ https ufafever com ufabet login ไป คา สิ โน ปอย เปต สมัคร เค ดิ ต ฟรี ไม่ ต้อง ฝาก gclub ฟรี 15 lsm99club 918kiss เล่น ฟรี sbobet25 mgm678 casino โปร ส ปิ น coin master ไม่ จํา กัด ดาวน์โหลด kiss918 โบนัสเงินฝาก sbobet555 royal คา สิ โน แอ พ ส ปิ น ฟรี coin master ios w88 live casino ลิ้ ง แจก ส ปิ น coin master สมัคร fan88fun888 ฟรี 300 หิ นิำะ 888 ส โม เบส ฟรี ทดลอง เล่น ถอน ได้ 2019 mafia88 gaming สล็อต ฝาก ออ โต้ แจก เครดิต ฟรี 500 ไม่ ต้อง ฝาก 2563 918kiss login download วิธี โปร coin master เล่น ก่อน ไม่ ต้อง ฝาก คา สิ โน lsm99 เว็บ เล่น poker fun88 แจก เสื้อ บอล หิ นิำะ 888 ทาง เข้า เว็บ gclub fbi5836m goal club sbobet รู น แทง ค์ ดาวน์โหลด mega888 ปอย เปต เว็บ สล็อต 168g วิธี เล่น ไฮโล pantip 365gclub v2 fin88 คา สิ โน sbobet online 99 sbobet ทาง เข้า ล่าสุด sbobet mobile iphone ทาง เข้า เอ เย่ น ส โบ ทาง เข้า 24sbo sbothailand ทาง เข้า fun88 มือ ถือ เกม lsm99 ส โม เบส 888 i slot สล็อต เติม 10 ได้ 100 northern sky slot 918kis ios apk ลำดับ ไพ่ โป ก เกอร์ เครดิต ทดลอง เล่น ฟรี 500 บาท wwwpic5678 lsm99 ฝาก ถอน สมัคร สมาชิก fun88 coin master ส ปิ น ฟรี android mm8bet ทาง เข้า sbobet สมัคร สมาชิก lsm99 ขอโบนัส ยี่ กี เจษฎา เบ ท coin ส ปิ น ฟรี บิงโก งาน วัด บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น 918kiss เกมส์ ไหน ดี แตก ง่าย sbobet22 ทาง เข้า sbobet 365 เค ดิ ต ฟรี ไม่ ต้อง ทํา เทิ ร์ น fun88 กีฬา fun888 login เข้า fun88 บา คา ร่า s10 แจก ทุน เล่น สล็อต ฟรี คา สิ โน ออนไลน์ ฟรี เครดิต 2020 beer777 pc sbobet285 ทาง เข้า ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ การ เล่น ไพ่ โป๊กเกอร์ วิธี เพิ่ม ส ปิ น ใน เกม coin master sbothai ทาง เข้า ปิดบัญชี บา คา ร่า สล็อต ฝาก เงิน ท รู้ วอ เลท split casino lsm99vip happyluke โกง สมัคร รับ เครดิต ฟรี ล่าสุด big bang slot wow gclub วิธี เพิ่ม ส ปิ น coin master ios sbobet game sbobet129 หวย เจษฎา vip เกม บิงโก ตัวเลข spartacus casino sbobet777 สมัคร วิธี เล่น ไฮโล pantip user gclub สล็อต niki sbobet444 โค้ด ส ปิ น coin master ล่าสุด สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก 2020 เข้า ส โบ มือ ถือ mafia แจก เครดิต ฟรี ไม่ ต้อง แชร์ คลับ คา สิ โน xog สล็อต แทง หวย ออนไลน์ เจษฎา ufa casino 55 ส ป ริ้น ฟรี coin ism99 online ส ปิ น ฟรี coin casino elite จี คลับ คา สิ โน ออนไลน์ สมัคร สมาชิก lsm99 casinomodule โหลด kiss918 แทง หวย jetsadabet bet slot club สมัคร เอ เย่ น sbobet lsm99 ถอนเงิน ขั้น ต่ำ slot magic casino รวย ล็ อ ต โต้ 560bet รับ ส ปิ น coin master lsm19 ฝาก ถอน mafia รับ เครดิต ฟรี ไพ่ แบ ล็ ค แจ็ ค วิธี เล่น casino dices coin master ส ปิ น ฟรี pantip casino 1xbet sbobet game poker เงิน จริง line dafabet สล็อต pp เครดิต ฟรี gclub ฟรี 500 2018 ล็ อ ต โต้ เว็บ ปอย เปต pantip ufabet slot gclub mobile android ทาง เข้า slm99 สลอด 6666 lsm99 ล่าสุด บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น สล็อต ออนไลน์ fifa55 เล่น poker online ฟรี coin master ส ปิ น ฟรี 2020 ส ปิ น ฟรี coin master โปร 888 casino paypal 918kiss apk ล่าสุด สมัคร ยูสเซอร์ ฟรี sbobet888 ทาง เข้า ล่าสุด gclub ฟรี 15 ล็ อ ต โต้ 88 โร เยอ ร์ คา สิ โน ทาง เข้า เล่น จี คลับ เข้า sbo ฟรี ส ปิ น sbobetbeer777 joker game casino คา สิ โน แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ k9win ดาวน์โหลด การ เพิ่ม ส ปิ น coin master ฝาก 19 รับ 100 ล่าสุด โบนัสคาสิโน ไม่ต้องฝากเงิน th9 casino mafia slot ล่าสุด jetsada lottovip หมุน สล็อต ฟรี 2019 สล็อต 2020 ล่าสุด ยืนยัน เบอร์ รับ เครดิต ฟรี วิน เซอร์ คา สิ โน ปอย เปต โบนัส ฝาก เงิน สมัคร sbo888 casino monopoly live sakura slot สล็อต ฝาก ขั้น ต่ํา 10 บาท 789 gclub แทง หวย jetsada ส โบ เข้า ไม่ ได้ royal gclub1688 8888lsm sg8bet casino king roman casino อยาก ได้ ส ปิ น ฟรี coin master เข้า เว็บ sbobet fun888 มือ ถือ gclub69 หิ นิำะ ส โม เบ ท 777 เว็บ lsm99 สมัคร บอล ออนไลน์ ฟรี hex online casino tiki fruits slot casino neosurf รูป แบบ ไพ่ poker rolet casino เว็บ poipet pantip ทาง เข้า sbobet 24 ทาง เข้า gclub ผ่าน เว็บ lsm99 ฝาก ถอน slotv9 รับ 100 tarzan slot แจก โค้ด ส ปิ น coin master dafabet คือ dafabet แอ พ sbobetv8 เครดิต ฟรี ถอน ง่าย 2018rb88 ฟรี 300 sbobet888 มือ ถือ ถอนเงิน fun88 dafabet fun88 dafabet ถอนเงิน ไม่ ได้ เว็บ ส ปิ น ฟรี coin master กำถั่ว จี คลับ mafia55 สมัคร 918kiss hack unlimited w88 mobile casino lsm99 login ทาง เข้า บา คา ร่า gclub เล่น gclub ผ่าน เว็บ welcome reloadbet casino pic5678 คอม ติดต่อ lsm99 คี โน วิธี ขาย ส ปิ น coin master joker ฟรี เครดิต ไม่ ต้อง ฝาก 2020 newcasino lsm99club เว็บ เจษฎา หวย เค ดิ ต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิตฟรีแค่สมัคร da vinci slot dafabet 99 โบนัสเงินคืน เค ดิ ต ฟรี 2020 เครดิต ฟรี 500 บาท จี คลับ 8888888 คา สิ โน ออนไลน์ royal เค ดิ ต ฟรี ไม่ ต้อง แชร์ ล็ อ ต โต้ วัน สมัคร ครั้ง แรก ฟรี เครดิต 2020 เว็บ แทง ฟุตบอล สมัคร happyluke โบนัส เครดิตฟรี แบบไม่ต้องฝากเงิน www gclub6666 happyluke คือ สล็อต เครดิต ฟรี เทิ ร์ น 1 เท่า gclub 456 เทคนิค การ ฟัง เสียง ไฮโล ฝาก ระ ติ๊ บ 918kiss download 2019 ios ถอนเงิน dafabet นาน ไหม สล็อต ผล ไม้ โชค ดี ทาง เข้า lsm65 เค ดิ ต ฟรี ถอน ได้ 2020 สล็อต ไม่มี ขั้น ต่ำ SBFPLAY99 สล็อต 911 sbobet168 เข้า ไม่ ได้ เครดิต ฟรี ไม่ ต้อง เท ริน รู น rov แทง ค์ ทาง เข้า happyluke ล่าสุด fin88 คา สิ โน เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2019เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร mafia slot เครดิต ฟรี ไม่ ต้อง แชร์ lsm99vip เครดิตฟรี ไม่มี เงื่อนไข lord casino เข้า เล่น royal online gclub ทาง เข้า โค้ด รับ ส ปิ น ฟรี coin master เครดิต ฟรี ไม่ ต้อง เท ริน spinser casino สูตร coin master lsm99 9 888 casino android mafia88 สมัคร coin master หา ส ปิ น ฟรี วิธี เพิ่ม ส ปิ น coin master ios sbobetv8 gclub god halloween jack slot เค ดิ ต ฟรี 2020 เล่น poker online แอ ป ล็ อ ต โต้ วี ไอ พี โค้ด ฟรี ส ปิ น coin sbobetsg mobile คา สิ โน ปอย เปต 777 แทง สล็อต ฟรี เครดิต mafia gclubfree casino riviera las vegas mb88 casino เอา ส ปิ น coin master ฟรี casino jackpot party สล็อต โบนัส 200 คา สิ โน โปร โม ชั่ น ทาง เข้า sbobet agent เว็บ จี คลับ ออนไลน์ lsm999 สมัคร คา สิ โน ปอย เปต ที่ไหน ดี pantip jetsadabet ล่ม คา สิ โน ออนไลน์ โปร โม ชั่ น เข้า จี คลับ ทาง เข้า royal gclub royal online 7777 สล็อต ฟรี ส ปิ น ไม่ ต้อง ฝาก ถอน ได้ สล็อต ออนไลน์ 168 tournament bonus jetsadabet รีวิว สมัคร คา สิ โน sbobet แอ พ jetsadabet ทาง เข้า เล่น lsm99cash jetsadabet allnew555 เว็บ หวย เจษฎา ใหม่ jetsadabet222 agentgclub ทาง เข้า ส โบ เบ็ ต แทงบอล royal gclub มือ ถือ sbobet 560 gclub plus ยี่ กี เจต auto slot 918 แจก ฟรีสปิน2020 ทาง เข้า sbo999 เข้า สู่ ระบบ gclub ถอนเงิน dafabet เข้า เว็บ sbobet gclub next www lsm2558 comwww lsm99 bet lsm99 info gclub link เข้า fun88 ไม่ ได้ lynsbobet sbobet888 คา สิ โน ปอย เปต ออนไลน์ เครดิต ทดลอง เล่น ฟรี 500 บาท สปินฟรี coin master pantip gclub online 999 ruby888 android dafabet pc ขอ โบนัส สล็อตออนไลน์ โบนัสเครดิตฟรี ไม่ต้องฝาก ทาง ส โบ เบ็ ต 9988gclub ซื้อ หวย เจต 888 dragons happyluke วิธี เพิ่ม ส ปิ น coin master ฟรี sa game 350 northern sky slot ทาง ส โบ เบ็ ต เครดิต ฟรี winsor mafia555 สมัคร pin casino indukbola เข้า สู่ ระบบ jetsadabet gatorama casino ราคา บอล ไหล sbobet เว็บ ไฮโล แจก ฟรี m88 casino asia jetsadabet vip ทาง เข้า agent sbobet สล็อต คืนสูงสุด 7% sb0bet888 เครดิต ฟรี ไม่ ต้อง แชร์ joker ทาง เข้า fun888 คา สิ โน ฟรี เครดิต ไม่ ต้อง ฝาก 2020 99 จี คลับ ไพ่ โป ก เก อ คือ เจ ษ ฏา เบ ท ทาง เข้า เว็บ sbobet วิธี เล่น แบ ล็ ค แจ็ ค เข้า ระบบ sbobet ไฮโล ออนไลน์ พื้นบ้าน ฮ อ ลิ เดย์ พา เล ซ ปอย เปต coin master โปร ส ปิ น 2020 4579 ล็ อ ต โต้ บิงโก ซื้อ ที่ไหน american poker 90 g ครับ 88888 เจต ฏ ดา เบส แจก ฟรี ไม่ ต้อง แชร์ kkkk99net gclub 8899 วิธี ส ปิ น coin master ฟรี สล็อต ฟรี เครดิต 2019 gclub god gclub link ไฮโล kingmaker serbian casino แทง หวย ออนไลน์ jetsada สล็อต แตก ง่าย ทุน น้อย joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก คา สิ โน โร เยล สมัคร แทง บอล ออนไลน์ ฟรี คา สิ โน เติม true wallet ไม่มี ขั้น ต่ํา เว็บ บา คา ร่า ปอย เปต rulett online รอยัล v2 สมัคร ใหม่ รับ เครดิต ฟรี ทันที 2020 แจก ส ปิ น ฟรี coin master facebook ส โบ เบ็ ต 88888 royalsbobet สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก 2020 โปร ส ปิ น ฟรี coin master สมัคร วัน นี้ รับ เครดิต ฟรี 2020 k9win สมัคร madera casino gclub ป๊อก เด้ง เข้า เว็บ ส โบ เบ็ ต casino pullman ล็ อ ต โต้ 77 แทง หวย เจต วิธี เอา ส ปิ น coin master สล็อต happy จี คลับ ไอ โฟน w77 casino ฟรี ส ปิ น coin ส โบ เบ็ ต 168 โหลด xe88 gclub pc royal casino 888 dafabet คา สิ โน gemix casino gclubfree snake arena slot scr888 ฟรี เครดิต lsm99click ฝาก 5 รับ 100 ล่าสุด 918kissauto co ทาง เข้า happyluke ฟรี 300 sbobet888 mobile http ab24hr allbet asia com login happyluke ถอนเงิน gclub600 โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท versailles gold slot หา เค ดิ ต ฟรี ทาง เข้า gclub888 bet123 casino สมัคร สมาชิก fun88 วิธี หา ส ปิ น coin master sportbet casino ดาว โหลด เกม 918kiss iosเครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร gclub 8899 lsm99 ฝาก ถอน 918kiss เล่น ใน คอม bet slot club happyluke ดี ไหม dafabet poker casino playamo 918kiss download ios 2019 laossbobet ล็อกอิน fun88 m88 casino online สมัคร สมาชิก fun88 888 casino android สล็อต สมาชิก ใหม่ ฟรี เครดิต คาสิโนออนไลน์ ถอนเงิน fun88 sbobet111 slot v casino online zig zag 777 สล็อต เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ joker allbet24hr วิธี ได้ ส ปิ น เกม coin master lsm99 ดี ไหม sbobetcasino sb0bet tiki fruits slot อยาก ได้ ส ปิ น ฟรี coin master สล็อต 88 ฟรี เครดิต magic slot machine ฮ อ ลิ เดย์ พา เล ซ ปอย เปต ตัวแทน gclub sbothailand สมัคร sbobet 222 lsm99 ฝาก ถอน http ab24hr allbetasia com login gclub10 gclub 16888 fafa 117 sbo333 เข้า ไม่ ได้ แอ ป ล็ อ ต โต้ วี ไอ พี ลิ้ ง dafabet login jetsadabet www lsm99 สมัคร sbothailand lsm99 line g ครับ 88888 wwwsbo666 gclub คา สิ โน jetsadabet user login สมัคร เว็บ lsm live house casino k9win สมัคร สมาชิก 918kis ios apk สมัคร ครั้ง แรก ฟรี เครดิต 2020 mafia88 สมัคร lsm99 2019 happyluke 888 sbobet worldclass agent sbobet ทาง เข้า bet88thai ดี ไหม เติม 100 ฟรี 300 lsm99 ล่าสุด เครดิต ฟรี winsor แอ พ ล็ อ ต โต้ 918kiss ไอ โฟน bitcointalk gambling fan88 ทาง เข้า royal casino v2 jetsadabet ล่ม ทาง เข้า ส โบ เบ็ด ฟรีสปิน15ครั้ง โปร โม ชั่ น วัน เกิด คา สิ โน jetsadabet ลืม ชื่อ ผู้ ใช้ ยี่ กี เว็บ เจ ษ santa slot ทาง เข้า ส โบ เบ็ ต ล่าสุด gclubs สมัคร ยูสเซอร์ ฟรี tiki fruits slot sbobet เข้า ได้ แน่นอน pussy888 เครดิต ฟรี sbothai8 ทาง เข้า แจก ส ปิ น coin grandxo99 ทาง เข้า royal online v2 แจก ฟรี 100 ไม่ ต้อง แชร์ สล็อตฟรี yoyo casino 43 ทาง เข้า fun555 918kiss ดาวน์โหลด c9bet99 jetsadabet เ ส ปิ้ น ฟรี coin master ios ดาวน์โหลด แอ พ happyluke jetsadabet222 เกม poker ออนไลน์ gclublotto poker เงิน จริง playlive88 live22 โล ยั ล คา สิ โน เกม 981kiss lsm99 net sbobet168 เข้า ไม่ ได้ versailles gold slot บา คา ร่า คอมมิชชั่น คือ เล่น ก่อน ไม่ ต้อง ฝาก fun88 ฝาก เงิน แจก ฟรี ส ปิ น เกม coin master w99 casino jetsadabet allnew999 multi wild slot gclub ป๊อก เด้ง poker เงิน จริง android ส ปี ด บา คา ร่า s15 ทาง เข้า sbobet cz เล่น สล็อต ฟรี ไม่ ต้อง ฝาก jetsadabet 8888 วิธี ได้ ส ปิ น เกม coin master wildslots casino รู เร็ ต serbian casino วิธี หา ส ปิ น ฟรี coin master joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ fin88 casino croupier blackjack ลิ้ ง ส ปิ น ฟรี coin master 2020 ทาง เข้า sbo24hr ส โบ 222 sbobet7 slot191v1 เครดิต ฟรี สมัคร รับ ทันที lsm99 com สมัคร tomato555 ค่าย จี คลับ happyluke casino แจก ฟรีสปิน2020 fbi5836m fin88 casino spinal tap slot gclub คา สิ โน ทาง เข้า sbobet cz คา สิ โน โปร โม ชั่ น dafabet poker มือ ถือ เกม โป๊กเกอร์ ออนไลน์ แอ พ ล็ อ ต โต้ วี ไอ พี jetsadabet ปิด สล็อต 911 royal online 666 casino f lsm99x beer789com enterplay casino xog สล็อต โปร เกม coin master ส ปิ น หวย ยี่ กี jetsadabet ซื้อ หวย ออนไลน์ jetsadabet ลิ้ ง ค์ รับ ส ปิ น coin master lsm ทาง เข้า เว็บ ปอย เปต ดี ไหม หวย ยี่ กี เจษฎา เบ ท live22 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 เว็บแทงบอล สูตร ยี่ กี่ jetsadabet gclub call center เว็บ แทง บอล ส โบ เบ็ ต ฟรี เครดิต สล็อต ไม่ ต้อง ฝาก ส ปิ้ น coin master ฟรี วิธี ได้ spin coin master inferno star neonvegas casino casino 1xbet ให้สล็อตฟรี 15 ครั้ง พร้อมโบนัสสูงถึง 5,000 บาท! evolution slot marathon casino youlike777 versailles gold slot สมัคร บา คา ร่า ปอย เปต slot 918kiss auto โบนัส Free Spin UFABET lsm99 ล่าสุด sbobet mobile ล่าสุด เครดิตฟรี ไม่มี เงื่อนไข slot happyluke คา สิ โน โร เยล โป ก เก อร bet88thai ดี ไหม การ เพิ่ม ส ปิ น coin master จี คลับ เล่น ผ่าน เว็บ 918kiss ดาวน์โหลด casinol ทาง เข้า lsm99 jetsada เข้า สู่ ระบบ สล็อตออนไลน์ เครดิต ฟรี gxy888 ezugi casino king kong slot joker gclub next จี คลับ เล่น ผ่าน เว็บ แจก ฟรี 100 ไม่ ต้อง แชร์ อยาก ได้ ส ปิ น เยอะ ๆ coin master slottojam casino jetsadabet pantip รีวิว รับ ส ปิ น ฟรี coin master ฟรี ทาง เข้า sbobetmix 888 gold slot lsm ทาง เข้า sbobetnew joker ฟรี เครดิต ไม่ ต้อง แชร์ เกม บิงโก ยอด ฮิต เครดิต ฟรี สล็อต ไม่ ต้อง ฝาก 918kiss สมัคร ท รู วอ เลท วิธี เล่น ไฮโล pantip energoonz happyluke login ติดต่อ เอ เย่ น จี คลับ bet333 mobile lsm99 เข้า สู่ ระบบ วิธี หา ส ปิ้ น coin master โปร โม ชั่ น alpha88 วิธี เล่น ไฮโล pantip ทาง เข้า royal gclub 15 ฟรี ส ปิ น coin master ฟรี ส ปิ น แอ พ แจก ส ปิ น coin master fun88 esports coin master โปร ส ปิ น 2020 กด รับ ส ปิ น ฟรี coin master แอ พ เล่น ไฮโล ทาง เข้า ส โบ เบ็ ต สมัคร sbobet mobile jetsada หวย will's casino gclub 98 ดาวน์โหลด mega888 ล่าสุด แค่ สมัคร ก็ รับ เครดิต ฟรี ล่าสุด ส ปิ น ฟรี coin master ฟรี ไม่ จํา กัด night casino รอยัล คา สิ โน ออนไลน์ vwin365th เข้า ส โบ เบ ท เว็บ poker รอยัล คา สิ โน ออนไลน์ เครดิต ฟรี 150 2020918kiss ฟรี เครดิต 1000 บาท gclub ฟรี 15 เข้า sbo888 เกม poker ออนไลน์ sbobet66 918kiss เกม ไหน แตก ง่าย สุด บา คา ร่า ปอย เปต สมัคร sbobet97 ส ปิ น ฟรี rating casino บิงโก ซื้อ ที่ไหน เล่น จี คลับ ออนไลน์ halloween casino sbobet333 เข้า ไม่ ได้ royal online line slot สมัคร ใหม่ ได้ รับ เครดิต ฟรี ไม่ ต้อง ฝาก รู น rov แทง ค์ ติดต่อ lsm999 versailles gold slot ไฮโล ออนไลน์ ได้ เงิน จริง ผ่าน มือ ถือ vwin365th ตัวแทน gclub ww77 casino แจก ส ปิ น coin master ฟรี ทาง sbobet joker allbet24hr lsm99 game สมัคร scr888 ฟรี เครดิต ไฮโล น้ำเต้า ปู ปลา ออนไลน์ join slot kiss918 ดาวน์โหลด sbobet mobile 777 ufa casino 55 ทาง เข้า gclub ใหม่ ล่าสุด แอ พ มือ ถือ fun88 sbo555 ไว้ใจ ได้ ninja slots เกม ไพ่ โป ก เกอร์ แจ กลิ้ง ส ปิ น ฟรี coin master 88cashbet สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก casino havana ฝาก 1 บาท รับ 100 ล่าสุด 2020 100 ฟรี ส ปิ น coin master เข้า sbo ไม่ ได้ sbobet game casino v ib888 คา สิ โน jetsadabet 222 ทาง เข้า sbobet ล่าสุด fun88 พัน ทิป ทาง เข้า agent sbobet ล่าสุด casino plus ทํา เทิ ร์ น บา คา ร่า สมัคร สมาชิก mega888 casino sun mysterious slot สมัคร pay69 slot หมุน วง ล้อ ฟรี huone casino ct855 live casino คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 sbobet7 dafabet fun88 ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด ios 918kiss โหลด ยี่ กี เจษฎา เบ ท ส ปิ่น ฟรี เครดิต ฟรี ไม่ ต้อง เท ริน คา สิ โน ปอย เปต ดี ที่สุด ฝาก 100 รับ 200 ไม่ ต้อง ทํา เท ริน vegas live slot diamond inferno slot dafabet 63 แอ พ ล็ อ ต โต้ วี ไอ พี ยี่ กี่ jetsada ลิ้ ง แจก ส ปิ น เกม coin master โป ก เก อร bocasino jetsadabet หวย sbobet444 dafabet ios jetsadabet 222 บา ค่า ร่า ฝาก ออ โต้ สล็อต 88888 royal gclub online รับ เครดิต ฟรี 300 g gclub ฟรี ทดลอง เล่น ถอน ได้ 2019 คา สิ โน ออนไลน์ ฟรี เครดิต 2020 ส โบ เบ็ ต 777 สมัคร ส โบ เบ ท โบนัส รี โหลด เค ดิ ต ฟรี ล่าสุด ไม่ ต้อง แชร์ jetsadabet vip 1 คือ casino no lsm99online สมัคร k9win สมัคร สมาชิก 2bcasino ส โบ เบ็ ต 888 sbobet347 สมัคร แจก ส ปิ้ น เกม coin master เอา ส ปิ น ฟรี coin master ios login jetsadabet เค ร ฟรี ไม่ ต้อง ฝาก 2020 ฟรี เค ดิ ต ไม่ ฝาก ไม่ แชร์ ทาง เข้า 24sbo วิธี เล่น ไฮโล pantip ทาง เข้า sbo365 จี คลับ ผ่าน เน็ต casino maxbet 999lsmcom ิ beer789 แอ ป ฟรี ส ปิ น coin master เล่น poker online สล็อต สมัคร ฟรี เครดิต live casino house ฟรี 300 ได้ ส ปิ น ฟรี coin master วิธี ทํา ส ปิ น coin master เกม ไพ่ โป ก เก อ สมัคร sbobet โดยตรง หวย เจษฎา ออนไลน์ สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา pp สล็อต royal gclub online สล็อต ออนไลน์ ufa345th คลับ มือ ถือ เครดิต ฟรี คา สิ โน 2020 สมัคร เค ดิ ต ฟรี ไม่ ต้อง ฝาก เว็บ lsm99 highroller casino bonus เข้า ระบบ jetsadabet รู น แทง ค์ doyser เจษฎา แทง หวย 918 download ios www560bet joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิต ฟรี 100 ถอน ได้ 2561 casino faraon สมัคร 999lsm star77 casino happyluke88 รับ ส ปิ น ฟรี coin master ไม่ จํา กัด ส โบ เบ็ ต 88 แอ ปรับ ส ปิ น ฟรี สมัคร sbobet mobile สมัคร สล็อต รับ โบนัส ฟรี viking clash slot แอ พ ล็ อ ต โต้ วี ไอ พี สมัคร fun88 แจก โค้ด ส ปิ น coin master สล็อต xov9 gclubplatinum เว็บ poipet pantip สมัคร ยูสเซอร์ ฟรี แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 แค่ สมัคร spinal tap slot 918 slot club auto ล็ อ ต โต้ 1999 ปอย เปต เว็บ แอ พ ล็ อ ต โต้ happyluke app เว็บ ปอย เปต ดี ไหม สล็อต 2020 ล่าสุด โป ก เกอร์ ลํา ดับ ไพ่ แจกโบนัสฟรี เข้า sbobet มือ ถือ ไม่ ได้ ทาง lsm99 gladiator jackpot รับ ส ปิ น ฟรี coin master ไม่ จํา กัด lsm99 up sbobet online mobile สล็อต ขั้น ต่ำ 1 บาท ส ปิ้ น ฟรี coin master สูตร หวย ยี่ กี jetsadabet coin master ส ปิ น ฟรี pantip playigo casino การ เล่น ไพ่ poker การ เพิ่ม ส ปิ น coin master jetsadabet pantip rt สล็อต franks casino http ab24hr allbet asia com login ติดต่อ เอ เย่ น จี คลับ ฝาก 100 รับ 300 ล่าสุด kiss777th โปร โม ชั่ น lsm99 line fun88 split casino เทคนิค การ เล่น ไฮโล ฝาก ระ ติ๊ บ gclub10 tek789 เข้า ไม่ ได้ 979 gclub betsoft slot ufa casino 168v1 fun88 มือ ถือ pin casino 2bcasino โค้ด ส ปิ น coin master ล่าสุด หวย ยี่ กี เจษฎา เบ ท สมัคร สมาชิก lsm99 ism99 สมัคร ทาง เขา sbobet poipet คา สิ โน สล็อต ฝาก ถอน วอ เลท แทง หวย ออนไลน์ เจต gclubfree sbobetsh มือ ถือ gtr gclub jetsadabet pantip ฮ อ ลิ เดย์ ปอย เปต sportfun88 double u casino free chip sbobet559 sbobet game www gclub88888 gclub php lsm99 โปร โม ชั่ น ฝาก 19 รับ 100 ล่าสุด ขอ ส ปิ น ฟรี coin master sbobet545 สล็อต dragoon soft แจ กลิ้ง ส ปิ น ฟรี coin master platino casino พนัน ปอย เปต gclub888888 auto เว ป ล็ อ ต โต้ วี ไอ พี m777 casino mobile สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด นางฟ้า fun88 หวย ออนไลน์ เจษฎา live22 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ซิก โบ ออนไลน์ เอา ส ปิ น ฟรี coin master ios lsm99s วิธี ทํา ให้ ได้ ส ปิ น เยอะ ๆ coin master อยาก ได้ ส ปิ น ฟรี coin master coin master ส ปิ น ฟรี thaisbo ส ปิ้ น ฟรี coin master ios โค้ด รับ ส ปิ น ฟรี coin master สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 ปอย เปต 289 royal gclub666 joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แจก ฟรี 100 บาท ไม่ ต้อง ฝาก gclub168 gclub casino ทาง เข้า 24sboonline
        sbobet1688| ทาง เข้า sbo188| คา สิ โน ออนไลน์ ปอย เปต| ส โบ เบ็ ต 168| scr888 login| โปร เครดิต 100| เข้า sbobet777| ลิงค์ รับ ส ปิ น ฟรี coin master ล่าสุด| ฟรีสปิน15ครั้ง| royal casino เครดิต ฟรี| jetsadabet pantip| ฟรี ส ปิ้ น| สล็อต ฟรี เครดิต 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| ราคา บอล sbobet วัน นี้| ทาง เข้า royal casino| fun88mobile| เครดิต ฟรี สมัคร รับ ทันที| poker เงิน จริง| แจก ฟรี ส ปิ น เกม coin master| สล็อต เติม 10 ได้ 100| โปร เกม coin master ส ปิ น| วิธี แทง หวย เจษฎา| ดาวน์โหลด แอ พ happyluke| สมัคร 918kiss ท รู้ วอ เลท| ลิ้ ง ส ปิ น ฟรี coin master 2020| lotto jetsada| หวย เจต ห้อง ฟ้า| holiday palace ปอย เปต pantip| วิธี ส ปิ น coin master ฟรี| สมัคร ใหม่ รับ เครดิต ฟรี ทันที 2020| ทาง เข้า sbobet online| slot maker| fun888 ทาง เข้า มือ ถือ| mbacc6666| kkkk99net lsm99| 15 ส ปิ น ฟรี| รู น สาย แท๊ ง ค์| tek789 เข้า ไม่ ได้| รวม ทาง เข้า sbo| สล็อต ขั้น ต่ำ 1 บาท| เข้า สู่ ระบบ 918kissauto| ฝาก เงิน fun88| sbobet asia เข้า ไม่ ได้| royal online 6666| sbobet24hr ทาง เข้า| micro knights slot| ฝาก 19 รับ 100 ล่าสุด| โบนัสแนะนำเพื่อน| ทาง เข้า lsm ล่าสุด| casino f| rt สล็อต| สมัคร lsm99 ทาง ไลน์| สล็อต แตก จริง| betrally casino| เว็บ หวย เจ ษ ฏา เบ ท| กด รับ ส ปิ น ฟรี coin master| ทาง เข้า royal online| สล็อต 88888| sbobet 2019| เข้า ฟัน 88| poipet 888| american poker 90| เกม ไพ่ โป ก เกอร์| แทง หวย jetsadabet| เค ดิ ต ฟรี 2020| md123 918kiss|