<em id="1QI8q"></em>
<em id="1QI8q"></em>

<form id="1QI8q"></form>

<tr id="1QI8q"><source id="1QI8q"></source></tr>
<big id="1QI8q"><address id="1QI8q"><nobr id="1QI8q"></nobr></address></big>
    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
     
    ct855 live casino สล็อต แตก จริง สล็อต playstar สล็อต 88888 เว็บ เจ ษ หวย เจษฎา เบ ท ฝาก เงิน vscr888 รีวิวเว็บคาสิโนออนไลน์ โบนัสพิเศษแทงเสมอ รับเพิ่ม 17,777 บาท ไม่อั้น แทง หวย jetsada sbobet เว็บ ตรง ลิงค์ สํา รอง dafabet kiss918 ดาวน์โหลด ทาง เข้า ส โบ เบ็ ต ล่าสุด gclub2go m777 คา สิ โน สมัคร 918kissauto campo casino เอา ส ปิ น ฟรี coin master ios เครดิต ฟรี 100 ไม่ ต้อง แชร์ 2019 ส โบ้ เบ็ ต royal888 casino 168galaxy slot scr888 login เข้า jetsadabet เว็บ หวย เจษฎา gclub บน มือ ถือ https www gclub casino com bacc6666 m รอยัล คา สิ โน ออนไลน์ sbo168 เข้า ไม่ ได้ โหลด 918kiss ios ฟรี ส ปิ น coin master ไม่ จํา กัด beer555 mobile เว็บ ปอย เปต ดี ไหม ิ sbobet ทาง เข้า sbobetmix ทาง เข้า 24sbobet สล็อต ฝาก น้อย รับ 100 live22 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 1688 gclub โบนัสเว็บพนันออนไลน์ agent casino bs88 casino สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 m u16888com ฟรีสล็อตออนไลน์ สมัคร เค ดิ ต ฟรี ถอนเงิน ส โบ เข้า สู่ ระบบ gclub โหลด ส ปิ น ฟรี coin master ไฮโล มือ ถือ การ พนัน ฝาก เงิน fun88 แทงบอล SBOBET เพิ่ม ส ปิ น coin master w99 casino หา เว็บ แจก เครดิต ฟรีfifa55 เครดิต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี ถอน ง่าย 2018rb88 ฟรี 300 virgin88 เครดิต ฟรี เว็บ หวย เจษฎา pantip สล็อต ขั้น ต่ํา 100 เว ป ล็ อ ต โต้ poker เงิน จริง 918 slot auto สล็อต แจก เครดิต ฟรี 300 ทาง เข้า ส โบ ล่าสุด โปร ส ปิ้ น coin master หา ส ปิ น ฟรี coin master ios บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น gclub casino มือ ถือ franks casino beer777 มือ ถือ jetsadabet ปิด เว็บ sbobet999 E-Sport โบนัสต้อนรับ 100% สูงสุดถึง 1,000 บาท รวม ทาง เข้า sbo mega joker jackpot ส ป ริ้น ฟรี coin master m560bet tomato555 royal online 88888 สมัคร บอล ฟรี เข้า สู่ ระบบ gclub สล็อต ฟรี 300 casinò giochi เข้า sbo มือ ถือ lucky online casino วิธี ได้ ส ปิ น coin master sbobetmix wow gclub gclub เอ เย่ น coin master ส ปิ น ฟรี ios blaze casino jetsadabet allnew555 poipet 777 sbobetcom fun88 นางฟ้า แจก ส ปิ้ น เกม coin master ปอย เปต เว็บ sbobetbeer777 เกม บิงโก ราคา gclub tv sbobet www fun88 com vn โปร ส ปิ น coin 7kasino fin88 casino เครดิต ฟรี 100 ถอน ได้ 2561 sboasia ทาง เข้า xoslotzv3 โรล ลิ่ ง บา คา ร่า 888 ล็ อ ต โต้ casino iphone lsm99 slot โค้ด เกม coin master ฟรี วัน นี้ ส ปิ น วัน นี้ angel slot happyluke ถอนเงิน ไม่ ได้ 888sbobet แอ ป ล็ อ ต โต้ วี ไอ พี sbobet 5678 casino plus ทาง เข้า agent sbo เข้า lsm99 joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ gclub คืน ยอด เสีย 10 เข้า เว็บ ส โบ เบ็ ต reel rush 2 slot gclub ฟรี 15 เว็บ poipet pantip เข้า fun88 rov รู น แทง ค์ coin ส ปิ น ฟรี เกม lsm99 โหลด 918kiss ios ทาง เข้า sbobet เข้า ไม่ ได้ ปิดบัญชี บา คา ร่า บา ค่า ร่า poipet โปร โม ชั่ น enterplay casino northern sky slot sbobetsh mobile สล็อต ฝาก ไม่มี ขั้น ต่ำ เอา ส ปิ น ฟรี coin master ios ทาง เข้า sbobetmix โบนัส เว็บ พนัน ออนไลน์ แอ ปรับ ส ปิ น ฟรี coin master เครดิต ฟรี ทำ เทิ ร์ น ถอน ได้ รูป แบบ ไพ่ poker ฟรี เครดิต mafia halloween jack slot ไฮโล มือ ถือ การ พนัน หวย เว ป เจต รูป แบบ ไพ่ poker จี คลับ 99 เทคนิค การ ฟัง เสียง ไฮโล ฝาก ระ ติ๊ บ line fun88 99 gclub slot1234xo สล็อต ออนไลน์ ufa345th เครดิต ทดลอง เล่น ฟรี 500 บาท สมัคร fun88 sbobet777 มือ ถือ pssuy888 casino roses ทาง เข้า เอเย่นต์ gclub ไฮโล มือ ถือ การ พนัน เกม โป ก เก อ lord casino หวย ยี่ กี jetsadabet bs88 casino sbobet games dafabet สํา รอง royal online 888 เกม บิงโก เครดิต ฟรี nx lms99 online บา คา ร่า s10 auto slot 918 ทาง เข้า gclub1688 empire777 online casino เจษฎา เบ ท หวย ฟรี เครดิต สล็อต ไม่ ต้อง ฝาก ปั่น ส ปิ น ฟรี coin master รู น rov แทง ค์ happyluke 2018 manekichi casino ส ปิ้ น coin master ฟรี 9 ล็ อ ต โต้ sbothai ทาง เข้า ้ happyluke สลอด 6666 happyluke เกมส์ lsm99 ถอนเงิน ขั้น ต่ํา แอ พ มือ ถือ fun88 โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% การ เล่น ไพ่ โป ก เกอร์ สูตร เพิ่ม ส ปิ น coin master jetsadabet 555 happyluke mobile lsm99 info เข้า เล่น royal ส็ ลอด คา สิ โน ฝาก 1 บาท ได้ 100 casino faraon 918 สล็อต วิธี ทํา ให้ ได้ ส ปิ น เยอะ ๆ coin master bet slot club sbobetv8 bonus dafabet ทาง เข้า sbobet asia เค ดิ ต ฟรี 500 เพิ่ม ส ปิ น coin master เครดิต ทดลอง เล่น ฟรี 500 บาท norsk online casino rich 777 casino ปอย เปต ออนไลน์ sbobet เข้า โบนัสคาสิโน ไม่ต้องฝากเงิน betrally casino yoyo casino 43 fun88asi โปร โม ชั่ น วัน เกิด คา สิ โน bet soft royalfever gclub sbobet ล่าสุด vscr888 ฝาก เงิน gclub คา สิ โน ออนไลน์ gclub600 สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา เว็บ ปอย เปต pantip casino caesar casino offline เกม สล็อต ที่ แตก ง่าย สล็อต ค่าย ไหน ดี pantip โปร เกม coin master ส ปิ น รู น แทง ค์ กิ ต งาย โป๊ก เก อร 999lsm สมัคร versailles gold slot lsm99 เว็บ ตรง all casino บา คา ร่า สล็อต เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สล็อต ยิง ปลา เครดิต ฟรี 100 ไม่ ต้อง แชร์ เว็บ บา คา ร่า ปอย เปต gclub คา สิ โน m777 คา สิ โน mafia แจก เครดิต ฟรี ไม่ ต้อง แชร์ แจกเครดิตฟรี 300 ไม่ต้องฝาก2020 coin master ส ปิ น ไม่ จํา กัด วิธี หา ส ปิ น coin master คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slot สมัคร รับ เครดิต ฟรี sbobet โปร โม ชั่ น เข้า sbo ไม่ ได้ เครดิต ฟรี ไม่ ต้อง แชร์ joker ทาง เข้า jetsadabet คลับ มือ ถือ จี คลับ คืน ยอด เสีย ส โบ โมบาย live casino house ทาง เข้า happyluke line slot สมัคร ใหม่ ได้ รับ เครดิต ฟรี ไม่ ต้อง ฝาก sbobet2222 โปร เกม coin master ส ปิ น ไม่ จํา กัด best88 สล็อต 918kiss 918kiss kiss918 vipเครดิต ฟรี เทิ ร์ น 1 เท่า 2020 รู น สาย แทง ค์ rovไพ่ โป ก เกอร์ ออนไลน์ เครดิต ฟรี 500 บาท สมัคร sbobet777 jetsadabet allnew555 เข้า jetsadabet เครดิต สล็อต ฟรี ไม่ ต้อง ฝาก 918kiss ฝาก 10 รับ 100 ล่าสุด gclub casino คา สิ โน ออนไลน์ gclub pc euromania online casino jetsada จ่าย fan88 ล็อกอิน potato222 วิธี เล่น ไฮโล pantip เติม 100 ฟรี 300 แจก ฟรี ส ปิ น เกม coin master sbobet356 app gclub 996 casino สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา แอ พ แจก ส ปิ น coin master 918kiss เทิ ร์ น 1 เท่าdafabet ฟรี 300 2019 slot android สูตรพนัน ทาง เข้า sbothai coin master ส ปิ น ฟรี ทาง เข้า sbobetmix สมัคร บอล ฟรี เครดิต เจษฎา เบ ท sv casino แค่ สมัคร ก็ รับ เครดิต ฟรี ล่าสุด วิธี ได้ ส ปิ น coin master โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% dafabet line northern sky slot sbobetv8 ถอนเงิน dafabet นางฟ้า fun88 lsm99 king royal 6666 online jetsadabet 1688 jetsadabet ปิด bocasino เว็บ ปอย เปต ดี ไหม qq808 casino สมัคร lsm999 casino 100 poipet 977 hub88 casino slot party โบนัสเงินฝาก เว็บ ไฮโล แจก ฟรี เข้า sbo ทาง เข้า sbobet ใหม่ วิธี ส ปิ น coin master รอย อ จี คลับ เว็บ jetsada lotto megawins สล็อต เติม เงิน ผ่าน มือ ถือ ทาง เข้า เล่น lsm99cash เค ดิ ต ฟรี 2020 ล่าสุด greenx88 ฟรี ส ปิ น mafia สล็อต มา ใหม่ โป ก เก อร คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 roma casino ส ปิ น ฟรี coin master ล่าสุด ทาง เข้า ส โบ 888 แจก ฟรีสปิน2020 poipet 777 slot party m beer 777 เจ ษ แทง หวย 918kiss ios โหลด ไม่ ได้ sbfbet แจก ฟรีสปิน2020 เค ดิ ต ฟรี ไม่ ต้อง แชร์ สมาชิก ใหม่ ลง ทะเบียน เพื่อ รับ โบนัส แรก เข้า เว็บ ปอย เปต pantip ufa แจก เครดิต ฟรี 100 ไม่ ต้อง ฝาก sbobet444 แจก ฟรี ไม่ ต้อง แชร์ ิ beer789 slot up holiday palace ปอย เปต casino roses sbobet888 mobile ที่ หมุน บิงโก slot 918kiss auto happyluke app โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท uefa fun88 norsk online casino all casino บา คา ร่า ไฮโล น้ำเต้า ปู ปลา ออนไลน์ ลิงค์ บา ค่า ร่า เจษฎา เบ ท หวย king999 casino fun88 facebook serbian casino casino v หา ฟรี ส ปิ น coin master gclub666 poker ได้ เงิน จริง918kiss สมัคร 918kiss ท รู วอ เลท megaway slots โบนัสเงินคืน gclub77 สมัคร 918kiss ท รู้ วอ เลท โปร ส ปิ น coin 918kiss เติม เงิน วอ เลต ล่าสุด 2019 luckme casino สล็อต คืนสูงสุด 7% download 918kiss ios 2019 สมัคร ยูสเซอร์ ฟรี lsm99 new ฝาก 1 บาท รับ 100 ล่าสุด 2020 sbo128 เข้า ไม่ ได้ fun88 กีฬา สมัคร scr888 ฟรี เครดิต ค่าย จี คลับ fun88 ทาง เข้า pc facebook fun88 ติดต่อ เอ เย่ น จี คลับ night casino mafia88 สมัคร jetsadabet ล่ม lsm99 เข้า ระบบ คืน ยอด เสีย สล็อต gclub free sbo555 ไว้ใจ ได้ ทาง เข้า sbobet168 vip jetsadabet gclub466 royal casino เทคนิค หวย เจษฎา 1688 ปอย เปต 555 playigo casino pussy888 เครดิต ฟรี ทาง เข้า royal online บา คา ร่า ส โบ เบ็ ต kiss777th วิธี เอา ส ปิ น coin master ฟรี sbobet 818 คา สิ โน lsm99 ทาง เข้า sbobet99 โหลด ส ปิ น ฟรี coin master แค่ สมัคร ก็ รับ เครดิต ฟรี ล่าสุด กระดาษ ลูกเต๋า ฟรี ส ปิ น coin master วัน นี้ scr888 ฟรี เครดิต sbobet เข้า ไม่ ได้ ทาง เข้า ส โบ เบ็ด สล็อต 88888 อยาก ได้ ส ปิ น coin master ฟรี หา ฟรี ส ปิ น coin master ล อ ต โต วัน 918kiss โหลด ส ปิ น เกม coin master ฟรี ฟรี สล็อต ไม่ ต้อง ฝาก 9988gclub จี คลับ 99 คา สิ โน ออนไลน์ royal infinity888 casino happyluke ถอนเงิน th9 casino เข้า จี คลับ สมัคร sbobet mobile ดาวน์โหลด 918kiss android best casino slots bingo & poker สล็อต เติม เงิน ผ่าน มือ ถือ หิ นิำะ e16811 ส ปิ้ น coin master ฟรี joker game casino เข้า ฟัน 88 ทาง เข้า เล่น lsm99cash สล็อต วอ ล เลท sbobet มือ ถือ happyluke ทาง เข้า สล็อต royal online v2 เครดิต ฟรี 100 ถอน ได้ 2561 ปอย เปต 147 happyluke apk virgin88 เครดิต ฟรี tomato888 ถอนเงิน lsm99 ส ป ริ้น ฟรี coin master gclub ios สมัคร sbo888 fun555 มือ ถือ รีวิวเว็บคาสิโนออนไลน์ 21 casino online เว็บ เจษฎา เบ ท ทํา เทิ ร์ น บา คา ร่า เครดิต ฟรี winsor ทาง เข้า slm99 เสีย บา คา ร่า 4000 sbobet official website ส โบ เบ็ ต 789 sbobetv8 sbobet ninja ดาวน์โหลด 918kiss android ฝาก เงิน fun88 เครดิตฟรีไม่ต้องฝากไม่ต้องแชร์ casino ir gclub god บา คา ร่า 1688 เครดิต ฟรี happyluke id line lsm99 game joker เครดิต ฟรี 2019 เกม คี โน energoonz หวย หุ้น เจษฎา ส ปิ น ฟรี coin master ฟรี ไม่ จํา กัด 168 poipet รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท i slot ฟรี ส ปิ น coin master วัน นี้ แจ็ ค พอ ต gclub spina casino gclub casino มือ ถือ โบนัส Free Spin newcasino โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% download 918kiss ios 2019 แจก เครดิต ฟรี แค่ สมัคร vc casino บิงโก เกม โบนัส free spin แจก ฟรีสปิน2020 royal online 558 joker888 casino วิธี ทํา ส ปิ น ฟรี coin master shangri la เครดิต ฟรี ib888 คา สิ โน happyluke ยิง ปลา แอ พ แจก ส ปิ น เกม coin master gclub5555 เค ดิ ต ฟรี ถอน ได้ 2020 9 ล็ อ ต โต้ เข้า สู่ ระบบ jetsadabet fun88 โหลด 918kiss ios สมาชิก gclub ทาง เข้า agent sbobet โบนัส แนะนำ เพื่อน สูตร เพิ่ม ส ปิ น coin master ลิ้ ง ส ปิ น ฟรี เค ดิ ต ฟรี 2020 ล่าสุด สมัคร บา คา ร่า ปอย เปต sahara nights slot gclubgroup gclub tv หวย บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น royal gclub1688 beer789 casinò giochi สมัคร เค ดิ ต ฟรี ไม่ ต้อง ฝาก เว็บ แทง ฟุตบอล jetsadabet บา คา ร่า เล่น ไฮโล ให้ ได้ เงิน pantip เครดิต ฟรี คา สิ โน 2020 บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น pic5678 sbobet ทาง เข้า gclub มือ ถือ สมัคร ส โม เบ ท gclub 98 แทง หวย jetsada ทาง จี คลับ ทาง เข้า ส โบ เบ ท ลำดับ ไพ่ โป ก เกอร์ 808 casino bet123 casino โปร โม ชั่ น คา สิ โน ปอย เปต ฟัน 88 ล็อกอิน ทาง เข้า จี royal gclub1688 99gclub fun88 vip group เข้า สู่ ระบบ gclub เค ดิ ต ฟรี วัน นี้ ฝาก เงิน fun88 ติดต่อ lsm999 เข้า sbo มือ ถือ สล็อต ออนไลน์ 168 การ หา ส ปิ น ฟรี ส โบ โมบาย lsm99love เข้า ส โบ ล่าสุด gclub free สล็อต แจก ฟรี got slot fantan casino jetsadabet สูตร bbb 1688 royal dafabet ลิงค์ gclub700 e16811 lsm99 queen แอ พ ล็ อ ต โต้ 918kiss slot game download a3ccc gclub sbothai mobile เล่น ก่อน ไม่ ต้อง ฝาก gclubs fun555 มือ ถือ เจ ษ แทง หวย หา ส ปิ น ฟรี coin master เว็บ ปอย เปต คา สิ โน สมัคร เค ดิ ต ฟรี โบนัส ฝาก เงิน เจ ษ แทง หวย เล่น poker เว็บ ไหน ดี ruby888 android คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 เครดิต สล็อต ฟรี ไม่ ต้อง ฝาก สมัคร เอ เย่ น sbobet เข้า ส โบ มือ ถือ slot party galaxy casino online ufa casino 55 lsm เกม ดาวน์โหลด เกม 918kiss โปร ส ปิ้ น coin master ทาง เข้า เว็บ gclub sbobet bet ฝาก 100 รับ 200 ไม่ ต้อง ทํา เท ริน jetsada ปิด รับ ส ปิ น ฟรี coin master ฟรี ทาง เข้า sbobet online dafabet link coin master ส ปิ น ฟรี android campo casino หิ นิำะ 888 บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น lsm99game ฟรี ส ปิ น coin master วัน นี้ มือ ถือ sbobet888 เข้า ส โบ เบ็ ต 888 sbo ทาง เข้า ล่าสุด โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท โป ก เกอร์ ลํา ดับ ไพ่เล่น โป ก เกอร์ ออนไลน์ เงิน จริง www4 lsm2558 ทาง เข้า จี คลับ jetsadabet ยี่ กี jetsadabet รีวิว happy สล็อต joker ฟรี เครดิต ไม่ ต้อง แชร์ jetsadabet หวย วิธี ส่ง ส ปิ น เกม coin master เล่น ก่อน ไม่ ต้อง ฝาก sbo888 ทาง เข้า 888 gold slot สล็อต ออนไลน์ ฟรี เครดิต 2019 ไม่ ต้อง ฝาก ส โม เบ ท 777 gclub8888 แจก 300 ฟรี โค้ด ฟรี ส ปิ น coin jackpotxo3 live22 ฝาก 50 รับ 100 ทาง เข้า sbobet just casino เว็บ poker แอ พ ส ปิ น ฟรี coin master ios virgin88 เครดิต ฟรี slot plus ฟรีสปิน15ครั้ง โปร เกม coin master ส ปิ น spin coin master ไม่ จํา กัด สล็อต sagame66 ดาว โหลด เกม 918kiss iosเครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร ufa แจก เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2020 happyluke 2018 lsm99online สมัคร สล็อต happyluke tiki fruits kasinos บา คา ร่า เว็บ ปอย เปต โปร ฟรี ส ปิ น coin master sbobetv8 คาสิโนปอยเปต โหลด 981kiss gclub8888 ทาง เข้า เว็บ lsm99 วิธี ได้ ส ปิ น coin master bitcointalk gambling l ส โบ เบ ท crowncas gclubthailand gclub10 ลิ้ ง ส ปิ น ฟรี coin master ล่าสุด แอ พ แจก ส ปิ น ฟรี coin master 918 สล็อต indukbola lsm99 vip lsm99today gclub8888 auto Sbobet casino โบนัส Free Spin 918 slot club auto sbobet5555 วิธี แทง ไฮโล ให้ ถูก นางฟ้า fun88 แอ พ แจก ส ปิ น ฟรี coin master ฟรี ส ปิ น สมาชิกใหม่ fun88 พัน ทิป หลักการ เล่น ไฮโล 77gclub 918 ios เว็บ poipet pantip ฝาก 1 บาท รับ 100 ล่าสุด 2020 เว็บ jetsadabet ดี ไหม lsm99 net sbobet888 สมัคร เครดิต ทดลอง เล่น ฟรี 500 บาท lsm99 up joker ฟรี เครดิต ไม่ ต้อง แชร์ www560bet แอ พ royal online gclubfree ไฮโล kingmaker เว็บ บอล sbobet เข้า จี คลับ มือ ถือ รอย อ จี คลับ ฟรี ส ปิ น เกม coin master สมัคร sbobet ออนไลน์ สมัคร lsm999 คาสิโนปอยเปต สมัคร ivip9 jetsadabet วิธี โอน เงิน ฮ อ ลิ เดย์ ปอย เปต baba slot happyluke ได้ เงิน จริง ไหม เล่น gclub ผ่าน เว็บ welcome รู น แท๊ ง ค์ rov สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา happyluke slot k9win casino ทาง เข้า sbobet129 เกม bingo pin casino ราคา บิงโก คา สิ โน ปอย เปต ที่ไหน ดี pantip ล็ อ ต โต วี ไอ พี thai poker pro happyluke สมัคร mgm678 casino beat casino ฟรีสปิน15ครั้ง sbobet สมัคร สมาชิก 918kiss สมัคร auto lsm999 สล็อต ออนไลน์ pantip 999lsm สมัคร playigo casino เค ดิ ต ฟรี ไม่ ต้อง แชร์ คา สิ โน ออนไลน์ ฟรี เครดิต 2020 บา คา ร่า ค่า คอม เค ดิ ต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร gclublotto sbobet cz ปอย เปต 289 เครดิต ฟรี 100 ไม่ ต้อง แชร์ 2019เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร วิธี แลก ส ปิ น coin master สมัคร ใหม่ รับ เครดิต ฟรี ทันที 2020 coin master ส ปิ น ฟรี android เว็บ ปอย เปต พัน ทิป แจก ฟรี ส ปิ น เกม coin master ism99 online คี โน่ ออนไลน์ เครดิต ฟรี 100 ไม่ ต้อง แชร์ 2019เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร เว็บ แทง ฟุตบอล สมัคร 918kiss ท รู วอ เลท serbian casino โบนัส แรก เข้า โปร โม ชั่ น alpha88 agentgclub jetsadabet เข้า ไม่ ได้ hercules slot sbobet ca1 gclub official gclub 98 หมุน สล็อต ฟรี 2019 โปร โม ชั่ น alpha88 sbobet สมัคร สมาชิก g2g9 casino ทาง เข้า sbobet cz 88 สล็อต lsm99 2019 sbobet 1 แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2563 ทาง เข้า ส โบ เบ ท เอ เย่ น จี คลับ บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น สล็อต 808 sg8bet casino ทาง เข้า เล่น lsm99cash king kong slot joker 918kiss สมัคร สมาชิก ใหม่ มือ ถือ sbobet jetsadabet ล่ม ฟรี ส ปิ น เกม coin master gclub casino online มือ ถือ ส ปิ น ไม่ จํา กัด coin master baba slot gclub69 วิธี หา ส ปิ้ น coin master gclub คืน ยอด เสีย ทาง เข้า ส โบ เบ ท สมัคร ยูสเซอร์ ฟรี โกง ฟรี ส ปิ น coin master lara croft slot gclub886 บา คา ร่าไฮโล ออนไลน์ ได้ เงิน จริง ผ่าน มือ ถือ ทาง เข้า sbobet168 zig zag 777 casino fa fa fa slot dafabet สํา รอง เทพ เอเชีย ฟรี ส ปิ น sboibc มือ ถือ สมัคร เกม สล็อต ออนไลน์ สล็อตออนไลน์ สล็อต 808 lsm99 คืน ยอด เสีย beer555 fun88 ทดลอง เล่น แจก เครดิต ฟรี 100 ไม่ ต้อง แชร์ fun88 facebook got slot แจก ส ปิ น ฟรี coin master facebook lsm99vip ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 diamond vip casino mg slot168 เครดิตฟรี50 fun88com เข้า ฟัน 88 สล็อต 88888 sbobet123 online ฮ อ ลิ เดย์ ปอย เปต royalsbobet เข้า ระบบ jetsadabet หา ส ปิ น ฟรี coin master รู น แทง ค์ โค๊ ด ส ปิ น coin master สล็อต เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ santa slot happy live22 คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 ทาง เข้า sbobet99 เค ดิ ต ฟรี บา คา ร่า 2020 สมัคร สมาชิก 918kiss jetsadabet vip 2 เว็บ jetsadabet ดี ไหม pantip สล็อตออนไลน์ happyluke info โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% ไฮโล เขย่า สด vc casino เว็บ หวย เจษฎา ใหม่ xoslotzv3 sb0bet happyluke slot sbobet356 ลิ้ ง ส โบ มือ ถือ สมัคร sbobet mobile รับ ส ปิ น ฟรี coin master ios agent sbobet ส โม เบส gclub1988 sb0bet888 เว็บ ส ปิ น ฟรี coin master gatorama casino ราคา ไหล sbobet ที่ หมุน บิงโก ts911 แจก เครดิต ฟรี sbo888 สมัคร thai poker pro 918kiss33 ดาวน์โหลด 918kiss apk ล่าสุด 1168 สล็อต gclub god สมัคร เกม สล็อต เครดิต ฟรี วิธี ได้ ส ปิ น ฟรี coin master ส โม เบ ท sbobet 158 โบนัส free spin e16811 ทาง เข้า jetsadabet ลิ้ ง ส ปิ น ฟรี coin master วัน นี้ sbobet777 line สล็อต ฝาก ออ โต้ fun555 มือ ถือ เครดิต ฟรี ไม่ ต้อง ฝาก ufa slottojam casino casino live house gclub the one dsd canlı bahis canlı tombala canlı casino ทีเด็ด ส โบ ทาง เข้า fun88 2020 789 gclub สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา pssuy888 gclub45 คา สิ โน เติม true wallet ไม่มี ขั้น ต่ํา zig zag 777 casino 777 gate casino ขอโบนัส slot magic casino ฟรี สล็อต ออนไลน์ โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% fun88 affiliate แจก ฟรี 100 บาท ไม่ ต้อง ฝาก ล๊ อ ต โต้ 999 สูตร หวย ยี่ กี jetsadabet best casino slots bingo & poker poker เงิน จริง เกม lsm99 แจก 300 ฟรี lsm99 9 euromania online casino 918kiss ios 2020 download สล็อต โบนัส 200 เครดิต ฟรี joker123 ทํา เทิ ร์ น บา คา ร่า โปร ส ปิ น coin จี คลับ เล่น ผ่าน เว็บ เล่น poker online wildtornado casino versailles gold slot ทาง เข้า เอ เย่ น sbo การ ทำ ลูกเต๋า wm casino bet ขอ ส ปิ น ฟรี coin master เค ดิ ต ฟรี ถอน ได้ 2020 ts888 casino casino offline สมัคร บอล ออนไลน์ ฟรี crowncas สมัคร 918kiss ฟรี เครดิต winner55 สล็อต เค ดิ ต ฟรี ถอน ได้ 500 gclub app มือ ถือ sbobet888 ดาวน์โหลด scr888 เวอร์ชั่น ล่าสุด ส ปิ น ฟรี เกม coin master รับ เครดิต ฟรี 300 gclub558 ทาง เข้า สำรอง sbobet เกม ไฮโล เขย่า สมัคร 918kiss me สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก line fun88 lsm99 up ทาง เข้า happyluke ฟรี 300 99 จี คลับ สมัคร lsm9999 sbothaiclub casino havana mobil blackjack 168galaxy slot wm casino 555 สมัคร ใหม่ รับ เครดิต ฟรี ไม่ ต้อง ฝาก ทดลอง เล่น สล็อต lsm99 casino maxbet goldenslot games slot online casino online ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 918 ios สมัคร รับ เครดิต ฟรี 2020 เค ดิ ต ฟรี 500 สมัคร fan88fun888 ฟรี 300 สล็อต k9win สล็อต คืนสูงสุด 7% betandyou casino คา สิ โน ปอย เปต 777 เกม โป ก เก อ ฝาก เงิน vscr888 ส ปิ น ฟรี coin โปร ส ปิ น ฟรี coin master rating casino sbobet m sbobetbeer777 ทาง เข้า gclub8888 หวย เจต หวย jetsada sbobet bet ส ปิ น ฟรี coin สมัคร 918kiss ท รู้ วอ เลท ทาง เข้า sbothai 5 dragon slot agentgclub fun88 รีวิว ตัว วาง บิงโก โป็ ก เกอร์ สล็อต ฟรี 300 sbobet747 สมัคร sbobet168 588ws สมัคร pic5678 คอม happyluke แจก 300 สมัคร agent sbobet แจก ฟรี เครดิต สล็อต ไฮโล น้ำเต้า ปู ปลา ออนไลน์ gclub คา สิ โน joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ E-Sport โบนัสต้อนรับ 100% สูงสุดถึง 1,000 บาท wild slot lsm99 up อยาก ได้ ส ปิ น เยอะ ๆ coin master gclub world ล๊ อ ต โต้ วัน 918kiss download 2019 ios เค ดิ ต ฟรี ไม่ แชร์ รู น แท๊ ง ค์ rov ปอย เปต 168 mafia678 สมัคร สูตร คํา น วณ หวย ยี่ กี jetsadabet sbobet 789 ส ปิ น coin master ไม่ จํา กัด sbobetasia online ufa casino 55 king roman casino coin master ส ปิ น ฟรี ไม่ จํา กัด ฝาก ถอน รอยัล xoslot168 การ เพิ่ม ส ปิ น coin master ส ปิ้ น ฟรี coin master สมัคร สล็อต โบนัส 100 casino f รับ เครดิต ฟรี 300 american poker 90 ฟัน 88 ล็อกอิน เค ดิ ต ฟรี ทํา เทิ ร์ น got slot เว็บ ส ปิ น ฟรี coin master
    สล็อต คิง ค อง| สล็อต หมุน วง ล้อ ฟรี แล้ว ได้ เงิน| พุซซี่ 88| สล็อต qq| ทดลอง sweet bonanza| สล็อต ให้ ทุน ฟรี| betflix24 สมัคร| เข้า สู่ ระบบ joker| เกม โบนัส ฟรี| สล็อต 918 ฟรี เครดิต| ฝาก 15 รับ 100 pg| free สล็อต| slot joker 6886| sbobetstep แจ้ง ถอน| สล็อต 999 th| slot joker 1888| slot ค่าย jdb ฟรี เครดิต| โจ๊ก เกอร์ 777| สล็อต dragon| เข้า สู่ ระบบ slotjoker| โจ๊ก เกอร์ เกมmm88aecเว็บ 88| สล็อต pg88| slot game 444| โค้ด เครดิต ฟรี pidgame168| big slot 918kiss| nova88 maxbet| เล่น สล็อต ฟรี ได้ เงิน จริง 2018| ทาง เข้า เว กั ส 168| โหลด เกม avenger| j0ker gaming| สล็อต วอ เลท เครดิต ฟรี| แจก โค้ด 333be| สล็อต แจก โบนัส| เกม เม ก้า 888| ทดลอง เล่น สวี ท โบ นั น ซ่า| เกมส์ ตู้ สล็อต| สล็อต ค่าย gtm| สล็อต 777 ฝาก ขั้น ต่ํา 100| slot joker dragon| เกม สล็อต แตก ง่าย 2020| สล็อต หมุน ฟรี ไม่ ต้อง ฝาก| ดั ม มี่ กิน ตัง จริง| เกม ตก ปลา ออนไลน์| slot live22 pg| โหลด xo ล่าสุด| ดาวน์โหลด สล็อต 888| เกม ออนไลน์ มือ ถือ ได้ เงิน จริง| slot joker แตก ง่าย| slot game 444| joker123 ทดลอง| สล็อต ค่าย sg ทดลอง| โปร สล็อต pg| pg 88 slot| สูตร บา คา ร่า เข้า ทุก ไม้| เกม สล็อต ไหน แตก ดี| ดาว โหลด พุซซี่| พุซซี่ 88| เกม สล็อต ทํา เงิน| joker ท รู วอ ล เลท| web joker slot 9889 download android| แจก เงิน เดิมพัน ฟรี ไม่ ต้อง ฝาก| เก ม์ สล็อต| all slot 168| โหลด เกม pussy| ปั่น กงล้อ live22| slot 999 vip|