• <menu id="sHdxDPO"></menu>
  • 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
     
    tss911 เครดิต ฟรี slot joker ฝาก ไม่มี ขั้น ต่ํา 918kiss เว็บ ตรง slot casino online เครดิต ฟรี 20 ไม่ ต้อง แชร์ sbobet777 เครดิต ฟรี 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 wwwfifa555net red365 เครดิต ฟรี เติม เงิน เข้า สล็อต slotxo 24 th fifa55 link slotxo 7777 vegus168 ติดต่อ สล็อต xo โจ๊ก เกอร์ slotxo exp โจ๊ก เกอร์ ฟรี เครดิต สล็อต xo เครดิต ฟรี 50 บาท ufa365 ดี ไหม pantip gclub 918kiss tggame9999 fifa เครดิต ฟรี slotxo บน เว็บ fifa1234 login สล็อต xo 44 เครดิต 2020 slotxo lucky god 2 2xs slot rmuaab555 fox88 ฟรี เครดิต เครดิต ฟรี วัน เกิด ไม่มี เงื่อนไข fm99bet เครดิต ฟรี allbet24hr ฝาก เงิน live22 เครดิต ฟรี ไม่ แชร์ หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo ล็อกอิน slotxo v9 ace333 slot slot xl 918kiss android download 918kiss ฝาก วอ เลท riches777 เครดิต ฟรี เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ 35 slot fifa69 ทาง เข้า kiss918 ฟรี เครดิต 918kiss android เกม live22 mvegus1682 memberbet net main 918thailand joker slot 9889 918kissbet lucky live22 xo slot mobile 918 ฝาก ไม่มี ขั้น ต่ํา siam slot slot89 918kissauto 2 เติม เงิน slotxo เกม สล็อต 1234 fifa555bonus โกง ไฮโล ออนไลน์ ยู ส ฟรี 918 3xbet เครดิต ฟรี แจก เครดิต ฟรี xo slot xo168 สมัคร ฟีฟ่า 888 b2y เครดิต ฟรี slotxo 918 slot joker 69 1thslot wwwufa24h zeus slot mafia808 slot bet365 เครดิต ฟรี slot joker123 auto slot hacker joker แอ พ fifa55 scr888 rg888 slot 918kissth v3 โป เกอร์ mafia55 เครดิต ฟรี 50 สล็อต xo 888 918kiss ถอนเงิน ทาง เข้า ff55 เก้า เก คา สิ โน slotv9 joker456 เครดิต ฟรี b2y เครดิต ฟรี royalbet777 โจ๊ก เกอร์ ฝาก ถอน ไม่มี ขั้น ต่ํา slot999 xo slotxo35 ป๊อก เด้ง ขั้น ต่ำ 10 บาท https slotxo vip เกม สล็อต xo ออนไลน์ 918kiss 1234 ฟีฟ่า 1688 ป๊อก เด้ง ออนไลน์ ฝาก ขั้น ต่ำ 100 แอ พ โกง ไฮโล slotxo lucky god 2 tggame9999 slot vip 777 joker123slotthai kingslots https www slot12 com member slotxo เครดิต ฟรี 99 981kiss mario xo slot เกม ไฮโล ได้ เงิน จริง slotxo เกม ไหน แตก ง่าย slot diamond slot89 คา สิ โน ออนไลน์ ป๊อก เด้ง 918kiss ท รู วอ เลท 2019 dreamtech slot เติม สล็อต xo สล็อต xo 1234 sagame66 slot slot 66 chomikuj slotxo ฝาก วอ ล เลท fifa55 ทาง เข้า มือ ถือ jackpotxo สมัคร xo slot168 ฝาก 100 ฟรี 500 fm99bet เครดิต ฟรี slot champion168 ak47 slotxo สล็อต xo99 168bet ฟรี เครดิต fifa55 prime slotxo โมบาย ak47max เครดิต ฟรี 666slot slot375 joker slotxo 24th xo918 w88 โป๊กเกอร์ jokerslot96 sanook xo slot winner99 เครดิต ฟรี slot xo007 slot joker vip slotxo 66 ถอน เงิน slotxo fifa55na slot exp slotxo gclub ฟรี เครดิต joker slot 168 th เล่น สล็อต xo ตัวแทน live22 fifa55 ฝาก 100 ฟรี 150 8richd เครดิต ฟรี joker89auto กติกา รู เล็ ต mafia789 เครดิต ฟรี joker888 เครดิต ฟรี slot375 24th slotxo blackjack ออนไลน์ 918kiss ถอน ไม่มี ขั้น ต่ํา fifa55net slot live22 ฝาก 10 รับ 100 slotxo blue ไพ่ โป ก เก อ เครดิต ฟรี ไม่ ทํา เทิ ร์ น แทง รู สมัคร เอ เย่ น vegus168 สมัคร 300 ฟรี 300 เครดิต ฟรี 888 slot ฝาก 1 บาท สล็อต xo คิง ค อง sagame168th เครดิต ฟรี สล็อต ฝาก อัตโนมัติ slotxo pc อั่ ง เปา 918kiss หา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot โปร ฝาก 10 รับ 100 slot bet online เครดิต ฟรี 500 ล่าสุด 2020 joker สล็อต xo super slot b2y เครดิต ฟรี 2020 winner99 เครดิต ฟรี แจ็ ค พอ ต xo sunbet slot royal 918kiss เล่น ไพ่ โป ก เกอร์ ออนไลน์ ที่ไหนได้ เงิน จริง golden hoyeah slots ถอนเงิน เล่น สล็อต xo ฟรี slotxo 9 slotxo199 777slotvip 77up บา ส 918kiss download 2019 918kiss ใหม่ โป๊ก เก้อ สล็อต xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 918 เครดิต ฟรี slotxo dollarstar เกม live22 สล็อต 999 คา สิ โน ออนไลน์ databet88 agent fifa55st 918kiss69 918kiss download 2019 scr888 sn888 สมัคร ไม่ ต้อง ฝาก master joker slot 35 xo slot เสียง ไฮโล xo slot cafe xoclub99 joker123 xo slotxo โมบาย 918kiss เวอร์ชั่น ใหม่ xoslot69thai เครดิต ฟรี xo ไม่ ต้อง ฝาก 11 ไฮโล มี กี่ หน้า เล่น ไพ่ เงิน จริง fifa55 ฟีฟ่า gaming world slot เครดิต ฟรี 133 บาท สล็อต xo kiss918th red slot joker681 เครดิต ฟรี เล่น แบ ล็ ค แจ็ ค ออนไลน์ 918kiss me ฟรี เครดิต slotxo ฝาก 1 บาท รับ 100 slot 168 slot168 xo fifa55casino สล็อต xo 88 slot899 rad slotxo เครดิต ฟรี ไม่ ต้อง ทํา เท ริน slot ฝาก 20 รับ 100 slotxo แจก เครดิต ฟรี 2019 ไฮโล ออนไลน์ โบนัส ฟรี vegus168 ติดต่อ มาเฟีย 007 เครดิต ฟรี 918kiss ท รู วอ เลท 2019 slotxo 168 vip ฟีฟ่า 1688 joker123 ฟรี เครดิต ufa800 บา คา ร่า live22 1234 fifa55st เสียง ไฮโล slot456 918kiss dafuq888 slotxo ฝาก 1 รับ 100 เกมส์ ไฮโล เหมือน จริง slotxo ฝาก ผ่าน ท รู วอ เลท ufa365 ดี ไหม pantip fifa55 โปร โม ชั่ น 918kiss ฝาก ไม่มี ขั้น ต่ํา superlot999 เครดิต ฟรี ไฮโล ออนไลน์ 888 xe88 slot golden hoyeah เว็บ fifa55 ดี ไหม slot free credit no deposit สมัคร fifa888 slot punpun คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ 918kiss เวอร์ชั่น ใหม่ q9win slot aa9win slot joker89auto scr888 ฝาก ไม่มี ขั้น ต่ำ fifa555 sport jokerauto 888 joker slot 55 slot sanook888 slot joker ฝาก 20 รับ 100 ฝาก 100 ฟรี 100 2020 slot237 slotxo live22 slotxo234 siam99 slot grand918kiss ฟรี เครดิต เดือน เกิด slot epic win 918kiss เครดิต ฟรี ไม่ ต้อง แชร์ slot joker xo 918kiss android android เครดิต ฟรี ล่าสุด 2020 เล่น สล็อต live22 scr888 ฝาก ไม่มี ขั้น ต่ำ สล็อต live22 fifa55bonus fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก 2019 สล็อต 777 คา สิ โน ออนไลน์ slot mario 918kaya เครดิต ฟรี สมัคร gclub ฟรี เครดิต 918kiss เครดิต ฟรี 100 บาท เกม xo slot slotxogold สล็อต 999 คา สิ โน ออนไลน์ การ เล่น blackjack xo slot 311 wilderland slot เครดิต ฟรี 133 slot999 xo master joker slot joker god slot joker เติม true wallet ไม่มี ขั้น ต่ํา ไฮโล ฝาก ระ ติ๊ บ เว็บ ufa365 สมัคร 300 ฟรี 100 เล่น ไพ่ ได้ เงิน จริง 2019 slotxo เติม เงิน สล็อต xo เครดิต ฟรี 50 บาท xo ฟรี เครดิต slotxo com sign in เล่น หน้า เว็บ http www slotxo com 918 ฝาก ไม่มี ขั้น ต่ํา เครดิต ฟรี ไม่ ทํา เทิ ร์ น ไม่ ต้อง แชร์ เครดิต ฟรี 918kiss download ios ล่าสุด บา คา ร่า mclub huga slot slotxo ฝาก 20 สล็อต xo ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด สมัคร ได้ เครดิต ฟรี เว็บ แทง บอล fifa55 slotxo ฝาก 19 บาท มาเฟีย 007 เครดิต ฟรี joker ฝาก ไม่มี ขั้น ต่ํา ฟรี ไม่ ต้อง ฝาก ก่อน 2pigsslot joker slotxo ฝาก ถอน อัตโนมัติ xo 10 รับ 100 ไฮโล สะกิด slot โปร ฝาก 10 รับ 100 thai918kiss slot champion168 สล็อต xo191 scr888 แจก เครดิต ฟรี 2563 scr888 แจก เครดิต ฟรี 2563 เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ slot joker 1234 click slotxo เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิต ฟรี ค่าย cq9 slotxo ค่าย ไหน ดี ป๊อก เด้ง เครดิต ฟรี fifa55 แจก เครดิต ฟรี ลูกค้า เก่า ฟรี 200 ไม่ ต้อง ฝาก ถอนเงิน xo slot xo1234 เครดิต ฟรี วัน เกิด ไม่มี เงื่อนไข 918kiss ออ โต้ slot123 สล็อต เอ็กซ์ โอ pgthai888 ไพ่ poker สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 333be โค๊ ด ฟรี 133 slotxo ถอน ขั้น ต่ํา 100 918kiss บน pc เล่น poker gclub888 royal slotxo หมุน วง ล้อ slot 2499 918kiss ดั ม มี่ คา สิ โน สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 ไฮ โล fifa ทาง เข้า live22 slotxo live22 ฝาก 1 บาท ฟรี 99 slot ฝาก ถอน ไม่มี ขั้น ต่ำ mafia95 slot 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก 2020 918kiss เวอร์ชั่น ล่าสุด joker slot 168 joker888 เครดิต ฟรี slotxo35 joker456 เครดิต ฟรี ป๊อก เด้ง ออนไลน์ เงิน จริง pantip big win 777 pragmatic play ฟรี เครดิต ace333 slot รู เล็ ต เครดิต ฟรี slotxo teddy เว็บ พนัน บอล ดี ที่สุด 2021 รู เล็ ต slot ทุน น้อย 918kiss demo mafia999 slot fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก slot live22 ฝาก 10 รับ 100 โปร โม ชั่ น 918kiss 918kiss 123 p168 slot fifa55 ฝาก 50 ฟรี 100 ak47max เครดิต ฟรี 918kiss android ล่าสุด 918kiss เติม วอ ล เลท 918kiss dafuq888 slotxo88v8 slot games 66 เครดิต ฟรี สมัคร ใหม่ fifa55 gold www918kiss xo เล่น ผ่าน เว็บ slotxo48 เครดิต ฟรี ป๊อก เด้ง เก้า เก คา สิ โน แอ พ คำนวณ รู เล็ ต ไฮโล ออนไลน์ 888 ไฮโล sicbo slotxo วอ เลท easy slot 789 เครดิต 2020 918kissbig 2pigs xo 918kissvip ufaallslot777 slotxoth22 โปร โม ชั่ น slot slotxo วอ ล เล็ ต 918kiss33 slotxo 2pigs 168 slotxo slot ฝาก 10 เสือ มังกร ออนไลน์ มือ ถือ เข้า fifa55 918kisswallet grand918kiss xo วอ เลท เข้า slotxo สมัคร ฟรี เครดิต เว็บ 77up ฟรี เครดิต ไม่ ฝาก ไม่ แชร์ ace333 ฟรี เครดิต www fifa777 com databet88 สล็อต เครดิต ฟรี ไม่ ต้อง ทํา เท ริน slotxo 1234 12ww slot joker hunter 888 เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ 2020 ล่าสุด fifa55 ลิ้ ง เว็บ 77up เข้า เว็บ fifa55 testament slot slotxo exp 4u slotxo slotxo ฝาก 1 บาท รับ 100 lucabet789 เครดิต ฟรี คอ ล เซ็นเตอร์ fifa555 เว็บ slotxo slotxo ฝาก 10 slotxo logo ไฮโล ส กิ ด 3 หน้า ราคา เว็บ พนัน เล่น ฟรี ได้ เงิน จริง 918kissyou joker โบนัส 100 auto slot ฝาก 20 รับ 100 โปร โม ชั่ น joker ไพ่ โบรกเกอร์ 918kissauto 2 maxwin99 เครดิต ฟรี pgslot66 spk slotxo slotxo 96 grand918kiss โปร slot slotxo aec999 ลิ้ ง slotxo ไฮโล ภาษา อังกฤษ scr888 ฝาก ไม่มี ขั้น ต่ำ slot team slotxo game 22thxo 918kiss เครดิต ฟรี 2019 qtech slot slotxo ผ่าน วอ เล็ ต slot house เล่น poker m918kiss royalbet777 slotlive22 สล็อต xo โอน ผ่าน วอ เลท fin888 เครดิต ฟรี สล็อต xo1668 สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ joker1919 gaming เล่น ไพ่ โป ก เกอร์ ออนไลน์ ที่ไหนได้ เงิน จริง 3win8 casino area789 slot ไฮโล ออนไลน์ 888 slot joker689 918 auto เครดิต ฟรี 50 ล่าสุด mafia55 เครดิต ฟรี 50 slot true wallet ฝาก ถอน ไม่มี ขั้น ต่ํา 918kisskiss918 pg slot โปร โม ชั่ น ดา ฟา เบ ท ฟรี เครดิต joker888 เครดิต ฟรี xo สล็อต joker8899 เครดิต ฟรี เครดิต ฟรี โจ๊ก เกอร์ ไม่ ต้อง ฝาก z8 เครดิต ฟรี all game slot 918kiss ฟรี 100 winner55 เครดิต ฟรี fifa55casino xojackpot gclub888 royal แทง ไฮโล ออนไลน์ สล็อต xo 369 เว็บ บอล 55 7vip slotxo สมัคร เอเย่นต์ fifa55 slot joker123 auto game 777 เครดิต ฟรี 50 ไม่ ต้อง ฝาก king77 slot 9gspin เครดิต ฟรี tss911 เครดิต ฟรี xo slot cafe w88 โป๊กเกอร์ slot galaxy 198 kiss download 918kiss เว็บ ตรง joker slot 456 databet88 ดี ไหม แอ พ ไฮโล สั่ง ได้ สล็อต xo35 queen slot 999 ฝาก เงิน ufa365 918kisshero slotxo แจก เครดิต ฟรี 50 fifa55 แจก เสื้อ เข้า เล่น fifa55 ทาง เข้า ฟีฟ่า 69 vegus168 vip b2y เครดิต ฟรี slot 9 บา คา ร่า mclub xo slot game slotxo roma โปร โม ชั่ น joker slot ฝาก 1 บาท ได้ 100 slot sagame66 เว็บ พนัน ออนไลน์ ป๊อก เด้ง ไม่ ต้อง ฝาก ถอน ได้ fifa55 gold ไฮโล ต่ำ jackpotxo live22 golden hoyeah slots slotxo แจก เครดิต ฟรี สล็อต xobkk slot1888 สล็อต ได้ เงิน จริง เข้า บัญชี จริง live22 ถอนเงิน เกม ส ล็ allbet slotxo mafia555 slot fifa55st avenger98 เครดิต ฟรี slot191 memberbet vegus168 เล่น xo หน้า เว็บ slotxo หมุน วง ล้อ mafia01 เครดิต ฟรี โค๊ ต เครดิต ฟรี slot jitu best slot slot 10 รับ 100 xo xo live22 ฝาก เงิน live22 11 ไฮโล มี กี่ หน้า สมัคร mm88bet joker123 ฝาก ถอน ไม่มี ขั้น ต่ํา โป๊กเกอร์ เงิน จริง coduca88 เครดิต ฟรี ไพ่ แค ง เล่น ได้ เงิน จริง สล็อต ยู ฟ่า 777 slotxo แจก เครดิต ฟรี 50 slotxo989 ฝาก slotxo superslot999 xo สล็อต xo เติม true wallet ไม่มี ขั้น ต่ํา free allslot999 อั่ ง เปา สล็อต xo www918kiss สล็อต live22 สล็อต ฝาก อัตโนมัติ 918kissslots สล็อต ufa365 2in2 slot slot888online slotxo ฟรี เครดิต 100 joker ฝาก ไม่มี ขั้น ต่ำ ไฮโล ฟรี เครดิต slot111 8 bit slot xo ไม่ ต้อง ฝาก fifa55 memberbet net poker ไพ่ เว ป 918 slot898 slotxo 1168 เครดิต ฟรี ไม่ ต้อง ไล ค์ ไม่ ต้อง แชร์ slot898 ไฮโล สมจริง 918kiss เครดิต ฟรี ไม่ ต้อง ฝาก 2020 mafia55 เครดิต ฟรี 50 slot sagame66 ไพ่ ออนไลน์ starslot777 ฟรี เครดิต 200 slot online ไม่มี ขั้น ต่ํา http slotxo scr888 online casino slotxo spin999 918kiss d live22 ฝาก ถอน ไม่มี ขั้น ต่ำ slot44th 928kiss rg888 slot vegus168 ดี ไหม slotxo วอ ล เล็ ต queen slot 999 ฝาก ถอน xo kiss918 allbet slot009 สมัคร เครดิต ฟรี 2020 fin888 เครดิต ฟรี 918kiss ฝาก วอ เลท click slotxo fifa55 palace slot lucky god fin888 เครดิต ฟรี 918kiss slots เติม slotxo 918kiss ฝาก ขั้น ต่ำ 100 crown slot 918kiss me สล็อต xo ท รู วอ ล เล็ ต 918kiss เว็บ ไหน ดี slot369 winner5555 เครดิต ฟรี ฟีฟ่า 1688 xo24hr aa9win slot ไฮโล ลูกเต๋า mega888 malaysia slot ยืนยัน ตัว ตน รับ เครดิต ฟรี joker123 ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot1234 เครดิต ฟรี dreamtech slot winner55 เครดิต ฟรี แจก เครดิต ฟรี slotxo เว็บ สล็อต xo เติม เงิน slotxo slot house xo ฝาก ถอน ไม่มี ขั้น ต่ํา joker slot 888 สมัคร fifa555 slot1234 918 slotxo ออนไลน์ 168galaxy joker 918kiss club fifa55 ฝาก 20 ฟรี 100 fifa777 ทาง เข้า fifa555 เครดิต ฟรี 369slot live22 ฝาก 19 รู เล็ ต 918kiss bettopfive สมัคร ฟรี เครดิต ฟรี xo slot auto joker123 true wallet ไม่มี ขั้น ต่ํา ฝาก 100 ฟรี 100 2020 918kiss ท รู วอ เลท 2019 slotxo ฟรี เครดิต ไม่ ต้อง ฝาก scr888 sn888 joker898 slot s สล็อต xo dl19 918kiss fifa5555 ดี ไหม area111 slot slotxo โปร 1 บาท ฟรี เครดิต 50 fifa55 เครดิต ฟรี 200 เล่น ไพ่ แบ ล็ ค แจ็ ค slot ฝาก 10 slotxo cool สมัคร ใหม่ ฟรี เครดิต slotxo ท รู วอ ล เล็ ต เว็บ fifa55 ดี ไหม fifa ทาง เข้า jokerslot789 แทง รู แทง บอล ฟีฟ่า slotvip777 โป้ ก เกอร์ แทง บอล ฟีฟ่า 2pigjoker สล็อต xo 899 918kiss money auto slotxo 918kiss mobile 44th slot เกม 11 ไฮโล เครดิต ฟรี 20 ไม่ ต้อง แชร์ slot4u xo 918 ฝาก ถอน ออ โต้ โจ๊ก เกอร์ เครดิต ฟรี slotxo credit free คา สิ โน ป๊อก เด้ง เครดิต ฟรี 169 mb slotxo สมัคร mega888 ฟรี เครดิต เว็บ พนัน ออนไลน์ ป๊อก เด้ง slotxo เติม เงิน ผ่าน วอ เลท เว็บ ufa365 2pigs xo fifa5555 ทาง เข้า mega888 เครดิต ฟรี slot hacker joker เครดิต ฟรี ออ โต้ z8 เครดิต ฟรี slot ฝาก 20 ได้ 100 ไลน์ ฟีฟ่า 55 www jackpotxo com download สมัคร เอ เย่ น vegus168 918kissth v3 bn slotxo slot ฝาก ถอน ไม่มี ขั้น ต่ำ joker123 ท รู วอ ล เล็ ต www jackpotxo com download เข้า ฟีฟ่า 55 โป ก เกอร์ ออ น ไล ไฮโล apk slot auto 888 scr888 sn888 หมุน วง ล้อ slotxo slot ios gclub 918 joker xo slot joker slot 666 918kissauto v7slot 918kiss royal 8 bit slot xo 918kiss v1 live22 ถอนเงิน slot game 888 joker918kiss 918 live22 918kiss monkey ไพ่ โป ก เกอร์ 1 เครดิต ฟรี 188 บาท sco88 เครดิต ฟรี 133 สมัคร ฟีฟ่า fifa55 1234 918 คิ ส fin slotxo slotx0 918kiss 333 xo บน เว็บ scrslot918 ทาง เข้า เล่น fifa55 slot hacker 918kiss ฝาก 200 ฟรี 200 77up now 918kiss demo xo slot168 slotxo51 สล็อต เติม true wallet ไม่มี ขั้น ต่ำ 2021 joker ฝาก ไม่มี ขั้น ต่ํา 918kiss พี่ เสือ 918 ฝาก ไม่มี ขั้น ต่ํา รู เล็ ต คือ slotxo บน pc เกม live22 slot ฝาก 1 บาท รับ 100 slotxo แจก 1000 vip slotxo เล่น สล็อต xo joker live22 คา สิ โน ป๊อก เด้ง ออนไลน์ super joker slot j9 slot เว็บ พนัน บอล ดี ที่สุด 2021 fifa55 1234 918kiss slots รู เล็ ต เคล็ด ลับ fifa55ez winner99 เครดิต ฟรี ไม่ ต้อง ฝาก happy slotxo slotxo24th ถอนเงิน slotxo slot crown slotxo ฟรี เครดิต 100 ไฮโล ทอย ลูกเต๋า สมัคร fifa9999 vegus168 line vegus16 joker ฝาก ถอน ไม่มี ขั้น ต่ํา xo เล่น ผ่าน เว็บ เครดิต ฟรี 918kiss 2020 joker slot 911 money mouse slot slotxo เติม true wallet 918kiss all game mafia ฟรี เครดิต ไม่ ต้อง ฝาก รู เล็ ต สายฟ้า สมัคร สมาชิก fifa55 1234slotxo joker slot โปร 100 918kiss 1234 ฟรี เครดิต ไม่ ต้อง แชร์ tss911 เครดิต ฟรี joker slot ฝาก ไม่มี ขั้น ต่ํา live22 xo xe88 เครดิต ฟรี 918kissth v3 fifa55 โปร โม ชั่ น ไฮโล ลูกเต๋า ฟรี ไม่ ต้อง ฝาก ก่อน เข้า slotxo เกม ไฮโล free เครดิต บ้าน บอล fifa55 joker slot เครดิต ฟรี ไม่ ต้อง ฝาก puss888 คา สิ โน ออ น ไล slotxoth22 ไฮโล pantip 918kiss billion slot joker69 เกมส์ สล็อต มือ ถือ joker slot 444 slotxo แจก เครดิต ฟรี 100 สมัคร ฟรี เครดิต slot 66 chomikuj superslot999 xo joker456 เครดิต ฟรี สล็อต xo วอ ล เลท fifa55 เข้า ไม่ ได้ สล็อต xo1668 918kiss win เล่น ไพ่ เงิน จริง slot house wms slot 888 slotxo 918kiss demo ยิง ปลา ไม่มี ขั้น ต่ำ อั่ ง เปา 918kiss joker123cc ไพ่ แบ ล็ ค แจ็ ค ออนไลน์ fifa55 โปร โม ชั่ น open365 ฟรี เครดิต สล็อต xo 999 สมัคร เครดิต ฟรี 200 คา สิ โน ออนไลน์ 918 ไฮโล ออนไลน์ w88 xo ฝาก 10 รับ 100 คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ slot thai888 เครดิต ฟรี ใช้ บัตร ประชาชน โปร โม ชั่ น fifa55 สมัคร ฟรี เครดิต ไม่ ต้อง แชร์ ฟรี เครดิต เดือน เกิด ไพ่ โบรกเกอร์ slot555 สมัคร ฟรี เครดิต slotxo เล่น ใน คอม ฝาก xo ึึึึ 77up แป น ไฮโล slot เติม true wallet ไม่มี ขั้น ต่ํา slotbonus slot1234 เครดิต ฟรี สูง ต่ำ ไฮโล eggomatic slot wwwfifa69 สล็อต xo ฝาก ขั้น ต่ำ 50 บาท เล่น ออนไลน์ ได้ เงิน joker slot ไม่มี ขั้น ต่ํา slotxo เติม true wallet ไม่มี ขั้น ต่ํา gom88bet slotxo bmx golden monkey slot fifa slot mm88bet com deposit fifa55 prime ฟรี เครดิต ไม่ ฝาก ไม่ แชร์ slotxo ผ่าน วอ เล็ ต 918kiss download 2019 918kisstm xo โบนัส 100 slotxo678 all slot666 เครดิต ฟรี ไม่ หลอก แชร์ slotxo 10 ได้ 100 slot scr888 ufa365 ติดต่อ 918kissauto v4 xo วอ เลท joker slot โปร 100 slot24th xo money slot fifa55 เข้า ไม่ ได้ ไฮโล 600 slot898 ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท หมุน วง ล้อ xo slot168 โปร โม ชั่ น slotxo slot paypal slot bet fifa55 1234 918kiss 1234 เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ไฮ โล fifa55fifa555 918 ล่าสุด ไพ่ โป ก เกอร์ ออนไลน์ ดา ฟา เบ ท ฟรี เครดิต slot 888 online slot289 joker ฝาก ไม่มี ขั้น ต่ำ 918kiss เวอร์ชั่น เก่า สมัคร fifa888 ทาง เข้า fifawin365 nuovo casino slotcafe joker9889 joker slot 6996 p8slot epic win slot lucky god progressive demo joker ฝาก ไม่มี ขั้น ต่ำ ผล บอล ฟุตบอล เสมือน จริง joker456 เครดิต ฟรี สล็อต xo 236 xo live22 สยาม โป็ ก เกอร์ ทาง เข้า ฟีฟ่า 55u slotxo apk slotxo51 xo ออ โต้ slotv9 live22 รู เล็ ต ออนไลน์ มือ ถือ ฟรี เครดิต ไม่ ต้อง แชร์ ab24hr2 mega888 download 2019 slot hacker joker jackpotxo เติม เงิน เล่น ได้ 200 ถอน ได้ 100 xo slot007 ไฮโล ฟรี เครดิต ฟรี ไม่ ต้อง เทิ ร์ น 918kiss เติม วอ ล เลท slotxo35 ลิ้ ง slotxo ไม่ ต้อง ฝาก 918kiss เวอร์ชั่น เก่า slot2you เครดิต ฟรี ล่าสุด 2020 slotxo ถอน ไม่มี ขั้น ต่ํา 918kiss ท รู วอ ล เล็ ต joker โบนัส 100 auto 899slot slotxo credit ค ริ ส 918 slot auto all ฝาก xo ไฮโล ออนไลน์ มือ ถือ slotxo ฝาก 10 บาท รับ 100 ไพ่ black jack royal 918kiss slot bet ฟรี เครดิต 77up live football สล็อต xo ฝาก ขั้น ต่ำ 50 บาท winner55 ฟรี เครดิต เเ ป น ไฮโล สมัคร เอ เย่ น vegus168 เครดิต ฟรี 918kiss กลุ่ม สาธารณะ เกม 11 ไฮโล บา คา ร่า mclub ตัวแทน live22 918kiss star v2 slot11 เกม ไฮโล เทิ ร์ น 1 เท่า
    coin master ส ปิ น ฟรี android| 888 dragons happyluke| rolet casino| สล็อต จี คลับ โอน ผ่าน วอ เลท ไม่มี ขั้น ต่ำ| เครดิต ฟรี ไม่ ต้อง ฝาก jdb| ส โม เบ ท 777| วิธี ส ปิ น coin master| king roman casino| sbothaiclub ทาง เข้า| โบนัส แรก เข้า| เค ดิ ต ฟรี 2020 ล่าสุด| blackjack vip| www gclub6666| บริการ gclub| ฟรี ส ปิ น coin master วัน นี้| สมัคร บอล ฟรี| gclub pro| ฝาก เงิน fun88| เครดิต ฟรี 500 บาท| รับ ส ปิ น coin master| beer789| เข้า ส โบ เบ ท| jetsada จ่าย| ส ปิ้ น coin master ฟรี| เว็บ ไฮโล แจก ฟรี| เครดิต ฟรี winsor| sbobet 359| ทาง เข้า เอ เย่ น lsm99| เจษฎา lotto| lsm99 up| lsm99 cash| สมัคร happyluke| sbobet 777com| greenx88 ฟรี ส ปิ น| ทาง เข้า sbobet ใหม่| casino neosurf| gclub5555| fun888| เว็บ ปอย เปต คา สิ โน| casino galaxy| ฟรี สล็อต ออนไลน์| เข้า sbo มือ ถือ| เข้า ระบบ jetsadabet| เว็บ ปอย เปต ดี ไหม| สมัคร รับ เครดิต ฟรี ไม่ ต้อง แชร์| ส ปิ น ฟรี เกม coin master| 365gclub v2| gclub 99| เว็บ บา คา ร่า จี คลับ| ทาง เข้า sbobet444| hercules slot| adameve casino| แทง หวย เจษฎา| เจษฎา แทง หวย| จี คลับ 99| รอยัล ออนไลน์ v2| สล็อต แตก จริง| blaze casino| เว็บ คา สิ โน ปอย เปต| สปินฟรี coin master ฟรี| บา ค่า ร่า bet| รีวิวเว็บคาสิโนออนไลน์| โบนัสแรกเข้า| จี คลับ 97| สล็อตฟรี| gclub ฟรี 15|