<video id="xmp4T"></video>
<nav id="xmp4T"><listing id="xmp4T"></listing></nav>
      <form id="xmp4T"><legend id="xmp4T"></legend></form>

      1. <sub id="xmp4T"></sub>
        <nav id="xmp4T"><code id="xmp4T"></code></nav>
      2. <form id="xmp4T"><span id="xmp4T"></span></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
         
        scr888 แจก เครดิต ฟรี 2563 coduca88 เครดิต ฟรี slot15 slot win เล่น สล็อต โร ม่า slot true wallet ไม่มี ขั้น ต่ํา nasa slot ava slot 918kiss win 918kissauto สมัคร 918kiss ฟรี joker slot 2020 สล็อต xo191 slot galaxy สล็อต xo วอ ล เล็ ต mm88bet สล็อต เว็บ พนัน ออนไลน์ ป๊อก เด้ง เกมส์ สล็อต มือ ถือ slot123 puss888 คา สิ โน ออ น ไล แอ พ แยก เสียง ไฮโล gclub slot ฟรี เครดิต คูปอง เครดิต ฟรี slotxo คือ slotxo v1 slotxo teddy สล็อต ฝาก 918kiss เครดิต ฟรี slot ฝาก ไม่มี ขั้น ต่ำ vip slotxo slotxo2 slotxo 311 apk slotxo slot ฝาก 1 บาท รับ 100 ติดต่อ ufa365 live22 ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo ฟรี ส ปิ น โจ ก เกอร์ 888 sanook xo slot joker681 เครดิต ฟรี ไฮโล ออนไลน์ w88 918kissworld 918kissauto ufa800 บา คา ร่า slotxo allbet asia com slotbonus โปร 918kiss เว็บ พนัน เล่น ฟรี ได้ เงิน จริง โป ก เกอร์ ออนไลน์ slot 360 py69 slot 981kiss เว็บ ตรง 918kiss 918kisskingdom 918kiss 100 ฟรี 100 call ufa365 v2 slot fun888 slotxocom 918kiss เครดิต ฟรี 100 ไฮโล ส กิ ด 3 หน้า ราคา 919kiss www918kiss slot35 slot games 66 คา สิ โน xo xo ฝาก ถอน ไม่มี ขั้น ต่ํา fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ไฮโล ฟรี เครดิต ึึึึ 77up slotxo 1168 kiss918th slot ถอน ไม่มี ขั้น ต่ํา joker456 เครดิต ฟรี fifa55run 3x slot 918kiss เวอร์ชั่น ล่าสุด ไฮโล ออนไลน์ ได้ เงิน จริง เติม สล็อต xo เว็บ fifa555 master joker slot fifa55 goalclub 186 slotxo 918kiss เติม true wallet fifa55crown slotxo98 hack918kiss 918kiss 100 ฟรี 100 สล็อต xo ฝาก วอ เลท sbobet เครดิต ฟรี โจ๊ก 888 king77 slot slot24th xo รู เล็ ต สด slot joker โปร โม ชั่ น เครดิต ฟรี epic slotxo ผ่าน วอ เล็ ต ส รู ตรู เล็ ต ฟีฟ่า 777 slot68 gucci slotxo slot free credit no deposit best slot slotxo88v8 ggbet168 เครดิต ฟรี 2pigs 918kiss slot009 เล่น ไพ่ โป ก เกอร์ ออนไลน์ xo allbet เครดิต ฟรี 555 ไฮโล ufa365 ดี ไหม slot s9 918kiss ฝาก ถอน สมัคร ฟรี เครดิต superlot999 เครดิต ฟรี mafia789 เครดิต ฟรี 918kiss โอน ผ่าน วอ เลท เว็บ แทง บอล fifa สล็อต xo11 เครดิต ฟรี ไม่ ต้อง ทํา เทิ ร์ น slot ฝาก 20 บาท รับ 100 ไม่ ฝาก ไม่ แชร์ เครดิต ฟรี ไม่ แชร์ ไม่ ฝาก แอ พ เกม ไฮโล ได้ เงิน จริง 918kiss เติม วอ ล เลท sl0t x0 slotxo เกม ไหน ดี fifa55 palace เข้า เล่น fifa55 slotxo เล่น หน้า เว็บ เครดิต ฟรี 999 289 slotxo fifa55club เกม ไฮโล ฟรี joker slot 6886 fifa55 gold เว็บไซต์ คา สิ โน ออนไลน์ ดี ที่สุด bn slotxo slot house 928kiss slot v online 69slot แอ พ การ พนัน ได้ เงิน จริง slot11 918kiss ฝาก ถอน ออ โต้ mm88bet ฝาก เงิน slotxo ฝาก 10 บาท ฟรี 90 บาท 918kiss android สล็อต xo 35 ป๊อก เด้ง ขั้น ต่ำ 10 บาท ab24hr winner55 เครดิต ฟรี สล็อต ออนไลน์ xo 918kiss เครดิต ฟรี 3000 ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ํา สล็อต xo 99 ไฮโล 641 slotxo 2p slotxo omg เกมส์ ไฮโล สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ถอนเงิน ได้ slot22th live22 เกมส์ ไฮโล เหมือน จริง 918 ฝาก ไม่มี ขั้น ต่ํา c8 slot ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ slot live22 เกม ส ล็ 918kisshero เครดิต ฟรี โจ๊ก เกอร์ ไม่ ต้อง ฝาก โจ ก เกอร์ 888 slotxo123 918kiss allbet asia 918 า ร ห ห slot ฝาก 100 ฟรี 100 ไพ่ แค ง เครดิต ฟรี fifa เครดิต ฟรี xoclub99 gclub8 line 888 slot th slotxo2 kiss918 ฟรี เครดิต บอล เสมือน จริง 918kiss เครดิต ฟรี 2020 35 xo slot 99 ocean เครดิต ฟรี เล่น เสือ มังกร ออนไลน์ slot 9 scr888 sn888 918 คิ ส slot joker689 gclub 918 slot เครดิต ฟรี 50 slotxo99 สล็อต xo 1234 mega slot เกม ไพ่ 21 cq9 gaming โป ก เกอร์ ออ น ไล winner555 เครดิต ฟรี สล็อต 1688xo fifa55 rmc ไพ่ โป๊กเกอร์ เกมส์ ไฮโล ออนไลน์ fifa555com lucabet789 เครดิต ฟรี slotxo blue mafia88 slot 918 า ร ห ห 918ki ฝาก ถอน xo mvegus1682 memberbet slotxo lucky slot house รีโมท ไฮโล 2pj slot betway เครดิต ฟรี โปร โม ชั่ น joker เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 vscr888 918 แจก เครดิต ฟรี skyslot7 บา คา ร่า mclub ถอนเงิน fifa55 ไม่ ได้ mafia01 เครดิต ฟรี เครดิต ฟรี ทํา เทิ ร์ น น้อย lucky god progressive demo slot joker123 auto 918kiss ฟรี 200 slot868 918kissauto 2 เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss slotxo joker123 สมัคร ไม่ ต้อง ฝาก สมัคร ฟรี เครดิต ไม่ ต้อง แชร์ เว็บ เล่น สล็อต xo เติม slotxo ไฮโล ออนไลน์ เดิมพัน ขั้น ต่ำ 10 เว็บ พนัน บอล fifa55 918kiss ฝาก ขั้น ต่ํา 50 บาท 77slot สล็อต xo เครดิต ฟรี 50 บาท shangri la slot mafia555 slot kiss918 ฟรี เครดิต slot48xo กระดาน รู เล็ ต win55 เครดิต ฟรี 918kiss android 2020 คา สิ โน ป๊อก เด้ง slot v online casino slotxoslotxo เล่น ไพ่ ได้ เงิน จริง 2019 g9slot ufa800 ฝาก เงิน 918kiss ฝาก ขั้น ต่ำ 100 slotcafe 918 allbet ยู ส ฟรี 918 slot xo1234 หมุน วง ล้อ joker123 918kiss v7 918kiss2you 99 ocean เครดิต ฟรี fin slotxo xo slot apk ติดต่อ ufa365 mafia678 slot joker true wallet ไม่มี ขั้น ต่ำ ไฮ โล xo thai888 เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด fifa55st memberbet vegus168 918kiss ฝาก ขั้น ต่ำ 100 918kiss ฝาก ท รู วอ เลท xoslot123 918kiss เวอร์ชั่น ใหม่ ฝาก 100 ฟรี 100 2020 สล็อต xo ท รู วอ ล เล็ ต เว็บ fifa55 ดี ไหม เครดิต sahacker ฟรี ไม่ ต้อง ฝาก vegus168 ติดต่อ nikigame789 slotxo pantip line 918kiss z8 เครดิต ฟรี scr888 slot ไฮโล ได้ เงิน จริง slotxo 6 ฟีฟ่า 555 สมัคร slotxo god เครดิต ฟรี ทํา เทิ ร์ น น้อย slot joker vip แจก เครดิต ฟรี 918kiss 918kiss team โปร 100 918kiss slot1688 pantip 918kiss33 หมุน วง ล้อ xo slot bet ฟรี เครดิต เกม ไฮโล pc slot1688xo joker123 โปร โม ชั่ น slotxo casino vikings slot aec999 slot mafia ฟรี เครดิต 50 leo slot เครดิต ฟรี ถอน ไม่ จํา กัด game slot 789 world1688s slot เล่น สล็อต xo 1234 slot เครดิต ฟรี 500 ล่าสุด 2020 slotxo pantip 918kiss 168 เครดิต ฟรี ค่าย cq9 playtect slot007 joker 819 kiss download เครดิต ฟรี 500 ล่าสุด 2020 slotv9 live22 ไฮโล พม่า 333be โค๊ ด ฟรี 133 tss911 เครดิต ฟรี xoclub99 ufa800 ฝาก เงิน fifa555fc fifa55 ถอนเงิน ไม่ ได้ fifa55 เครดิต ฟรี 2020 ฟรี เครดิต 918kiss slot แจก เครดิต ฟรี ไม่ ต้อง แชร์ www fifa55hd com ลูกค้า เข้า ผ่าน google chrome นะ คะ slot ฝาก 9 รับ 100 slotxo com sign in fifa55 memberbet net ฟีฟ่า 55 ยู mafia01 เครดิต ฟรี ไม่ ต้อง ฝาก slot s9 ไฮโล 641 slotxo ฝาก 10 รับ 100 slotxo เกม ไหน แตก ง่าย 2020 555 slotxo ทาง เข้า เว็บ fifa55 slotxo mafia zap918kiss 918kiss แตก ง่าย 2020 fifa55crown avenger98 เครดิต ฟรี โปร โม ชั่ น pgslot game slotxo เข้า เล่น fifa55 โปร slot ไฮโล สมจริง ไพ่ โป๊ก เก อ z8 slot ufa365 ฝาก เงิน www slotxo88 com home ป๊อก เด้ง ขั้น ต่ำ 10 บาท ผล บอล ฟุตบอล เสมือน จริง nuovo casino http mvegus1682 memberbet net slotxo ท รู วอ ล เล็ ต ไฮโล เงิน จริง 918kiss ท รู วอ เลท 918kiss4you ฝาก วอ เลต ไม่มี ขั้น ต่ํา slot cat88 aladdin slot 918kiss พี่ เสือ 918kissth v3 โป๊ก เก้อ mafia ฟรี 50 บาท slot promotion slotxo ฟรี เครดิต 300 เครดิต ฟรี ทํา เทิ ร์ น ถอน ได้ fifa55 truemoney ฟรี ไม่ ต้อง แชร์ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน slot777 เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง แชร์ 918 918kiss อัน ไหน ดี ไฮโล ขึ้น คู่ slotxo png slotxo sl ace333 slot the joker slot วง ล้อ คา สิ โน เข้า vegus168 bbet99 เครดิต ฟรี ้ ค ร ดิ ต ฟรี 777slotxo รวม เกม ไฮโล download joker slot 666 gclub slot jackpot 918kiss คืน ยอด เสีย fastbet98 เครดิต ฟรี สล็อต xo เติม วอ ล เล็ ท kingslotxo slot 10 ได้ 100 slotxo 91 slotxo 101 ฟรี ไม่ ต้อง ฝาก black mamba slot สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 twin79 เครดิต ฟรี ไฮโล pantip เล่น poker ออนไลน์ เครดิต ฟรี ไม่มี เงื่อนไข 918 ฝาก ไม่มี ขั้น ต่ํา game slot 789 slotcafe แทง ไฮโล ออนไลน์ เกม live22 w168club เครดิต ฟรี ฝาก เงิน เข้า slotxo 918kiss android joker live22 เครดิต ฟรี ไม่ แชร์ ไม่ ฝาก slot 10 casino สมัคร ครั้ง แรก ฟรี เครดิต บา คา ร่า mclub เล่น โป ก เกอร์ ออนไลน์ slot5g joker open365 ฟรี เครดิต สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2019 double casino free slots เล่น ไพ่ ได้ เงิน จริง 2019 joker gaming 888 live777slot 918kiss4you joker slot 777 gclub8 line ไท เกอร์ คา สิ โน เข้า slotxo แทง รู เล็ ต kingslotxo สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss918kiss slot ฝาก ถอน ไม่มี ขั้น ต่ํา fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 2020 โจ๊ก เกอร์ xo joker89auto 2pigs xo slot198 slotxo 96 slot super roma slotxo slot gold xo live22 slot mafia928 เว็บ 918kiss slot1688 pantip เครดิต ฟรี 2563 xo slot 369 slot ยืนยัน ตัว ตน รับ เครดิต ฟรี slotxo ออนไลน์ สล็อต ได้ เงิน จริง เข้า บัญชี จริง wms slot โจ๊ก เกอร์ เครดิต ฟรี slot roma ค่าย ไหน auto slotxo slotxo928 scr888 เครดิต ฟรี slotxo casino สมัคร mm88bet แทง บอล ฟีฟ่า สล็อต xo easy slot live22 ฝาก 10 รับ 100 q9win slot betslotxo gclub ฟรี เครดิต 2019 xo บน เว็บ เว็บ พนัน เล่น ฟรี ได้ เงิน จริง เล่น ผ่าน เว็บ slotxo slotxo เติม เงิน wallet grand918kiss 918kiss69 ฟรี 200 ไม่ ต้อง ฝาก slot free credit love slot slotxo ฝาก ถอน ไม่มี ขั้น ต่ํา slot4u pgslot mafia928 เครดิต ฟรี ไฮโล apk ฟรี ไม่ ต้อง ฝาก slotxo ทุน น้อย ไฮโล ออนไลน์ ได้ เงิน จริง slot678 สล็อต xo 191 ยู ส เท ส slotxo ไฮโล ของ 2mbet เครดิต ฟรี เล่น โป ก เกอร์ ออนไลน์ ได้ เงิน จริง joker slot ไม่มี ขั้น ต่ํา ผล บอล ฟุตบอล เสมือน จริง slotxo ฝาก 1 รับ 100 gaming world slotxo joker โบนัส 100 auto 918kissauto 2 สล็อต ยู ฟ่า 777 ดู บอล สด fifa55 slot189 slotxo ฝาก 10 บาท รับ 100 ล่าสุด super joker slot 555 slotxo winner55 เครดิต ฟรี ไม่ ต้อง ฝาก slot ฝาก 50 xo slot 369 best 77up wbc slot slotxo เล่น บน เว็บ 88 slotxo สล็อต slot ฝาก 50 ฟรี 150 slotxo ฝาก วอ เลท สล็อต xo หน้า เว็บ https slotxo vip 918kiss me 2 สล็อต คา สิ โน slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 slot ฝาก 1 บาท ฟรี 99 บาท joker ฝาก ถอน ไม่มี ขั้น ต่ำ สมัคร fifa55 ฝาก ขั้น ต่ํา 100 fifa555 sport สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ คา สิ โน ดั ม มี่ slot cat777 m918kiss fifa55 rmuajj ไฮโล ภาษา อังกฤษ มาเฟีย เครดิต ฟรี ไม่ ต้อง แชร์ slotxo 666 หา เครดิต ฟรี เล่น slotvip777 fifa55 ฟีฟ่า เเ ป น ไฮโล slot44th 918kiss v8 เกม 168slotxo aa9win slot 918kiss ios ล่าสุด ace333 slot sagame168th เครดิต ฟรี slotxo ฝาก 9 บาท รับ 100 ล่าสุด slotxo 828 slot 888 casino 918kiss android 9.0 2 slots sbobet777 เครดิต ฟรี happy slotxo88 777 slots casino ยู ส ฟรี 918 ไฮโล รีโมท เข้า slotxo zeus slot เว็บ บอล fifa55 เว็บ ตรง 918kiss อั่ ง เปา สล็อต xo เครดิต 50 หมุน วง ล้อ xo spin 777 fifa8888 login ocean99 เครดิต ฟรี mega joker free ดั ม มี่ คา สิ โน สล็อต xo 899 เกม สล็อต โร มา bet365 เครดิต ฟรี star joker slot slot แจก เครดิต ฟรี ไพ่ แบ ล็ ค แจ็ ค pantip ทาง เข้า ฟีฟ่า 55 คิง slot999 live22 slotxo ฝาก 10 mb slotxo slot 66 chomikuj slot auto all 999 super slot โจ๊ก เกอร์ 888 fifa55 รับ โบนัส ฟรี 200 บาท slotxo 198 slotxo 11 joker slot 567 xo ฟรี เครดิต mario slotxo slot2xl slotxo เกม slot 918kiss แตก ง่าย slotxo blue slotxo 4u เล่น หน้า เว็บ slotxo slot2p live222 slot 007slotxo เติม slotxo www slotxo88 com home game slot 789 the joker slot สล็อต xo 191 live22 xo xo slot 777 winner55 เครดิต ฟรี เกม ส ล็ mafia เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก โจ ก เกอร์ 888 joker mobile slot โหลด แอ พ คา สิ โน pg slot โปร โม ชั่ น fifa55 memberbet net ไฮโล ออนไลน์ ไม่ ต้อง ฝาก สล็อต xo โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ํา 918kiss ใหม่ joker true wallet ไม่มี ขั้น ต่ํา ไฮโล ออนไลน์ pantip slotxo 95 เครดิต ฟรี 120 live22 ฝาก 1 บาท ฟรี 99 เล่น ได้ 200 ถอน ได้ 100 เครดิต ฟรี สมัคร ง่าย 819 kiss download slot free credit no deposit 2020 หมุน วง ล้อ joker123 วิธี สมัคร databet88 vegus168 ถอนเงิน lucky 918kiss 918kiss slotxo monday 918kiss 1234slotxo เล่น xo slot ฟีฟ่า 55 hd roma slot joker gclub ฟรี เครดิต ไม่ ต้อง ฝาก ไฮโล fifa55n exp slotxo sp918kiss สล็อต ออนไลน์ ฝาก ถอน ไม่มี ขั้น ต่ำ 918kiss ฟรี 100 joker slot auto slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 v9slot เล่น สล็อต โร ม่า สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก nasa slot slotxo 08 fifa55 rmcc slotxo 331 918kiss d cherry slot 918kissthailand 777 slots casino ไฮโล ออนไลน์ โปร สล็อต ค่าย pg scrslot918 981kiss slot 2499 ไฮโล 5 บาท slot joker โปร โม ชั่ น 44th slot 918kiss เครดิต ฟรี 100 ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก เครดิต ฟรี 3000 ส ล๊ อ ต xo1234 โปร โม ชั่ น pgslot wilderland slot bbet99 เครดิต ฟรี fifa55boom ไพ่ โป ก เกอร์ 007 slot ฝาก 1 บาท ฟรี 99 35 joker slot royal เครดิต ฟรี 77up บา ส slotxo ออนไลน์ ติดต่อ ufa365 slotxo club live22 ฝาก 10 รับ 100 เติม สล็อต xo เครดิต ฟรี แอด ไลน์ สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท 918kiss team โป เกอร์ joker slot 168 th 198 kiss download slot mafia88 เครดิต ฟรี gclub call ufa365 v2 twin79 เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก เว็บ พนัน fifa55 slot ฝาก 15 รับ 100 roma slotxo คา สิ โน ออนไลน์ สุด ฮิต dafabet slot เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ ไฮโล ออนไลน์ เครดิต ฟรี m918kiss slot1688 pantip เข้า เล่น fifa55 slotxo35 gclub888 royal gclub 918 slotxo688 world 1688 slot เข้า เว็บ ฟีฟ่า 55 mobile slotxo คา สิ โน ออนไลน์ 918kiss joker โบนัส 100 auto vscr888 สล็อต xo 44 pgthai888 v8slot 918kiss ไฮโล 5 บาท slotxo z fifa55 gold 9gspin เครดิต ฟรี slot69 tiger918kiss 918kisstm slotxo 9999 super big win slot 10 รับ 100 918kiss v1 ไฮโล ขึ้น คู่ aladdin 69 slot เล่น สล็อต databet88 slotxo บน เว็บ slot189 เครดิต ฟรี ไม่ ต้อง ฝาก 150 slot96 http mvegus1682 memberbet net african simba slot ฝาก ไม่มี ขั้น ต่ํา slot demo joker เว็บ แทง บอล fifa55 xo slot cafe slotxo เติม เงิน ผ่าน วอ เลท fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก slot ฝาก 20 ได้ 100 casa98 ฟรี เครดิต slot viva joker slot 69 แอ พ การ พนัน ได้ เงิน จริง super slotxo slotxocom slot sagame66 918kiss เว็บ ไหน ดี slot007 v1 jokerslot99 slot168 ไลน์ ฟีฟ่า 55 all slot555 ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท เว็บ สล็อต xo slotxo allbet asia joker slot 888 mega888 เครดิต ฟรี หน้า เว็บ xo 168slotxo auto slotxo988 เล่น xo slot ไฮโล สูง ต่ํา เล่น ไพ่ โป ก เกอร์ ออนไลน์ ที่ไหนได้ เงิน จริง winner55 เครดิต ฟรี ไม่ ต้อง ฝาก slot ฝาก ถอน ไม่มี ขั้น ต่ำ 928kiss kiss918 me 918kiss ถอนเงิน fifa55net slot ถอน ไม่มี ขั้น ต่ํา การ เล่น blackjack โป เกอร์ 918kiss android เครดิต ฟรี ไม่ ทํา เทิ ร์ น slotxo star 918kiss download สมัคร เครดิต ฟรี ไม่ ต้อง แชร์ infinity slot ฝาก xo ไฮโล คลาสสิค ออนไลน์ happyslot88 slotxo slotwin888 slotxo 918 mafia ฟรี 50 บาท lucabet789 เครดิต ฟรี ฝาก ถอน 918kiss epic win slot สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ สมัคร ฟรี เครดิต ฟรี dafabet เครดิต ฟรี 2018 เครดิต 50 slot bet ฟรี เครดิต xovip slot เครดิต ฟรี 200 ไม่ ต้อง แชร์ เครดิต ฟรี ทํา เทิ ร์ น slotxo logo png 918kiss เวอร์ชั่น ใหม่ mbslot slot xo888 เข้า เล่น fifa55 fifa555god slot007 เครดิต ฟรี ไฮโล ออนไลน์ ได้ เงิน จริง slotxo 11 ไฮโล 2020 เล่น ไพ่ เก้า เก ออนไลน์ ได้ เงิน จริง แทง ไฮโล มือ ถือ sbobet ฟรี เครดิต 918kiss 333 slotxo วง ล้อ ufa365 สมัคร slotxo88 download fifa55 เข้า ระบบ slot4you ไฮโล คลาสสิค ออนไลน์ fifa555god 168 xo live22 ไม่มี ขั้น ต่ํา สล็อต xo 35 live22 ฝาก ถอน ไม่มี ขั้น ต่ํา ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา vegus168 vip slotxo 48 slot189 เครดิต ฟรี lsm rad slotxo databet88 ถอนเงิน slot joker xo joker slot 6996 เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ slot 888 v1 scr888th v5 sicbo คือ slotxo11 918kissscr888 เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด slot true wallet ไม่มี ขั้น ต่ํา slot live22 918 เครดิต ฟรี 100 ถอน ได้ 2019 แจก เครดิต ฟรี xo vegus168 ดี ไหม 918kiss ฝาก true wallet https www slot12 com member slotxo mm88bet สมัคร ผล บอล ฟุตบอล เสมือน จริง shangri la slot game kiss918th mafia เครดิต ฟรี ไม่ ต้อง แชร์ บา คา ร่า mclub เครดิต ฟรี ใช้ บัตร ประชาชน testament slot 35 slotxo aladdin slot vikings slot joker hunter 888 monster joker slot 918kiss 55com gclub royal1688 เครดิต ฟรี testament slot slotxo เติม เงิน สมัคร เอเย่นต์ fifa55 gclub ฟรี เครดิต 2019 เกมส์ สล็อต http slotxo slotxo เติม เงิน slot joker ฝาก ไม่มี ขั้น ต่ํา รู เล็ ต กติกา isc888 เครดิต ฟรี tggame9999 เล่น ไพ่ โป ก เกอร์ ออนไลน์ ที่ไหนได้ เงิน จริง ถอน เงิน slotxo สมัคร ได้ เครดิต ฟรี slotxo mafia88 เครดิต ฟรี 169 gom88bet pay69 slot slot house slotxo allbet gclub เครดิต ฟรี ถอน ได้ 2020 xoslot69thai เกม ไพ่ 21 ufa800 ดาวน์โหลด fastbet98 เครดิต ฟรี 918 คือ สมัคร fifa5555 เกม สล็อต roma ไฮโล ส กิ ด 3 หน้า ไฮโล สด 918kisshero เว็บ fifa55 gaming world slotxo slotxo 666 กีฬา เสมือน จริง ไฮโล ฟรี 333be โค๊ ด ฟรี 133 918kissstar ts911 games slotxo es pragmatic play ฟรี เครดิต ร้องเรียน slotxo slotxo 168 vip rmuajj dumboslotxo 918kiss แตก ง่าย 2020 3win8 casino 4ux slot โปร ทุน น้อย slotxo เซียน รู เล็ ต fifa55 rmuajj xo ออ โต้ gclub ฟรี เครดิต ไม่ ต้อง ฝาก 2019 member slotxo 918kiss d slot bet ฟรี เครดิต casino online jackpot slotxo ผ่าน วอ เลท slotxo ลอง เล่น web slot โป๊กเกอร์ เงิน จริง เครดิต ฟรี 918kiss กลุ่ม สาธารณะ การ เล่น แบ ล็ ค แจ็ ค mvegus1682 memberbet net slot demo winner55 เครดิต ฟรี เครดิต ฟรี 169 slotxo ถอนเงิน 918kiss ios ล่าสุด payslot joker888 เครดิต ฟรี mm88bet login roma xo slot vip789 ocean99 เครดิต ฟรี 1234slotxo slotvip789 เครดิต ฟรี slot ฝาก 50 ฟรี 50 slotv9 live22 slotxo123 ak47max เครดิต ฟรี slotxo ท รู วอ ล เล็ ต 918kiss android สล็อต xo joker ดั ม มี่ คา สิ โน joker123 auto 2 ร้องเรียน 918kiss เกม slot 99 ocean เครดิต ฟรี 333be โค๊ ด ฟรี 133 slotxo ฝาก 10 บาท ได้ 100 vegus168 memberbet slotxo 100 1 เทิ ร์ น 2pj slot 191slot slotxo pc 168 slot slot c slot sagame66 คา สิ โน 918 888 เครดิต ฟรี fifa55 reward เล่น ฟรี ถอน ได้ scr888 สมัคร ฟรี เครดิต xo slot 191 hack918kiss 918kiss demo slot casino online ฟรี เครดิต เดือน เกิด เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สล็อต xo 88 เครดิต ฟรี ระบบ ออ โต้ ยิง ปลา ไม่มี ขั้น ต่ำ slot889 pragmatic play ฟรี เครดิต 168 gaming xo slotxo123 เครดิต ฟรี 133 บาท joker slot 678 เครดิต ฟรี 10 สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 918kiss ฟรี 1000 slot viva slot ฝาก 1 บาท ฟรี 99 บาท ฝาก 10 รับ 100 slot scr888 เครดิต ฟรี ฟีฟ่า 55 hd เครดิต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot ฟรี เครดิต 50 35 slotxo avenger98 เครดิต ฟรี ทาง เข้า เล่น fifa55 slot punpun 999 โป็ ก เกอร์ ออ น ไล winner555 เครดิต ฟรี สมัคร fifa9999 สล็อต xo เติม เงิน ผ่าน wallet slot xo168
        โจ๊ก เกอร์ 777| fun888 สล็อต| game pc joker| magix99 pg| slot ให้ เครดิต ฟรี| สล็อต ทุน น้อย ล่าสุด| ufaonline24v2| joker123 โหลด| สมัคร joker slot| เครดิต ฝาก ครั้ง แรก| แจก ฟรี สล็อต| หมุน วง ล้อ ได้ เงิน จริง| โหลด slot live22| slot ฝาก 100 ได้ 200| โหลด เกมส์ สล็อต 1234| joker เข้า ระบบ| สล็อต xo เข้า สู่ ระบบ| สมัคร โจ๊ก เกอร์ 89| สล็อต ฝาก 10 บาท| เกม 88 joker| ทดลอง เล่น สล็อต ค่าย joker| ยิง ปลา แตก ง่าย pantip| https mm88fifa com login| slot 1688เล่น เกม ยิง ปลา ฟรี| joker123 ทดลอง| สมัคร slot เครดิต ฟรี| 48pgslot| fifa55 m| สล็อต 2019| mafia slot เล่น ผ่าน เว็บ| ibc9 คือ อะไร pantip| เกม ยิง ไข่ ได้ เงิน จริง| slotjokerth| pg slot1688| โจ ก เกอร์ สล็อต| เม กา 888| วง ล้อ หมุน ฟรี| สมัคร เกมส์ สล็อต ออนไลน์| โหลด เกม ค่า สิ โน ออนไลน์| รวม สล็อต ทุก ค่าย| เกม สล็อต วอ ล เลท| ดาว โหลด โจ ก เก อ| เข้า เว็บ สล็อต| สมัคร สมาชิก โจ๊ก เกอร์ 123| เกม ได้ เงิน จริง ไม่ ต้อง ลงทุน| โหลด แอ พ joker123| เกม sweet bonanza ได้ เงิน จริง ไหม| ฝาก 20 รับ 100 ท รู วอ เลท| slot แคน ดี้| ดาว โหลด slot joker| live22 แตก ง่าย| joker168 auto| fifa55 m| โหลด เกม โจ๊ก เกอร์ 123| m88ufa| เว็บ สล็อต ฝาก 20 รับ 200| เกม slot ฟรี| สล็อต โบ นั น ซ่า| copa69 reward| สูตร บา คา ร่า ออนไลน์ บริการ จาก gclubmember| เล่น เกม ค่าย pg| สมัคร เกม สล็อต รับ เครดิต ฟรี| ทาง เล่น joker| ฝาก วอ เลท| slot โปร ฝาก 1 บาท รับ 100| joker สล็อต true wallet|