• <delect id="44YwPy4"><source id="44YwPy4"><table id="44YwPy4"></table></source></delect><thead id="44YwPy4"><b id="44YwPy4"><pre id="44YwPy4"></pre></b></thead>

    <thead id="44YwPy4"><b id="44YwPy4"></b></thead>

  • 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
     
    slot game 66 คา สิ โน ออนไลน์ สุด ฮิต สล็อต xo191 joker123auto เครดิต ฟรี 918kissworld ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท joker slot1234 slotxo 1168 slot ฟรี 100 รู เล็ ต เครดิต ฟรี เล่น เกม slotxo 888 เครดิต ฟรี 168bet slot joker123 ท รู วอ ล เล็ ต คา สิ โน ออนไลน์ สุด ฮิต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก 2020 poker ได้ เงิน จริง slotxo คิง ค อง 918kiss ฝาก ขั้น ต่ำ 100 สล็อต xo191 บอล เสมือน จริง สด เล่น xo slot joker เติม true wallet ไม่มี ขั้น ต่ํา ไพ่ โป ก เกอร์ ออนไลน์ king77 slot เครดิต ฟรี ล่าสุด 2020 demo slotxo mm88bet ฝาก เงิน mafia55 เครดิต ฟรี 50 slot7 ไฮโล ขั้น ต่ำ 1 บาท สล็อต xo 999 slotxo blue 918kissth v3 918 ออ โต้ xo ฝาก 10 รับ 100 gaming world slotxo slotxo z slotxo เติม เงิน mega888 slot โปร โม ชั่ น 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss all slot666 เครดิต ฟรี 50 ไม่ ต้อง แชร์ xo หน้า เว็บ ี ฟีฟ่า 55 b2y เครดิต ฟรี civic69 slot 918kiss เว็บ ไหน ดี 9gspin เครดิต ฟรี ฝาก 99 ฟรี 300 เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน slot 20 รับ 100 slot joker ฝาก ไม่มี ขั้น ต่ํา slotxo แตก ง่าย 2020 สยาม โป็ ก เกอร์ slotxo ผ่าน วอ เล็ ต ดู ไฮโล slotxo spin999 slot22 เล่น ได้ 200 ถอน ได้ 100 โค๊ ต เครดิต ฟรี slot3k 918kiss ถอน ไม่มี ขั้น ต่ํา 918kiss ios ล่าสุด joker123 ไม่มี ขั้น ต่ํา 918kiss me ฟรี เครดิต สล็อต xo 888 slot online ไม่มี ขั้น ต่ํา 1xslot แอ พ การ พนัน ได้ เงิน จริง sbobet777 เครดิต ฟรี wms slot 918kiss ฝาก ผ่าน ท รู วอ เลท เครดิต ฟรี ไม่ หลอก แชร์ 918kiss เว็บ ไหน ดี 918kiss 55com demo slotxo slot ฝาก 100 ฟรี 100 py69 slot joker hunter 888 jokerslot69 เครดิต ฟรี boxing slot เครดิต ฟรี ใหม่ ๆ slot joker ฝาก ไม่มี ขั้น ต่ํา game slot 66 slot1234 918kiss แจก เครดิต ฟรี slotxo แอ พ ไฮโล สล็อต xo 236 slotxo55 slot789th xoslot69thai slotxo ฝาก 20 รับ 100 สมัคร สล็อต ง่ายๆ superlot999 เครดิต ฟรี สล็อต roma ไฮโล คือ สล็อต xo 99 slotxo at slotxo เติม เงิน เครดิต ฟรี ล่าสุด 2020 slot24th xo 918kiss วอ เลท 918kiss android android เครดิต ฟรี ถอน ไม่ อั้น 918kiss โปร โม ชั่ น slot2p 918kiss download 2019 ufa800 ฝาก เงิน สมัคร fifa777 ทาง เข้า ฟีฟ่า 55 คิง slotxo area89 z8 เครดิต ฟรี ฟรี เครดิต gclub slotxo aec999 สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก ป๊อก เด้ง ออนไลน์ เครดิต ฟรี win three card เว็บ ตรง 918kiss slot 888 v1 star slot777 เล่น สล็อต โร ม่า ฟรี joker ฝาก ไม่มี ขั้น ต่ำ ยิง ปลา บา คา ร่า slotxo ลอง เล่น tiger slot เครดิต ฟรี 888 joker slot 999th 2xl slotxo slotxo ดี ไหม เกม ไฮโล ออนไลน์ ได้ เงิน จริง ขอรับ เครดิต ฟรี ครับ อั่ ง เปา 918kiss slot free credit no deposit 2020 918 า ร ห ห รู้ เล็ ต ตา ละ 5 บาท slot เครดิต ฟรี 100 tss911 เครดิต ฟรี slot joker ไม่มี ขั้น ต่ํา slotxo ได้ เงิน จริง mega joker slot ส ล๊ อ ต xo1234 gclub ฟรี เครดิต ไม่ ต้อง ฝาก xo slot cafe รู เล็ ต เครดิต ฟรี slot live22 ฝาก 10 รับ 100 xo slot ถอนเงิน god slot slotxo เกม สล็อต xo roma shangri la slot สมัคร เครดิต ฟรี 300 เกมส์ ไฮโล เหมือน จริง ทาง เข้า fifa55 ล่าสุด lucky slot slotxo เทิ ร์ น 2 เท่า 918kiss free joker123 ฟรี เครดิต ไม่ ต้อง ฝาก ป๊อก เด้ง คา สิ โน ออนไลน์ 918kissgrand taicity333 slot เครดิต ฟรี 50 บาท เครดิต ฟรี สล็อต 1234 ฟรี 2020 ufa24h register slot gold free slot online leo slot เว็บ แทง บอล fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ live22 ฝาก 20 รับ 100 kinglive22 slotxo ไฮโล ภาษา อังกฤษ สมัคร เครดิต ฟรี 300 slotxo 10 บาท slotxo epic slotxo lucky god 3cha slotxo slotxo 311 สล็อต xo 888 สล็อต xovip scr888 918kiss download winner99 เครดิต ฟรี ไม่ ต้อง ฝาก slotplay88 168bet ฟรี เครดิต xo ผ่าน เว็บ 918kiss33 slot ฝาก 50 ฟรี 150 918kissgrand ดู บอล สด fifa55 ฟีฟ่า 1688 joker slot 888 slot super slotxo pantip slotxo 191 testament slot mvegus1682 memberbet net เกม slot ufa800 ไฮโล เครดิต ฟรี 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo 007 เครดิต ฟรี ใหม่ ๆ fifa55 ดู ทีวี ออนไลน์ fifa5599 slot 168 xo live22 สมัคร gclub ฟรี เครดิต ufa24h ฝาก เงิน บ่อน ไฮโล ออนไลน์ slot ฝาก 10 บาท รับ 100 918kiss ถอน ไม่มี ขั้น ต่ํา สล็อต ฝาก อัตโนมัติ slotxo 24hr slot ฝาก ถอน ไม่มี ขั้น ต่ำ xovip slot สมัคร สมาชิก fifa55 gom88bet wms slot xo ออ โต้ xo ออนไลน์ 918kiss ฝาก ถอน ไม่มี ขั้น ต่ำ wms slot 3win8 ฟรี เครดิต slot999 xo wow918kiss เกม slot ลิ้ ง เข้า fifa55 mega888 slot win three card slot fun888 live22 ฝาก 1 บาท ฟรี 99 slotxo allbet asia slotxo ที่ ดี ที่สุด joker456 เครดิต ฟรี joker slot เครดิต ฟรี slot ฝาก 50 slotxo pgslot live slot live22 ฝาก ถอน ไม่มี ขั้น ต่ำ mm88bet sport 918kissauto v4 สล็อต xo123 gott7 slot slot xo168 918kiss money kingslots slotxo55 african simba v9 slotxo เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ เว็บ แทง บอล fifa slot2xl slotxo โจ๊ก เกอร์ xo ไฮโล apk เสือ มังกร ออนไลน์ โปร โม ชั่ น fifa55 สล็อต xo11 918kiss ios ล่าสุด slot bet ฟรี เครดิต slotxo apk pussy888 bettopfive เล่น ออนไลน์ ได้ เงิน บอล เสมือน จริง สด 168slotxo auto 168 slot slot22 win55 เครดิต ฟรี รู เล็ ต กด เอง slotxo jb slotxo โปร 10 รับ 100 918tiger2 slot king99 8bit slotxo joker slot ฟรี เครดิต 918kiss download ios ล่าสุด คา สิ โน ไพ่ป๊อก เด้ง ออนไลน์ ro slotxo kingslotxo บอล เสมือน จริง สด love918kiss ab24hr เครดิต ฟรี 99 ป๊อก เด้ง ออนไลน์ ไม่มี ขั้น ต่ํา gucci slotxo slotxoslotxo ib888 slot xoslot69 vegus168 member joker888 เครดิต ฟรี fifa55 easy slot 22 p168 slot บอล เสมือน จริง mega888 download pc โบนัส เงิน ฝาก slot free credit no deposit 2019 slot47 slot joker true wallet ไม่มี ขั้น ต่ํา เล่น blackjack ออนไลน์ live22 ฝาก ไม่มี ขั้น ต่ำ คา สิ โน ออนไลน์ ดั ม มี่ fifa55 ถอนเงิน ไม่ ได้ slotm168 mafia999 slot เกมส์ ไฮโล 918kisshero slot 2019 vip slotxo แอ พ คำนวณ รู เล็ ต ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท agent 918kiss เครดิต ฟรี 1000 live22 ฝาก 20 รับ 100 สมัคร เครดิต ฟรี 200 ติดต่อ ufa365 918kiss live22 หมุน วง ล้อ joker123 918kiss android slotxo 111 www fifa55bet com fifa55 idea mafia เครดิต ฟรี 50 slot เครดิต ฟรี 50 ด ค ร ดิ ต ฟรี slot ฝาก 50 roma slotxo african simba 35xo slot slotxo เทิ ร์ น 2 เท่า ดา ฟา เบ ท ฟรี เครดิต joker123 auto 2 แอ พ เกม ไฮโล ได้ เงิน จริง 69slot slotxo lucky open365 ฟรี เครดิต http slotxo สล็อต 1234xo winner55 เครดิต ฟรี 918kiss แจก เครดิต ฟรี 100 ทาง เข้า 55 slotxo ที่ ดี ที่สุด joker666 slot slotxo8 918kiss auto ivip9 slot slotxo กับ joker อัน ไหน ดี กว่า finn slot 918kiss download ios slotxo ฝาก 10 บาท ได้ 100 joker123 net slotxo678 agent scr888 joker918kiss slot joker auto เครดิต ฟรี ออ โต้ สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ super big win ฟรี เครดิต 50 ไม่ ต้อง ฝาก 918kiss เวอร์ชั่น ใหม่ scr888 สมัคร ฟรี เครดิต 918kiss55 slotxo apk xo slot auto scr888th v5 เกม xo slot 918kiss เวอร์ชั่น ใหม่ slotxo ฟรี ส ปิ น love slot agent scr888 slotxo z mafia01 เครดิต ฟรี ไม่ ต้อง แชร์ เครดิต ฟรี fifa55 goal sp918kiss โปร โม ชั่ น ยิง ปลา superlot999 เครดิต ฟรี joker slot 555 แอ พ พนัน เงิน จริง 918kiss โปร ทุน น้อย เกม ไฮโล ฟรี live22 ฝาก ไม่มี ขั้น ต่ำ live22 ฟรี เครดิต ไม่ ต้อง ฝาก joker true wallet ไม่มี ขั้น ต่ํา 918kiss th slot2pig สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก หมุน วง ล้อ joker123 megaways slot 918 auto slot xl ทาง เข้า 55 slotxo บน เว็บ ฝาก ถอน 918kiss 918kisstm slotat ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ joker ไม่มี ขั้น ต่ํา mm88bet sport ฟุตบอล เสมือน จริง saba joker888 เครดิต ฟรี โป เกอร์ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน เข้า slotxo ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ 666slot 35 slot เติม เกม slotxo เล่น สล็อต xo บน เว็บ 369 slotxo 88 slotxo databet88 agent 918kiss69 slotxo z slot ฝาก 19 บาท ได้ 100 xo slot cafe 24th slot fifa55we ฟรี เครดิต 20 โป็ ก เกอร์ ออ น ไล เครดิต ฟรี 3000 918kiss allbet asia ไท เกอร์ คา สิ โน nuovo casino slotplay88 kiss918 เครดิต ฟรี slot1234 slotxo ทาง เข้า ฟีฟ่า 69 joker slot 666 เครดิต ฟรี เล่น ได้ ถอน เลย win three card joker game slot เล่น สล็อต ออนไลน์ ดู ไฮโล ฝาก 10 รับ 100 joker xo รีโมท ไฮโล m918kiss slot 69 slot vip 99 ยู ส ฟรี 918 3xbet เครดิต ฟรี ผล ฟุตบอล เสมือน จริง ไพ่ ออนไลน์ 198 kiss ฟรี เครดิต slot joker789 เว็บ บอล 55 slot68 หน้า เว็บ xo slotxo45 slotxo ฝาก 30 รับ 100 918kiss 123 สมัคร gclub ฟรี เครดิต live22 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 168galaxy joker slotxo สล็อต ฝาก 10 บาท รับ 100 red slot เติม สล็อต xo ถอนเงิน slotxo slotxo 100 1 เทิ ร์ น เครดิต ฟรี joker 333be โค๊ ด ฟรี 133 super999 slot สล็อต xo ทุน น้อย ผล บอล ฟุตบอล เสมือน จริง pg slot โปร โม ชั่ น slotxo ฝาก วอ เลท scr888th v5 fifa55best slotxo 331 tggame9999 เครดิต ฟรี ไม่มี เงื่อนไข ล่าสุด slot ฝาก 1 บาท ฟรี 99 บาท 2020 win55 เครดิต ฟรี ฝาก 1 บาท ฟรี 99 บาท สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก slotxo 639 198 kiss download ไฮโล ส กิ ด 3 หน้า ฟีฟ่า 55 ทาง เข้า fifa55 slotxo xs 918kiss th 918kiss android 9.0 slotxo สล็อต ออนไลน์ ทาง เข้า เว็บ fifa55 s9 slotxo ไฮโล 2020 เล่น sbobet ฟรี 918 slot สลอด เอก โอ ไฮโล เงิน จริง 918kiss โปร ทุน น้อย live22 ฝาก ไม่มี ขั้น ต่ํา ขอรับ เครดิต ฟรี ครับ slotxo lucky god2 30 ฟรี เกม เครดิต ฟรี 918kiss 2020 ro slotxo ไฮโล ลูกคู่ เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ ฝาก 100 ฟรี 100 fifa55 เข้า ไม่ ได้ playstar slot slotxo ได้ เงิน จริง คา สิ โน ดั ม มี่ อั่ ง เปา สล็อต xo ยิง ปลา ฝาก ขั้น ต่ํา 50 สล็อต xo เครดิต ฟรี ไม่ ต้อง แชร์ โป๊กเกอร์ ได้ เงิน จริง 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา 918 ฝาก ไม่มี ขั้น ต่ํา หลักการ แทง ไฮโล 899slot w12ww slot เครดิต ฟรี slot ฝาก ไม่มี ขั้น ต่ำ สล็อต xo แตก ง่าย 2020 เล่น poker ออนไลน์ slotxo วอ เลท 918kiss d 12ww เครดิต ฟรี หมุน วง ล้อ joker123 aba918kiss slotxo ฝาก ผ่าน วอ ล เลท สมัคร ฟรี ไม่ ต้อง ฝาก slotxo เติม true wallet ไม่มี ขั้น ต่ํา เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ไม่ ต้อง แชร์ pg slot โปร ทุน น้อย xo สล็อต เครดิต ฟรี mega888 918kiss 1234 siamslotxo 918kiss ฝาก ขั้น ต่ำ 100 fifa555 เครดิต ฟรี โจ๊ก เกอร์ เครดิต ฟรี ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี 888 game slot 789 ผล บอล เกม เสมือน จริง เข้า เว็บ fifa55 fifa55new download918kiss slotxo เข้า เล่น fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss v ถอนเงิน slotxo slot joker true wallet ไม่มี ขั้น ต่ํา 8bit slotxo live slot gclub royal1688 เครดิต ฟรี สล็อต xo วอ ล เลท สล็อต x0 slotxo 2xl slot 10 casino q9win ฟรี เครดิต ลิ้ ง เข้า fifa55 สล็อต 777 คา สิ โน ออนไลน์ เล่น slotxo love slot ฟีฟ่า 55 โปร สมัคร fifa55 ฝาก ขั้น ต่ํา 100 918kiss superman เติม เงิน เข้า สล็อต 198 kiss ฟรี เครดิต แจก เครดิต ฟรี xo ฟรี ไม่ ต้อง แชร์ joker slot 888 เว็บ บอล fifa 88 kiss download ดา ฟา เบ ท เครดิต ฟรี มาเฟีย 123 เครดิต ฟรี คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ www slotxo88 com home 918kiss royal slotvip789 เครดิต ฟรี สล็อต คา สิ โน 918kiss th royalbet777 joker123 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot cq9 slot ฝาก 20 รับ 100 slotxo mafia เข้า เกมส์ สล็อต 928bet ฟรี เครดิต slot123 joker slot เครดิต ฟรี ไม่ ต้อง แชร์ slotxo ฝาก 10 บาท ได้ 100 เกม สล็อต ไลน์ 22 เล่น ไพ่ แบ ล็ ค แจ็ ค 333be โค๊ ด ฟรี 133 safari gold megaways โป ก เกอร์ เกม ไฮโล เว็บ ตรง 918kiss เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ 2020 ล่าสุด slotxo 24hr เล่น ผ่าน เว็บ slotxo 2xl slot slotx0 slotxo ฝาก 10 บาท รับ 100 slotxo แตก ง่าย สล็อต xo ท รู วอ ล เล็ ต เครดิต ฟรี ไม่มี เงื่อนไข fifa slot slotxo free credit fifa69 ทาง เข้า เข้า เล่น fifa55 slotxo city เครดิต ฟรี โจ๊ก เกอร์ ไม่ ต้อง ฝาก slot007 เครดิต ฟรี ด ค ร ดิ ต ฟรี live22 ฝาก 1 บาท 48 slotxo b2y เครดิต ฟรี slotxo 918 918kiss918kiss 918kiss เวอร์ชั่น ใหม่ la slot 11 ไฮโล มี กี่ หน้า ro slotxo xo slot 191 918kiss kiss ทาง เข้า fifawin365 918kissslots slot joker 1234 slotxo เติม วอ ล เลท slot champion168 kiss918 auto mm88bet ฝาก เงิน slotxo51 918kiss ฟรี 100 mega888 ไม่มี ขั้น ต่ํา รีโมท ไฮโล fifa55na kiss slot mega888 เครดิต ฟรี vegus168 ติดต่อ สล็อต xo777 โปร โม ชั่ น 918kiss รู เล็ ต คือ joker slot 1688 หน้า ไฮโล 918kiss billion cq9 gaming 22thxo หา เครดิต ฟรี เล่น slot live22 เครดิต ฟรี 10 รับ 100 xo 918kiss allbet asia gclub เครดิต ฟรี slotxo ฝาก 10 รับ 100 ล่าสุด 918kiss line live22 โปร 100 ไฮโล 600 slotxo joker123 ทาง เข้า ฟีฟ่า 8888 superlot999 เครดิต ฟรี เกม 168slotxo fruit slot slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 77up live football slotxo 1988 joker123 ฝาก 10 รับ 100 slotvip777 ทาง เข้า fifa55m sbobet ฟรี เครดิต 2020 kiss918 เครดิต ฟรี ฝาก 1 บาท ฟรี 50 บาท bbet99 เครดิต ฟรี fifa55 lord scr888 918kiss download www fifa8888 ลิงค์ 918kiss เล่น ไพ่ เงิน จริง 918 ฝาก ถอน ไม่มี ขั้น ต่ํา slot 22 ฝาก วอ เลต ไม่มี ขั้น ต่ํา โบนัส เงิน ฝาก pgthai888 slot team ไพ่ แค ง เล่น ได้ เงิน จริง slot2499 555slot slot red pgslot1234 slot33 ak47 slotxo slotxo 168 vip fifa555bonus เครดิต ฟรี 200 ไม่ ต้อง แชร์ slot1234 918 b2y เครดิต ฟรี slot vip 99 หมุน วง ล้อ slotxo vscr888 slot x0 gaming world slot slot22th xo slotking88 เล่น xo หน้า เว็บ 2pigs xo mafia เครดิต ฟรี 50 ไฮโล ออนไลน์ ได้ เงิน จริง pantip สล็อต xo เครดิต ฟรี 100 ไม่ ต้อง แชร์ fifa55 สมัคร 50 ฟรี 100 5g slotxo สล็อต xo true wallet เครดิต ฟรี ฝาก 20 w12ww slot star slot shangri la slot game เข้า เว็บ ฟีฟ่า 55 star slot777 slot007 เครดิต ฟรี เข้า เว็บ ฟีฟ่า 55 slotxo 918kiss slot joker auto ฝาก เงิน สล็อต xo mafia เครดิต ฟรี 50 ค ริ ส 918 slot69 sagame66 ดี ไหม fifa55 mobile joker slot 9669 ทาง เข้า เล่น fifa55 slotxo 22th win555 เครดิต ฟรี wms slot สมัคร ได้ เครดิต ฟรี 8bet slot คิง ค อง xo fifa69 ทาง เข้า joker slot 999th slotxo 4u hungry 918kiss slot868 slotxo 8855 918kiss ฟรี 1000 fifa555 สมัคร joker123 ท รู วอ ล เล็ ต ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ำ ติดต่อ ufa365 kiss me 918 xo slot168 riches777 เครดิต ฟรี 1688 slotxo ราคา ไฮโล 888 slotxo 918kiss เวอร์ชั่น ล่าสุด avenger98 เครดิต ฟรี spk slotxo สล็อต xo888 918kiss 123 super918kiss slotxo246 918kiss all game สมัคร fifa888 slot ฝาก 10 รับ 100 981kiss สล็อต xo เติม เงิน ผ่าน wallet เครดิต ฟรี 50 mafia slot epic win live22 ฟรี เครดิต ไม่ ต้อง ฝาก ฝาก 1 บาท รับ 99 ไพ่ โป๊กเกอร์ fifa55 คา สิ โน fifa555 sport slot007 เครดิต ฟรี เว็บ สล็อต xo ไพ่ black jack เก้า เก คา สิ โน 918kiss bettopfive slotxo ฝาก ถอน วอ เลท caesar88 slot slot007 เครดิต ฟรี slot joker689 918kiss ฟรี 1000 king77 slot โปร 918kiss ป๊อก เกอร์ slotxo ฝาก 10 บาท ได้ 100 sn888 kiss review 369slot slotxo g โจ๊ก เกอร์ 888 ไฮ โล slot ฝาก ถอน ไม่มี ขั้น ต่ํา superslot999 xo 918kiss android master joker slot joker ถอน ไม่มี ขั้น ต่ํา slot vip แจก ฟรี 100 slotxo logo เข้า สล็อต วง ล้อ คา สิ โน เครดิต ฟรี 20 บาท 918kiss 1234 เกม ไฮโล มือ ถือ fifa55u ดู ทีวี ออนไลน์ ดา ฟา เบ ท ฟรี เครดิต fif55u slot joker xo slot playlive88 เครดิต ฟรี ไม่ ต้อง ทำ เท ริน สล็อต 22thxo 918kissauto download sbobet777 เครดิต ฟรี slot joker ไม่มี ขั้น ต่ํา allbet24hr ไฮโล ออนไลน์ 5 บาท gclub royal1688 ฟรี เครดิต 1688 slot หา เครดิต ฟรี ไม่ ต้อง แชร์ เล่น สล็อต roma ไฮโล png ป๊อก เด้ง ออนไลน์ ได้ เงิน จริง ฝาก ขั้น ต่ํา 100 เครดิต ฟรี ไม่ หลอก แชร์ fifa55run fafa855bet เครดิต ฟรี 918kiss team 48 xo slot slotxo apk slotjoker888 joker123 ไม่มี ขั้น ต่ํา slot168 xo เติม เกม slotxo mb slotxo สล็อต xo เกม slotgame88 ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท joker god slot god slot epic slot joker123 ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo ro joker slot999 fifa555 สมัคร 918kiss คือ 918kiss44 download 918kiss allbet asia now918kiss slot joker auto 666slot 7slot น้ํา ยา ส กิ ด ไฮโล slotcafe aa9win slot 918 ฝาก ไม่มี ขั้น ต่ํา wms slot 77up club มาเฟีย 123 เครดิต ฟรี slot joker 1234 999 slot live22 ฝาก ไม่มี ขั้น ต่ำ แอ พ แยก เสียง ไฮโล 918kiss เวอร์ชั่น ใหม่ เกม ไฮโล y8 xo โจ๊ก เกอร์ ไฮโล ออนไลน์ 888 918kiss club slot cq9 fifa555 truemoney 369slot mega joker slot slot 345 golden monkey slot slotxo688 slot jackpotxo โป ก เกอร์ ออ น ไล slot kiss918 slot1688 joker slot289 slot ฝาก 20 รับ 100 สล็อต ฝาก อัตโนมัติ avenger98 เครดิต ฟรี ฟีฟ่า 777 slot joker โปร โม ชั่ น slotxo ฝาก ถอน อัตโนมัติ สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท 918kiss ios ล่าสุด live777slot slotxo 3cha 918kiss luk666 เครดิต ฟรี slot456 แจก เครดิต ฟรี slotxo fifa55 easy 246 slot slotxo88v8 เล่น โป ก เกอร์ ออนไลน์ เงิน จริง slot punpun 999 slot24th xo เว็บ พนัน บอล ดี ที่สุด 2021 pay96 slot สล็อต xo 007 เกม สล็อต โร มา vegus168 member net ฝาก 20 รับ 100xo god slot slot ยืนยัน ตัว ตน รับ เครดิต ฟรี เว็บ บอล ufa365 เกม live22 เครดิต เล่น ฟรี slotxo ฝาก 15 รับ 100 jokerauto 888 5gslot เล่น poker luk666 คา สิ โน ออนไลน์ fifa555 เครดิต ฟรี gclub เครดิต ฟรี ace333 ฟรี เครดิต ค่าย slotxo vegus168 lucky 918kiss ฟรี 1000 slotxo ท รู วอ ล เล็ ต ไพ่ โป ก เกอร์ เว็บ บอล ufa365 slot1688 pantip vegus168 ถอนเงิน สมัคร ฟรี เครดิต ฟรี 918kissth v3 apk slotxo all slot 918kiss th 55 slot เครดิต ฟรี สมัคร ง่าย 918kiss demo slotxo 169 slot311 918kissthailand เข้า เกมส์ สล็อต slotxo ro best xo slot slotxo ฝาก 1 บาท รับ 100 superslot999 xo live22 ฝาก 10 รับ 100 jokerauto 888 slot1688 pantip ด fifa55 แทง ไฮโล ออนไลน์ 666slot 918kiss download 2019 pc slot vip puss888 คา สิ โน ออ น ไล slot777 ฟรี เครดิต ฝาก 10 รับ 100 slot slot joker 1234 joker slot 9889 slot ฝาก 9 รับ 100 เครดิต ฟรี ทํา เทิ ร์ น 777 slot game slot โปร ฝาก 10 รับ 100 slot1888 slot007 เครดิต ฟรี slotxo โอน วอ เลท ไฮโล ลูกเต๋า slotxo casino slotxo at slot punpun slot22 918kiss อัน ไหน ดี 2in2 slot fifa555 sport fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก slotxo teddy สมัคร ฟรี ไม่ ต้อง ฝาก xo slot007 vivo slot game xo ผ่าน เว็บ ufa800 บา คา ร่า best slot789 918kissbet slotxo club เว็บ พนัน บอล ดี ที่สุด 2021 ไม่ ต้อง แชร์ เครดิต ฟรี สมัคร ฟรี ไม่ ต้อง ฝาก xoclub99 slotxo โบนัส 100 เทิ ร์ น 2 เท่า winner55 เครดิต ฟรี slotxo 3cha สล xo สล็อต xo 191 fifa55 sport and casino gclub เครดิต ฟรี slot 10 megaways jack slot ฝาก 50 รับ 100 918kisswallet รวย ดี slot slot joker689 joker slot ฝาก 10 รับ 100 โป้ ก เก้อ fifa555fc เล่น เสือ มังกร ออนไลน์ 918kisskingdom สมัคร ใหม่ เครดิต ฟรี slot2499 ลิ้ ง เข้า fifa55 joker89auto slot ฝาก 100 ฟรี 100 slot ไม่มี ขั้น ต่ํา xo slot1234 mega888 download 2019
    ufabet 11| บอ ท บา คา ร่า| ยิง ปลา ได้ เงิน ฟรี| โบนัส ฟรี ไม่ ต้อง ฝาก ถอน ได้| แทง บอล ขั้น ต่ํา 50| bcr777 รู เล็ ต| แทง บอล ออนไลน์ ฟรี| ufa356 ฟรี เครดิต| แทง บอล ออนไลน์ ขั้น ต่ํา 20| live22 แจก เครดิต ฟรี| ufabet login| ufabet joker| เข้า เล่น ยู ฟ่า| แทง บอล ออนไลน์ fifa555| ufa888 pantip| บา คา ร่า ae| แทง บอล เดี่ยว| แทง บอล true wallet| slot ฝาก 1 บาท ฟรี 99 บาท 2020 ล่าสุด| สมัคร เล่น บอล ออนไลน์| ี ufa369| แจก เครดิต ฟรี จริง| ufa เบ ท| ufa คือ| ufawb998| puss888 เครดิต ฟรี| sa gaming slot| ufa888com| เข้า เกม slotxo| ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้| ufa68bet| xo แจก เครดิต ฟรี| ufa7777| ฝาก 1 รับ 100 918kiss| sa gaming 86| ufabet089| แจก เครดิต ฟรี ถอน ได้ ไม่ ต้อง ฝาก| แอ ป slotxo| download slotxo| ฟรี โบนัส ไม่ ต้อง ฝาก| mafia8888 เครดิต ฟรี| ufabet88888vip| sbobet168 line| ufabet cnv3| ufabet world| icon99 บา คา ร่า| ufabet 8888| mm88vivo| ufabet kik| ufabet z4| ufabet scr| slot ออนไลน์ ฟรี| download slotxo android| ดาว โหลด เกมส์ live22| ufabet ทาง เข้า มือ ถือ| sbothai8| ufabet955| ทาง เข้า xo slot| slotxo ฝาก 10 บาท| ufabet lion 168| ufa สมัคร| 918kiss ฟรี เครดิต 1000 บาท 2020| ufabet 666| แซ ก ซี้ บา คารา 1688| ทาง เข้า ufabet191| ufabet rich|