• <nav id="qiZ639"><code id="qiZ639"></code></nav>
  • <wbr id="qiZ639"></wbr>

      <form id="qiZ639"><legend id="qiZ639"></legend></form>
      <nav id="qiZ639"><code id="qiZ639"></code></nav>
      <var id="qiZ639"></var>
        <nav id="qiZ639"><code id="qiZ639"></code></nav>

        <nav id="qiZ639"></nav>
        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
         
        ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ 918kiss hack download ทาง เข้า sbobet ใหม่ jetsadabet 999 goldenslot games slot online casino online coin master หา ส ปิ น ฟรี โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท เครดิตฟรีแค่สมัคร แจก ฟรี ไม่ ต้อง แชร์ vegas live slot สมาชิก ใหม่ ฝาก 1 บาท รับ 100 sbobetbeer777 lsm99th สล็อต ออนไลน์ ufa345th jetsadabet เปิด ใหม่ เติม 100 ฟรี 300 sbobet 666 สมัคร sbobet โดยตรง dafabet ios sbo128 เข้า ไม่ ได้ sbobetv8 fun88mobile sbobet 918 mgm slot 918kiss เติม เงิน วอ เลต ล่าสุด 2019 การ เล่น ไพ่ โป๊กเกอร์ สล็อต ฝาก ถอน วอ เลท sbobet189 เอ เย่ น ส โบ หวย เจ ษ ฝาก 19 รับ 100 ล่าสุด lsm99 line เว็บ หวย ออนไลน์ jetsadabet jetsadabet777 บิงโก ซื้อ ที่ไหน sekabet casino agent sbobet 555 slot 918kiss ดาวน์โหลด android thor slot เว็บ ปอย เปต ดี ไหม royal online ทาง เข้า 918kiss download 2019 ios จี คลับ รอยัล sbobet rich88 กำถั่ว จี คลับ wow gclub agent lsm99 bet123 casino เว็บ ส โบ เบ็ ต ทาง เข้า sbothai สมัคร รับ เครดิต ฟรี ไม่ ต้อง แชร์ coin master โปร ส ปิ น 2020 918kiss สมัคร สมาชิก ใหม่ potato222 mobile happyluke info ทาง เข้า slot lsm99 โค้ด ฟรี ส ปิ น coin sbobet mobile iphone สมัคร สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก จี คลับ 6666 jetsadabet อัตรา จ่าย 24 casino online ทาง เข้า sbo24 โบนัสแรกเข้า สมัคร สมาชิก fun88 เข้า สู่ ระบบ jetsadabet sbobet333 เข้า ไม่ ได้ play jojo casino เว็บ หวย ออนไลน์ jetsadabet ib888 คา สิ โน rich 888 casino poker online ฟรี ทาง เข้า เล่น จี คลับ k club casino 999lsm login สมัคร happyluke lsm19 ฝาก ถอน ฟรี ส ปิ น 50 coin master แจก ส ปิ น ฟรี coin master วัน นี้ fan88 ล็อกอิน 918kiss ดาวน์โหลด ส ปิ น วัน นี้ 2bcasino online sbobetcom bet88thai ดี ไหม happy live22 royal casino เทคนิค jetsadabet เปิด ใหม่ multi wild slot happyluke id line fun88com แจ กลิ้ง ส ปิ น ฟรี coin master ฝาก เงิน fun88 ไฮโล เขย่า สด wildtornado casino mafia slot เครดิต ฟรี ไม่ ต้อง แชร์ lsm สมัคร gclub free sbobetcom gclub444 คา สิ โน ฟรี ส ปิ น lsm99 ดี ไหม รับ ส ปิ น ฟรี coin master ios slot191v1 หวย เจษฎา 1688 โปร เพิ่ม ส ปิ น coin master sportfun88 lsm99 คือ เข้า fun888 สล็อต 2020 ล่าสุด gem24 casino ล็ อ ต โต้ one wwwbeer789 สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี 100 ส โป เบส maxcasino ทาง เข้า เล่น lsm99cash jetsadabet ดี ไหม pantip jetsada vip แอ ป ล็ อ ต โต้ วี ไอ พี ทาง เข้า sbobet ca american poker 90 เกม บิงโก ตัวเลข slot สมัคร ใหม่ ได้ รับ เครดิต ฟรี ไม่ ต้อง ฝาก gclub ฟรี 500 2018 casino roses หา กลุ่ม ไลน์ เครดิต ฟรี ism99 game ฝาก 300 ฟรี 500 ทาง เข้า เล่น จี คลับ วิน เซอร์ คา สิ โน ปอย เปต sbobet888 ทาง เข้า ติด ตั้ง gclub สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก 2020 happy halloween slot lsm99bet blackjack android ส ปิ น ฟรี gclub69 xog สล็อต เว็บ เจ ษ 1688 sbobet iphone gclub png สมัคร สมาชิก ฟรี เครดิต http ab24hr allbetasia com login fun88 มือ ถือ หา ส ปิ้ น coin master royal gclub168 gclub7777 แจ็ ค พอ ต gclub เล่น poker เว็บ ไหน ดี เครดิต ทดลอง เล่น ฟรี 500 บาท dafabet 888 happyluke line dafabet poker royal 6666 online sbo888 มือ ถือ sbobet cz สมัคร sbobet casino 3d สล็อต xov9 sbobet livescore soccer ส็ ลอด สล็อต ฟรี เครดิต 100 2020 temple slot newcasino pin casino ส็ ลอด reloadbet casino ส โบ เบ็ ต 888 gclub7777 lms99 online สล็อตออนไลน์ ไฮโล มือ ถือ การ พนัน นางฟ้า fun88 ฟรี ส ปิ น coin master ios mister casino ส โม เบส 888 123 lsm99 sbobet 777com คาสิโนปอยเปต โหลด 918kiss android sbfbet เล่น poker เว็บ ไหน ดี coin master ส ปิ น ฟรี 2020 join slot jetsadabet ลืม user lsm99 mobile โปร เครดิต 100 แจกเครดิตฟรี 300 ไม่ต้องฝาก2020 jetsadabet ล่ม spinal tap slot ทาง เข้า sboibc888 casino fiz mobile ถอนเงิน dafabet นาน ไหม gclub pc live22 ios 2020 sbobet 5678 โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท blackjack android high roller poker เว็บ แทง หวย เจษฎา เบ ท lsm99 หวย jetsadabet 888 918kiss download ios 2019 สล็อต แตก ง่าย ทุน น้อย king999 casino คา สิ โน ฟรี เครดิต ไม่ ต้อง ฝาก 2020 coin master เพิ่ม ส ปิ น เว็บ หวย เจษฎา ใหม่ coin master หา ส ปิ น ฟรี ฝาก ถอน lsm99 sahara nights slot sbo128 เข้า ไม่ ได้ ให้สล็อตฟรี 15 ครั้ง พร้อมโบนัสสูงถึง 5,000 บาท! คา สิ โน เครดิต ฟรี 2020 คืน ยอด เสีย สล็อต ism99 สมัคร สมาชิก ทาง เข้า jetsadabet wm casino เครดิต ฟรี 2020 เหรียญ coin master ฟรี gclub call center โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท link lsm99 รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท freebet casino เว็บ เจษฎา หวย รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท โบนัสเว็บพนันออนไลน์ วิธี ทํา ส ปิ น ฟรี coin master dafabet โปร โม ชั่ น เข้า จี คลับ ไม่ ได้ รับ ฟรี ส ปิ น coin master jetsadabet 168 เครดิตฟรี ไม่มี เงื่อนไข แอ พ แจก ส ปิ น coin master แอ พ gclub w88 live casino เครดิตฟรีไม่ต้องฝากไม่ต้องแชร์ royal online สล็อต สมาชิก ใหม่ ฟรี เครดิต slotxo89 ฟรี ส ปิ้ น sbobet online ทาง เข้า สล็อตฟรี ทาง เข้า sbobet ca รอยัล คา สิ โน th โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% ให้สล็อตฟรี 15 ครั้ง พร้อมโบนัสสูงถึง 5,000 บาท! สมัคร เกม สล็อต เครดิต ฟรี slot android 777ww4 casino mega888 auto slot เครดิต ฟรี สล็อต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ wwwbeer555 gclub466 168 gclub เว็บ royal online สมัคร sbobet ตรง รู น แทง ค์ rov sbobet9999 ล็ อ ต โต้ 88 mafia แจก เครดิต ฟรี ไม่ ต้อง แชร์ casino ir แอ พ ส ปิ น ฟรี mafia รับ เครดิต ฟรี สมัคร ivip9 royal 6666 online dafabet poker มือ ถือ รับ เพิ่ม ส ปิ น coin master ฝาก ขั้น ต่ํา 50 บาท qq188jan 918kiss slot game download ฝาก 19 รับ 100 ล่าสุด lsm99 ฝาก ถอน ยืนยันเบอร์ รับเครดิตฟรี บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น วี ไอ พี ล็ อ ต โต้ ส ปิ น ฟรี coin master ฟรี ไม่ จํา กัด ฝาก gclubauto สล็อต น้อง ใหม่ แจก เครดิต ฟรี fun88 ทาง เข้า 2018 poipet 977 อยาก ได้ ส ปิ น เยอะ ๆ coin master เข้า จี คลับ สมัคร บอล ฟรี หา ส ปิ น coin master ฟรี แทง ไฮโล พื้นบ้าน ลิ้ ง แจก ส ปิ น coin master เล่น poker online เงิน จริง เข้า ส โบ เบ็ ต 888 สูตร เพิ่ม ส ปิ น coin master jetsadabet new jetsadabet ใหม่ ทาง เข้า รอยัล ออนไลน์ รอย อ จี คลับ ทาง เข้า bacc666 เจ ษ ฏา เว ป สมัคร agent sbobet เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2019เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร 24box casino red ping win เกม lsm99 999lsm สมัคร ลิ้ ง ค์ ส ปิ น coin master สมัคร วัน นี้ รับ เครดิต ฟรี 2020 tarzan slot jackie casino ทาง เข้า sbothai8 แจก ฟรี ส ปิ น 2020 coin master สมัคร sbo888 inferno star ถอนเงิน fun88 fun555 มือ ถือ แจก ส ปิ น ฟรี coin master ฟรี croupier blackjack 918kiss เครดิต ฟรี 500918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2020 สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก ฝาก ถอน mafia88 เว็บ poker หวย เจษฎา เบ ท สมัคร agent sbobet sbobet 123 ทาง เข้า sbo24live ทาง เข้า fun555 บิงโก แบบ หมุน qq288 casino เจ ษ หวย ฟรี ส ปิ น coin master ฟรี สล็อต เติม 10 ได้ 100 honey honey honey slot การ เพิ่ม ส ปิ น coin master เว ป lsm99 เว ป ล็ อ ต โต้ วี ไอ พี เจษฎา ยี่ กี lsm99 ล่าสุด ghost slider slot เว็บ โป๊กเกอร์ ทาง เข้า เล่น lsm99cash lsm9999 การ เล่น โป๊กเกอร์ sbobetsg mobile casino jackpot party rolet casino ฝากเงินครั้งแรกรับโบนัส 200% สูงสุด 8,000 บาท ทาง เข้า ส โบ เบ็ด lavagame888 เครดิต ฟรี sbo24hr ทาง เข้า สมัคร lsm99 ทาง ไลน์ kiss777th แอ ปรับ ส ปิ น ฟรี coin master sbobet8888 vwin365th เข้า lsm 3win2u casino sbobet25 เว็บ เจษฎา เบ ท สล็อต ออนไลน์ fifa55 gclub ทาง เข้า มือ ถือ fun88 กีฬา สมัคร สมาชิก รับ เครดิต ฟรี ไม่ ต้อง ฝาก hex online casino manekichi casino เข้า เล่น royal online 918kiss สมัคร auto ibc9 casino jackpot royal v2 online ฟรี เครดิต สล็อต ไม่ ต้อง ฝาก 918kiss download ios 2020 slot io bet123 casino เครดิต ฟรี luck หวย ออนไลน์ jetsada jetsadabetcom ทาง เข้า เล่น lsm99cash gclub10 lsm99 เกม gatorama casino best88 สล็อต รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท jetsadabet หวย md123 918kiss 918 slot auto ทาง เข้า 24sboonline mega joker jackpot lsm99 game sbobet88888 มือ ถือ jetsadabet ล่ม โบนัสพิเศษแทงเสมอ รับเพิ่ม 17,777 บาท ไม่อั้น โปรโมชั่นพนันออนไลน์ happyluke slot 15 ส ปิ น ฟรี สล็อต happy วิธี แลก ส ปิ น coin master lsm99 ถอนเงิน ขั้น ต่ำ เค ดิ ต ฟรี ไม่ ต้อง แชร์ mafia สล็อต มา ใหม่ หวย ยี่ กี เจษฎา เบ ท lsm99 goals สมัคร pay69 fun88 ดี ไหม เครดิต สล็อต ฟรี ไม่ ต้อง ฝาก มา ค่า ร่า www99lsm เกม ไพ่ โป ก เกอร์ blackjack android gclub 456 gclub111111 เว็บ เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ gclub god sbobet 222 mobile 918 ios ลิงค์ บา ค่า ร่า uefa fun88 สมัคร รับ เครดิต ฟรี ล่าสุด 10 ฟรีสล็อต รับโบนัสสูงสุดถึง 100% poipet ฟรี โปร เครดิต 100 fun88 ทาง เข้า 2018 เว็บ หวย เจ ษ ฏา เบ ท เข้า sbo ไม่ ได้ neonvegas casino sbobet v1 วิธี ได้ ส ปิ น coin master ฟรี ถอนเงิน dafabet นาน ไหม royal online 558 918kiss hack unlimited ถอนเงิน fun88 918kiss สมัคร auto ism99 star z8 สล็อต เข้า ไม่ ได้ sbobet ทาง เข้า fun88 2020 ทาง เข้า sbobet168 sbobet189 mg slot168 ่ sbobet สมัคร ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก m81 sbobet vwin365th royal online 88888 เข้า จี คลับ ไม่ ได้ sb0bet888 slot 333 SBOBETV8 สมัคร poipet ลิ้ ง ส ปิ น ฟรี ไพ่ โป ก เก อ คือ norsekautomater casino เว็บ lsm99 ส ปิ น ฟรี coin master 1000 รับ ส ปิ น ฟรี coin master line fun88 luckme casino ล็ อ ต โต วี ไอ พี วิธี หา ส ปิ้ น coin master ส ปิ น coin master ไม่ จํา กัด ส ปิ น วัน นี้ ทาง เข้า royal gclub ติด ตั้ง gclub cashapillar ติด ตั้ง 918kiss ios tiki fruits ส ปิ้ น ฟรี coin master ios vip jetsadabet ยี่ กี เจษฎา สมัคร เว็บ fun88 fun88 ล็อกอิน ฟรี เค ดิ ต ไม่ ฝาก ไม่ แชร์ auto918kiss สมัคร สมาชิก lsm99 เอา ส ปิ น ฟรี coin master ios lsm99 ไลน์ jetsada ปิด mega888tm เค ดิ ต ฟรี ไม่ แชร์ sbobet888 มือ ถือ jetsadabet ล่ม เจษฎา หวย หุ้น ฮ อ ลิ เดย์ พา เล ซ ปอย เปต เว ป เจ ษ ts888 casino เครดิต ฟรี ufa poker online เกม ส ปิ น ฟรี coin master ไม่ จํา กัด เว็บ หวย เจษฎา ล็ อ ต โต้ infinity 888 เครดิต ฟรี ทาง เข้า ส โบ เบ ท bingo เกม ballchockdee beer555 mobile user gclub sbobet worldclass euromania online casino สมัคร fafa117 sboibc มือ ถือ sbobettotal เจษฎา แทง หวย fun555 login ส โบ โมบาย jetsadabet หวย ทาง เข้า sbo duell casino r casino สล็อต ทํา เทิ ร์ น ฟรีสล็อตออนไลน์ all slot online thor slot blaze casino เจษฎา เบ ท โบนัส เงิน คืน ท รู รับ ส ปิ้ น coin master sbobet285 ทาง เข้า versailles gold slot fun88 facebook บา ค่า ร่า bet ล็ อ ต โต้ 8888 เว็บ เล่น โป๊กเกอร์ ไลน์ lsm99 แบบ บิงโก โปร ส ปิ น coin สมัคร สล็อต ฝาก 99 รับ 201 sboibc888 มือ ถือ youlike777 ส โบ เบ็ ต agent sbobet ทาง เข้า infinity888 casino ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด 2020 ดาวน์โหลด 918kissauto วี ไอ พี ล็ อ ต โต้ รอย อ จี คลับ วิธี ส่ง ส ปิ น เกม coin master g2g9 casino happyluke ดี ไหม โปร ส ปิ้ น เกม coin master sbo168 เข้า ไม่ ได้ sbobet888 ทาง เข้า มือ ถือ เค ดิ ต ฟรี 2020 วิธี ส่ง ส ปิ น เกม coin master สล็อต ฝาก วอ เลท ไม่มี ขั้น ต่ํา ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด fun88 มือ ถือ ฟรี สล็อต ออนไลน์ ส ปี ด บา คา ร่า s15 ทาง เข้า gclub8888 fun88 โกง ไหม สล็อต ฝาก วอ เลท ไม่มี ขั้น ต่ํา mega slot casino royal online ทาง เข้า สมัคร sbobet168 สมัคร สมาชิก fun88 vscr888 ฝาก เงิน kiss777th แทง ไฮโล พื้นบ้าน live22 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 คา สิ โน ใน ปอย เปต royal888 casino ฟรี ส ปิ น coin royal online v2 เล่น ก่อน ไม่ ต้อง ฝาก แทง ไฮโล พื้นบ้าน วิธี เล่น ไฮโล pantip สมัคร ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss ios 2020 wow gclub คา สิ โน แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ วิธี เพิ่ม ส ปิ น ใน เกม coin master ทาง เข้า ส โบ เบ็ ต 888 gclub คืน ยอด เสีย fun88 facebook gatorama online casino หวย ออนไลน์ jetsadabet ส โบ เบ็ ต 789 โป ก เกอร์ ลํา ดับ ไพ่เล่น โป ก เกอร์ ออนไลน์ เงิน จริง โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท marathon casino วิธี ส ปิ น coin master royal slot online sbobet777 มือ ถือ lsm99ch live22fb lsm99bet casino municipal อยาก ได้ ส ปิ น coin master ฟรี โบนัสฟรีสปิน empire777 รีวิว sbobet ibc 888 ป๊อก เด้ง เครดิต ฟรี ไม่ ต้อง ฝาก ส โป เบส lsm9999 918kiss download 2019 ios fun88 เครดิต ทดลอง เล่น ฟรี 500 บาท คา สิ โน ปอย เปต ออนไลน์ 1168 สล็อต กด รับ ส ปิ น ฟรี coin master วิธี ส ปิ น coin master ฟรี gclub44 auto ทาง เข้า lsm99 ฝาก ขั้น ต่ํา 50 บาท บา คา ร่า เว็บ ปอย เปต fun88 facebook lsm99 ฝาก 777 live casino วิธี ได้ ส ปิ น coin master poker ฟรี เครดิต simsalabim slot สมัคร 10 รับ 100 แจก ส ปิ น ฟรี coin master facebook ติด ตั้ง gclub fun88 ดี ไหม casino flash รับ ฟรี ส ปิ น coin master เจษฎา lotto vegasberry casino 918kiss เติม เงิน วอ เลต ล่าสุด 2019 เสีย บา คา ร่า 4000 สล็อต จี คลับ โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ำ gclub45 ทาง เข้า ส โบ 8888 ยืนยัน เบอร์ รับ เครดิต ฟรี เกม poker ออนไลน์ jetsadabet เอ เย่ น ไหน ดี fun88 โกง fun88 asia สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก 2020 ib888 คา สิ โน เค ดิ ต ฟรี 2020 tomato888 sbothai8 ทาง เข้า เกม บิงโก ราคา sbobetrich88 jetsadabet รีวิว 979 gclub coin master โปร ส ปิ น jetsadabet คือ จี คลับ เว็บ ปอย เปต 168 มือ ถือ sbobet888 สมัคร ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก gclub600 all new gclub sbobet cz jetsadabet vip 855 casino lara croft slot king roman casino slot io สมัคร ยูสเซอร์ ฟรี เครดิต เข้า ฟัน 88 sbo888 มือ ถือ jetsadabet bet ส โบ เบ็ ต 88 ส โบ เบ็ ต 88 fun88 ทาง เข้า 2019 สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี 100 http ab24hr allbet asia com login เจ ษ แทง หวย เว ป ล็ อ ต โต้ 888 happyluke slot รอยัล คา สิ โน ออนไลน์ โหลด mega888 สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา เว ป 1000 ล็ อ ต โต้ lsm ทาง เข้า fun88 รีวิว CASINO โปร โม ชั่ น วัน เกิด คา สิ โน spy casino fun88 ทาง เข้า 2019 coin master หา ส ปิ น ฟรี สล็อต ออนไลน์ 168 jetsada จ่าย แจก ส ปิ น ฟรี coin master วัน นี้ 918kiss download 2020 gclub10 รีวิวคาสิโนออนไลน์ royal online v2 8888 blackjack casino live ฟรี ทดลอง เล่น ถอน ได้ 2019 ทีเด็ด ส โบ เบ็ ต 888 sbobet casino live scr 918kiss android download sportfun88 โบนัสฟรีสปิน หา กลุ่ม ไลน์ เครดิต ฟรี www lsm99 สมัคร โป ก เกอร์ เกม casinò giochi 979 gclub ดาวน์โหลด mega888 ล่าสุด jetsadabet อัตรา จ่าย sbo888 มือ ถือ coin master ฟรี ส ปิ น ไม่ จํา กัด เค ดิ ต ฟรี แค่ สมัคร สมัคร 918kissauto sbobet ios tarzan slot สล็อต 5555 ่ sbobet โปร เกม coin master ส ปิ น ไม่ จํา กัด lucky neko slot ส โบ เบ ท ทาง เข้า fun88 รีวิว โป๊ก เก อร ทาง เข้า gclub88888 999lsmcom poker ได้ เงิน จริง918kiss ๋ jetsadabet เกม สล็อต แคน ดี้ ilucky casino www99lsm สมัคร ใหม่ รับ เครดิต ฟรี ทันที 2020 sbobet3333 การ เล่น โป๊กเกอร์ สมัคร ปุ๊บ รับ เครดิต ฟรี ส ปิ่น ฟรี jetsadabet 999 auto918kiss happyluke ทาง เข้า ทาง เข้า lsm2558 ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 จี คลับ 289 สล็อต sagame กลุ่ม เครดิต ฟรี ไม่ ต้อง แชร์ sbobet777 ทาง เข้า ทาง เข้า sbo999 ทาง เข้า ส โบ 888 เอเย่นต์ จี คลับ บา ค่า ร่า sbobet999 ทาง เข้า gclub cash สมัคร คา สิ โน ปอย เปต madam gclub แทง หวย เจต สมัคร สมาชิก ฟรี เครดิต สมัคร เค ดิ ต ฟรี หวย เจษฎา เบ ท คืน ยอด เสีย สล็อต lsm2558 สมัคร คา สิ โน ปอย เปต ที่ไหน ดี pantip 168galaxy slot สล็อต star99 จี คลับ ฟรี mafia 808 เครดิต ฟรี บา คา ร่า ปอย เปต pantip ทาง เข้า ส โบ เบ ท gclub mobile android รับ spin ฟรี coin master lsm99 agent ทาง เข้า bingo เกม gclub ป๊อก เด้ง ทาง เข้า บา คา ร่า 1688 123 plus casino เล่น poker เว็บ ไหน ดี lsm99 agent royal gclub777 เว๊ ป เจ ษ wwwfun88 happyluke login sbobetmix ส โม เบ ท สล็อต วอ ล เลท all casino บา คา ร่า สมัคร sbobet โดยตรง โค้ด รับ ส ปิ น ฟรี coin master mafia678 สมัคร slot io spina casino sbobet online mobile เข้า เล่น royal online beer789 spartacus casino จี คลับ 5555 sbobetmix แทง หวย เจษฎา ถอนเงิน jetsadabet ไม่ ได้ โปร โม ชั่ น alpha88 gclub tv sbobet 918kiss เกมส์ ไหน ดี แตก ง่าย เว็บ jetsadabet ปิด สมัคร สล็อต โบนัส 100 happyluke แจก 300 ปอย เปต 99 agent sbobet gclublotto gclub444 โปร เพิ่ม ส ปิ น coin master sbobet ca1 หวย jetsadabet คลับ คา สิ โน หา ส ปิ น ฟรี coin master ios scg casino ทาง เข้า sbobet online slotv9 รับ 100 royal online v2 ios mafia88 สมัคร เข้า จี คลับ เจษฎา เบ ท หวย สปินฟรี coin master ฟรี วิธี ทํา ส ปิ น ฟรี coin master line dafabet การ ทำ ลูกเต๋า คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 bettilt casino dafabet pantip บา คา ร่า ไม่มี คอมมิชชั่น คือ http ab24hr allbet asia com login โบ เบ็ ต bet slot club สมัคร sbobet คา สิ โน สูตร jetsadabet ฟรี ส ปิ น coin master ฟรี ib888 คา สิ โน dafabet 888 เครดิต ฟรี winsor สมัคร บอล ฟรี เครดิต zulabet casino gclub700 918kissauto co happyluke ทาง เข้า facebook fun88 pgslot567 sbobetasia online เว็บ ปอย เปต pantip xoslotzv3 casino lotus k9win สมัคร สล็อต เครดิต ฟรี ล่าสุด 2020 แจก เครดิต ฟรี 500 ไม่ ต้อง ฝาก 2563 ทีเด็ด sbobet sbo ล็ อ ต โต้ one สมัคร sbobet โดยตรง gclub558 เครดิตฟรีแค่สมัคร เว็บ ปอย เปต pantip 555 slot ส ปิ น coin master ฟรี วิธี ได้ ส ปิ น เกม coin master เว ป ล็ อ ต โต้ วี ไอ พี ถอนเงิน fun88 ทาง เข้า agent sbobet ล่าสุด ฟรี ส ปิ น 15 รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท northern sky slot 4579 ล็ อ ต โต้ รวม ทาง เข้า sbo เค ดิ ต ฟรี ไม่ ต้อง แชร์ sbobet ทาง เข้า เว็บ jetsada casino captain sbobet beer777 mafia88 gaming goldenslot games slot online casino online สล็อต เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ m82 sbobet poker online เงิน จริง สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา สล็อต ฟรี ส ปิ น ไม่ ต้อง ฝาก ถอน ได้ ดาวน์โหลด แอ พ happyluke เว๊ ป เจ ษ ติดต่อ lsm999 บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น บา คา ร่า 1688 เครดิต ฟรี แจก ฟรีสปิน2020 สมัคร สมาชิก 918kiss โบนัส 100 แทงบอลออนไลน์ฟรี สมัคร คา สิ โน sbobet แจก ส ปิ น ฟรี coin เครดิต ฟรี สมัคร รับ ทันที ติด ตั้ง gclub ไฮโล ออนไลน์ ไม่มี ขั้น ต่ำ ทาง เข้า เอ เย่ น จี คลับ เครดิต หวย ฟรี สมัคร เว็บ lsm99 casino sbobet live สมัคร สมาชิก fun88 บิงโก แบบ หมุน สมัคร บอล ออนไลน์ ฟรี เค ดิ ต ฟรี ไม่ ต้อง ทํา เทิ ร์ น หา ส ปิ้ น coin master gclub5555 sbobet 777com สมัคร เค ดิ ต ฟรี ไม่ ต้อง ฝาก ทาง เข้า ส โบ เบ็ ต 888 ส โบ เบ็ ต 88 บา คา ร่า s10 สล็อต ออนไลน์ 168 ฝาก 100 รับ 300 ล่าสุด 918kiss pc เข้า เว็บ ส โบ เบ็ ต happyluke th empire777 คา สิ โน ออนไลน์ ฟรี เครดิต 300 บาท poipet โปร โม ชั่ น royal online 888 หา เว็บ แจก เครดิต ฟรีfifa55 เครดิต ฟรี ไม่ ต้อง ฝาก สล็อต มังกร 888 วิธี ปั่น ส ปิ น coin master ตัว วาง บิงโก เว็บ เจษฎา หวย คา สิ โน แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ babe casino sbobet5555 american poker 90 ขอ โบนัส luckme casino เกม บิงโก ยอด ฮิต เครดิต ฟรี ไม่ ต้อง ฝาก fifa spartan slot sbfplay 99 ts888 casino เข้า sbobet ล่าสุด คา สิ โน ออนไลน์ โปร โม ชั่ น sbobet เข้า ไม่ ได้่ ่่่ คา สิ โน ปอย เปต 777 รอยัล จี คลับ ส ปิ น ฟรี coin master ล่าสุด sbobetasia online gsm casino แจก ส ปิ น ฟรี coin master sbobet rich88 night casino highroller casino auto slot 918 ค่าย จี คลับ สมัคร ส โบ เบ็ ต ส โบ เบ็ ต 88888 wwwpic5678 casino best gclub1988 ทาง เข้า จี คลับ 88888 นางฟ้า fun88 เว็บ หวย ออนไลน์ jetsadabet happyluke slot 918 slot auto เทพ เอเชีย ฟรี ส ปิ น betrally casino 918kiss รับ เครดิต ฟรี sbo777 ทาง เข้า cosmik casino 918kiss 918kiss kiss918 vipเครดิต ฟรี เทิ ร์ น 1 เท่า 2020 lsm99online เครดิต สล็อต ฟรี ไม่ ต้อง ฝาก สล็อต วอ ล เลท ฝาก ขั้น ต่ำ 20 ฟรี 100 fun88 กีฬา ts888 casino mister bit casino fantan casino 5 dragon slot เค ดิ ต ฟรี บา คา ร่า 2020 split casino สล็อต ฟรี เครดิต 2019 agent lsm99 ทาง เข้า tiki fruits คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 sbobet8910 will's casino สล็อต ออนไลน์ ufa345th coin master ส ปิ น ฟรี android สล็อต dragoon soft บิงโก ซื้อ ที่ไหน agent casino แจก ทุน เล่น สล็อต ฟรี ไลน์ จี คลับ แจก ฟรี ไม่ ต้อง แชร์ โบนัส ฝาก เงิน ครั้ง แรก live22fb สมัคร fin88 roma casino เครดิต คา สิ โน ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 เว็บ หวย เจ ษ ใหม่ royal casino beer777 เว็บ ไฮโล แจก ฟรี 7msbobet lsm99 ติดต่อ 918kiss ดาวน์โหลด android happyluke line สล็อต คืนสูงสุด 7% lotto jetsada 21 casino online ลิ้ ง ส โบ มือ ถือ sl casino หา ส ปิ้ น coin master 979 gclub สมัคร ปุ๊บ รับ เครดิต ฟรี sbobetnet แค่ สมัคร ก็ รับ เครดิต ฟรี ล่าสุด ทาง เข้า lsm99 แจก ส ปิ น ฟรี coin GCLUB ism99 fun88asi mgm678 casino ทาง เข้า จี เว็บ เล่น blackjack แอ พ แจก ส ปิ น coin master slot android ทาง เข้า sbobet 222
        เกมส์ ใน เว็บ| เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ ไม่ ต้อง แชร์| เว็บ ทดลอง ยิง ปลา| เล่น คา สิ โน ออนไลน์ pantip| แจก เว็บ เครดิต ฟรี| สมัคร ใหม่ ฟรี เครดิต ไม่ ต้อง ฝาก| เว็บ ทดลอง เล่น บา คา ร่า| ไอ ดี บา คา ร่า| galaxy พนัน| เครดิต ฟรี 100 ถอน ได้ 500| บา ค่า ร่า ฟรี 500| บา คา ร่า ตา ละ 1 บาท| บา คา ร่า แนะ นํา| แจก เครดิต ฟรี 500 ไม่ ต้อง ฝาก 2019| แจก เครดิต ฟรี 200 ไม่ ต้อง ฝาก 2020 ล่าสุด| เว็บ พนัน tiger| แจก เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss| 918kiss ฟรี เครดิต ถอน ได้ 2019| บา คา ร่า แทง ทบ| บา คา ร่า เริ่ม ต้น 1 บาท| เครดิต ฟรี 100 ถอน ได้ 2562| เว็บ บา ค่า ร่า ออนไลน์ ที่ ดี ที่สุด| บา คา ร่า king99| บา คารา 678| เครดิต ฟรี จริงๆ| แจก เงิน บา คา ร่า ฟรี| เว็บ พนัน ออนไลน์ ไม่มี ขั้น ต่ํา| เว็บ พนัน ยอด นิยม| แจก เครดิต ฟรี ไม่ ต้อง ฝาก ล่าสุด| เว็บ คา สิ โน โดยตรง| sa ทดลอง| 777ww ดี ไหม| สมัคร รับ เครดิต ฟรี 2562| 668dg ฟรี เครดิต| เกม บา คา ร่า 777| เว็บ พนัน ไม่มี ขั้น ต่ํา| ฝาก เงิน เข้า บา คา ร่า| king99 ฟรี เครดิต| แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020| เว็บ พนัน ใหม่| บา คา ร่า 888 pantip| คา สิ โน อันดับ หนึ่ง| sagame88 ทดลอง| บา คา ร่า 885| โปร โม ชั่ น เว็บ คา สิ โน| เว็บ ฟรี เครดิต 100| บา คา ร่า ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| lagalaxy88 โทร| เว็บ บา คา ร่า 77up| เว็บ บา คา ร่า ทั้งหมด| lagalaxy88 โทร| tss911 คา สิ โน| เว็บ บา คา ร่า 1688| เครดิต ฟรี 2019| 188bet ฟรี เครดิต 2020| ทาง เข้า slotxo| gtr365bet vip| เข้า rb88| ยู ฟ่า คา สิ โน| พนัน ออนไลน์| เว็บ เล่น ไพ่ ได้ เงิน จริง| บา คา ร่า ห้อง ทดลอง| casino online บา คา ร่า| ไพ่ ออนไลน์ ได้ เงิน จริง pantip| ฝาก 10 ได้ 100 wallet| เครดิต ฟรี เดือน เกิด|