<em id="JQ3"><span id="JQ3"><option id="JQ3"></option></span></em>
  • <em id="JQ3"><source id="JQ3"><option id="JQ3"></option></source></em>

    <em id="JQ3"><span id="JQ3"><track id="JQ3"></track></span></em>
    <em id="JQ3"><th id="JQ3"></th></em>
    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
     
    หมุน วง ล้อ รับ เครดิต ฟรี mafia55 สมัคร jetsadabet 8888 coin master ฟรีสปิน live22 โปร สมาชิก ใหม่ สล็อต แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ สล็อต เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด lsm99x fin88 casino อยาก ได้ ส ปิ น เยอะ ๆ coin master 979 gclub betrally casino ล็ อ ต โต้ 8888 เล่น จี คลับ มือ ถือ sbobet premier betsoft slot การ หา ส ปิ น ฟรี jetsadabet lottovip lsm99 agent ทาง เข้า เว็บ หวย เจ ษ ใหม่ www gclub666 gt casino เกม บิงโก คณิตศาสตร์ อยาก ได้ ส ปิ น coin master ฟรี lsm99 lotto casino online net rt สล็อต กระบอง เล่น จี คลับ มือ ถือ vip jetsadabet เข้า fun88 เว็บ พนัน ปอย เปต สูตร jetsadabet คา สิ โน ปอย เปต ออนไลน์ sg8bet casino slotv9 รับ 100 โค้ด เกม coin master ฟรี วัน นี้ k9win สมัคร lsm99 register ทาง จี คลับ lsm99 เข้า ไม่ ได้ ufa แจก เครดิต ฟรี 100 ไม่ ต้อง ฝาก ทาง เข้า sbothaiclub เครดิต ฟรี luck casino best 18bet casino 918kiss android download 2020 สมัคร รับ เครดิต ฟรี ไม่ ต้อง แชร์ นางฟ้า fun88 เอเย่นต์ จี คลับ 918kissauto co โปร โม ชั่ น วัน เกิด คา สิ โน 918kiss hack unlimited fun88 ทาง เข้า 2018 สูตร coin master กลุ่ม เครดิต ฟรี ไม่ ต้อง แชร์ สล็อต k9win sboibc888 ถอนเงิน เค ดิ ต ฟรี 200 เอา ส ปิ น coin master ฟรี lsm สมัคร ism99 game gclub69 ทาง เข้า ส โบ 8888 วิธี ได้ ส ปิ น ฟรี coin master โบนัสคาสิโน ไม่ต้องฝากเงิน ยืนยันเบอร์ รับเครดิตฟรี สล็อต สมาชิก ใหม่ royal online ฟัน 88 ล็อกอิน gclub asia88 เว็บ แทง หวย jetsadabet ได้ ส ปิ น ฟรี coin master เครดิต สล็อต ฟรี ไม่ ต้อง ฝาก royal online ios sbobet beer789 เว็บ แทง หวย jetsadabet wildtornado casino gclub1988 บา ค่า ร่า joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ bocasino ทาง เข้า fun88 2020 k9win สล็อต wild slot โบนัส คา สิ โน ไม่ ต้อง ฝาก เงิน แทง หวย เว ป เจต เกม สล็อต แคน ดี้ dafabet 28 ส ปิ น ฟรี coin master ios ล่าสุด หา เค ดิ ต ฟรี โบนัส คา สิ โน ไม่ ต้อง ฝาก เงิน เจษฎา เบ ท ทาง เข้า sboasia ฟรี ส ปิ น เกม coin master peking luck slot sbo888 ทาง เข้า ิิิ bbb1688 แจก ส ปิ น coin tomato222 บอล สด sbobet วิธี เล่น black jack sbobet rich88 แอ พ แจก ส ปิ น เกม coin master gclub55555 918kiss สมัคร ท รู วอ เลท จี คลับ เล่น ผ่าน เว็บ แอ ป โก่ง ส ปิ น ทาง เข้า gclub ผ่าน เว็บ spartan slot ทาง เข้า agent sbo หวย ออนไลน์ jetsadabet casino evolution gaming เว็บ poipet pantip sa game 350 m beer 777 mafia ฝาก 1 บาท coin master ส ปิ น ไม่ จํา กัด royal online v2 ios sbothai ทาง เข้า sbobet online mobile 123play casino วิธี แลก ส ปิ น coin master sbobet premier คา สิ โน ออนไลน์ ปอย เปต 979 gclub 918kiss โหลด เว็บ ism99 casino sms deposit ปอย เปต 147 ่ lsm99 bilion casino ทาง เข้า 24sbo roma casino ส โม เบ ท 789 wwwlsm99 โปร ส ปิ น coin master ไม่ จํา กัด take 5 slot แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2563 24sbobet all casino บา คา ร่า gladiator jackpot ลูกเต๋า โบนัส เงิน คืน ท รู ล อ ต โต้ วี sbobet beer789 inferno star slot www fun888 โปร ฟรี ส ปิ น coin master สมัคร เว็บ fun88 caesar slots casino สล็อต ออนไลน์ แจก ฟรี เครดิต coin master ฟรีสปิน สล็อต 918kiss เติม true wallet ไม่มี ขั้น ต่ํา lsm99 up 855 casino 88cashbet ทาง เข้า gclub888 แจก โค้ด ส ปิ น coin master i slot วิธี เล่น แบ ล็ ค แจ็ ค สมาชิกใหม่ลงทะเบียนเพื่อรับโบนัส แรกเข้า ฟรีสปิน15ครั้ง sbobet 158 ปอย เปต โปร ทาง จี คลับ casino coupon sbobet168 มือ ถือ สมัคร เค ดิ ต ฟรี ส โบ เบ็ ต 777 fun88asi coin master ฟรี ส ปิ น ล่าสุด poker ออนไลน์ เงิน จริง huone casino หวย เจต ห้อง ฟ้า ่ jetsada ทาง เข้า เอ เย่ น ส โบ 2bcasino royal gclub online เกม โป ก เกอร์ ออนไลน์ ดาวน์โหลด 918kiss ios ล็ อ ต โต้ วัน ล็ อ ต โต้ 77 สล็อต แจก ฟรี วัน เกิด sbo888 มือ ถือ ส ปิ น ฟรี coin master ios ล่าสุด ace333 ฟรี เครดิต 2019 เว็บ บา คา ร่า จี คลับ ทาง เข้า lsm99 ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด 2020 โปร ส ปิ น ฟรี coin master ติดต่อ เอ เย่ น จี คลับ versailles gold slot สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 ทาง เข้า gclub87 goldenslot games slot online casino online ไฮโล น้ำเต้า ปู ปลา ออนไลน์ โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท สมัคร kiss918 ฟรี เครดิต แอ พ เล่น ไฮโล ส โบ 88 หวย เว็บ เจ ษ สล็อต โบนัส 200 เค ดิ ต ฟรี 500 lsm99 ติดต่อ sbobet m ปอย เปต 977 casino flash บา ค่า ร่า bet hex online casino joker ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ goldenslot games slot online casino online แจ กลิ้ง ส ปิ น ฟรี coin master การ เล่น ไพ่ โป ก เกอร์ bacc6666 สมัคร lsm99co happyluke ดาวน์โหลด ฟรี joker game casino sbobet 789 lsm99online ทาง เข้า sbobet777 123 ปอย เปต ทาง เข้า sbobet555 jetsadabet สมาชิก ฝาก เงิน vscr888 เว็บ ส ปิ น ฟรี coin master โบนัส วี ไอ พี 918kiss เล่น ฟรี จี คลับ ผ่าน เว็บ เครดิต ฟรี 500 บาท 1000 ล็ อ ต โต้ fun88 ดี ไหม pantip โกง ส ปิ น ใน coin master lsm99 up 918kiss hack unlimited สล็อต happy casino f sbobetmix ส ปิ น ฟรี coin master ไม่ จํา กัด huone casino fun88 pc bet slot club sboibc888 ถอนเงิน สมัคร 918kiss me คา สิ โน ไม่ ต้อง ฝาก เงิน เข้า ส โบ เบ ท เว็บ บา คา ร่า ปอย เปต ทาง เข้า สำรอง sbobet เว็บแทงบอล วิธี เอา ส ปิ น coin master โบนัสเครดิตฟรี ไม่ต้องฝาก บิงโก ราคา เข้า gclub casino o northern sky slot mafia88 gaming mobil blackjack gatorama casino สมัคร สล็อต ฝาก 99 รับ 201 lsm99 9 jetsadabet 357 sbfbet kkkk99net royal online 777 sbo333 เข้า ไม่ ได้ lotto jetsada sbobet 2016 คาสิโน โบนัสดีที่สุด sbobet mobile iphone ทาง เข้า ส โบ เบ ท แจก เครดิต ฟรี แค่ สมัคร 777www casino e16811 แจ กลิ้ง ส ปิ น ฟรี coin master หวย หุ้น เจษฎา โปร ส ปิ้ น เกม coin master link lsm99 สล็อต เติม เงิน ผ่าน มือ ถือ อยาก ได้ ส ปิ น coin master ฟรี dafabet pc sbobet22 เครดิต ฟรี ufa คี โน คือ แทง หวย ออนไลน์ เจษฎา หวย เจษฎา vip hercules slot บา คา ร่า วัน ละ 300 สมัคร 10 รับ 100 เว็บ เจษฎา ใหม่ เว็บ หวย เจษฎา pantip โปร โม ชั่ น dafabet แจก ส ปิ้ น เกม coin master แจก ฟรี 100 ไม่ ต้อง แชร์ สมัคร ส โบ เบ ท คา สิ โน ฝาก 1 บาท ได้ 100 pssuy888 บา คา ร่า royal วิธี ได้ spin coin master เล่น สล็อต ฟรี ไม่ ต้อง ฝาก สมัคร ปุ๊บ รับ เครดิต ฟรี sbobet888 ทาง เข้า gclub ผ่าน มือ ถือ https m bacc6666 com สมัคร เอ เย่ น lsm99 วิธี เก็บ ส ปิ น coin master bitcointalk gambling เค ดิ ต ฟรี บา คา ร่า 2020 ล็ อ ต โต วี ไอ พี ิ sbobet sbobet games เครดิตฟรี freebet casino บา ค่า ร่า serbian casino sboibc888 ถอนเงิน ติด ตั้ง gclub bg live casino โบนัสเครดิตฟรี ไม่ต้องฝาก ฝาก ขั้น ต่ํา 50 บาท casino 888 club 789 gclub evolution slot E-Sport โบนัสต้อนรับ 100% สูงสุดถึง 1,000 บาท เข้า เว็บ jetsadabet fin88 คา สิ โน 21 casino online แทง หวย ออนไลน์ เจต jetsadabet อัตรา จ่าย vip fun88 w77 casino โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% gclub คืน ยอด เสีย 10 lsm99 ไลน์ all slot online SBFPLAY99 gclub555 coin master เพิ่ม ส ปิ น สล็อต ฝาก 20 บาท ได้ 100 ล่าสุด ฟรี ส ปิ น สมาชิกใหม่ poker black jack คี โน คือ ไอ ดี ไลน์ lsm99 ลิ้ ง fun88 bet soft greenx88 ฟรี ส ปิ น เครดิต ฟรี คา สิ โน 2020 โค้ด เกม coin master ฟรี วัน นี้ sbobet ibc 888 บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น happy slots วิธี ส ปิ น coin master ฟรี fan88 ทาง เข้า live22 โปร สมาชิก ใหม่ sbobetasia 918kiss apk ล่าสุด ิ sbobet casino dices 198 kiss apk sboibc888 ทาง เข้า gclub the one ปอย เปต 168 918kiss เกมส์ ไหน ดี แตก ง่าย 918kiss ios 2020 live house casino fun888 asia สล็อต star99 รับ ส ปิ น ฟรี coin master coin master ส ปิ น ฟรี ไม่ จํา กัด santa slot เค ดิ ต ฟรี ไม่ ต้อง ทํา เทิ ร์ น happyluke ได้ เงิน จริง ไหม lsm99 ล่าสุด ทาง เข้า sboasia x bet casino บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น ฮ อ ลิ เดย์ พา เล ซ ปอย เปต sbobet casino live royalonlien mbacc6666 ส็ ลอด ทาง เข้า sbo24hr ทาง เข้า gclub มือ ถือ โปร โม ชั่ น จี คลับ วิธี เล่น black jack สมัคร เกม สล็อต เครดิต ฟรี my slot เค ดิ ต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก jetsadabet 777 daopay casino lucky online casino 123sbobet ราคา บอล ไหล ส โบ เบ็ ต sbobet 1 app gclub royal online v2 ios ทำ ลูกเต๋า gclub link gclub คืน ยอด เสีย ทุก สัปดาห์ เว็บ แทง หวย jetsadabet สล็อต ขั้น ต่ำ 1 บาท ทาง เข้า lsm99 ล่าสุด สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 fun88 รีวิว ทาง ส โบ เบ ท royalonlien royalonlien sbobetsh 777 gclub png ไลน์ จี คลับ sbobet22 sbobet333 tomato222 slot machine cleopatra coin master ส ปิ น ฟรี android สูตร เพิ่ม ส ปิ น coin master ทาง เข้า ส โบ เบ็ ต 888 ได้ ส ปิ น ฟรี coin master สล็อต เติม 10 ได้ 100 live casino house ฟรี 300 99gclub ส โบ เบ็ ต 222 gclub link เว็บ ส โบ เบ็ ต คา สิ โน เว็บ แจก ส ปิ น coin master ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 casino coupon ส โบ เบ็ ต tomato555 gclubs gclub online android royal online v2 มือ ถือ สล็อต w88 king roman casino ทาง เข้า sbobet ล่าสุด สมัคร บอล ฟรี เครดิต แจกเครดิตฟรี 300 ไม่ต้องฝาก2020 เล่น poker online fun88 รีวิว แจ กลิ้ง ส ปิ น ฟรี coin master da vinci treasure slot sekabet casino gclubs หวย เจษฎา vip แอ พ แจก ส ปิ น เกม coin master sbobet8888 128coffee sbobet poker เงิน จริง android โค้ด ส ปิ น coin master วัน นี้ ส โบ 88 อยาก ได้ ส ปิ น coin master ฟรี vwin365th สมัคร ส โบ เบ็ ต 888 ww77 casino ฝากเงินครั้งแรกรับโบนัส 200% สูงสุด 8,000 บาท สล็อต ออนไลน์ แจก เครดิต ฟรี เล่น สล็อต pantip แจก เครดิต ฟรี แค่ สมัคร ทาง เข้า gclub87 ฝาก 5 รับ 100 ล่าสุด xoslotzv3 royal online ทาง เข้า jetsadabet โกง สมัคร ใหม่ แจก เครดิต ฟรี coin master รับ ส ปิ น ฟรี dafabet ลิงค์ บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น scr888th sbobet online ทาง เข้า ทาง เข้า sbobet ใหม่ happyluke 999 สมัคร mega888 เจต ฏ ดา เบส ฮ อ ลิ เดย์ พา เล ซ ปอย เปต ww88 สล็อต 1000 ล็ อ ต โต้ www fun888 สมัคร เค ดิ ต ฟรี ไม่ ต้อง ฝาก ไฮโล น้ำเต้า ปู ปลา ออนไลน์ วิธี ทํา ให้ ได้ ส ปิ น เยอะ ๆ coin master sb0bet888 เว็บ lsm99 ฝาก ขั้น ต่ำ 20 ฟรี 100 ฝาก 19 รับ 100 ล่าสุด wm casino bet โกง ส ปิ น ใน coin master lsm99 net 100 ฟรี ส ปิ น coin master เกม บิงโก ราคา ซื้อ หวย เจต inferno star slot มือ ถือ sbobet888 sbobet ios คา สิ โน gclub เว็บ ปอย เปต ดี ไหม เว ป lsm99 สมัคร sbobet โดยตรง gclub7 lsm99 ถอน mb88 casino 918kiss เทิ ร์ น 1 เท่าdafabet ฟรี 300 2019 ก ฟ ด ฟิำะ m81 sbobet zig zag 777 casino โบนัส ไม่ ต้อง ฝาก เงิน link lsm99 gclub111 สมัคร ส โบ เบ็ ต E-Sport โบนัสต้อนรับ 100% สูงสุดถึง 1,000 บาท all casino บา คา ร่า เข้า เว็บ sbobet gclub ฟรี 500 2018 euromania online casino ตัว วาง บิงโก E-Sport โบนัสต้อนรับ 100% สูงสุดถึง 1,000 บาท sbobet168 club sbobet 1 เว็บ ซื้อ หวย เจษฎา สล็อต เครดิต ฟรี เทิ ร์ น 1 เท่า bettilt casino kclubs online casino โปรโมชั่นพนันออนไลน์ lsm99 game หวย หุ้น เจษฎา jetsadabet เปลี่ยน เอ เย่ น แอ พ ส ปิ น ฟรี coin master ios บิงโก โค้ด รับ ส ปิ น ฟรี coin master m88 casino online jetsadabet ฝ เข้า ส โบ เบ ท เว็บ เจ ษ หวย โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท ฝากเงินครั้งแรกรับโบนัส 200% สูงสุด 8,000 บาท ถอนเงิน sbobet168 sbobet ทาง เข้า มือ ถือ สมัคร แทง บอล ฟรี tournament bonus คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ฝาก 10 บาท รับ 100 วอ เลท gclub คา สิ โน vip jetsadabet วิธี หา ส ปิ น coin master slot party ถอนเงิน lsm99 แอ พ แจก ส ปิ น ฟรี coin master ทาง เข้า gclub1688 temple slot ทาง เข้า บา คา ร่า gclub สล็อต 918 เติม true wallet ไม่มี ขั้น ต่ํา หมุน ส ปิ น ฟรี coin master app gclub 918kiss scanner hack 2019 free sbobet 359 วิธี ส ปิ น ฟรี coin master lsm99 เข้า สู่ ระบบ เจษฎา หวย หุ้น poker 5 ใบ lsm99love เครดิต ฟรี luck viking clash slot sbobetv8 coin master ฟรี ส ปิ น ล่าสุด ยี่ กี เจต poker เงิน จริง สมัคร sbobet ตรง rating casino ข่าวกีฬา beat casino sbobet 666 ufabet สล็อต jetsadabet 168 spina casino สูตร หวย เจษฎา เบ ท sb0bet888 ปอย เปต 777 gclub ฟรี 500 2018 คา สิ โน ออนไลน์ gclub ทาง เข้า sbobet 222 เว็บ บา คา ร่า จี คลับ บิงโก งาน วัด sbobet online spin coin master ไม่ จํา กัด sbobet77th sbobetsc เครดิต ฟรี 150 2020918kiss ฟรี เครดิต 1000 บาท casino roses เว็บ เล่น โป๊กเกอร์ แจก เครดิต ฟรี แค่ สมัคร เครดิต ฟรี 150 2020918kiss ฟรี เครดิต 1000 บาท หา ส ปิ น coin master ฟรี โบนัสแนะนำเพื่อน แจก ส ปิ น ฟรี coin master วัน นี้ ทาง เข้า sbobet cz E-Sport โบนัสต้อนรับ 100% สูงสุดถึง 1,000 บาท rt สล็อต สปินฟรี coin master pantip ดาวน์โหลด 918kiss เวอร์ชั่น ล่าสุด ios ราคา ไหล sbobet sbobet9999 เว็บ jetsada lsm99 sport สล็อต star99 สมัคร joker1888 เครดิต ฟรี winsor แอ พ ล็ อ ต โต้ doxxbet casino online จี คลับ ผ่าน เน็ต ไฮโล ออนไลน์ พื้นบ้าน บา คา ร่า ปอย เปต สมัคร wwwbeer789 รอย อ จี คลับ pic5678 มือ ถือ royal casino v2 jetsadabet 8888 lsm99 net tarzan slot casino muchbetter casino all slot fun88 ทาง เข้า 2018 วิธี หา ส ปิ น ฟรี coin master tarzan slot สล็อต เครดิต ฟรี ล่าสุด 2020 lsm99vip สล็อต lsm99 sbobet mobile iphone สล็อต เครดิต ฟรี 20 บาท เข้า ส โบ มือ ถือ download 918kiss ios 2020 7msbobet lsm99 หวย บา คา ร่า ค่า คอม เว็บ ปอย เปต พัน ทิป วิธี เล่น แบ ล็ ค แจ็ ค sbobetsh มือ ถือ bonus dafabet f1 gclub sbobetrich88 วี ไอ พี ล็ อ ต โต้ ทำ รายการ ฝาก lsm99 slot สมัคร ใหม่ ได้ รับ เครดิต ฟรี ไม่ ต้อง ฝาก gclub plus sb0bet888 โหลด kiss918 casino fiz mobile ทาง เข้า สำรอง sbobet dsd canlı bahis canlı tombala canlı casino jetsadabet เว ป เจต ส โบ เบ็ ต 88 sbobet356 เครดิต ฟรี winsor royal casino เครื่องมือ ระบบ ตัวแทน ทาง เข้า 24sbobet big bang slot ราคา ไหล sbobet 918kiss download ios 2019 coin master โปร ส ปิ น เข้า sbobet ล่าสุด เว็บ ซื้อ หวย เจษฎา 918kiss ios 2020 download scr888 login ่ jetsadabet บิงโก ซื้อ ที่ไหน gclub promotion rich 888 casino เว็บ หวย เจษฎา pantip m beer 777 คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 kkkk99net lsm99 สูตร coin master หวย ออนไลน์ jetsada ปอย เปต 168 สูตร coin master coin master ฟรีสปิน วิธี เล่น black jack แจก ส ปิ้ น coin master สมัคร 918kiss ท รู วอ เลท โบนัส ฝาก เงิน ครั้ง แรก royal online 88888 app gclub ฝาก 10 บาท รับ 100 วอ เลท เว็บ ส ปิ น ฟรี coin master gclub the one เล่น สล็อต ฟรี ไม่ ต้อง ฝาก diamond vip casino ปั่น ส ปิ น ฟรี coin master ส ปิ้ น coin master ฟรี 918kiss เกม ไหน แตก ง่าย สุด รับ เครดิต ฟรี 300 slot สมัคร รับ เครดิต ฟรี isoftbet slots ฟรี ส ปิ น coin master วัน นี้ ปิดบัญชี บา คา ร่า poker เงิน จริง สมัคร fan88fun888 ฟรี 300 หวย เว ป เจต ฮ อ ลิ เดย์ พา เล ซ ปอย เปต สูตร coin master ฟรี mrvegas casino xoslotzv3 เครดิต สล็อต ฟรี ไม่ ต้อง ฝาก ปอย เปต 977 w88 mobile casino sg8bet casino แทง หวย เว็บ เจ ษ เว็บ เล่น โป๊กเกอร์ เข้า สู่ ระบบ gclub โปร ฟรี ส ปิ น coin master 918kiss สมัคร auto บา คา ร่า ไม่ ต้อง ทํา เทิ ร์ น z8 สล็อต แจก ฟรี 100 ไม่ ต้อง แชร์ casino roses สมัคร แจก เครดิต ฟรี ขอ ส ปิ น ฟรี coin master สล็อต 808 918kiss ฝาก 10 รับ 100 ล่าสุด hercules slot เว็บ ปอย เปต 168 sbobet8888 ทาง เข้า 918kiss ฝาก 10 รับ 100 ล่าสุด opera casino ทาง เข้า sbobet online 918kiss hack android ทาง เข้า เอ เย่ น lsm99 web casino online เว็บ เจษฎา เบ ท ลำดับ ไพ่ โป ก เกอร์ gclub คา สิ โน gclub คืน ยอด เสีย ทุก สัปดาห์ โป ก เกอร์ เงิน จริง ism99 game ทาง เข้า จี คลับ ใหม่ ทาง เข้า sbobet ca 2bcasino สล็อต 198 sbobet24hr ทาง เข้า winner55 สล็อต sbobet347 sbobet เข้า ได้ แน่นอน yoyo casino 43 คา สิ โน lsm99 กระดาษ ลูกเต๋า ทีเด็ด บอล ส โบ เบ็ ต เล่น จี คลับ ออนไลน์ spina casino line dafabet โปรโมชั่นฝากเงินครั้งแรก รับโบนัส 100% สล็อต 918kiss ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด 2019 gclub line คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 micro knights slot live22 ฝาก 50 รับ 100 gclub ฟรี 500 2018 sbobet 818 สมัคร สมาชิก รับ เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ส ปิ้ น ฟรี coin master วิธี เพิ่ม ส ปิ น coin master ฟรี jetsadabetcom เข้า เว็บ ส โบ เบ็ ต โบนัส แรก เข้า เติม 100 ฟรี 300 ruby888 android เครดิต ฟรี ถอน ง่าย 2018rb88 ฟรี 300 casino f ฝากเงินครั้งแรกรับโบนัส 200% สูงสุด 8,000 บาท jetsada หวย สูตร coin master ฟรี tiki fruits slot royal online v2 มือ ถือ ios fun88 พัน ทิป 8888 casino online เว็บ หวย เจษฎา ล็ อ ต โต้ www fun888 http ab24hr allbet asia com login royal casino 888 คา สิ โน โปร โม ชั่ น วัน เกิด ทาง เข้า fun555 ล็อกอิน fun88 auto slot 918 ฟรี สล็อต ออนไลน์ เครดิต ฟรี winsor sbobet7 megaway slots หา เว็บ แจก เครดิต ฟรีfifa55 เครดิต ฟรี ไม่ ต้อง ฝาก สูตร หวย ยี่ กี jetsadabet สมัคร sbobet ca สมัคร จี คลับ 666 เว็บ พนัน บอล sbobet royal online 168 sbo168 เข้า ไม่ ได้ sbobet777 คอม sbo168 เข้า ไม่ ได้ ล็ อ ต โต้ 8888 sbobet rich88 sbobet bilion casino coin master แจก ส ปิ น ฟรี แทง ไฮโล พื้นบ้าน k9win สล็อต เล่น poker online mrvegas casino สมัคร 918kiss ท รู้ วอ เลท เครดิต ฟรี ไม่ ต้อง ฝาก jdb 918 download ios บา คา ร่า ค่า คอม payeer casino สมัคร ใหม่ แจก เครดิต ฟรี gclub6666 คืน ยอด เสีย สล็อต โปร โม ชั่ น dafabet gclub free สมัคร 918kissauto lsm99 ฝาก ถอน lsm99 sport casinol casino flash คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 madam gclub royal gclub online สลอด 6666 auto918kiss 918kiss hack android 99gclub ส โม เบส serbian casino ปอย เปต 777 ฝาก 100 ฟรี 100 ถอน ไม่ จํา กัดฟรี เครดิต 100 ไม่ ต้อง ฝาก 2020 casino ir 888 casino android คา สิ โน เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slot io agent slot beer789 m777 casino mobile 918 plus apk สล็อต เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ fun88 รีวิว ฝาก ถอน mafia88 เล่น ก่อน ไม่ ต้อง ฝาก gclubs เข้า gclub ไม่ ได้ gclub5555 ไลน์ จี คลับ royal casino online v2 เว็บ ปอย เปต ดี ไหม สล็อต 88888 vwin365th แทง หวย เจต เข้า เล่น gclub สมัคร kiss918 ฟรี เครดิต betandyou casino sbobet pc สล็อต คืนสูงสุด 7% jetsadabet รีวิว รับ ส ปิ้ น coin master โบนัสฝากเงินครั้งแรก 108% สูงสุด 5,000 บาท fun888 มือ ถือ ลิงค์ รับ ส ปิ น ฟรี coin master ล่าสุด sbobet 8x สมัคร scr888 ฟรี เครดิต gclub30 บา คา ร่า ทํา เทิน gclub md ฝาก เงิน vscr888 888 dragons happyluke pic5678 asia sbobet66 สล็อต playstar เกมสล็อต สมัคร ใหม่ แจก เครดิต ฟรี fin88 คา สิ โน 918kiss เทิ ร์ น 1 เท่าdafabet ฟรี 300 2019 ทาง เข้า sbobet แจก ส ปิ น coin master ล่าสุด adameve casino วิธี เอา ส ปิ น เกม coin master ตัวแทน royal casino เข้า เล่น จี คลับ 168 auto918kiss fun88 ios เอ เย่ น lsm99 happy slots จี คลับ คา สิ โน sbobetsh mobile เข้า sbo มือ ถือ สมาชิกใหม่ลงทะเบียนเพื่อรับโบนัส แรกเข้า lsm99 com สมัคร agent casino https ufafever com ufabet login sofortüberweisung casino k9win casino สมัคร kiss918 ฟรี เครดิต big gaming casino แจก เครดิต ฟรี 100 ไม่ ต้อง แชร์ สมาชิก ใหม่ ฝาก 1 บาท รับ 100 สมัคร ยูสเซอร์ ฟรี เครดิต kkkk99net lsm99 yoyo casino 43 lsm99 ดี ไหม casino online net ทาง เข้า sbobet cz เครดิต ฟรี ไม่ ต้อง ฝาก fifa เจต หวย ออนไลน์ รับ ส ปิ น ฟรี coin master ไม่ จํา กัด ทาง เข้า sbobet เข้า ไม่ ได้ บิงโก แบบ หมุน casino 1xbet scr888 login spinomenal slots ib88 casino sbobet pc ทาง เข้า lsm999 happyluke คา สิ โน ออนไลน์ coin master โปร ส ปิ น 2020 fan88 ทาง เข้า royal online 7777 happyluke ได้ เงิน จริง ไหม poker เงิน จริง ios เจษฎา bet fun88 มือ ถือ เว็บ หวย เจษฎา ล็ อ ต โต้ แจก ฟรี ไม่ ต้อง แชร์ สมัคร รับ เครดิต ฟรี 2020 jetsada lottovip bonus dafabet royal online v2 มือ ถือ ios ทีเด็ด ส โบ เบ็ ต 888 เว็บ เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ไฮโล ออนไลน์ ได้ เงิน จริง ผ่าน มือ ถือ sbobet 222 mobile เค ดิ ต ฟรี ฝาก 1 บาท โปร สล็อต 20 รับ 100 คา สิ โน โปร โม ชั่ น sbobet iphone เครดิต ฟรี nx io slot lsm99 โปร โม ชั่ น เค ดิ ต ฟรี 200 fan88 ทาง เข้า fbi5836m สมัคร บอล ฟรี เครดิต วิธี เล่น ไฮโล pantip sbobet ca1 เข้า agent sbobet ไม่ ได้ ส โม เบ ท รอยัล คา สิ โน 88 กำถั่ว จี คลับ happyluke ฟรี 300 บาท casino sky vegas โปร โม ชั่ น จี คลับ happyluke download ลิงค์ lsm happy live22 ballhengheng 819 kiss apk casino ir กลุ่ม เครดิต ฟรี ไม่ ต้อง แชร์ sbobet เข้า ไม่ ได้ มือ ถือ play 888 casino live casino house ฟรี 300 mafia สล็อต มา ใหม่ io slot k9win สมัคร pin casino ทาง เข้า fun88 pc ลิ้ ง ส ปิ น ฟรี เล่น โป ก เกอร์ ออนไลน์ ฟรี จี คลับ เล่น ผ่าน เว็บ วิธี เล่น แบ ล็ ค แจ็ ค dragon club casino เข้า fun88 เค ดิ ต ฟรี ไม่ ต้อง แชร์ wow gclub american poker 90 เว ป fun88 casino rich ลิ้ ง ค์ ส ปิ น coin master โปรโมชั่นพนันออนไลน์ สมัคร เค ดิ ต ฟรี ไม่ ต้อง ฝาก วิธี ได้ ส ปิ น ฟรี coin master lsm bet 99 สูตร หวย ยี่ กี jetsadabet 2563 เกม lsm99 สล็อต ขั้น ต่ํา 100 sbobet 433 casino havana 918kiss download android 2020 918kiss 888 apkเครดิต ฟรี ไม่ ต้อง แชร์ แอ พ ส ปิ น ฟรี coin master ios วิธี เพิ่ม ส ปิ น coin master ฟรี สูตร หวย เจษฎา เบ ท ฟรีสปิน15ครั้ง บาคาร่า g ครับ 88888 รอยัล จี คลับ slot io สล็อต 88888 royal casino เครื่องมือ ระบบ ตัวแทน casino f คา สิ โน ฝาก 1 บาท ได้ 100
    arcade slot| live222th slotxoเล่น เกม สล็อต ให้ ได้ เงิน| ลอง เล่น เกม| ufa1688 ทาง เข้า| mafia999 เข้า สู่ ระบบ| สมัคร kiss918 ฟรี เครดิตสล็อต มาเฟีย 8888| แอ พ ไพ่ ได้ เงิน จริง| เกม มือ ถือ เล่น ได้ เงิน| star vegas แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020| บ้าน ผล บอล 88| slotxo โกง| ราคา ไหล สูง ต่ํา| candy burst slot| ace333 gaming| star vegas โหลด| เกม ผล ไม้ ได้ เงิน| ค่าย เกม rt| kiss918 สมัคร| slot immortal romance| la สล็อต| slot hotline| ดาว โหลด แอ พ pussy888| ทาง เข้า เกม live22| slot jack| สล็อต 777 แพนด้าสล็อต roma เล่น ฟรี| ทาง เข้า เล่น pussy888| gold 777 casino| epicwin ทาง เข้า| online kasino| สล็อต ฟรี เครดิต ทดลอง เล่น| โหลด king99| star vegas แจก เครดิต ฟรีเกม ยิง ปลา ได้ เงิน จริง หรอ| วิธี การ ยิง ปลา ให้ ได้ เงิน| เกมส์ ยิง ปลา เครดิต ฟรี| สล็อต ag| วิธี การ ยิง ปลา ให้ ได้ เงิน| lucky lady charm casino gratis| โหลด แอ พ pussy| วิธี เล่น สล็อต ผล ไม้ ให้ ได้ เงิน| ทดลอง เล่น สล็อต ค่าย pp| fruits 4 real casino| เกม ที่ ถอนเงิน ได้ จริง| สล็อต 8| สล็อต j9| เว็บ หวย ให้ เครดิต ฟรี| slot xo88| ฝาก น้อย รับ 100 ล่าสุด| tbsbet ดี ไหม| วิธี ยิง ปลา ให้ ได้ เงิน| สล็อต sl| สูง ต่ํา บอล| สมัคร สล็อต ยู ฟ่า| download pgslotsbo3333 มือ ถือ| route 777 slot| ufabet 66| เล่น เกม อะไร ที่ ได้ เงิน จริงๆ| วิธี สมัคร sbobet ไม่ ผ่าน เอเย่นต์| เกม เล่น ได้ เงิน| mobilbet casino| hellboy slots| สมัคร สล็อต ยู ฟ่า| สล็อต เฮ้า| เกม ออนไลน์ ฝาก ไม่มี ขั้น ต่ําเว็บ ฟีฟ่า 888| ช่อง ทางการ เข้า เว็บ www ufa365 com www ufabet com www1 betufa com| เกม สล็อต มังกร| เล่น เกม ง่ายๆ ได้ เงิน จริง|