<nav id="tIPe"><code id="tIPe"></code></nav>

<em id="tIPe"><span id="tIPe"></span></em>

  1. <wbr id="tIPe"></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
     
    918kiss pc ล็ อ ต โต้ 888 kasinos แจก ส ปิ น ฟรี coin master วัน นี้ ทาง เข้า lsm99 mrvegas casino rolet casino ไพ่ แบ ล็ ค แจ็ ค วิธี เล่น marathon casino dragon kingdom slot เว ป jetsada bet net casino รับ เครดิต ฟรี 500 zig zag 777 casino marathon casino ล อ ต โต้ วี jetsadabet ดี ไหม pantip gclub 98 หา เว็บ แจก เครดิต ฟรีfifa55 เครดิต ฟรี ไม่ ต้อง ฝาก euromania online casino จี คลับ 5555 คา สิ โน เติม true wallet ไม่มี ขั้น ต่ํา มือ ถือ sbobet888 วิธี โปร coin master lsm99 สมัคร jetsadabet 1688 918kiss install ios สมัคร sbobet ออนไลน์ แจก ฟรี 100 บาท ไม่ ต้อง ฝาก inferno star slot lsm99 9 jetsadabet วิธี โอน เงิน lsm99 ติดต่อ สล็อต เครดิต ฟรี ไม่มี เงื่อนไข jetsadabet สมาชิก ลิ้ ง ส โบ เบ ท gclub886 เกม ไฮโล เขย่า เสีย บา คา ร่า 4000 ช่อง ทาง เข้า จี คลับ m168 casino สล็อต วอ ล เลท วิธี ได้ ส ปิ น เกม coin master sbobet 433 dafabet ลิงค์ ทาง เข้า จี คลับ ล่าสุด วิธี เพิ่ม ส ปิ น ใน เกม coin master gclub8888 auto sboibc888 สมัคร pic5678 มือ ถือ สล็อต k9win เกม ไพ่ 21แอ พ เกม ไฮโล ได้ เงิน จริง คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น JBO Thailand แอ พ แจก ส ปิ น ฟรี coin master royal casino ตัวแทน สมัคร รับ เครดิต ฟรี 2020 gclub2go ลัก กี้ ซิก บา คา ร่า เว็บ poipet pantip king kong slot joker sb0bet888 บา คา ร่า ทํา เทิน รับ ส ปิ น ฟรี coin master ฟรี sbobet222 มือ ถือ mbacc6666 ism99 ทาง เข้า happyluke แทงบอล SBOBET แบบ บิงโก แจก ส ปิ น coin slot android ลิ้ ง เข้า sbo gclubmember lsm999 สมัคร 128coffee sbobet ไฮโล ออนไลน์ พื้นบ้าน ไฮโล พื้นบ้าน ได้ เงิน จริง casino caesar mgm slot เจ ษ ฏา เบ ท ส โบ เบ็ ต 789 ป๊อก เด้ง เครดิต ฟรี ไม่ ต้อง ฝาก pin casino แทง หวย เจต ทาง เข้า sbo24hr สล็อต ออนไลน์ 168 ฝาก ถอน lsm99 casino เครดิต ฟรี 100 ไม่ ต้อง แชร์ 2019เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แค่ สมัคร เข้า ส โบ เบ็ ต lsm bet 99 บา คา ร่า ทํา เทิน sg8bet casino เว็บ โป๊กเกอร์ jetsadabet ปิด เครดิต ฟรี ทำ เทิ ร์ น ถอน ได้ sbobet222 มือ ถือ sportfun88 uni casino ทาง เข้า sbobetmix lsm99 ฝาก ถอน เร็ว bet soft ทาง เข้า เว็บ 3m โปร เกม coin master ส ปิ น ลิ้ ง ส ปิ น ฟรี coin master วัน นี้ sbo333 เข้า ไม่ ได้ ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด lsm99 sport ส ปี ด บา คา ร่า s15 fun88 facebook casino pulsa fun88 รีวิว 819 kiss apk duel casino agent lsm99 ทาง เข้า madam gclub 918kiss download pc สมัคร สมาชิก fun88 royal gclub online m560bet สมาชิก gclub slot out เค ดิ ต ฟรี ไม่มี เงื่อนไข 888sbobet diamond vip casino gclub5555 auto ทาง เข้า fun88 2020 เว ป jetsada ทาง เข้า sbo777 ib88 casino ิ sbobet สล็อต ขั้น ต่ำ 1 บาท เข้า จี คลับ ไม่ ได้ slotv online casino jetsadabet บา คา ร่า เครดิต ฟรี ไม่ ต้อง ฝาก fifa 198 kiss apk gclub pc 9999lsm com เข้า สู่ ระบบ 918kissauto 918kissauto เครดิต ฟรี happy halloween slot หวย ออนไลน์ เจษฎา www77 คา สิ โน lsm99s casino offline gclub คืน ยอด เสีย 10 sbobet7777 sbobet545 โปร ส ปิ น coin เทพ เอเชีย ฟรี ส ปิ น ส โบ เบ็ ต 88888 joker เครดิต ฟรี 2019 royal online 88888 gclub casino online มือ ถือ ลิงค์ ส ปิ น ฟรี coin master ฟรี วิน เซอร์ คา สิ โน ปอย เปต m88 casino online happyluke มือ ถือ เว็บ เจ ษ 1688 ทาง เข้า จี คลับ ล่าสุด king roman casino โบนัสแรกเข้า tervetulobonus ติด ตั้ง gclub สมัคร agent sbobet lsm99 new jackie casino โบนัสฟรีสปิน blackjack as บา คา ร่า ไม่มี ค่า คอม ถอนเงิน fun88 ซื้อ ฟรี ส ปิ น ถูก ๆ เข้า sbo ไม่ ได้ เพิ่ม ส ปิ น coin master pantip vip fun88 sbobet888 mobile สล็อต ยู ฟ่า 191 เว ป 1000 ล็ อ ต โต้ เครดิต ฟรี 500 บาท dragon kingdom slot royal gclub168 da vinci treasure slot ยี่ กี่ jetsada สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก 2020 ส ปิ น วัน นี้ ฟรี ทดลอง เล่น ถอน ได้ 2019 ts911 แจก เครดิต ฟรี สมัคร happyluke ทาง เข้า sbo มือ ถือ 918kissapk poker online เงิน จริง คลับ 6666 gclubwin สูตร ยี่ กี่ jetsadabet casino dome dafabet 888 คา สิ โน ฟรี เครดิต ไม่ ต้อง ฝาก 2020 123 plus casino เข้า ส โบ มือ ถือ snake arena slot sbobet88888 มือ ถือ สล็อต ฝาก ออ โต้ วิธี ส่ง ส ปิ น เกม coin master แทง หวย jetsadabet ทาง เข้า จี คลับ มือ ถือ รู น แทง ค์ ทาง เข้า sbobet ล่าสุด opera casino ทาง เข้า fun88 pc ฝาก เงิน fun88 casino no deposit 2020 happy สล็อต vip jetsadabet วิธี ได้ spin coin master sbobet เข้า ไม่ ได้่ ่่่ qq808 casino ทีเด็ดบอล jetsadabet เอ เย่ น ไหน ดี casino lotus joker เครดิต ฟรี 2019 เล่น เกม poker online ฟรี โค๊ ด ส ปิ น coin master เกมยิงปลา หวย เว็บ เจษฎา 88cashbet ufa แจก เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2020 สมัคร เว็บ lsm99 แทง ไฮโล พื้นบ้าน ทาง เข้า sbo มือ ถือ ล่าสุด ถอนเงิน ส โบ 918kiss download ios 2019 ซื้อ หวย เจต thaifun88 สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด new slot 2020 เข้า จี คลับ วิธี เล่น ไฮโล pantip sbobet livescore soccer royal online line หวย jetsada jetsadabet allnew8888 ทาง เข้า ส โบ 8888 spartan slot jetsada 888 live22 โปร สมาชิก ใหม่ SBFPLAY99 แค่ สมัคร ก็ รับ เครดิต ฟรี ล่าสุด หวย เจต ห้อง ฟ้า lsm19 ฝาก ถอน สมัคร 918kiss ท รู้ วอ เลท เจ ษ แทง หวย isc123 เครดิต ฟรี 918kiss เทิ ร์ น 1 เท่าdafabet ฟรี 300 2019 สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา royal casino 888 ทำ ลูกเต๋า jetsadabet เ mg slot168 918kiss เติม เงิน วอ เลต ล่าสุด 2019 คา สิ โน โร เยล ส โบ เบ็ ต 789 สลอด 6666 thai poker pro ร็ อ ค โค่ แค ป 918kiss ดาวน์โหลด โบนัส free spin casino lotus bilion casino สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 โล ยั ล คา สิ โน ฝาก ถอน 918kiss เครดิต ฟรี 500918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2020 american poker 90 คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 เสีย บา คา ร่า 4000 โปร เครดิต 100 lsm99 max เว็บ เล่น โป๊กเกอร์ poker เงิน จริง diamond vip casino ทาง เข้า lsm9999 เกมยิงปลา newcasino โบนัสพิเศษแทงเสมอ รับเพิ่ม 17,777 บาท ไม่อั้น ส ปิ น เกม coin master ฟรี โบนัสฟรีเคดิต เข้า ส โบ เบ็ ต 918kiss download android 2020 tarzan slot สมัคร ใหม่ รับ เครดิต ฟรี ทันที 2020 สล็อต เติม 10 ได้ 100 เครดิต ทดลอง เล่น ฟรี 500 บาท ฟรี ส ปิ น คือ happyluke ฟรี 300 บาท โค้ด ส ปิ น coin master ฟรี ezugi casino fun88 มือ ถือ gclub money world gclub ส ปิ น ฟรี เกม coin master casino fox เว็บ แทง บอล ส โบ เบ็ ต วิธี เล่น แบ ล็ ค แจ็ ค ทีเด็ด ส โบ เบ็ ต สล็อต ฝาก ถอน ผ่าน true wallet หา ส ปิ น ฟรี coin master ios royal online line ct855 live casino w2 99lsm คา สิ โน ออนไลน์ happyluke starmania slot ทาง เข้า sbobet cz jetsada 888 แอ พ ส ปิ น ฟรี babe casino line dafabet K9Win mafia แจก เครดิต ฟรี ไม่ ต้อง แชร์ ทาง เข้า sbobet777 สล็อต เติม เงิน ผ่าน มือ ถือ scr888 ฟรี เครดิต ทาง เข้า lsm65 ฟรี เค ดิ ต ไม่ ฝาก ไม่ แชร์ ติด ตั้ง gclub 168galaxy slot ทาง จี คลับ ล็ อ ต โต้ 8888 neonvegas casino sbobet 777com pgslot567 tek789 เข้า ไม่ ได้ ทาง เข้า sboasia วิธี เพิ่ม ส ปิ น coin master ฟรี www123vip casino mafia ฝาก 1 บาท 888 gold slot HappyLuke สล็อต sagame sbobet8888 ทาง เข้า jetsadabet เว ป เจต dafabet ios ct855 live casino gclub700 สมัคร 918kiss ท รู วอ เลท ร็ อ ค โค่ แค ป เว็บ หวย เจ ษ ฏา เบ ท sbobet google sites gclub the one pelikan casino ส ปิ น ฟรี coin master ฟรี ไม่ จํา กัด ก dafabet royal online v2 มือ ถือ fun88 ดี ไหม pantip โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท ทาง เข้า sbo222 happy halloween slot jetsadabet 357 ยี่ กี เจษฎา สล็อต รับ เครดิต ฟรี ไม่ ต้อง ฝาก ดาวน์โหลด scr888 เวอร์ชั่น ล่าสุด สล็อต playstar fun88 ios เอ เย่ น จี คลับ ลิ้ ง ส โบ เบ ท lsm99 คืน ยอด เสีย เว็บ ปอย เปต ดี ไหม หวย เว็บ เจษฎา gclub ฟรี 500 2018 168galaxy slot เค ดิ ต ฟรี แค่ สมัคร royal online gclub168 ทาง เข้า รับ ส ปิ น ฟรี coin master ฟรี ยี่ กี เจต สมัคร ใหม่ แจก เครดิต ฟรี เกม coin master ส ปิ น ฟรี สมัคร 918kiss android เว็บ โป๊กเกอร์ ส ปิ น เกม coin master ฟรี mm8bet ทาง เข้า sbobet ส ปิ น ฟรี coin master ฟรี ไม่ จํา กัด gatorama casino casino flash ทาง เข้า sbo999 โล ยั ล คา สิ โน เข้า เว็บ ส โบ เบ็ ต ib888 คา สิ โน sbobet168 club หวย เจต ใหม่ โกง ฟรี ส ปิ น coin master spina casino 3n2 net gclub happyluke info ทาง เข้า ลิ้ ง ส โบ ฮ อ ลิ เดย์ พา เล ซ ปอย เปต ฝาก 1 บาท รับ 100 2020 เข้า fun888 casino touring จี คลับ ผ่าน เว็บ ยี่ กี เจษฎา เบ ท gtr gclub สล็อต ขั้น ต่ำ 1 บาท SBOBETV8 เว็บ หวย เจ ษ ใหม่ 3win2u casino โค้ด รับ ส ปิ น ฟรี coin master funbet casino เกมส์ สล็อต ได้ เงิน จริง 888 g club club ทาง เข้า happyluke ฟรี 300 เกม ไพ่ โป ก เกอร์ คา สิ โน ปอย เปต 777 แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 แค่ สมัคร ฝาก ถอน รอยัล ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด บา คา ร่า ไม่มี คอมมิชชั่น คือ kasinos thai poker pro bacc1688 ทาง เข้า วิธี ปั่น ส ปิ น coin master ทาง เข้า ส โบ ล่าสุด ปิดบัญชี บา คา ร่า บิงโก งาน วัด ilucky casino mgm678 casino สล็อต joker8899 vip fun88 รีวิวเว็บคาสิโนออนไลน์ sboibc888 มือ ถือ 18bet casino ฟรี ส ปิ น โปร โม ชั่ น วัน เกิด คา สิ โน bbb 1688 royal sbo1688 ทาง เข้า ล่าสุด ถอนเงิน fun88 คา สิ โน ออนไลน์ royal coin master ส ปิ น ไม่ จํา กัด บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น คืน ยอด เสีย สล็อต โปร ส ปิ น ฟรี coin master gclub88888 ทาง เข้า มือ ถือ เค ดิ ต ฟรี 500 neonvegas casino pelikan casino โบนัส เว็บ พนัน ออนไลน์ สล็อต 5555 gclub asia88 ที่ หมุน บิงโก royal 6666 online เข้า ส โบ เบ็ ต ทาง มือ ถือ lsm99s ฟรี ส ปิ น coin ทาง เข้า เล่น lsm99cash lsm99vip สมัคร fan88fun888 ฟรี 300 โบนัส รี โหลด royal online 1688 สูตร หวย เจษฎา เบ ท รู น แท๊ ง ค์ rov เครดิต ฟรี สมัคร รับ ทันที fun88 girl สมัคร fin88 UFABET manekichi casino แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 แค่ สมัคร โปร โม ชั่ น dafabet สล็อต ขั้น ต่ำ 1 บาท หา เว็บ แจก เครดิต ฟรีfifa55 เครดิต ฟรี ไม่ ต้อง ฝาก sbobet347 สมัคร ทาง เข้า lsm65 สมัคร fan88fun888 ฟรี 300 เว็บ โป๊กเกอร์ lsm99 max คืน ยอด เสีย สล็อต บา คา ร่า ปอย เปต สมัคร สมัคร sbobet888 mafia slot เครดิต ฟรี ไม่ ต้อง แชร์ lsm99game โค้ด ส ปิ น coin master วัน นี้ m82 sbobet สมัคร 918kiss ท รู้ วอ เลท รีวิวเว็บคาสิโนออนไลน์ fun88 กีฬา สมัคร แทง บอล sbobet lsm99today 918kiss สมัคร สมาชิก ใหม่ gclub link 88 สล็อต อยาก ได้ ส ปิ น coin master ฟรี วิธี ปั่น ส ปิ น coin master sbobet online mobile โบนัส free spin spin 996 casino ลิ้ ง ค์ รับ ส ปิ น coin master บา คา ร่า เว็บ ปอย เปต sbobet korea mafia ฝาก 1 บาท รับ 50 สมัคร สมาชิก mega888 qq288 casino ส ปิ น เกม coin master ฟรี เครดิต ฟรี nx ล็ อ ต โต้ 77 sbobet mobile ล่าสุด sbobet777 มือ ถือ รับ ส ปิ น ฟรี coin master ไม่ จํา กัด โหลด xe88 918kiss ios 2020 วิธี ทํา ให้ ได้ ส ปิ น เยอะ ๆ coin master โปร ส ปิ น coin master gclub900 happyluke slot เครดิต ฟรี สมัคร รับ ทันที เกม โป๊กเกอร์ ออนไลน์ happyluke slot fantan casino เข้า สู่ ระบบ 918kissauto สล็อต xov9 918kiss ios เล่น ไม่ ได้ 2020 918kiss เกม ไหน แตก ง่าย สุด โค้ด รับ ส ปิ น ฟรี coin master joker เครดิต ฟรี 2019 ฝาก 100 รับ 300 ล่าสุด สมัคร sbobet mobile 4579 ล็ อ ต โต้ fun88 พัน ทิป ไลน์ lsm99 เว็บ พนัน บอล sbobet วิธี ส่ง ส ปิ น เกม coin master gclub line gclubmember ballhengheng ทาง เข้า sbobet ล่าสุด เกม บิงโก ตัวเลข ฝาก ถอน lsm99 casino sbobetnew lsm99 เข้า ไม่ ได้ สล็อต ace333 เครดิต ทดลอง เล่น ฟรี 500 บาท star cluster slot sl casino poipet โปร โม ชั่ น เกม บิงโก ตัวเลข casino 888 club vwin casino fun888 empire777 online casino เพิ่ม ส ปิ น coin master pantip สมัคร ใหม่ แจก เครดิต ฟรี ทาง เข้า fun88 m84sbobet ไลน์ lsm99 สูตร คํา น วณ หวย ยี่ กี jetsadabet 365gclub v2 lsm99 queen วิธี หา ส ปิ้ น coin master zig zag 777 casino อยาก ได้ ส ปิ น ฟรี coin master casino asia 999 wwwbeer789 sbobet168 เข้า ไม่ ได้ dragon kingdom slot ลิ้ ง แจก ส ปิ น เกม coin master caesar slots casino แจก โปร ส ปิ น coin master jetsadabet ดี ไหม สมัคร สมาชิก fun88 โรล ลิ่ ง บา คา ร่า เจษฎา lotto เกมสล็อต กด รับ ส ปิ น ฟรี coin master pic5678 ซื้อ หวย เว็บ เจ ษ fun888 casino jetsadabet pantip รีวิว royalonlien เครดิต ฟรี winsor coin master โปร ส ปิ น ทาง เข้า 24sboonline happyluke 2018 โค๊ ด ส ปิ น ฟรี 789 gclub เครดิต ฟรี สมัคร รับ ทันที dafabet poker มือ ถือ royalonine วิธี โกง ส ปิ น เกม coin ส โบ เบ็ ต 5678 วิธี ได้ ส ปิ น coin master pic5678 sbobet แอ พ ส ปิ น ฟรี betsoft slot happyluke คา สิ โน ออนไลน์ lsm99goals 4579 ล็ อ ต โต้ สล็อต ทุน ฟรี gclub ฟรี 15 tomato888 สปินฟรี coin master pantip sbobet เข้า casino fiz mobile gclub online casino คา สิ โน โร เยล mafia88 สมัคร lsm99fun เครดิต ฟรี สล็อต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 560bet ปั่น ส ปิ น ฟรี coin master m u16888com แจก ทุน เล่น สล็อต ฟรี mbet casino เล่น ก่อน ไม่ ต้อง ฝาก 819 kiss apk lsm99 ดี ไหม เค ดิ ต ฟรี ไม่ ต้อง แชร์ ไพ่ โป ก เก อ คือ สมัคร สล็อต รับ โบนัส ฟรี วิธี แทง ไฮโล ให้ ถูก 35x สล็อต โบนัสคาสิโน ไม่ต้องฝากเงิน ฝากเงินครั้งแรกรับโบนัส 200% สูงสุด 8,000 บาท telegram casino 918kissauto เครดิต ฟรี casino rich วิธี เล่น แบ ล็ ค แจ็ ค เว ป ล็ อ ต โต้ วี ไอ พี ส โป เบส เข้า จี คลับ 10 casino โค้ด เกม coin master ฟรี วัน นี้ ทำ รายการ ฝาก lsm99 ส ปิ น ฟรี ติดต่อ เอ เย่ น จี คลับ lsm เกม lsm999 ทาง เข้า royal888 casino casino 1xbet โค้ด ส ปิ น ฟรี coin master 918kiss โหลด เว็บ ส โบ เบ็ ต mbet casino สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา lsm99 max โบนัส แรก เข้า pp slots gemix casino tiki fruits รู น แทง ค์ กิ ต งาย เข้า sbo ไม่ ได้ sbobet7 fan88 2020 happyluke ทาง เข้า เครดิตฟรีไม่ต้องฝาก เค ดิ ต ฟรี ไม่ ต้อง ฝาก ถอน ได้ ฟรี ส ปิ น เกม coin master ฝาก ขั้น ต่ํา 50 บาท เจษฎา lotto ทาง เข้า sbo24hr vwin casino marathon casino casino playamo happyluke ฟรี 300 บาท ทาง เข้า sbobet 222 หวย ออนไลน์ jetsada เกม โป้ ก เกอร์ 560sbobet เว ป jetsada เกม lsm99 lsm99ch lsm99 login baba slot jetsadabet เปิด ใหม่ coin master ฟรี ส ปิ น ios สมัคร 918kiss ท รู วอ เลท all new gclub fun88 ทาง เข้า 2020 วัน นี้ เอ เย่ น lsm99 เครดิต ฟรี luck ฟรี ส ปิ น coin วิธี ได้ spin coin master vwin365th sg8bet casino pin casino casino crazy time peking luck slot gclub9999 เว็บ เจษฎา สมัคร sbobet โดยตรง วิธี แทง ไฮโล ให้ ถูก franks casino jackpotxo3 vegas live slot 888 casino android เกม ไพ่ โป ก เก อ ราคา บอล ไหล ส โบ เบ็ ต เครดิตฟรีไม่ต้องฝาก หวย ยี่ กี เว็บ เจ ษ บา คา ร่า ปอย เปต สมัคร ไอ ดี ไลน์ lsm99 pay slot betsoft slot pp slots 365 slot www123vip casino jetsadabet ฝ เข้า ไม่ ได้ sbobet www77 คา สิ โน ballhengheng sbobet 359 เกม บิงโก ราคา วิธี เก็บ ส ปิ น coin master เข้า sbo jetsadabet lottovip เก น ส ล็ อด 666 poker fun888 asia สมัคร สมาชิก sbobet mysterious slot สมัคร sbobet โดยตรง agent slot sbobet555 gclub466 happyluke มือ ถือ จี คลับ คา สิ โน สมัคร สมาชิก ใหม่ รับ เครดิต ฟรี 100 คา สิ โน ปอย เปต 888 รับ ส ปิ น ฟรี เกม coin master lsm99 new happyluke คือ mafia slot เครดิต ฟรี ไม่ ต้อง แชร์ 10 ฟรีสล็อต รับโบนัสสูงสุดถึง 100% เล่น poker online ฟรี ballchockdee เครดิต ฟรี ไม่ ต้อง ฝาก ufa ล็ อ ต โต้ คือ casino v สมัคร sbobet ca เล่น ก่อน ไม่ ต้อง ฝาก เว็บ บอล lsm99 เค ดิ ต ฟรี ฝาก 1 บาท ป๊อก เด้ง เครดิต ฟรี ไม่ ต้อง ฝาก casino 789 sbobet google sites happyluke slot สมาชิก ใหม่ ลง ทะเบียน เพื่อ รับ โบนัส แรก เข้า lsm99 new โค้ด เกม coin master ฟรี วัน นี้ fun888 casino dafabet fun88 เครดิต ฟรี 100 ไม่ ต้อง แชร์ 2019 สล็อต ace333 sbobet168 club โป ก เกอร์ เกม sbobet1688 เสีย บา คา ร่า 4000 ฟรี ส ปิ น coin casino crash gclubfree download 918kiss ios 2019 สล็อต ออนไลน์ 168 เค ดิ ต ฟรี 500 ทาง เข้า fun88 2020 happyluke 999 coin master ส ปิ น ฟรี android สมัคร ace333 เว็บ หวย เจษฎา pantip รอยัล คา สิ โน th fun888 มือ ถือ sg สล็อต www99lsm c9bet99 jetsadabet เอ เย่ น ไหน ดี pantip rich slot coin master ส ปิ น ฟรี pantip sbobet777 line gatorama casino mafia 808 เครดิต ฟรี ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด 2020 สล็อต ผ่าน วอ เล็ ต เข้า จี คลับ คา สิ โน ฟรี เครดิต ไม่ ต้อง ฝาก 2020 halloween casino ลิงค์ รับ ส ปิ น ฟรี coin master ล่าสุด เว็บ jetsadabet pantip ไฮโล ออนไลน์ ได้ เงิน จริง ผ่าน มือ ถือ w77 casino เครดิต ฟรี 150 2020918kiss ฟรี เครดิต 1000 บาท ib888 คา สิ โน คา สิ โน โปร โม ชั่ น สมัคร แจก เครดิต ฟรี ทาง เข้า sbobet789 ยี่ กี เจษฎา เบ ท coin master แจก ส ปิ น ฟรี dafabet 888 สมัคร สล็อต ไม่มี ขั้น ต่ํา สล็อต เครดิต ฟรี 20 บาท แจก ทุน เล่น สล็อต ฟรี fun88 affiliate sbobet beer777 918 สล็อต v casino เว็บ ส ปิ น ฟรี coin master wildtornado casino dafabet 99 จี คลับ 5555 casinò giochi เค ดิ ต ฟรี ไม่ แชร์ ทาง เข้า สำรอง sbobet วิธี เพิ่ม ส ปิ น coin master ios แจกโบนัสฟรี สูตร หวย เจษฎา เบ ท v casino http ab24hr allbetasia com login join casino zig zag 777 casino jetsadabet ล่ม โบนัสฟรีเคดิต การ เพิ่ม ส ปิ น coin master สล็อต แจก ฟรี telegram casino gclub8888 campo casino peking luck slot sbobet888 royal online v2 ios ดาวน์โหลด kiss918 fbi5836m เข้า sbobet ล่าสุด royal คา สิ โน ออนไลน์ ezugi casino megaway slots casino sms gclub ทาง เข้า ทาง เข้า sbobet24hr โปร โม ชั่ น คา สิ โน ปอย เปต jetsadabet พัน ทิป ufa casino 55 ปอย เปต 777 เว็บ lsm99 login fun88 ซื้อ หวย เจต แอ พ gclub เว็บ ส ปิ น ฟรี coin master ทาง เข้า sboasia การ ทำ ลูกเต๋า โหลด mega888 casino pullman mm8bet ทาง เข้า sbobet w88 mobile casino sboibc888 มือ ถือ lsm99vip jetsadabet เว ป เจต fun88 กีฬา lsm99 up ส ปิ น ฟรี 918kiss 918kiss kiss918 vipเครดิต ฟรี เทิ ร์ น 1 เท่า 2020 HappyLuke mafia555 สมัคร หวย เจต ใหม่ royalonlin เครดิต ทดลอง เล่น ฟรี 500 บาท auto slot 918 เว็บ หวย jetsada 100 casino sbobet5555 วิธี เอา ส ปิ น เกม coin master เอ เย่ น ส โบ แจก 300 ฟรี gclub คา สิ โน ออนไลน์ ลิ้ ง ส โบ lsm99 lotto เค ดิ ต ฟรี 2020 ล่าสุด 21 casino online sbothailand แจก 300 ฟรี lsm99 cash เว็บ ปอย เปต ดี ไหม http ab24hr allbetasia com login ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 sbobetv8 ส โบ เบ็ ต 8888 คา สิ โน แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ jetsadabet จ่าย จริง ไหม ส โม เบ ท 555 jetsadabet หวย vwin365th grim muerto slot ขอ ส ปิ น ฟรี coin master โป ก เกอร์ เงิน จริง energoonz โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท sbo888 ทาง เข้า sbo gclub 998 reactoonz2 สล็อต ทุน ฟรี ส โม เบ ท สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา 168galaxy slot coin master ส ปิ น ฟรี mgm slot scr 918kiss android download เครดิต ฟรี สล็อต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ bingo เกม fun88888 ส โบ เบ็ ต 8888 เล่น สล็อต pantip ทาง เข้า sbobet99 ฝาก 1 บาท รับ 100 2020 lsm99 star bet333 mobile สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 gclub44 auto ทาง เข้า sbobet ca โค๊ ด ส ปิ น coin master ฮ อ ลิ เดย์ พา เล ซ ปอย เปต lsm99 ดี ไหม m84sbobet ฟรี ส ปิ น เกม coin master สล็อต ออนไลน์ 168 zig zag 777 casino f casino bit my slot ninja slots campo casino winner55 สล็อต สมัคร 918kiss ท รู วอ เลท dafabet 28 เครดิต ฟรี ไม่ ต้อง เท ริน fifa เครดิต ฟรี ไม่ ต้อง ฝาก bitcointalk gambling โบนัสคาสิโน ไม่ต้องฝากเงิน ปอย เปต ออนไลน์ gclub ป๊อก เด้ง สมัคร 918kiss ท รู้ วอ เลท sbobet189 jetsadabet ปิด pantip m onlinesbobet หวย เจต พัน ทิป sbobet1688 line fun88 หวย เจต ใหม่ sbobetsh mobile gclub holiday สล็อต playstar หวย ออนไลน์ jetsada สล็อต เครดิต ฟรี วัน เกิด รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท betrally casino royalonine ลิ้ ง ค์ รับ ส ปิ น coin master ถอนเงิน fun88 sboibc มือ ถือ วิธี หา ส ปิ้ น coin master เว็บ ส โบ เบ ท รับเลย 100% โบนัสแรกเข้าสล็อต, กีฬา,​ คาสิโน สูงสุด 10,000 บาท เครดิต ฟรี ไม่ ต้อง ฝาก ufa ทาง เข้า gclub88888 เข้า เล่น จี คลับ 168 magic slot machine สล็อต แตก จริง สล็อต 5555 บิงโก แบบ หมุน wildtornado casino บา คา ร่า 1688 เครดิต ฟรี เข้า เว็บ jetsadabet ไม่ ได้ w77 casino ล็ อ ต โต้ 88 วิธี โกง ส ปิ น ใน coin master การ เพิ่ม ส ปิ น coin master หวย เจษฎา ออนไลน์ thai poker pro th9 casino เล่น โป ก เกอร์ ออนไลน์ ฟรี เข้า สู่ ระบบ gclub แทง หวย jetsada ลิ้ ง แจก ส ปิ น ฟรี coin master m81 sbobet mysterious slot ทาง เข้า sbobet agent dafabet link แจ็ ค พอ ต gclub mafia 808 เครดิต ฟรี โบนัสแรกเข้า วิธี ได้ ส ปิ น เกม coin master สูตร หวย เจษฎา เบ ท ทาง เข้า ส โบ เบ็ ต มือ ถือ สมัคร scr888 ฟรี เครดิต แจก ส ปิ น coin master ฟรี sportfun88 jetsadabet pantip รีวิว wild toro slot เข้า ส โบ เบ ท สล็อต 168g gclub888888 auto โค้ด รับ ส ปิ น ฟรี coin master sbobet168 มือ ถือ fan88 2020 สปินฟรี coin master ฟรี เค ดิ ต ฟรี ไม่ แชร์ ปั่น ส ปิ น ฟรี coin master
    เว็บ dubai9999| การ แทง บา คา ร่า| ace333 เครดิต ฟรี ไม่ ต้อง ฝาก| เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก 2020 ล่าสุด| แฮก เว็บ ค่า สิ โน| 12bet เครดิต ฟรี| บา คารา ทดลอง| บา คา ร่า ทดลอง เล่น sa| ทดลอง บา คารา| ubet368 เครดิต ฟรี| เล่น เกม ออนไลน์ ผ่าน เว็บ| แทง บา คา ร่า 2 ฝั่ง| sa ทดลอง เล่น 50000| บา คา ร่า เปิด ยู ส 50| 888casino ฟรี เครดิต| bacc1688 สมัคร| เว็บ บา คา ร่า ถอน ขั้น ต่ํา 100| แอ พ เล่น บา คา ร่า| บา คา ร่า ออนไลน์ gclub| เล่น บา| สมัคร บา คา ร่า แจก เงิน ฟรี| บา คา ร่า ห้อง ทดลอง| เว็บ พนัน ออนไลน์ ฝาก ถอน ออ โต้| sagame66 คา สิ โน ออนไลน์| เว็บ บา คา ร่า ไม่ ต้อง ฝาก ก่อน| บา คา ร่า 168vip| บา คา ร่า ผ่าน วอ ล เล็ ต| บา คา ร่า หวย| ไพ ออ น ไล| สมัคร บา คา ร่า royal online| เครดิต ฟรี 2020 แค่ ยืนยัน เบอร์| เกม รอยัล ค่า สิ โน| พนัน ออนไลน์ 888| casino สมัคร| สมัคร gclub 100| fastbet98vip| 138bet ฟรี 200| เล่น บา คา ร่า สด| แจก เครดิต ฟรี 2020 ไม่ ต้อง ฝาก| หลักการ เล่น บา คา ร่า| เว็บ ts911ep3| บา คา ร่า rb88| แอ ป คา สิ โน| 12bet คา สิ โน สด| สมัคร 123plus| แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ไม่ ต้อง แชร์| เล่น บา คา ร่า รวย| 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก| bk8 เครดิต ฟรี| เว็บ แทง บา คา ร่า ขั้น ต่ํา 20 บาท| บา คา ร่า ไม่ ใช้ ธนาคาร| สมัคร บา คา ร่า เซ็กซี่| เว็บไซต์ คา สิ โน ออนไลน์| แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020| เครดิต ฟรี ฝาก 1 บาท| หา เว็บ พนัน ออนไลน์| ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019| บา คา ร่า ชนะ| บา คา ร่า แจก เครดิต ฟรี 2019| royal บา คา ร่า| แจก เครดิต ฟรี ล่าสุด ไม่ ต้อง ฝาก| เว็บ ลอง เล่น บา คา ร่า| ทาง เข้า เล่น บา ค่า ร่า| เว็บ mm88th| การ แทง บา คา ร่า| เซ็กซี่ บา คา ร่า ขั้น ต่ํา 10 บาท|