<sub id="Evw64U"></sub>

<form id="Evw64U"></form>

    <wbr id="Evw64U"></wbr>

    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
     
    xo บน เว็บ hack918kiss sbobet ฟรี เครดิต 2020 ไฮโล เจ้ามือ slot xo168 slot ฝาก 20 รับ 100 coduca88 เครดิต ฟรี slot โปร 10 บาท slotxo ฝาก 19 slot 13 fifa55 เครดิต ฟรี 200 เครดิต ฟรี winner55 joker god slot เว็บ แทง บอล fifa55 slot w88 เกมส์ สล็อต ออนไลน์ slot69 mvegus1682 memberbet net chklogin slot35 joker เครดิต ฟรี ไม่ ต้อง ทํา เท ริน โป ก เกอร์ ไพ่ สมัคร winner55 เครดิต ฟรี slot333 sg เครดิต ฟรี 928kiss ไฮโล ต่ำ 918kiss allbet asia เครดิต ฟรี 918kiss 8bitslotxo slot ฝาก 19 บาท ได้ 100 918 ออ โต้ slotxo dollarstar joker slot 666 ยิง ปลา ฝาก ขั้น ต่ํา 50 kiss918 ฟรี เครดิต เล่น xo slot slotxo lucky god2 30 ฟรี เกม joker slot 555 slotxo เติม true wallet ไม่มี ขั้น ต่ํา slotxo thxo tiger918kiss โจ ก เกอร์ 888 twin79 เครดิต ฟรี 999 super slot เกม 11 ไฮโล win55 เครดิต ฟรี 369 slotxo xo slot 888 rad slotxo เกม ไฮโล ออนไลน์ ได้ เงิน จริง mafia01 เครดิต ฟรี slotxo เติม true wallet ไม่มี ขั้น ต่ํา mega888 เครดิต ฟรี ไฮโล ขั้น ต่ำ 5 บาท 19slot slot ฝาก 1 บาท 12ww เครดิต ฟรี 918kiss 55com คา สิ โน 918 สมัคร fifa55u สล็อต slotxo slotxo แจก เครดิต ฟรี 2020 joker ฝาก ไม่มี ขั้น ต่ำ tss911 ฟรี เครดิต 918kiss win joker slot ไม่มี ขั้น ต่ํา บ้าน บอล fifa55 slot35 play slot joker35 slot ไฮโล ขั้น ต่ำ 5 บาท slotxo 169 918kiss55 ป๊อก เด้ง คา สิ โน คอ ล เซ็นเตอร์ fifa555 เครดิต sahacker ไฮโล 600 981kiss download วิธี สมัคร databet88 เว็บ พนัน บอล ดี ที่สุด 2021 เครดิต ฟรี 1000 databet88 pantip joker ไม่มี ขั้น ต่ํา memberbet vegus168 เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิต ฟรี kiss918 918kiss พี่ เสือ 918kiss อัน ไหน ดี 3xbet เครดิต ฟรี tggame9999 บอล เสมือน จริง 918kiss เครดิต ฟรี 50 m918kiss แอ พ fifa55 slotxo 191 รู เล็ ต เคล็ด ลับ slotxo mario ฝาก ถอน xo เครดิต ฟรี 918kiss กลุ่ม สาธารณะ ไฮโล ออนไลน์ pantip joker456 เครดิต ฟรี เว็บ vegus168 ทาง เข้า ฟีฟ่า 55 คิง 888 joker slotxo 168 vip joker123 true wallet ไม่มี ขั้น ต่ํา slot crown fifa55 memberbet เติม เงิน เข้า สล็อต หา เครดิต ฟรี เล่น slot joker ไม่มี ขั้น ต่ํา slot ฝาก ถอน ไม่มี ขั้น ต่ํา 888 slot th สมัคร แล้ว ได้ เครดิต ฟรี skywind slot testament slot เครดิต ฟรี 133 บาท สล็อต xo777 ace slot super big win สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 9gspin เครดิต ฟรี ufa800 ไฮโล เครดิต ฟรี 888 สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ถอนเงิน ได้ vegus16 ไฮโล คลาสสิค red slot สล็อต 777 คา สิ โน ออนไลน์ slotxo 639 slot777 mega888 download pc วิธี เล่น databet88 3xslot slot ฝาก ไม่มี ขั้น ต่ํา วอ เลท slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ฝาก 20 รับ 100 slotxo สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน slotxopug ส ล๊ อ ต xo1234 slot7777 scr888th v5 black jack ออนไลน์ slot4u joker joker slot 911 เข้า vegus168 918kissyou slotxoslotxo ฝาก 100 ฟรี 100 99 ocean เครดิต ฟรี slot999 live22 mb slotxo slotjoker888 databet88 agent 918kiss d live22 ฟรี เครดิต ไม่ ต้อง ฝาก ไฮโล 5 บาท gott7 slot ไฮโล ออนไลน์ ได้ เงิน จริง เกมส์ สล็อต สมัคร เครดิต ฟรี 100 ไฮโล ขั้น ต่ำ 5 บาท 99slotxo hungry 918kiss roulette คือ ฟรี เครดิต 918kiss สล็อต สมัคร ง่าย 918kiss พี่ เสือ 777slotxo luk666 คา สิ โน ออนไลน์ queen slot สูง ต่ำ ไฮโล fifa55 ถอนเงิน ไม่ ได้ slotxocom 918kiss me 2 เครดิต ฟรี 18 เครดิต ฟรี ทํา เทิ ร์ น น้อย เล่น poker ออนไลน์ slot sagame66 slot 66 chomikuj โปร โม ชั่ น 918kiss fifa55ag slot4u pgslot คา สิ โน 918kiss ไฮโล ส กิ ด 3 หน้า ค ร ดิ ต ฟรี mafia เครดิต ฟรี 50 xe888 เครดิต ฟรี fifa55 สมัคร 50 ฟรี 100 safari gold megaways demo 918kiss android ไฮโล พม่า ถอน เงิน slotxo ถอนเงิน xo apk slotxo ฟีฟ่า 55 ทาง เข้า ทาง เข้า fifa55 ล่าสุด กติกา รู เล็ ต หน้า เกม slotxo slotxo เข้า ไม่ ได้ fifa555com 918kiss ท รู วอ ล เล็ ต เข้า เล่น สล็อต xo mvegus1682 memberbet net main 918kiss ถอนเงิน slotxo blue รู เล็ ต 2 ลูก เครดิต ฟรี sg 918kiss เวอร์ชั่น ใหม่ สล็อต xo เครดิต ฟรี ไม่ ต้อง แชร์ slot375 live222th slotxo fortuna slots 918kiss พี่ เสือ fifa55 คา สิ โน live222 slot super918kiss xo69 slot ฟรี เครดิต 918kiss joker god slot ufa24h register สล็อต ออนไลน์ 22 2pigs xo ufaallslot777 ufa800 ฝาก เงิน nuovo casino 918kiss เครดิต ฟรี slot375 ฟรี เครดิต 100 ถอน ได้ fifa55u ทาง เข้า xo slot1234 สล็อต xo 99 เก้า เก คา สิ โน เข้า slotxo hungry 918kiss fifa555 truemoney สล็อต xo คิง ค อง ไฮโล มือ ถือ slotxo 9999 918kiss เครดิต ฟรี 300 ไม่ ต้อง ฝาก สล็อต xo ฝาก ขั้น ต่ำ 50 บาท ufa365 ดี ไหม pantip slotxo48 slot xo 777 ฝาก 10 รับ 100 slotxo xo หน้า เว็บ slot jitu 918kissauto download pg slot โปร โม ชั่ น เกม ไฮโล pc หน้า เกม slotxo scr888 แจก เครดิต ฟรี 2563 databet88 agent slotxo member slotxo joker ฝาก 10 รับ 100 แบ ล็ ค แจ็ ค 918kiss โปร โม ชั่ น เว็บ 918kiss เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ fifa55 rmcc เข้า slotxo สล็อต xo โจ๊ก เกอร์ 918kiss ฟรี 1000 fifa5555vip fifa55new fifa55 เข้า สู่ ระบบ slot thai888 918kiss ระบบ ออ โต้ xo slot 888 fifa5599 slot house 2xl slot joker live22 ฝาก ไม่มี ขั้น ต่ำ fifa55 hot ถอนเงิน live22 สมัคร เครดิต ฟรี 200 joker live22 slotxo 10 ได้ 100 slotxo88v8 ทาง fifa55 ava slot 918kiss money เกม 11 ไฮโล genie jackpot royal 918kiss slotxo09 918kissauto download 918kisswallet เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด เว็บ 918kiss บ่อน ไฮโล ออนไลน์ red tiger slot slotxo online slot โปร ฝาก 10 รับ 100 scr888 เครดิต ฟรี 918kiss อั่ ง เปา ึึ 77up สมัคร sbobet ฟรี ไม่ ต้อง ฝาก qtech slot slot cat88 kiss slot 918 ฝาก ไม่มี ขั้น ต่ํา เล่น เสือ มังกร ออนไลน์ mario xo slot mafia เครดิต ฟรี 2020 ฟีฟ่า 55 ทาง เข้า bbet99 เครดิต ฟรี gclub 918 slot191 สล็อต xo ฟรี slot 66 โปร ทุน น้อย slot jack slot sunbet slot grand918kiss ป๊อก เด้ง ขั้น ต่ำ 10 บาท 918kiss win ไฮโล ออนไลน์ 888 mafia เครดิต ฟรี 50 coduca88 เครดิต ฟรี 918kiss star v2 roma slot joker วงกลม รู เล็ ต 88 kiss download mega888 download 2019 สมัคร โจ๊ก เกอร์ 888 899slot เล่น แบ ล็ ค แจ็ ค ออนไลน์ mafia เครดิต ฟรี 50 ึึ 77up v7slot lucky 918kiss 918kiss โปร โม ชั่ น สมัคร เว็บ fifa55 สมัคร โจ๊ก เกอร์ 888 slot ฝาก 1 บาท รับ 100 369 slotxo 918kiss ตู้ ม้า mafia555 slot ไม่ ต้อง ฝาก slot free credit no deposit slot 20 รับ 100 เครดิต ฟรี 99 slot playlive88 918kiss the moon ถอนเงิน joker123 slotxo โปร ฝาก 10 รับ 100 xo slot 191 slot เติม true wallet ไม่มี ขั้น ต่ํา fifa55v ไฮโล ส กิ ด z4 slot สมัคร เครดิต ฟรี 100 คา สิ โน ออนไลน์ ดั ม มี่ เล่น เสือ มังกร ออนไลน์ 918kiss d slot888online สมัคร เครดิต ฟรี 200 slot red ติดต่อ ufa365 สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 8b slotxo slotgame666 918kiss star v2 918kiss allbet asia slot 888 v1 xe88th เครดิต ฟรี สล็อต โร ม่า เครดิต ฟรี ฝาก เงิน live22 slot mg fifa55 goal betway เครดิต ฟรี slot สมัคร แล้ว ได้ เครดิต ฟรี slot dreamtech fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก slot โปร โม ชั่ น q9win ฟรี เครดิต สล็อต xo 88 สมัคร 300 ฟรี 300 slotxo06 slot ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 fifa55ez slot ถอน ไม่มี ขั้น ต่ํา slot v online casino 918kiss วอ เลท w88 โป๊กเกอร์ ไฮโล ออนไลน์ 888 918kiss 168 สมัคร เครดิต ฟรี 200 slotxo city slotxo pt slotxo35 infinity 888casino สมัคร เครดิต ฟรี 2020 scr888th v5 918kiss v8 ฟีฟ่า 555 สมัคร เครดิต ฟรี ถอน ไม่ อั้น slot joker 100 918kiss slot 777 slotfree88 slot 168 joker666 slot slot sanook888 live slot fruit slot slot joker789 slot777 ฟรี เครดิต grand kiss918 918kiss69 fifa55 link fifa555 sport โจ๊ก 888 เล่น ออนไลน์ ได้ เงิน ไม่ ต้อง ฝาก ถอน ได้ live22 xo เครดิต ฟรี โจ๊ก เกอร์ ไม่ ต้อง ฝาก สมัคร fifa9999 slot house 168galaxy joker เล่น เกม slotxo หน้า เว็บ โจ ก เกอร์ 888 หมุน วง ล้อ joker123 918kiss slots เว็บ ฟีฟ่า 888 คา สิ โน ป๊อก เด้ง ออนไลน์ 168 gaming xo เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก slotxo แตก บ่อย เครดิต ฟรี 18 game slot 789 สล็อต xo คิง ค อง pay96 slot http slotxo เว็บ 918kiss ราคา รู เล็ ต fifa55 truemoney slot8888 สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก live22 ฝาก ถอน ไม่มี ขั้น ต่ำ joker ฝาก ถอน ไม่มี ขั้น ต่ำ scr888 ฝาก ไม่มี ขั้น ต่ำ สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ถอนเงิน ได้ scr888 แจก เครดิต ฟรี 2563 mafia เครดิต ฟรี 50 fifa55u ทาง เข้า สล็อต xo ฟรี sagame168th เครดิต ฟรี joker spy slot ace333 ฟรี เครดิต สมัคร mm88bet slotxo credit free live22th เครดิต ฟรี fifa55 ทีวี ออนไลน์ gclub slot online เครดิต ฟรี 50 mafia ufa24h ฝาก เงิน แอ พ คำนวณ รู เล็ ต เครดิต ฟรี ไม่ ทํา เทิ ร์ น 918kiss 333 slotxo 169 918kiss royal rad slotxo fifa55 ฝาก 20 ฟรี 100 เครดิต ฟรี joker กระดาน รู เล็ ต live22 ฝาก 1 บาท ฟรี 99 slot auto888 918 แจก เครดิต ฟรี ยู ส เท ส slotxo 1668slot riches777 เครดิต ฟรี tiger slot 888 เครดิต ฟรี 999 โป เกอร์ slot hall rmuaab888 918kiss download ios ป๊อก เด้ง ขั้น ต่ำ 10 บาท cq9 slots 88 kiss download slot1234 918 168galaxy joker joker hunter 888 gclub ฟรี เครดิต 4ux slot ufa365 net เครดิต ฟรี 120 ไฮโล เงิน จริง jackpotxo joker slot 789 vip databet88 สมัคร joker456 เครดิต ฟรี live22th slot slot house fifa55fifa555 สมัคร เครดิต ฟรี 200 super slot999 lucky slot slotxo ฝาก ถอน วอ เลท สล็อต 999 คา สิ โน ออนไลน์ slotxo sb spk slotxo สล็อต xo 369 jack88 slot boxing slot เว็บ ยิง ปลา ฟรี เครดิต slotxo โปร 10 รับ 100 678slot siam slot double casino free slots 88 kiss download 918kiss ios ล่าสุด อั่ ง เปา สล็อต xo คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ slot win easy live22 สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก ถอนเงิน ได้ 88 slotxo v5 918kiss ท รู วอ เลท เว็บ บอล ufa365 slot4u joker slot ฝาก 50 สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก fifa55 เข้า สู่ ระบบ สมัคร เครดิต ฟรี 2019 mafia ไม่ ต้อง แชร์ เครดิต ฟรี 200 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สล็อต 777 คา สิ โน ออนไลน์ ยู ส ฟรี 918 คา สิ โน ออนไลน์ 918 slot4u joker สล็อต xo 44 เครดิต ฟรี dada99thai 918kissauto 2 วง ล้อ คา สิ โน 789 slot แอ พ คำนวณ รู้ เล็ ต ไฮโล ลูกเต๋า fin888 เครดิต ฟรี enjoy918kiss slot ใหม่ สล็อต xo123 fifa55 แจก เครดิต ฟรี ลูกค้า เก่า สล็อต xo 007 gclub slot เล่น เกม slotxo หน้า เว็บ live22 xo 918kiss44 download fifa555 sport slotxo08 918 allbet slot 35x mafia เครดิต ฟรี ไม่ ต้อง แชร์ แจ็ ค พอ ต xo 888 โจ๊ก เกอร์ รู เล็ ต mm88bet ดี ไหม สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 918 แจก เครดิต ฟรี เว กั ส 168 hd ไพ่ โป ก เกอร์ ออนไลน์ 918kiss v8 slotxo ฝาก 1 บาท รับ 100 ไฮโล ไฮเทค คือ slotxo ฝาก 19 รับ 100 xo slotxo เว็บ พนัน บอล ดี ที่สุด 2021 super slot999 aba918kiss slotxo24th fifa55run www jackpotxo com download ฝาก 100 ฟรี 100 www fifa55hd com ลูกค้า เข้า ผ่าน google chrome นะ คะ live22 ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo 10 รับ 100 slot ฝาก 50 ฟรี 50 918kissvip แอ พ ไฮโล เจ้ามือ joker slot เครดิต ฟรี superslot999 xo slotxo exp j9slot ไพ่ แค ง เล่น ได้ เงิน จริง สล็อต ฝาก อัตโนมัติ fifa55 memberbet scr918kiss th เล่น ไพ่ แบ ล็ ค แจ็ ค 35 slotxo fifa55 ฟีฟ่า real 918kiss z8 เครดิต ฟรี เกม สล็อต ไลน์ 22 วิธี เล่น databet88 รวม เกม ไฮโล download aladdin slot live22 ฝาก 1 บาท mega joker slot monkey slot ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท slot ฝาก 20 รับ 100 918kiss แตก ง่าย 2020 slotxo88v8 slotxo 1668 slotxo pantip jackpotxo joker slot xo168 slotxo ยอด นิยม แอ พ ไฮโล ออนไลน์ เติม เงิน slotxo 333be เครดิต ฟรี 133 xo slot 191 เครดิต ฟรี 2020 ไม่ ต้อง แชร์ auto slotxo หน้า ลูกเต๋า ไฮโล เกม สล็อต xo ออนไลน์ joker 2pigsslot xo slot cafe mm88bet com deposit เครดิต ฟรี แอด ไลน์ joker681 เครดิต ฟรี คิ ส 918 slot89 เข้า slotxo poker ได้ เงิน จริง โบนัส สล็อต xo เครดิต ฟรี ไม่ ต้อง โอน ก่อน slotxo 11 mm88bet sport & casino ไม่ ต้อง แชร์ เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ 2020 wow918kiss slotxo88 z8 เครดิต ฟรี เกม slotxo 918kiss ฝาก ขั้น ต่ำ 20 บาท gclub ฟรี mm88bet sport & casino slot567 www jackpotxo com download xo allbet ไฮโล ไฮเทค คือ sbobet slot game เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด world 1688 slot grand918kiss fortuna slots mafia เครดิต ฟรี ไม่ ต้อง แชร์ เล่น สล็อต databet88 ufa24h register joker ฝาก ไม่มี ขั้น ต่ำ databet88 pantip ป๊อก เด้ง เครดิต ฟรี slot 20 รับ 100 slotxo png 918kiss ฝาก วอ เลท 77up ดี ไหม คา สิ โน ออนไลน์ 918kiss เครดิต ฟรี ทํา เทิ ร์ น ถอน ได้ รู เล็ ต สด 918kiss me ฟรี เครดิต สมัคร ฟรี เครดิต ไม่ ต้อง แชร์ slotx0 918kiss 1234 สมัคร ฟีฟ่า joker slotxo auto เกม live22 เครดิต ฟรี แอด ไลน์ kiss918 เครดิต ฟรี สมัคร เครดิต ฟรี 2019 918kiss 1234 scr888 เครดิต ฟรี all slot auto เครดิต ฟรี ไม่มี เงื่อนไข slotxo cool shangri la slot game xo ผ่าน เว็บ slot ฝาก 99 รับ 300 918 เครดิต ฟรี slot ฝาก 50 ฟรี 50 ฝาก 1 บาท ฟรี 99 คา สิ โน ป๊อก เด้ง ออนไลน์ slotxo 918kiss 918kiss demo slotxo 48 fifa55ag สมัคร gclub ฟรี เครดิต gom88bet fifa55 easy slotxo allbet asia com bn slotxo เว็บ พนัน fifa55 slotjoker888 สล็อต xo989 เครดิต 2020 สล็อต โร ม่า เครดิต ฟรี 24th slotxo ผล บอล ฟุตบอล เสมือน จริง เครดิต ฟรี ถอน ไม่ อั้น 918kiss ฝาก ขั้น ต่ำ 100 เว็บ บอล ฟีฟ่า 55 slot24 m918kiss pg168 slot 918kiss demo slotxo 888 สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo mb 918kiss monkey สล็อต xo777 918kiss ท รู วอ เลท 2019 รู เล็ ต เคล็ด ลับ 918kissauto v4 โจ๊ก เกอร์ xo slot2you เครดิต ฟรี 918kiss กลุ่ม สาธารณะ dafabet เครดิต ฟรี 2018 slot4k 918dowload slotxo city slot vip 99 aba918kiss happyslot88v1 slotvip777 ufa365 ดี ไหม pantip slot slotxo หมุน วง ล้อ joker123 slotxo แจก เครดิต ฟรี 2019 ไฮโล ออนไลน์ m88 โค๊ ต เครดิต ฟรี slot v online โจ๊ก 888 9gspin เครดิต ฟรี monster joker slot slotxo กับ joker อัน ไหน ดี กว่า poker ได้ เงิน จริง 1234slotxo fifa55u ดู ทีวี ออนไลน์ slotxo เกม slotxo เข้า เล่น ยู ส ฟรี 918 www918kiss เล่น xo หน้า เว็บ http mvegus 1682 memberbet net 1688 slot v1 slotcity slot4u joker joker สล็อต 888 สมัคร fifa55 ฝาก ขั้น ต่ํา 100 slotxo game kingbets88 slot555 joker 168slot ไท เกอร์ คา สิ โน ขอรับ เครดิต ฟรี slotsgold slot ยืนยัน ตัว ต้น รับ เครดิต ฟรี xo ฟรี เครดิต เติม สล็อต xo slotxo live22 slotxo 24 th joker slotxo 24th xo slot apk ฝาก 1 บาท ฟรี 99 เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก 2020 918kiss ฟรี 200 fifa55 line live22 ไม่มี ขั้น ต่ํา 918kiss download ios ล่าสุด 8b slotxo slot999 xo ไฮโล ออนไลน์ w88 168galaxy slotxo slotxo 1668 slotxo กับ joker อัน ไหน ดี กว่า แอด มิ น 918kiss slot168 wms slot slot911 เล่น เกม slotxo 35 xo slot ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot009 สล็อต xo โอน ผ่าน วอ เลท 789 game slot 88 slotxo สล็อต 918kiss918kiss live22 ฝาก ถอน ไม่มี ขั้น ต่ํา joker123auto เครดิต ฟรี ติดต่อ ufa365 slot เครดิต ฟรี 2020 ไม่มี เงื่อนไข เครดิต ฟรี ไม่ ต้อง ฝาก 150 918kiss33 fifa5555vip slotxo เติม เงิน เข้า xo ฟรี เครดิต 50 ยิง ปลา ไม่มี ขั้น ต่ำ slot house roma slotxo ผล บอล เกม เสมือน จริง 918kiss d ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 mega888 download 2019 slot1234 เครดิต ฟรี ทาง เข้า 55 สล็อต xo v9 ทาง เข้า ฟีฟ่า 55 มือ ถือ fifa55 link สล็อต xo ฟรี download 918kiss ล่าสุด slotjoker99 12ww เครดิต ฟรี free slot online aec999 เครดิต ฟรี zap918kiss slotxo สล็อต slotxo 89 joker123 ไม่มี ขั้น ต่ํา winner555 เครดิต ฟรี slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา เครดิต ฟรี 600 สล็อต xo วอ ล เลท เสียง ไฮโล slotxo apk 918kiss free slotxo928 เว็บ vegus168 slotxo mafia88 168 galaxy slot ผล บอล ฟุตบอล เสมือน จริง mm88bet ฝาก black jack ออนไลน์ fifa55net mario xo slot slot gold 198 kiss ฟรี เครดิต slot game 888 สมัคร ไม่ ต้อง ฝาก pg168 slot gclub 918 ไฮโล ภาษา อังกฤษ ึึึึ 77up รู เล็ ต สายฟ้า ufa365 หนัง mafia ฟรี 50 โปร xo slotxo ro payslot สมัคร ฟรี เครดิต ฟรี gclub slot jackpot tss911 เครดิต ฟรี ้ ค ร ดิ ต ฟรี xo slot 168 สล็อต xo 123 mafia555 slot ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 100 หมุน วง ล้อ joker123 เล่น แบ ล็ ค แจ็ ค 35 joker slot fifa55 prime fifa55 ฟีฟ่า fastbet98 เครดิต ฟรี slotxo สล็อต เข้า ฟีฟ่า 555 โปร โม ชั่ น 918kiss สล็อต xo ท รู วอ ล เล็ ต 918kissstar 918kiss kiss เครดิต ฟรี สมัคร ใหม่ slotxo x joker slotxo ฝาก 19 รับ 100 เอ เย่ น 918kiss 918kiss ถอนเงิน 918kiss team ทาง เข้า ฟีฟ่า 55 คิง เครดิต ฟรี 50 ไม่ ต้อง ฝาก slot เครดิต ฟรี 50 ufa365 s เล่น ไพ่ เงิน จริง 918kiss ฟรี 200 aec999 slot sbu slot สล็อต สมัคร ง่าย slot scr888 slot24th joker เว็บไซต์ คา สิ โน ออนไลน์ ดี ที่สุด บ้าน บอล fifa55 joker ถอน ไม่มี ขั้น ต่ํา kiss918 ฟรี เครดิต ไฮโล ขั้น ต่ำ คิ ส 918 slotjoker99 super joker slot กติกา รู เล็ ต ไม่ ต้อง แชร์ เครดิต ฟรี fifa555 truemoney slot246 joker xo slot z 918kiss v ดู บอล สด fifa55 slot free credit no deposit 2019 สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท ufa365 s slot 236 เครดิต ฟรี ไม่ ต้อง แชร์ 88 slotxo สล็อต สมัคร sbobet ฟรี ไม่ ต้อง ฝาก ราคา รู เล็ ต สมัคร สมาชิก fifa55 ดู ทีวี ออนไลน์ fifa55 scrslot918 สล็อต xo 99 slot007 เครดิต ฟรี แจก เครดิต ฟรี xo slot007 joker สมัคร fifa5555 สล xo 918kiss billion slotxo logo 918kiss วอ ล เลท black mamba slot ไพ่ โป๊ก เก อ ป๊อก เด้ง คา สิ โน slot7777 919kiss slot168 เครดิต ฟรี slotxo 2020 เข้า vegus168 xo slot168 slot free credit ไฮโล น้ำยาเคมี slot 918 ไฮโล สมจริง payslot ไพ่ โป ก เกอร์ slot189 918kiss true wallet ไม่มี ขั้น ต่ํา slotxo กับ joker อัน ไหน ดี กว่า สล็อต xo แจก เครดิต ฟรี slotxo1 เครดิต ฟรี 169 slotxo ฝาก 5 บาท ฟรี 99 บาท วอ เลท ส ล๊ อ ต xo1234 mafiaslot88 77up live football slotxo678 หมุน วง ล้อ ออนไลน์ slotxo ไลน์ slot finn เว็บ เล่น บา ค่า ร่า ufa800 black slot gclub888 royal kiss918 เครดิต ฟรี slotgame99 fifa55 rmc ถอนเงิน 918kiss ฝาก 20 รับ 100xo slotxo567 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา mm88bet sport 888 เครดิต ฟรี xo slot 777 playlive88 slotxo free slot online ฝาก 5 บาท ฟรี 99 บาท happy slotxo wms slot slot joker ฝาก ไม่มี ขั้น ต่ํา ak47 slotxo ฝาก 10 รับ 100 xo http mvegus1682 memberbet net เกม สล็อต โร มา fifa1234 login mvegus1682 memberbet net chklogin slotxo 22th xo slot 777 ตัวแทน slotxo เล่น xo slot สล็อต xo168 slotxo cool slotxo88 download slotxogame168 slotxoth888 slotxo lucky god2 30 ฟรี เกม slot joker โปร โม ชั่ น 918kiss777 เครดิต ฟรี ฝาก 20 เครดิต ฟรี ไม่ แชร์ ไม่ ฝาก สล็อต xo 236 แทง รู เล็ ต winner99 เครดิต ฟรี ไม่ ต้อง ฝาก slot8899 slotxo blue slot xo888 รู เล็ ต สด 918kiss33
    ดาวน์โหลด 888| sbobet158 ดี ไหม| 888 roulette online| สล็อต ซื้อ ส ปิ น| royal casino 1688| ทาง เข้า slot91| บอล สูง ต่ํา ครึ่ง แรก| วิธี ถอนเงิน cash storm| pussy888 สมัคร สมาชิก| การ ดู ราคา บอล| star vegas 999| เกมส์ ฟาร์ม ได้ เงิน จริง 2019| ทาง เข้า joker123 mobile| ราคา พูล| เกม อะไร ที่ เล่น แล้ว ได้ เงิน จริงๆ| ทดลอง เล่น สล็อต โจ๊ก เกอร์| mg casino online| pg ดาว โหลด| slotxo ฝาก 1 บาท ได้ 100 วอ เลทสล็อต ออนไลน์ 22| ace333 สล็อต| ทดลอง เล่น สล็อต ไว้ กิ้ ง ฟรี| บอล สูง ตำ่| royal casino 777| เกม สล็อต พุ ช ชี่| winbet 777| ยิง ปลา joker123thaisbobet99| สล็อต ฝาก น้อย ได้ เยอะ| เกม ออนไลน์ เล่น แล้ว ได้ เงิน จริง| roulette 10 cent| ดาวน์โหลด สล็อต มาเฟีย| เล่น เกม ไพ่ แค ง ออนไลน์ ได้ เงิน จริง| 25club แจก ฟรี เครดิตเกมส์ ยิง ปลา joker| www 888 slot| slot 65| slot online download| allslot โปร 100| bonus code 777 casino| สล็อต 6| สูตร บอล 1x2 excel download| วิธี ถอนเงิน จาก เกม golden| slot1688 mobile| โปร วัน เกิด slot| เว็บ บอล แจก เสื้อ| ปั่น สล็อต เครดิต ฟรี| rulet free| ราคา บอล 2.5 3 คือ| ทาง เข้า xe88| เล่น เกม ได้ ตัง จริง| เว็บ สล็อต ที่ แจก เครดิต ฟรี| ค่าย เกม rt| mafia88 เล่น ผ่าน เว็บ| ทาง เข้า slot| แจก เค ดิ ต ฟรี 2020| ทาง เข้า mafia999| vip สล็อต| 888 blackjack live| vlack jack| เกม สล็อต ยู ฟ่า 168| joker vip 168สล็อต เล่น ได้ เงิน จริง| เล่น gclub slot ผ่าน เว็บเกม สล็อต ออนไลน์ ฟรี เครดิต| สมัคร sbo ไม่ ผ่าน เอเย่นต์| แทง บอล สด คือ| lsm99 club| เล่น เกม ฟรี ได้ ตัง| เว็บ สล็อต ฟรี| ทดลอง เล่น สล็อต ทุก ค่าย|