<sub id="20eT"><address id="20eT"><nobr id="20eT"></nobr></address></sub>
<nav id="20eT"><listing id="20eT"></listing></nav>
<sub id="20eT"><listing id="20eT"></listing></sub><em id="20eT"></em>

<sub id="20eT"><address id="20eT"><meter id="20eT"></meter></address></sub>

<tr id="20eT"><source id="20eT"><option id="20eT"></option></source></tr>
<nav id="20eT"></nav>

<em id="20eT"></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
     
    slotxo 100 1 เทิ ร์ น fifa55 goal slot red tiger เล่น สล็อต databet88 easy slotxo slot ยืนยัน ตัว ตน รับ เครดิต ฟรี joker slot1234 mafia345 เครดิต ฟรี live22 ฝาก 20 รับ 100 918kiss th เติม เงิน live22 918kiss me 2 slot mobile 9gspin เครดิต ฟรี 918kiss ฝาก ไม่มี ขั้น ต่ํา xo slot007 double casino free slots ไฮโล ออนไลน์ โบนัส ฟรี 918kiss เครดิต ฟรี 50 ป๊อก เด้ง เครดิต ฟรี slot online ไม่มี ขั้น ต่ํา playstar slot win88 เครดิต ฟรี situs slot joker123 slotxo เติม เงิน ผ่าน วอ เลท อั่ ง เปา scr888 gclub ฟรี joker123 xo slotxo 101 sunbet slot slotplay88 huga slot slot24hr สมัคร vegus168 918kiss888 โปร xo เล่น xo ใน เว็บ รู เล็ ต ออนไลน์ มือ ถือ ไท เกอร์ คา สิ โน open365 ฟรี เครดิต joker ไม่มี ขั้น ต่ํา สมัคร เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 918 ฝาก ถอน ไม่มี ขั้น ต่ํา slotxo เข้า ไม่ ได้ 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา ufa365 ดี ไหม pantip 918kiss android download rad slotxo 918kiss download 2019 48jk slot xo slot mobile slotxo ลอง เล่น slot999 xo slotxogold 918 เครดิต ฟรี หา เครดิต ฟรี 2020 เครดิต ฟรี ทํา เทิ ร์ น โปร โม ชั่ น ยิง ปลา slotxo สล็อต ออนไลน์ caesar88 slot slot โปร ฝาก 10 บาท mega joker slot slot007 เครดิต ฟรี 918 live22 เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ slot2xl slotxo ไฮโล รีโมท สี่ หน้า mafia66 เครดิต ฟรี 918kissbig สมัคร ฟรี เครดิต 2020 918kiss lucky ยิง ปลา ฝาก ขั้น ต่ํา 50 ไฮโล ขั้น ต่ำ 1 บาท 777slotxo ไฮโล ออนไลน์ w88 kiss918 ฟรี เครดิต สล็อต xo989 slotxo 777 th scr888 sn888 เล่น เกม สล็อต xo slot22 slot1234 slotxo xo slot z 918kissworld joker123auto เครดิต ฟรี v9 slot slotxo 639 เครดิต ฟรี 30 บาท slotxo ลอง เล่น ฟรี เครดิต 50 slotxo แตก บ่อย slot house slot365 slotxo ฝาก ผ่าน วอ ล เลท fifa55 mobile joker xo ป๊อก เกอร์ slot free credit 2020 monster joker slot ยิง ปลา ฝาก ขั้น ต่ํา 50 สมัคร ครั้ง แรก ฟรี เครดิต sbobet777 เครดิต ฟรี ufa800 สูตร slotxo ล็อกอิน ฟรี เครดิต ไม่มี เงื่อนไข fifa55u true sport slotxo สล็อต คิง ค อง xo fifa555 sport สล็อต เอ็ ก โอ เทิ ร์ น 1 เท่า bein sport 1 fifa55 tggame9999 vegus168 gold slotxo ฝาก 10 บาท ได้ 100 slotlive222 918kiss สมัคร ฟรี เครดิต เครดิต ฟรี ทํา เทิ ร์ น น้อย โปร slot 369slot บา คา ร่า mclub เว็บ ฟีฟ่า 888 ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ำ slot ฟรี เครดิต 50 เติม สล็อต xo 77up บา ส ป๊อก เด้ง คา สิ โน 918kiss ระบบ ออ โต้ ไพ่ poker slots 500 918kiss ฟรี 1000 168galaxy joker win win slot live22 ฝาก 1 บาท ฟรี 99 ทาง เข้า fifa5555 slot189 918kiss v1 slotxo 2019 mafia เครดิต ฟรี ไม่ ต้อง แชร์ slot375 เว็บ kiss918 เครดิต ฟรี 888 slotxo ฝาก 1 บาท slotxo09 pgslot88 fifa55 memberbet net sbu slot เข้า vegus168 เครดิต ฟรี ไม่ ต้อง ฝาก แชร์ mafia เครดิต ฟรี 50 xo ฟรี เครดิต slot898 fifa55kick ฟรี เครดิต 50 ฝาก เงิน live22 slotxo 236 918kiss เวอร์ชั่น ล่าสุด roma slotxo slot ฝาก 50 slot เอ เย่ น 918kiss โจ๊ก เกอร์ เครดิต ฟรี slotxo 777 th big win slot ฟีฟ่า 55 ทาง เข้า fifa55 databet88 ดี ไหม 918kiss เครดิต ฟรี ไฮโล 600 ฝาก 99 ฟรี 300 สมัคร ฟรี ไม่ ต้อง ฝาก ก่อน 2020 joker god slot เครดิต ฟรี ใหม่ ๆ slot exp slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo88 download สล็อต xo แตก ง่าย 2020 slotxo เติม true wallet ไม่มี ขั้น ต่ํา slot96 ไพ่ แค ง เครดิต ฟรี เครดิต ฟรี 50 ไม่ ต้อง ฝาก ลิ้ ง slotxo fifa55 โปร โม ชั่ น 22th slot crown slot joker89auto gclub ฟรี เครดิต ไม่ ต้อง ฝาก 2019 slotxo ถอน ขั้น ต่ํา 100 เล่น แบ ล็ ค แจ็ ค ออนไลน์ slotxo 22th slotxo ฝาก 10 บาท ได้ 100 slot ฝาก ถอน ไม่มี ขั้น ต่ำ joker mobile slot สล็อต xo311 slot team joker slot auto เครดิต เล่น ฟรี caesar88 slot fifa55we 919kiss ถอนเงิน slotxo แอ พ เครดิต ฟรี slot tiger fifa555 sport เครดิต ฟรี ไม่ แชร์ joker slot 999th download 918kiss ล่าสุด สมัคร ไม่ ต้อง ฝาก slotxo ถอนเงิน slotxo jb slotxo เล่น หน้า เว็บ ฝาก วอ เลต ไม่มี ขั้น ต่ํา megaways ฝาก 1 บาท ฟรี 99 บาท mafia เครดิต ฟรี ไม่ ต้อง แชร์ ไฮโล ออนไลน์ มือ ถือ slotxo sl 918kisstm คา สิ โน 918kiss slotxo โมบาย รู เล็ ต ออนไลน์ apk slotxo 918kiss true wallet ไม่มี ขั้น ต่ํา 888 slot th สล็อต ออนไลน์ xo 198 kiss ฟรี เครดิต 918slot live22 ฟรี เครดิต ไม่ ต้อง ฝาก joker123slotthai slot โปร ฝาก 10 รับ 100 เครดิต ฟรี โจ๊ก เกอร์ winner99 เครดิต ฟรี slotxo vip88 mega888 malaysia god slot เกมส์ ไฮโล เหมือน จริง ป๊อก เกอร์ xo slot007 fifa55we สล็อต xo11 slot111 wwwfifa69 เล่น เกม slotxo 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา joker123 true wallet ไม่มี ขั้น ต่ํา ลิ้ ง เข้า fifa55 slot joker 69 slotxo ฝาก 10 บาท ฟรี 90 บาท เสือ มังกร ออนไลน์ ฝาก 10 รับ 100 joker xo ufa800 บา คา ร่า slotxo ล็อกอิน เข้า slotxo เกมส์ สล็อต ออนไลน์ เว็บ 77up 168galaxy slotxo slotxo star slotxo เกม slotxo 08 slot1234 xo เติม เครดิต slotxo slot222 slot sagame66 slotxo ฝาก ถอน ออ โต้ slotxo exp คา สิ โน ป๊อก เด้ง ออนไลน์ gclub เครดิต ฟรี ถอน ได้ 2020 slot ฝาก 50 เล่น สล็อต roma ฟรี jackpotxo joker mega888 เครดิต ฟรี ไฮโล ขั้น ต่ำ 1 บาท xo บน เว็บ fortune 918kiss slot xo007 pg slot โปร ทุน น้อย joker slot auto slotxo mafia88 mm88bet ฝาก เงิน fifa55ag เล่น สล็อต xo หน้า เว็บ spin 777 โป็ ก เกอร์ ออ น ไล 918kiss เครดิต ฟรี 2019 918kiss v8 slotxo246 เครดิต ฟรี otp แจก เครดิต ฟรี slotxo 918kiss แจก เครดิต ฟรี แอด มิ น 918kiss cherry slot 981kiss เครดิต ฟรี slotxo เล่น ผ่าน เว็บ สมัคร ไม่ ต้อง ฝาก slotxo369 scr888 เครดิต ฟรี sg แทง ไฮโล ขั้น ต่ํา 10 บาท joker8899 เครดิต ฟรี slot king99 scr918kiss th kiss918 ฟรี เครดิต super big win เว็บ บอล fifa 918kiss เติม วอ ล เลท slotxo โอน วอ เลท เครดิต ฟรี gclub 168galaxy slotxo spin slot 88 slotxo หมุน วง ล้อ xo 11 ไฮโล 2020 ไฮโล โทรศัพท์ แทง ไฮโล slotlive22 slotxo z joker god slot slotxo logo png pragmatic play ฟรี เครดิต slotxo246 168slotxo pantip 918kissauto download slotxo โปร วัน เกิด kinglive22 slotxo slotxo 91 ไพ่ โป ก เกอร์ เข้า เล่น fifa55 lucky777 เครดิต ฟรี xo game slot kiss918 เครดิต ฟรี slotxo77 918kissstar gclub เครดิต ฟรี ถอน ได้ 918kiss download ios หา เครดิต ฟรี 2020 vegus168 line เครดิต ฟรี ไม่ ต้อง ทํา เท ริน slotxo ทุน น้อย หน้า เว็บ xo xe88th เครดิต ฟรี สล็อต x0 819 kiss download 918kiss star v2 slotxo77 slotxo8 918kiss แตก ง่าย 2020 gaming world slotxo queen slot 999 slot mega888 เครดิต ฟรี ไม่ ต้อง แชร์ ล่าสุด 918kiss ฝาก ผ่าน ท รู วอ เลท 918kiss เวอร์ชั่น เก่า เล่น สล็อต roma ฟรี รู เล็ ต ออนไลน์ มือ ถือ slot ฝาก ถอน ไม่มี ขั้น ต่ํา กีฬา เสมือน จริง สล็อต xo 888 เครดิต ฟรี ใหม่ ๆ ไพ่ โป ก เก อ slotxo ฝาก 9 บาท รับ 100 ล่าสุด ฝาก 1 บาท ฟรี แอ พ ไฮโล ออนไลน์ xoslotauto slot22 dslot ฟรี เครดิต gclub ไฮโล ขั้น ต่ำ 5 บาท สมัคร เอ เย่ น vegus168 เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ kinglive22 slotxo 1234 slot 918kiss อัน ไหน ดี 12ww เครดิต ฟรี slotxo ฝาก ถอน วอ เลท sunbet slot หมุน วง ล้อ joker123 แทง บอล ฟีฟ่า เครดิต ฟรี 18 ไพ่ ออนไลน์ 9118kiss คา สิ โน ดั ม มี่ รวม เกม ไฮโล download xo slot1234 xo slot cafe slot69 fifa555bonus slot super joker kiss 888 xo ผ่าน เว็บ pay96 slot เกม ส ล็ slotxo s9 mafia เครดิต ฟรี 2020 live22 xo 198 kiss download ไฮโล ออนไลน์ 888 ufa365 com ได้ เลย ค่ะ เล่น แบ ล็ ค แจ็ ค ออนไลน์ slotxo lucky god 2 เว็บ vegus168 xo สล็อต p168 slot ไฮโล รีโมท สล็อต xo3k ฟีฟ่า 777 918kiss ฝาก ขั้น ต่ํา 50 บาท sn888 kiss review 918kiss แตก ง่าย 369slot red tiger slot ไฮโล โทรศัพท์ โป๊ก เก้อ joker ฝาก ไม่มี ขั้น ต่ํา 369 slotxo เว กั ส 168 hd puss888 คา สิ โน ออ น ไล slot 35x xoslot69 918kiss line 2in2 เครดิต ฟรี สล็อต ออนไลน์ xo 918kiss ฝาก ไม่มี ขั้น ต่ํา fifa55net jokerauto 888 ไม่ ต้อง ฝาก fifa55hot slotxo 1988 joker168 ฟรี เครดิต สมัคร เอ เย่ น vegus168 918kiss billion xo slot 899 sagame168th เครดิต ฟรี pgthai888 slotxo ฝาก 19 บาท รับ 100 slotxo ดี ไหม joker456 เครดิต ฟรี สมัคร 918kiss ฟรี โจ๊ก เกอร์ ฟรี เครดิต slotjoker99 ค่าย slotxo โหลด แอ พ คา สิ โน fifa55new grand918kiss databet88 agent jokerslot69 เครดิต ฟรี สมัคร ace333 ฟรี เครดิต slot เครดิต ฟรี 50 slot 22 fifa55 โดน จับ slotxo 88888 queen slot เล่น poker ดั ม มี่ คา สิ โน pussy888 slot ช่อง 77up หมุน วง ล้อ slotxo เครดิต ฟรี วัน เกิด ไม่มี เงื่อนไข โป เกอร์ ไฮโล สะกิด joker live22 slot199 โกง ไฮโล มือ ถือ king189 slot ฟรี เครดิต เดือน เกิด slot god เครดิต ฟรี 1000 fin888 เครดิต ฟรี fifa55 รับ โบนัส ฟรี 200 บาท ไฮโล 11 free spin slot slot joker 1234 บอล เสมือน จริง สด playtect pg168 slot slot punpun 918kiss ฝาก วอ เลท ace333 ฟรี เครดิต เว็บ พนัน บอล ดี ที่สุด 2021 รวม เกม ไฮโล download fifa55net slot machine ace333 slot 918kiss allbet asia lucky777 เครดิต ฟรี สล็อต xo888 191slot slotxo ฝาก 10 รับ 100 ล่าสุด fifa55st 918kiss ฟรี เครดิต เครดิต ฟรี ไม่ แชร์ ไม่ ฝาก slotxo 22 slotxo แตก บ่อย black jack ออนไลน์ แอ พ แยก เสียง ไฮโล slotxo 5g slotxo 24 ฝาก 1 บาท ฟรี 99 เครดิต ฟรี ใหม่ ๆ 12ww เครดิต ฟรี 918kiss เครดิต ฟรี 50 bn slotxo สมัคร เครดิต ฟรี 300 918tiger2 fifa55 เครดิต ฟรี ไม่ ต้อง ฝาก โป เกอร์ สล็อต xo 123 ไฮโล png 918kiss d สล็อต 777 คา สิ โน ออนไลน์ download 918kiss ล่าสุด 9gspin เครดิต ฟรี เครดิต ฟรี 50 ไม่ ต้อง แชร์ slotxo king189 ไฮโล sicbo fifa5599 slot vip 777 slotxo ฝาก 10 บาท รับ 100 ล่าสุด สล็อต xo ฝาก ผ่าน true wallet sbobet slot game เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo ฝาก ถอน วอ เลท ไฮโล ส กิ ด 3 หน้า 918kiss ท รู วอ เลท 918kiss วอ เลท easy slot slotxo 22th the moon 918kiss joker โบนัส 100 auto เล่น แบ ล็ ค แจ็ ค 918kisswallet 918kiss แจก อั่ ง เปา ตอน ไหน 918kissyou gclub slot jackpot 777slotxo 918kiss slots สล็อต xo24hr เครดิต ฟรี แชร์ ไลน์ ยิง ปลา ไม่มี ขั้น ต่ำ slotxo678 918kiss monkey สล็อต xo roma fifa55na xo slotxo big win 777 allbet24hr เข้า slotxo fifa55 เครดิต ฟรี 200 slotxo ฝาก ผ่าน วอ ล เลท joker123 allbet asia royal เครดิต ฟรี เสือ มังกร ออนไลน์ มือ ถือ slot live22 เครดิต ฟรี สล็อต เอก โอ 918kiss เครดิต ฟรี ล่าสุด fifa55 ฝาก 20 ฟรี 100 live22 1234 joker ฝาก ไม่มี ขั้น ต่ำ casino online jackpot 918kiss ระบบ ออ โต้ joker slot 444 fifa55hot mafia ฟรี เครดิต ไม่ ต้อง ฝาก slot joker ฝาก ถอน ไม่มี ขั้น ต่ํา 999 super slot fifa555 เครดิต ฟรี ไม่ ต้อง ฝาก jokerauto 888 918kiss ios ล่าสุด เครดิต ฟรี ไม่ หลอก แชร์ สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท starslot777 slot paypal p168 slot joker ฝาก ถอน ไม่มี ขั้น ต่ำ แทง ไฮโล ส ล๊ อ ต xo1234 joker123 allbet asia fifa55 ดี ไหม วิธี สมัคร databet88 บ่อน ไฮโล ออนไลน์ slot hall slot4 44th slot fifa55crown slot ไม่มี ขั้น ต่ำ best88 สมัคร 918kiss kiss slot 10 ได้ 100 queen slot joker slot online joker123 โปร โม ชั่ น joker 918kiss เครดิต ฟรี ไม่ ต้อง แชร์ pg slot โปร โม ชั่ น 918kissworld โปร โม ชั่ น ยิง ปลา 918kiss อั่ ง เปา scr918kiss th www555 เครดิต ฟรี แบ ล็ ค แจ็ ค เงิน จริง slot911 slotxocom โป็ ก เกอร์ ออ น ไล 918kiss download ios xoslot69 ไพ่ โป ก เกอร์ 918kiss อั่ ง เปา เล่น sbobet ฟรี slots 500 slot โปร สล็อต xo191 rad slotxo เว็บ 918kiss ไฮโล ออนไลน์ ไม่ ต้อง ฝาก 918kiss star v2 best slotxo ไฮโล พม่า ึึ 77up 24th slot 12ww เครดิต ฟรี 918 ฝาก ถอน ไม่มี ขั้น ต่ํา xo slot168 วง ล้อ เสี่ยง โชค ออนไลน์ royal 918kiss 2pslot slotxo วอ ล เล็ ต ยู ส เท ส slotxo 918kissbig joker ถอน ไม่มี ขั้น ต่ํา 77up บา ส slotxo 918kiss 918kiss บน pc all slot666 slotxo ฝาก 1 บาท รับ 100 xo slot 777 ทาง เข้า ฟีฟ่า 55 มือ ถือ 918kiss69 slot โบนัส 918thailand joker hunter 888 slotxo z ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ jackpotxo live22 เครดิต ฟรี 600 168slotxo 918kissworld 918kisskingdom slot เครดิต ฟรี 50 บาท slotxo แจก เครดิต ฟรี 50 slot ฝาก 20 รับ 100 slotxo ผ่าน วอ เล็ ต โป๊กเกอร์ ได้ เงิน จริง xo live22 fifa55n slotxo cool 918kiss4you spk slotxo 918kiss ฝาก true wallet ึึ 77up slotxo s9 เข้า เล่น fifa55 slot games 66 918kiss ท รู วอ เลท fifa55 rmuajj slotxo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 สล็อต xo ท รู วอ ล เล็ ต slotxo mario fifa55 prime sanook xo slot ฝาก วอ เลต ไม่มี ขั้น ต่ํา แอ พ fifa55 เกม ไฮโล ฟรี slot house 918kissworld xo slot mobile fifa55na slotxo โปร วัน เกิด 918kiss 1234 slotxo45 databet88 ดี ไหม slot24th joker สล็อต 777 คา สิ โน ออนไลน์ เกม ไฮโล ฟรี s9 slot w168club เครดิต ฟรี ไพ่ แค ง เล่น ได้ เงิน จริง slot machine free sbobet ฟรี เครดิต ล่าสุด เครดิต ฟรี auto slotxo 1988 game 777 riches777 เครดิต ฟรี fifa slot สมัคร 300 ฟรี 300 slot88vip kiss918 เครดิต ฟรี zeus slot 918kissthailand slotxo blue vegus168 สมัคร xo slot club slot โปร ทุน น้อย ถอน เงิน slotxo slot456 918kiss club เกม xo slot เว็บ พนัน บอล ดี ที่สุด 2021 slotxo โบนัส 100 เทิ ร์ น 2 เท่า เกม xo slot slot 35x เครดิต ฟรี ออ โต้ slotxo99 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา สล็อต คา สิ โน เครดิต ฟรี sg black jack ออนไลน์ ยิง ปลา ไม่มี ขั้น ต่ำ โป็ ก เกอร์ ออ น ไล fifa1234 log 918kiss 1234 slot punpun 999 fifa55casino 3win8 casino เครดิต ฟรี ไม่ แชร์ ไม่ ฝาก เสือ มังกร ออนไลน์ มือ ถือ slotxo เกม ไหน แตก ง่าย 2020 ราคา ไฮโล เกม สล็อต ไลน์ 22 วิธี เล่น databet88 slotxo 22th slotxo ฟรี เครดิต ไม่ ต้อง ฝาก 2019 slotxo star 24th slot skyslot7 joker123auto เครดิต ฟรี live22 pgslot slot789th slotxo989 slot35 fifa55v คา สิ โน 918kiss bbet99 เครดิต ฟรี slotxo playlive88 live22 1234 pgslot789 slot ใหม่ เล่น เสือ มังกร ออนไลน์ slot jitu slot55 48 slot ฟีฟ่า 55 ทาง เข้า fifa55 เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิต ฟรี ไม่มี เงื่อนไข 2020 slot88vip ป๊อก เด้ง ออนไลน์ ขั้น ต่ํา 1 บาท slot joker ฝาก 20 รับ 100 918 แจก เครดิต ฟรี slot375 666slot win win slot 777 slots casino gclub slot jackpot fifa55ag fifa55 idea fifa555 สมัคร slot1234 joker 1168slot slot โปร ทุน น้อย 918kiss เครดิต ฟรี 100 บาท slotv9 xo slotxo บน เว็บ บ่อน ไฮโล ออนไลน์ สล็อต เอ็ ก โอ หน้า ไฮโล joker123 ฟรี เครดิต ไม่ ต้อง ฝาก โปร โม ชั่ น pgslot live22 ฝาก 1 บาท ฟรี 99 สมัคร เครดิต ฟรี 2020 mafia ไม่ ต้อง แชร์ ฝาก 100 ฟรี 500 kiss918 เครดิต ฟรี สมัคร gclub ฟรี เครดิต สล็อต xo ฝาก ขั้น ต่ำ 50 บาท slot hd slotxo สล็อต slotxo เล่น ใน เว็บ เล่น สล็อต live22 slotxo vip slotxo credit free ฝาก 10 รับ 100 joker xo slot 369 xo 918kiss demo สมัคร เว็บ บอล fifa55 66 slot slotxo แจก เครดิต ฟรี 2019 สล็อต xo แตก ง่าย j9slot เครดิต ฟรี 888 918kiss แตก ง่าย 2020 fifa55 gold 77slot แอ พ ไฮโล สั่ง ได้ 918ki โจ ก เกอร์ 888 เว็บ live22 ฟรี เครดิต 200 slot 1668 145 ฟรี เครดิต joker slot ไม่มี ขั้น ต่ํา mbslot slotxo688 fifa55 idea slotxo แจก เครดิต ฟรี 50 สล็อต xo1234 scr888 เครดิต ฟรี เข้า fifa55 slotxo ฝาก 10 บาท รับ 100 mobile slotxo เครดิต ฟรี 30 บาท 918kiss เวอร์ชั่น ใหม่ jokerslot99 เครดิต ฟรี databet88 ถอนเงิน slot มา ใหม่ ทาง เข้า เว็บ fifa55 slot auto alert ฟรี เครดิต gclub 168slot ace333 เครดิต ฟรี โปร สล็อต ค่าย pg xo69 slot 918kissthailand 22thxo mvegus1682 memberbet slotxo ฝาก 1 บาท รับ 100 royalbet777 slotxo web scr888th v5 สล็อต xo แจก เครดิต ฟรี ไม่ ต้อง ฝาก 918kiss money เครดิต ฟรี 20 บาท slot game 666 แอ พ 918 slotxo โมบาย pgslot789 databet88 pantip fifa55 easy 918kiss เติม วอ ล เลท slotxo mafia slot33 www fifa777 com 918kiss me สล็อต xo เอเชีย ทาง เข้า 55 918kiss download ios ล่าสุด slot โบนัส 999 super slot ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก 86slot joker true wallet ไม่มี ขั้น ต่ํา slot joker69 สมัคร fifa5555 slot ไม่มี ขั้น ต่ํา ฟีฟ่า 555 สมัคร สมัคร 300 ฟรี 300 slot1688xo slotxo ฝาก 1 บาท รับ 100 slotxoth888 fortune 918kiss 3win8 casino สล็อต ฝาก ถอน ไม่มี ขั้น ต่ำ วอ เลท สล็อต roma slot555 เกม พา รวย ยิง ปลา ไม่มี ขั้น ต่ำ ฝาก เงิน ufa365 fifa55kick slot ฝาก ถอน ไม่มี ขั้น ต่ํา ไฮโล ฟรี 918 auto เครดิต ฟรี 888 918kiss me pantip เข้า เว็บ fifa55 แจก เครดิต ฟรี 918kiss vip slotxo 918kiss auto เครดิต ฟรี 2pigsslot live22 ไฮโล ไฮเทค คือ เล่น โป ก เกอร์ เล่น เกม slotxo หน้า เว็บ slot168 xo slot007 xo เล่น หน้า เว็บ credit free slot สล็อต xo โอน ผ่าน วอ เลท 007slotxo xo slot168 918kiss แจก อั่ ง เปา ตอน ไหน slotxo auto alert xe88th เครดิต ฟรี mafia ฟรี 50 mafia808 slot slotxo98 918kiss55 918kiss 168 35 slot joker 168slotxo 2 เครดิต ฟรี 18 เว็บ แทง บอล fifa55 ไพ่ ออนไลน์ 8bit slotxo 918 ออ โต้ joker456 เครดิต ฟรี เครดิต ฟรี แค่ กรอก เบอร์ ล่าสุด slotxo pro เครดิต ฟรี ล่าสุด ไม่ ต้อง แชร์ jokerslot888 ไฮโล ออนไลน์ โค๊ ต เครดิต ฟรี สล็อต 777 คา สิ โน ออนไลน์ joker681 เครดิต ฟรี เล่น ไพ่ ได้ เงิน จริง 2019 bein sport 1 fifa55 win slot 888 เเ ป น ไฮโล slot24 slotxo อัน ไหน แตก ง่าย 2mbet เครดิต ฟรี ฟรี เครดิต gclub mm88bet ฝาก slotxo เติม เงิน เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 joker ฝาก ไม่มี ขั้น ต่ํา slot ro joker 918kiss เติม true wallet win slot 888 918kiss เครดิต ฟรี 100 ไม่ ต้อง ฝาก 2020 550ww เครดิต ฟรี 555slot 918kiss slots slot xo007 official918kiss click slotxo คา สิ โน ป๊อก เด้ง ออนไลน์ slot star fifa55 palace mafia55 เครดิต ฟรี 50 918kiss ท รู วอ เลท ไม่มี ขั้น ต่ํา joker ฝาก ไม่มี ขั้น ต่ํา ocean99 เครดิต ฟรี la slot ดู บอล สด fifa55 เครดิต ฟรี 918 เครดิต ฟรี 133 บาท slotxo 2xl slot911 ace333 เครดิต ฟรี slotxo hulk all slot777 918kiss4you โปร 100 918kiss เล่น โป ก เกอร์ 918 slot online เติม เครดิต slotxo slot joker 99 slotxo 88888 สล็อต xo th slotxo 24 slotxo ค่าย ไหน ดี ร้องเรียน slotxo joker mobile slot slotxo demo slotxo88v8 แอ พ 918kiss grand918kiss tiger slot slot ฝาก 20 ได้ 100 joker slot 6886 boxing slot ไฮโล ไฮเทค คือ gclub8 line all slot666 html5 slot machine slotxo 9999 slot1234 xo ลิ้ ง 918kiss ฝาก 10 รับ 100 ล่าสุด xo เครดิต ฟรี 50 บาท คา สิ โน ออนไลน์ เติม true wallet ไม่มี ขั้น ต่ำ เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot 10 casino mafia เครดิต ฟรี 50 บาท ไม่ ต้อง ฝาก mafia191 เครดิต ฟรี ฝาก ผ่าน วอ ล เลท ไม่มี ขั้น ต่ํา slot 588ws 918kiss ฟรี เครดิต สล็อต 888 คา สิ โน ออนไลน์ joker slot 456 slot joker123th คา สิ โน ออนไลน์ เสือ มังกร https www slot12 com member slotxo ไฮโล เงิน จริง เก้า เก คา สิ โน slotxo ฝาก 10 บาท รับ 100
    การ เล่น เกม ยิง ปลา ให้ ได้ เงิน| เกม สล็อต ออนไลน์ jdb168| slotvip789| ocean99th เข้า เกม| สล็อต mafia| epic สล็อต| fun88 เกมส์| 35 สล็อต| dracula slot| เข้า เกม สล็อต โจ๊ก เกอร์| allwin casino| เกม สล็อต จี คลับ| สล็อต เกมส์ ไหน ดี โบนัส แตก บ่อย 2020| สล็อต jdb แจก เครดิต ฟรี| โหลด pg slot| ฝาก 15 รับ 100 ล่าสุด| live22th| โหลด แอ พ ufa191| 4kingslots| สล็อต มาเฟีย 999| เว็บ เล่น สล็อต ฟรี| แทง บอล ชุด| เกม ยิง ปลา ยอด นิยม| joker slot 978| ยิง ปลา ให้ ได้ เงิน| โหลด เกม คา สิ โน ออนไลน์| joker89th| ส โบ เบ็ ต ส เต็ ป| เกม สล็อต ฟรี เครดิต ไม่ ต้อง ฝาก| slotxo the king| เว็บ ฝาก ขั้น ต่ำ 100| 35 สล็อต| sbobet club| โหลด เกม star vegas| ยิง ปลา ค่าย ไหน แตก ง่าย| เครดิต ฟรี epicwin| เกมส์ ยิง นก ได้ เงิน| สมัคร mafia88| casino 5| star vegas pantip| เว็ ป สล็อต ที่ ดี ที่สุด| 7 gods casino| เว็บ ฝาก ขั้น ต่ํา 100| web slot joker| สล็อต ทุน น้อย| slot live222| สอน เล่น ยิง ปลา| สล็อต ออนไลน์ ยอด นิยม| สมัคร ใหม่ รับ เครดิต ฟรี| สล็อต ออนไลน์ 1688| หมุน สล็อต ฟรี| mucho dinero slots| ecopayz casino| สล็อต ฝาก ผ่าน ท รู วอ เลท| เว็บ พนัน กีฬา| สล็อต 1234| sa casino เครดิต ฟรี| bslot88| slot168th| casino joker| เว็บ สล็อต ค่าย jdb| เกม sweet bonanza| เว็บ หวย คา สิ โน| slot pg demo| mafia191 เล่น ผ่าน เว็บ| สล็อต 188|