<em id="2YKA"><source id="2YKA"><track id="2YKA"></track></source></em>

    <sub id="2YKA"></sub>
      <wbr id="2YKA"></wbr>
      <nav id="2YKA"><listing id="2YKA"></listing></nav>

              <em id="2YKA"></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
               
              เข้า เล่น เกม สล็อต xo sa เกม 199 ฟรี เครดิต ถอน ได้ ดาวน์โหลด slotxo android mafia เครดิต ฟรี ใหม่ ล่าสุด ทาง เข้า slotxo mobile ตั้ง slotxo บอล ต่ำ ufa คืน ยอด เสีย ทาง เข้า slotauto888 sa gaming th slotxo download apk ufa9999s ufa191 slot house เครดิต ฟรี เครดิต ถอน ได้ แทง บอล 24 ี ufa24 ทาง slotxo บอล ออนไลน์ 789 gaming 1688 ยู ฟ่า เบ ท 888 tbsbet line sa gaming 99 เว็บ พนัน ออนไลน์ uefa เล่น บอล แบบ นัก ลงทุน ace333 ฟรี เครดิต ไม่ ต้อง ฝาก สมัคร ยู ฟ่า เบ ท slotxo 28 ufa356 v2 ufabet kik แจก เครดิต ฟรี ปี ใหม่ u ฟ่า 191 sa gaming 86 ufa168 vip แทง บอล fifa เว็บ ตรง ยู ฟ่า line fifa5555 ี ufabet88 24sboonline bakara sa ufabet987 fifa55star สมัคร เกม live22 slot ฝาก ครั้ง แรก แทง พนัน บอล ออนไลน์ ยิง ปลา รับ เครดิต ฟรี ufa365 v2 vegus688 sa gaming hacker ฟรี ติด ตั้ง xo fifa8888 ufabet 119 ทาง เข้า เล่น ufa เครดิต ฟรี วัน นี้ ufabet69 ทาง เข้า เล่น เกม slotxo ยู ฟา 777 kg88 บา คา ร่า sa คา สิ โน ufawb998 ufabet728 slot เครดิต ฟรี 2019 บา คา ร่า จำลอง slotxo ฝาก 9 บาท รับ 100 fifa55mini arma935 baccarat slotxo ฟรี เครดิต 100 ไม่ ต้อง ฝาก แทง บอล ออนไลน์ fifa555 ufabet037 จี คลับ ผ่าน ท รู วอ ล เล็ ท ufabet ฝาก 100 ligaz888 slot007 ดาวน์โหลด ufa agent ทาง เข้า เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 slot ฝาก 5 บาท ฟรี 99 บาท บา คา ร่า จำลอง ี ufa356 lsm99 บา คา ร่า โปร สมาชิก ใหม่ 100 slotxo ufabet168v4 จุดอ่อน บา คา ร่า pantip บอล ออนไลน์ 77up จี คลับ ผ่าน ท รู วอ ล เล็ ท บา คา ร่า อัตโนมัติ ae บา คา ร่า บา คา ร่า excel vip2541 ฝาก เงิน 20 เว็บ ufa356 ufabet1688 agreement 8 เครดิต ฟรี ยิง ปลา ค่าย sg slotxo ฝาก 10 บาท ฟรี 100 บาท mafia เครดิต ฟรี ล่าสุด ufabet ทาง เข้า มือ ถือ เครดิต ฟรี 10 รับ 100 แทง บอล รอง แจก เครดิต ฟรี live22 ทาง เข้า เล่น slotxo slotxo เว็บ ใหม่ คา สิ โน sa ยู ฟ่า เบ ท 800 ทาง เข้า slotxoz slot ฝาก 1 บาท ฟรี 99 บาท 2020 ล่าสุด mafia แจก เครดิต ฟรี ล่าสุด ufabet777 สมัคร เครดิต ฟรี มา ใหม่ ufa365 ฝาก ดาวน์โหลด 168slotxo ww fifa55 slot999 ฟรี เครดิต ไลน์ ufabet รับ เครดิต ฟรี ง่ายๆ ufabet group โปร โม ชั่ น บอล ufabet live แจก เครดิต ฟรี ไม่มี เงื่อนไข เครดิต ฟรี ถอน ได้ www ufa6666 co slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ไม่ ต้อง แชร์ sa gaming bet ufa fun888 เครดิต ฟรี 150 ไม่ ต้อง ฝาก ก่อน www ยู ฟ่า เบ ทด อ ท คอม ยู ฟ่า เบ ท 8 เครดิต ฟรี slot ๊ ufabet sboibc888 pantip เครดิต ฟรี ไม่ ต้อง ฝาก ล่าสุด แทง บอล คืน นี้ slot เติม 10 รับ 100 slotxo เข้า เกม ยู ฟ่า เบ ท 99 ufa88 pantip สมัคร ufabet ออนไลน์ ยู ฟ่า เบ ท 123 slot ฝาก 100 ได้ 300 เครดิต ฟรี 100 ล่าสุด หาเงิน จาก บา คา ร่า ทาง slotxo gclub 1668 ดาวน์โหลด แอ พ slotxo ufabet69 เครดิต ฟรี ทาง เข้า slotxo vip ยู ฟา 88 slot free 888 แซ ก ซี่ บา คา ร่า ฝาก 20 รับ 100 ufabet แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2562 ufa800 ทาง เข้า gaming 168 ufabet6666 ฝาก ขั้น ต่ํา 10 เว็บ ufa24h ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ สมัคร แทง บอล sa gaming แจก เครดิต ฟรี sa gaming 2020 sa sa game 1688 www ufabet auto ราคา บอล แทง บอล แทง บอล ให้ ได้ เงิน สมัคร ufabet ออนไลน์ โบนัส ฟรี ไม่ ต้อง ฝาก ufa24h 5 ufa877 คืน ยอด เสีย เซ็ ค ซี่ บา คารา เปิด ยูสเซอร์ ฟรี ไม่ ต้อง ฝาก เว็บ ufa ufabet ทาง เข้า เล่น ยู ฟ้า 678 bakara sa รับ เครดิต ฟรี 2020 PG SLOT ufabet168 id line เข้า ufa365 slotxo mobile ios เข้า เกม สล็อต xo sa เกม ด อ ท คอม ufathai 88 copa89 ufabet24h ี ufathai ทาง เข้า xo slot แทง บอล ได้ เงิน จริง ufabet หวย sa gaming png เครดิต ฟรี บอล ufa7777 สมัคร แทง บอล ออนไลน์ ฝาก ขั้น ต่ํา 100 ufabet285 fifa55k ufabet 7777 ราคา บอล 1x2 ufabet ไม่ ผ่าน เอ เย่ น บา คา ร่า เช็ ก ชี่ ufabet คา สิ โน เครดิต ฟรี สมาชิก ใหม่ 2020 แทง บอล ฟรี 300 ufabet72 สมัคร slot เครดิต ฟรี ถอน ได้ สมาชิก ใหม่ ฟรี เครดิต ไม่ ต้อง ฝาก 2020 slotxo ฝาก 10 บาท เครดิต ฟรี 100 ล่าสุด ufa365v2 slotxo 50 ดาวน์โหลด aka slotxo ufa1168 แทง บอล ufabet แทง บอล ออนไลน์ pantip สมัคร ufa slot online ฟรี เครดิต 2020 สมัคร pg slot ufabet999 ตั้ง slotxo ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด แทง บอล ได้ เงิน จริง faz123 บา คา ร่า sa gaming89 ufabet แจก เครดิต ฟรี 2019 แทง บอล ให้ ได้ เงิน แทง บอล ขั้น ต่ำ 100 ยู ฟ้า 365 sa gaming ลอง เล่น ufabet2 sa gaming ปรับปรุง แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th ฟรี เครดิต ฟรี ufabet352 สมัคร slotxo mobile ufa678 สมัคร เล่น บอล รอง ทาง เข้า ufa147 โหลด slotxo apk ยู ฟ่า เบ ท 982 mm88wim ทาง เข้า amb555 ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slotxo ฝาก 88 รับ 300 แจก เครดิต ฟรี ใหม่ ล่าสุด สมัคร kingkongxo ดาวน์โหลด ufabet8z ี ufa88 ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ เครดิต ฟรี ยิง ปลา ไม่ ต้อง ฝาก 2020 ล่าสุด ufabet คืน ยอด เสีย สมัคร เล่น สล็อต xo fifa55555 แทง บอล คืน นี้ slotxo ดาวน์โหลด ios sa gamingbet ufabet189 ufabet 688 โปร ufa วิธี ติด ตั้ง slotxo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ทาง เข้า slotxo mobile สมัคร ufa7777 sa gaming 5 วิ เครดิต ฟรี slotxo หวย บอล ufabet 999999 ทาง เข้า 77up แทง บอล ให้ ได้ เงิน ล้าน บา คา ร่า 918 ทาง เข้า ufabet168vip http www ufabet ufabet168 id line ลิ้ ง เข้า ufabet เสีย บา คา ร่า 10000 ฝาก 1 รับ 100 918kiss แทง บอล vip ได้ เครดิต ฟรี สล็อต xo ออนไลน์ เว็บ ufa007 ๊ ufa168 fifa55gold slotxo ไม่มี ขั้น ต่ำ all pg slot xo แจก เครดิต ฟรี แฉ บา คา ร่า joker689 เครดิต ฟรี แทง บอล ทบ slotxo โบนัส 200 slotxo เข้า เกม sa gaming 928 แจก เครดิต ฟรี ปี ใหม่ ufabet18 เบอร์ ติดต่อ slotxo ยู ฟ่า bet แทง บอล แม่น ๆ sa gaming 168 vip เข้า สู่ ระบบ บา ค่า ร่า ฟรี เครดิต ไม่ ต้อง ฝาก slotxo 50 รับ 100 ราคา แทง บอล ไฮโล sa ufabet369 vip ufabet037 เข้า ufabet แจก เครดิต ฟรี สมาชิก เก่า ufabet 24hrs sa gaming 07 ufabet cn web แทง บอล www123fazcom ufa600 ไฮโล ufabet sport 123ufabet ufabet agreement 8 แทง ออนไลน์ slotxo download ios slotxo เครดิต ฟรี ไม่ ต้อง แชร์ เข้า ufa ทาง เข้า ufa95 เข้า sa gaming ไม่ ได้ sa gaming คา สิ โน ยู ฟ่า เบ ท ออนไลน์ เครดิต ฟรี วัน นี้ แทง บ ufa888com แทง บอล ออนไลน์ เครดิต ฟรี เงิน เครดิต ฟรี แทง บอล โปร โม ชั่ น sa gaming 1668 ufabetsup ufabet 24 sa เกม มิ่ง 66 บา คา ร่า sa77 ถอนเงิน ufabet1688 สมัคร sa ทาง เข้า ufabet789 เครดิต ไม่ ต้อง แชร์ เล่น ยู ฟ่า 191 แทง บอล ฟรี 1000 slotxo ios download sa เกม บา คา ร่า demo sa gaming ufa888a สมัคร เกม slotxo ทาง เข้า ufabet 7777 เครดิต ฟรี fhm99 ไก่ชน ufabet ไลน์ ufa365 slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 แจก เครดิต ฟรี 30 mega888 ฟรี เครดิต สมัคร เว็บ ufabet1688 ufabet สมัคร สมาชิก บา คา ร่า บิ กิ นี่ free เครดิต ฟรี fifa55gol เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ถอน ได้ แทง บอล โลก 2018 แจก เครดิต ฟรี ปี ใหม่ slot โบนัส ฟรี ufabet บา คา ร่า ออนไลน์ ยู ฟ้า 168 ufabet global ฟรี เครดิต ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก ufabet ทาง เข้า มือ ถือ sa gaming 50 รับ 150 ufa191 สมัคร ้ ufabet แจก รหัส คูปอง โบนัส fun88 แทง บอล โลก ufabet auto fifa55 รับ เครดิต ฟรี 100 ไม่ ต้อง ฝาก sa1688 game vegus168 memberbet net สมัคร ufa356 เครดิต ฟรี 100 ล่าสุด 2020 saxygaming66 เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 เครดิต แทง บอล ฟรี www fifa7777com สมัคร แท่ง บอล fifa55atm ufabet ฟรี เครดิต 100 บา คา ร่า c03 ฝาก 100 รับ 100 918kiss ex88 เครดิต ฟรี แทง บอล 77 sa gaming77 mysbo99 sa gaming66 เข้า สู่ ระบบ ufabet 1168 ufabet แจก เครดิต fifa55co slotxo สมัคร สมาชิก บา คา ร่า 918kiss ufabet 188bet เว็บ แท่ง บอล ออนไลน์ 888 sa gaming เครดิต ฟรี ufatexas55 slot ฝาก 1 บาท รับ 50 spin999 ฟรี เครดิต slotxo ฝาก 5 บาท ฟรี 99 บาท 2020 ufa23 kingkongxo slotxo โบนัส เครดิต ฟรี แจก เครดิต ฟรี 50 ไม่ ต้อง ฝาก ล่าสุด มาเฟีย เครดิต ฟรี ล่าสุด sa รับ เครดิต ฟรี ดาวน์โหลด slotxo joker บา คา ร่า mm88us slotxo ดาวน์โหลด ลงมือ ถือ http www slotxo com m kg88 บา คา ร่า เกมส์ ที่ มี ของ เรา slotxo sa36 gaming slot ฝาก 1 รับ 50 เว็บ ufa356 mafia555 เครดิต ฟรี 50 sa gaming 66 pantip slotxo pc download slotxo download ios ยู ฟา 191 ทาง เข้า ufabet1688 แทง บอล โลก เว็บ ฟีฟ่า แทง บอล ขั้น ต่ำ 50 บาท ufabet login เว็บ บอล ufabet ufabet โปร 100 ufa บริษัท แม่ ufabet หลัก สมัคร sa slot ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ sa gaming เปิด ตอน ไหน ufabet 44 ufabet online ทาง เข้า ufabet88888 ติด ตั้ง เกม สล็อต ได้ บา คา ร่า ufabet 982 fifa55 fifa555 web fifa55 fifa55 ฟรี เครดิต www ufabet cc ufa168com fifa55 เครดิต ฟรี สมาชิก เก่า สล็อต xo 888 เครดิต ฟรี บา คา ร่า ออนไลน์ ufabet เข้า ufa365 สมาชิก ใหม่ แจก เครดิต ฟรี แจก ยูสเซอร์ พร้อม เครดิต ฟรี 2019 ไม่ ต้อง ฝาก sa gaming slot game เว็บ พนัน บอล ออนไลน์ ดาว โหลด ส ล็ ต xo แทง ขั้น ต่ํา 10 บาท slotxo โปร ทุน น้อย ยู ฟ่า เบ ทด อ ท คอม slot ฝาก 5 บาท ได้ 100 ufa800 สล็อต slot แจก เงิน ฟรี แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 โปร สมาชิก ใหม่ 100 slotxo sa gaming 911 ฟรี เครดิต แทง บอล เว ป 77up โบนัส ฟรี เครดิต ดาวน์โหลด เกม สล็อต แทง หวย ufabet ww ufa777 แท่ง บอล ออนไลน์ 24sbobet online บา คา ร่า sa gaming sa gaming 5g live22 ฝาก 100 รับ 100 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2019 ufabet55 เบอร์ โทร ufa365 ยู ฟา เบ ท ufabet เบอร์ โทร fifa55mini ufabet cn sbobet888888888 เว็บ ยู ฟ่า ufa23 เว็บ ufa888 แทง บอล vip sa gaming vip demo member ufabet ทาง เข้า slotxo joker123 เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ 55fifabet ufa7777com เครดิต ฟรี ฝาก 10 รับ 100 เครดิต ฟรี 100 ล่าสุด สล็อต xo โหลด แทง บอล ออนไลน์ mm88gol ufabet winner ทํา เทิ ร์ น เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2019 แจก เครดิต ฟรี ง่ายๆ แจก เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน ทาง เข้า xo slot วิธี ติด ตั้ง slotxo สมัคร ufabet99 48 slot xo ufa800 ดี ไหม โปร ฟรี เครดิต databet88bet เว็บ พนัน ออนไลน์ uefa เล่น แทง บอล บา คา ร่า ทุน 500 ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ufabet sports แทง บอล สด เกมส์ sa โหลด สล็อต 123 bakara sa ufabet369vip ufacasino168 slotxo download pc ufa ทาง เข้า แอ พ สล็อต ios slot free credit ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ถอนเงิน ufa th slotxo ฝาก 1 บาท ฟรี 30 บาท mafia88 เครดิต ฟรี ไม่ ต้อง ฝาก angel88 เครดิต ฟรี sa gaming89 ลงทุน บา คา ร่า ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ sa baccarat 1988 sa gaming ฟรี 300 ยู ฟ่ ส เบ ท เว็บ ufa777 sagame1688 vip แทง บอล พรีเมียร์ ลีก เสีย บา คา ร่า pantip 2563 แทง ฟรี ไม่ ต้อง ฝาก ทาง เข้า agent ufabet ไม่ ต้อง ฝาก เครดิต ฟรี ufabet037 ufa147 sport g2g เครดิต ฟรี เซ๊ ก ซี่ บา ค่า ร่า เกมส์ 66 ufathai 6 เว็ ป แทง โปร สมาชิก ใหม่ ฝาก 10 รับ 100 clubfifa55 slotxo เวอร์ชั่น ล่าสุด แทง บอล เว็บ ตรง เว็บ ยู ฟ่า 168 ufabet แจก เครดิต id line ufabet แท่ง บอล เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด 2020 mm88wim รับ เครดิต ฟรี 300 ไม่ ต้อง ฝาก sa gaming คือ ทาง เข้า xo slot lsm99 10 บาท bslot88 เครดิต ฟรี sa gaming 25 รับ เครดิต ฟรี ง่ายๆ slot ฟรี เครดิต ไม่ ต้อง ฝาก บา คา ร่า sa 66 บา คา ร่า gtrbet ทาง เข้า เกม สล็อต xo เครดิต ฟรี ทันที โหลด สล็อต 123 ufabet ฟรี เครดิต ufa191 ถอนเงิน ทาง เข้า fifa555 sa เกม 199 fifa551234 ทาง เข้า ufa888 sa casino ปิด ปรับปรุง ทาง เข้า agent ufa slotxo ฟรี 100 roma เครดิต ฟรี ถอนเงิน ufa191 รับ เครดิต ฟรี 300 ไม่ ต้อง ฝาก หาเงิน จาก บา คา ร่า pantip เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ล่าสุด แอ พ slotxo แท่ง บอล ทาง ufa เครดิต ฟรี ยิง ปลา ค่าย sg เข้า ufabet ไม่ ได้ บา ค่า ร่า เครดิต ฟรี เว็บ ufa007 ติด ตั้ง slotxo ios เกม สล็อต ออนไลน์ slotxo ufa678 เข้า ไม่ ได้ เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ sbobet365th sa เกม มิ่ง บา คา ร่า โปร ฟรี เครดิต ฟรี เครดิต บอล slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 fifa55 เครดิต ฟรี 100 ufabet v2 ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ufatexas89 แทง บอล ขั้น ต่ำ 20 บาท slotxo ฝาก 15 บาท fifa55gen ufabet1688 public chgpwd 2 ติด ตั้ง เกม สล็อต xo เกม บา คา ร่า sa เครดิต ฟรี วัน นี้ เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ เครดิต ฟรี 200 ไม่ ต้อง ฝาก ก่อน sa sa game 1688 sa gaming 36th ดาว โหลด เกม xo slot เซ๊ ก ซี่ บา เครดิต ฟรี slot fifa55 ออนไลน์ ufabet 1168 ทาง เข้า fifa9999 slotxo ฟรี slotxo ฝาก 50 ฟรี 50 ufa678 pantip ทาง เข้า ufabet369 บา คา ร่า คือ พัน ทิป slotxo ทาง เข้า เล่น mafia111 เครดิต ฟรี แทง บอล เครดิต ฟรี slot รับ เครดิต ฟรี sa8 บา คา ร่า เครดิต ฟรี ไม่ ต้อง ฝาก slot ทาง เข้า ufa69 ดาวน์โหลด aka slotxo live22 แจก เครดิต ฟรี ufabet 9889 ufabet369 vip sa gaming 06 ยู ฟ่า เบ ท มือ ถือ app slotxo เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss sa gaming 168 เข้า สู่ ระบบ ufa356 ทาง เข้า เข้า ยู ฟ่า เบ ท ยู ฟ่า เบ ท 1168 fifa 9999 ทาง เข้า ufa428 sbobetvip888 sath88 slot แทง บอล เครดิต ฟรี ดาว โหลด ส ล็ ต xo PG SLOT slotxo ฝาก 1 บาท ฟรี 99 บาท ยู ฟ่า เบ ท วิน แจก เครดิต ฟรี 30 ufabet2_888 สมัคร เกม สล็อต xo ดาว โหลด เกม สล็อต xo sa gaming 168vip เข้า สู่ ระบบ ufabet lion 168 slotxo โบนัส ufabet แม่ ติดต่อ live22 เว็บ 369 ufabet 1668 mafia567 เครดิต ฟรี เอ เย่ น ยู ฟ่า เกม สล็อต สมัคร รับ เครดิต ฟรี บา คา ร่า เปิด กี่ โมง รับ โบนัส ฟรี ไม่ ต้อง ฝาก สมัคร สล็อต xo โบนัส 100 โปร โม ชั่ น ufa ดาวน์โหลด aka slotxo sa789 บา คา ร่า sa168 game sa gaming demo vip สมัคร ufabet g2g เครดิต ฟรี ufa888 club ufabet 9999 ฟรี เครดิต 2019 ไม่ ต้อง ฝาก ฝาก ufabet ufabet ฟรี เครดิต ไม่ ต้อง ฝาก mega888 แจก เครดิต ฟรี slot 999 เครดิต ฟรี slotxo ฝาก 10 รับ 100 วอ เลท ทาง slotxo slot เงิน ฟรี เครดิต ฟรี ไม่มี ขั้น ต่ำ ufa888 วิน ufabet 899 scr888th เครดิต ฟรี เสีย บา คา ร่า 30000 ufa100 ทาง เข้า sa gaming slot game ยู ฟา 191 บา คา ร่า เท ส แทง บอล ด้วย บัตร ท รู มังกร บา คา ร่า sa คา สิ โน ออนไลน์ ดาวน์โหลด slotxo 44 ufa fun888 angel88 เครดิต ฟรี สมัคร slotxo joker ยู ฟ่า เบ ท 191 ufa agent ทาง เข้า บา คา ร่า ล็อค ยู ส บา คา ร่า 63 slotxo joker 100 รับ เครดิต ฟรี ไม่ ต้อง ฝาก ยู ฟ่า แจก เครดิต ฟรี ufabet7 ถอนเงิน ufabet168 บา คา ร่า 188bet fifa555king เครดิต ฟรี playstar ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufabet285 แทง บอล 24 โบนัส ฟรี เครดิต โหลด slotxo pc บา คา ร่า ฟรี 2020 โปร โม ชั่ น ufa aibacca2020 แทง บอล รอง บา คา ร่า sa vip betufa มือ ถือ ติด ตั้ง slotxo แอ น ด รอย ด์ slotxo ติดต่อ บา คา ร่า มา วิน บา คา ร่า 1234 แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th fifa55 rmua sa gaming 86 ทาง เข้า 168slotxo จุดอ่อน บา คา ร่า เข้า เว็บ ยู ฟ่า slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ดาวน์โหลด slot007 แจก เครดิต ฟรี ปี ใหม่ slotxo ฝาก 5 บาท ฟรี 99 บาท 2020 ufax10 เครดิต ฟรี free เครดิต ฟรี sagame88com slot mg เครดิต ฟรี ufa โปร 100 xo แจก เครดิต ฟรี ufabet 8888 เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน 2020 fifa55 เครดิต ฟรี 2019 rb88 slot แทง บอล ได้ เงิน จริง slot1688 เครดิต ฟรี เว ป ยู ฟ่า 191 ยู ฟ่า เบ ท 1688 slot แจก ฟรี เครดิต ทาง เข้า ยู ฟ่า 191 ได้ บา คา ร่า 8klbfo 1ufabet ฝาก 50 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น ufabet เว็บ ี ufa356 ดาวน์โหลด slotxo apk แจก เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ยิง ปลา ฝาก 100 ฟรี 300 ufabet line ทาง เข้า ufa007 เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ ดาวน์โหลด slotxo ลง คอม slot รับ เครดิต ฟรี ufabet บา คา ร่า ออนไลน์ sexybaccarat66 ufabet default 8 smart แจก เครดิต ฟรี ได้ จริง ufathai 6 เสีย บา คา ร่า โปร โม ชั่ น ufabet ทาง เข้า สล็อต บอล fifa55 เว ป บอล ดีๆ slot ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufabet อัน ไหน ดี slot ฝาก 5 บาท ฟรี 99 บาท fhm99 ฟรี เครดิต betufa main ufabet168 ดี ไหม thaisbobet99 แทง บอล 24 slot free credit ไม่ ต้อง ฝาก 2020 เปิด ยูสเซอร์ ฟรี เครดิต ไม่ ต้อง ฝาก เงิน เครดิต ฟรี แว็ ป บอล เว ป บอล ดีๆ ดาวน์โหลด สล็อต ออนไลน์ live22 แจก เครดิต ฟรี 2020 ufabet 146 ลอง เล่น sa gaming สมัคร สมาชิก สล็อต ออนไลน์ ทาง เข้า fifa ฝาก 100 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น ufabet 888888 ufa9999s เครดิต ฟรี 100 ล่าสุด ufabet ฝาก ขั้น ต่ำ ufabet65 ufabet 11 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ รับ เครดิต ฟรี ี ufa6666 ี ufabet co fifa555pro 918kiss แจก เครดิต ฟรี 2020 ufa800 ดี ไหม pantip sa gaming 79 slotxo ฝาก 50 รับ 50 sa gaming ดี ไหม pantip ยู ฟ่า เบ ท 356 ี ufabet 168 918kiss แจก ฟรี เครดิต ดาวน์โหลด joker xo โหลด เกม xo slot ฝาก 20 รับ 100 วอ เลท xo ทาง เข้า เกม สล็อต xo สล็อต xo โหลด ufabet ขั้น ต่ำ 100 sa game vip 168 slot free 888 ยู ฟ่ ส เบ ท ดาวน์โหลด slotxo ล่าสุด mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 168 slotxo download สมาชิก ใหม่ ฟรี เครดิต 50 ฟรี เครดิต ถอน ได้ สล็อต xo ios เว ป slotxo ufa356 ดี ไหม หวย บอล ออนไลน์ slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ufabet ฝาก ขั้น ต่ำ แทง บอล ขั้น ต่ํา 50 เข้า เกม สล็อต xo slot ออนไลน์ ฟรี เครดิต ฟรี 10 รับ 100 ufa24h bet 918kiss ฟรี เครดิต 1000 บาท แทง ออนไลน์ 789 ufabet 555 ufabet 656 slot ฝาก 1 บาท รับ 50 slotxo โหลด สมัคร เกม สล็อต bet236 บา คา ร่า แจก ทุน ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ แจก ฟรี เครดิต ไม่ ต้อง ฝาก เกมส์ ที่ มี ของ เรา slotxo ufabet9999 ให้ เครดิต ฟรี ดาวน์โหลด สล็อต xo 888 mm88vip ทาง เข้า ufa8888 ยู ฟ่า เบ ท 88 ฝาก 10 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น เครดิต ฟรี รับ ทันที slotxo ฝาก 15 บาท 24sboonline sa 168 vip เข้า สู่ ระบบ ufabet x8 sa game vip 168 ufathai 777 sa gaming 168 th ไก่ชน ufabet sa88 gaming ยู ฟ่า เบ ท 72 เช็ ก ชี่ บา คารา slotxoth download sa ฝาก 50 รับ 150 ufabet8z sa gaming 36th ทาง เข้า ufabet8 sa gaming คา สิ โน รับ เครดิต ฟรี ไม่ ต้อง ฝาก 2020 แจก เครดิต ฟรี live22 vegus111 แทง ฟุตบอล ออนไลน์ บา คา ร่า 918kiss sa gaming 168 เข้า สู่ ระบบ บา ขา รา ufabet แอ พ แทง บอล ออนไลน์ pantip เกมส์ sa สมัคร บอล ออนไลน์ ufabet เครดิต ฟรี ยิง ปลา 150 เครดิต ฟรี วัน นี้ ั ufabet เครดิต แทง บอล ฟรี บา คา ร่า 11111 แท่ง บอล เครดิต ฟรี ล่าสุด วัน นี้ slotxo 56 ufabet บริษัท เว ป แทง บอล ที่ ดี ที่สุด ufabet บา คา ร่า ออนไลน์ download slotxo android clubfifa55 168 slotxo download เครดิต ไม่ ต้อง ฝาก ufabet 666 เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss บา คา ร่า 787 ufa600s mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 slot ฝาก 1 รับ 50 แจก โบนัส ฟรี โบนัส วัน เกิด ไม่ ต้อง ฝาก agent ufabet ี ufabet co แทง บอล 10 บาท slot เครดิต ฟรี ล่าสุด ดาวน์โหลด เกมส์ สล็อต ออนไลน์ mvegus1682 ufathai123 เว็บ ufabet888 ได้ เครดิต ฟรี ufabet188 สมัคร ยู ฟ่า 168 ี ufa88888 ติด ตั้ง xo heng666 เครดิต ฟรี ฝาก 50 รับ 200 ไม่ ต้อง ทํา เทิ ร์ น ufabet พัน ทิป มาเฟีย แจก เครดิต ฟรี ล่าสุด ufabet999999 เครดิต ฟรี มา ใหม่ ทาง เข้า เว็บ slotxo สมัคร slotxo ยู ฟ่า 365 ufabet88 vegus168 vegus69 slotxo ฝาก 1 บาท ได้ 100 ufa คือ slotxo mobile ios ufabet22 โบนัส ฟรี ไม่ ต้อง ฝาก ทาง เข้า betufa fifa55 sport เซ ค ซี่ บา คา ร่า sa gaming ฟรี 300 mega888 แจก เครดิต ฟรี ยู ฟ่า 1668 ไม่ ต้อง ฝาก เครดิต ฟรี ดาวน์โหลด slotxo88 ufa888a รับ เครดิต ฟรี ไม่ ต้อง ฝาก 2020 slotxo ฝาก 1 รับ 50 slotxo เวอร์ชั่น ล่าสุด sa gaming ฟรี เครดิต แทง บอล ขั้น ต่ำ 10 บาท ufa147 ทาง เข้า เข้า เกม xo mm88aec slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน สมัคร เล่น เกม สล็อต สมัคร ufabet88 ี ufabet369 ufabet99 ทาง เข้า เล่น xo ufabet928 ufabet800 slot เงิน ฟรี fifa55u ufabet 899 โปร บา คา ร่า ฟรี เล่น บา คา ร่า ที่ ufabet ดาวน์โหลด slotxo สํา ห รับ android ยิง ปลา ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด เครดิต ฟรี 200 ไม่ ต้อง ฝาก ก่อน เครดิต ฟรี ล่าสุด ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ยู ฟ่า 911 ้ ufabet ufabet แจก ฟรี เครดิต sa บา คา ร่า 66 sa slot ทาง เข้า amb555 ติด ตั้ง slotxo ios sa รับ เครดิต ฟรี sa เกม 77 แจก เครดิต ฟรี sa xo ทาง เข้า เครดิต ฟรี slot แจก โบนัส ฟรี ทาง เข้า เกม xo slot ออนไลน์ ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ sa gaming 911 โปร ufabet gaming66 betufa 168 sa slot ทาง เข้า ufa9999 xo โหลด slot free credit ไม่ ต้อง ฝาก 2020 slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ถอน ได้ 2019 mega888 ฟรี เครดิต ไม่ ต้อง ฝาก ยู ฟ่า 88888 เว็บ ufabet ufawb998
              xo slot download| โปร โม ชั่ น เว็บ พนัน บอล| ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน| ufa98s| sootai88| bslot88 เครดิต ฟรี| ufabet889| ยิง ปลา ได้ เงิน ฟรี| ts911ep3| 123bet เครดิต ฟรี| ป๊อก เด้ง แจก ฟรี 300| PG SLOT | ufa9999999| สล็อต ออนไลน์ ios| 77up บอล| ufa191 ดี ไหม pantip| เว็บ ufabet168| ให้ เครดิต ฟรี| เครดิต ฟรี ไม่ ต้อง ฝาก 2020| สมัคร แท่ง บอล| ฟรี เครดิต ยิง ปลา| sa gaming ฝาก ถอน 5 วิ| slot ฝาก 100 ได้ 300| เล่น บา คา ร่า ออนไลน์ ฟรี sa gaming| www ufabet799| sa gaming 07| gaming66| live22 ดาวน์โหลด| เครดิต ฟรี 200 ล่าสุด| แทง บอล m8bet| ufabet line| slotxo ฝาก 1 บาท ฟรี 50 บาท ล่าสุด| เว ป ยู ฟ่า 191| fifa69 pantip| เครดิต ฟรี ไม่ ต้อง| ufabet lucky| สมัคร เอเย่นต์ sa| live22 ติดต่อ| 55fifabet| slotxo เล่น ผ่าน หน้า เว็บ| sboasia9| sa gaming 79| 168slotxo เครดิต ฟรี| ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด| slot free credit ไม่ ต้อง ฝาก ไม่ ต้อง แชร์| slot ฝาก 100 ได้ 300| ufa ไม่มี ขั้น ต่ำ| บา คา ร่า s| แทง บอล ฟรี เครดิต 2020| เครดิต แทง บอล ฟรี ไม่ ต้อง ฝาก| slotxo download android| 24sbobet online| ufa1688 สมัคร| ยิง ปลา ฟรี 150| ดาวน์โหลด slotxo ios| fifa55atm| live22 slot ฟรี เครดิต| ufabet11| เปิด ยูสเซอร์ ฟรี ไม่ ต้อง ฝาก| ี ufa24| slot แจก เครดิต ฟรี 300| เกม มัก คา ร่า| slot รับ เครดิต ฟรี ไม่ ต้อง ฝาก| sa gaming slot game| จุดอ่อน บา คา ร่า| ufabet บริษัท แม่|