1. <big id="zCYB"><address id="zCYB"><nobr id="zCYB"></nobr></address></big>

        1. <form id="zCYB"><th id="zCYB"></th></form>

          <form id="zCYB"></form><form id="zCYB"><span id="zCYB"></span></form>

              <form id="zCYB"><th id="zCYB"></th></form>

              <big id="zCYB"><address id="zCYB"><nobr id="zCYB"></nobr></address></big>
              A playground for University of Bologna Students and a 6-days seminar about digital tools.

              Digital generative tools are a very important part of architectural education. Andrew Kudless during his conference at SimAE was telling about chinese traditional woodcraftsmen: they spend their first two years of apprentice in making their own tools. Today, we have a large pool of digital ready made tools, built to respond to more or less specific problems or tasks, while keeping a level of flexibility and personalization. The majority of these tools have hidden capabilities, which can only be accessed bypassing the conventional interface and getting close to the machine logic of programming or building parametric components which generate shapes. Thus, seriality, differentiation, complexity can be implemented in architectural projects through code, in order to exploit the power of algorithmic based complex systems which are the basis of biological systems.


              But, before going through such complexity, we must start with simple tasks and simple rules. Before playing seriously we need practice. This is the playground where a bunch of students will start to practice, a pool where they will share their results and questions. Maybe the stuff here that will be posted will seem obvious or naive to the navigated code-monkey, but, as I mentioned before, we all start from the basics and this is intended as a place to start. However, any comment and contribution is appreciated.

              Playground is open, let's play! _ Alessio

              2.11.09

              L-system [test]

              Working on the same principles of my last post I realized a new script based on self-learning system.
              The concept is easy. A simple L-system start to grown randomly from a seed, and after every generation it try to touch other L-systems, that are growing from different one seed.

              [edit]
              I forgot to explain some aspects. In this script singles L-system recive a feedback from others, because configuration of every generation depend on configuration of previous one.
              Unlike my previous script there isn't only one final perfect configuration, but infinity ones... because every random event of system "A" affects other systems in next generation, thus itself in following one.
              [/edit]


              Option Explicit
              ' Script written by Alessandro Zomparelli
              ' alessandro.zomparelli@gmail.com
              ' http://alessandrozompa.altervista.org/
              ' Script version domenica 1 novembre 2009 14.40.18

              Call Main()
              Sub Main()
              'picking seed points
              Dim arrSeed, arrSub
              ReDim arrSeed(0)
              arrSeed(0)=Rhino.GetObjects("pick seed points",1)

              'defining number of branch
              Dim dblBrN
              dblBrN=Rhino.GetInteger("number of branches",2,1)

              'defining number of branch generation
              Dim dblBranch
              dblBranch=Rhino.GetInteger("number of branch generation",3,1)
              ReDim Preserve arrSeed(dblBranch)

              Dim arrData, dblVote, arrVote
              ReDim arrData(dblBranch), arrVote(0)

              'defining number of generations and amount of mutation between following generations
              Dim dblGen, dblMut, strLine
              dblGen=Rhino.GetInteger("set number of generations",100,2,10000)
              dblMut=Rhino.GetReal("set mutation value",2,0.1,100)

              Call Rhino.EnableRedraw(False)

              'starting evolution system
              Dim i,j,z,k,y,m,a

              Dim dblDis, arrDist, strC1, strC2
              ReDim arrDist(0)

              'generation of different layers
              Dim strL1: strL1="lines"
              Call Rhino.AddLayer(strL1)

              'evaluation of distance between seed points for a better L-System scale
              dblDist=Rhino.Distance(Rhino.PointCoordinates(arrSeed(0)(0)),Rhino.PointCoordinates(arrSeed(0)(1)))
              For i=0 To ubound(arrSeed(0))
              For j=0 To ubound(arrSeed(0))
              If i<>j Then
              If Rhino.Distance(Rhino.PointCoordinates(arrSeed(0)(i)),Rhino.PointCoordinates(arrSeed(0)(j)))<>0 Then
              arrSeed(i)=arrSub
              End If
              arrData(i)=arrSub
              For j=0 To ubound(arrSeed(i))
              arrData(i)(j)=array(0,array(0,0,0),array(0,0,0),dblDis)
              Next
              Next


              For z=0 To dblGen-1
              Call Rhino.Print(int(z*100/(dblGen-1))&"%")
              For i=1 To dblBranch
              'generation of branches
              For j=0 To ubound(arrSeed(i-1))

              For y=0 To dblBrN-1
              'defining vector scattering direction
              arrData(i)(j*(dblBrN)+y)(2)=array(arrData(i)(j*(dblBrN)+y)(1)(0)+dblMut*(dblGen-z)/dblGen*(rnd-rnd),arrData(i)(j*(dblBrN)+y)(1)(1)+dblMut*(dblGen-z)/dblGen*(rnd-rnd),arrData(i)(j*(dblBrN)+y)(1)(2)+dblMut*(dblGen-z)/dblGen*(rnd-rnd))

              'propotional scaling factor
              arrData(i)(j*(dblBrN)+y)(2)=Rhino.VectorUnitize(arrData(i)(j*(dblBrN)+y)(2))
              arrData(i)(j*(dblBrN)+y)(2)=Rhino.VectorScale(arrData(i)(j*(dblBrN)+y)(2),arrData(i)(j*(dblBrN)+y)(3)/i/3)
              arrSeed(i)(j*(dblBrN)+y)=Rhino.CopyObject(arrSeed(i-1)(j),arrData(i)(j*(dblBrN)+y)(2))

              'drawing last generation
              If z=dblGen-1 Then
              strLine=Rhino.AddLine(Rhino.PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)))
              Call Rhino.objectlayer(strLine,strL1)
              If i=1 Then
              strC1=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i-1)(j)(3)/20/i)
              Else
              strC1=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i-1)(j)(3)/40/(i-1))
              End If
              strC2=Rhino.AddCircle(Rhino.PlaneFromNormal(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),arrData(i)(j*(dblBrN)+y)(2)),arrData(i)(j*(dblBrN)+y)(3)/40/i)
              Call Rhino.AddLoftSrf(array(strC1,strC2))
              If i=1 Then
              Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i-1)(j)(3)/20/i)
              'Else
              ' Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i-1)(j)),arrData(i-1)(j)(3)/30/(i-1))
              End If
              Call Rhino.AddSphere(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),arrData(i)(j*(dblBrN)+y)(3)/40/i)
              Call Rhino.DeleteObjects(array(strC1,strC2))
              End If

              'for display colors of different generation
              'If z/10=int(z/10) Then
              ' strLine=Rhino.AddLine(Rhino.PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i)(j*2+y)))
              ' Call Rhino.ObjectColor(strLine, RGB(255-255/dblGen*z,0,255/dblGen*z))
              'End If
              Next
              Next

              'recordn data of individual branches
              For j=0 To ubound(arrSeed(i-1))
              For y=0 To dblBrN-1
              a=-1
              'defining votes for branches generated from different seeds
              For k=0 To ubound(arrSeed(i-1))
              If int(k/(dblBrN^(i-1)))<>int(j/(dblBrN^(i-1))) Then
              For m=0 To dblBrN-1
              a=a+1
              ReDim Preserve arrVote(a), arrDis(a+1)
              'defining a vote for element efficiency
              arrVote(a)=(Rhino.Distance(PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i-1)(k)))-Rhino.Distance(Rhino.PointCoordinates(arrSeed(i)(j*(dblBrN)+y)),Rhino.PointCoordinates(arrSeed(i-1)(k))))
              'recording distance from detected points
              arrDist(a)=Rhino.Distance(PointCoordinates(arrSeed(i-1)(j)),Rhino.PointCoordinates(arrSeed(i-1)(k)))
              Next
              End If
              Next
              dblVote=Rhino.Max(arrVote)

              'recording dist for nearest point
              For k=0 To ubound(arrVote)
              If arrVote(k)=dblVote Then
              arrDist(a+1)=arrDist(k)
              End If
              Next

              'recording data about the new element
              If dblVote>arrData(i)(j*(dblBrN)+y)(0) Then
              arrData(i)(j*(dblBrN)+y)(0)=dblVote
              arrData(i)(j*(dblBrN)+y)(1)=arrData(i)(j*(dblBrN)+y)(2)
              arrData(i)(j*(dblBrN)+y)(3)=arrDist(a+1)
              End If
              Next
              Next

              Next
              For i=1 To dblBranch
              Call Rhino.DeleteObjects(arrSeed(i))
              Next

              Next
              Call Rhino.LayerVisible(strL1,False)
              Call Rhino.EnableRedraw(True)
              Call Rhino.Print("100%")

              End Sub

              31.10.09



              Like human body and ant colony, later generations reduce scattering for a more accurate configuration. Studying countless generations, the family should reach the target specified.

              Specifying different rules for worms should be possible to study emergent systems whose behavior is not predictable from the study of individual elements, like organic complexity L-systems.




              Option Explicit
              ' Script written by Alessandro Zomparelli
              ' alessandro.zomparelli@gmail.com
              ' http://alessandrozompa.altervista.org/
              ' Script version venerdì 30 ottobre 2009 16.59.03

              Call Main()
              Sub Main()
              Dim strTarget, arrFamily, arrTarget, n
              n=Rhino.GetInteger("set number elements",20,2,100)

              ReDim arrFamily(n), arrTarget(2)
              arrFamily(0)=Rhino.GetObject("pick starting point")
              'check for starting point
              If Rhino.IsPoint(arrFamily(0))=False Then
              Exit Sub
              End If
              strTarget=Rhino.GetObject("pick target point")
              'check for target point
              If Rhino.IsPoint(strTarget)=False Then
              Exit Sub
              End If
              arrTarget=Rhino.PointCoordinates(strTarget)

              Dim dblDist
              dblDist=Rhino.Distance(Rhino.PointCoordinates(arrFamily(0)),arrTarget)

              'defining number of generations and amount of mutation between following generations
              Dim dblGen, dblMut
              dblGen=Rhino.GetInteger("set number of generations",100,2,1000)
              dblMut=Rhino.GetReal("set mutation value",2,0.01,100)

              'defining an array to collect data about different family
              Dim arrData
              ReDim arrData(n)

              'defining a value for better step-element of different family
              Dim dblVote

              'defining counters, array for data recording and an array for scattering direction
              Dim i, j, arrVect, arrVect0, arrRec
              ReDim arrVect(2), arrVect0(2), arrRec(1)

              'defining random data for first generation
              For j=1 To n
              arrVect=array(rnd-rnd,rnd-rnd,rnd-rnd)
              dblVote=0
              arrData(j)=array(dblVote,arrVect)
              Next

              Dim strLine

              'starting evolution system
              For i=0 To dblGen-1

              Call Rhino.EnableRedraw(False)
              'starting family growning
              For j=1 To n
              arrRec=arrData(j)
              arrVect0=arrRec(1)
              arrVect=array(arrVect0(0)+dblMut*(dblGen-i)/dblGen*(rnd-rnd),arrVect0(1)+dblMut*(dblGen-i)/dblGen*(rnd-rnd),arrVect0(2)+dblMut*(dblGen-i)/dblGen*(rnd-rnd))
              arrVect0=Rhino.VectorUnitize(arrVect)
              arrVect=Rhino.VectorScale(arrVect0,dblDist/n)
              'generation of new element of the family
              arrFamily(j)=Rhino.CopyObject(arrFamily(j-1),arrVect)
              strLine=Rhino.AddLine(Rhino.PointCoordinates(arrFamily(j-1)),Rhino.PointCoordinates(arrFamily(j)))
              Call Rhino.ObjectColor(strLine, RGB(255-255/dblGen*i,0,255/dblGen*i))

              If Rhino.Distance(Rhino.PointCoordinates(arrFamily(j)),arrTarget)arrRec(0) Then
              arrData(j)=array(dblVote,arrVect)
              End If
              End If
              Next
              For j=1 To n
              Call Rhino.DeleteObject(arrFamily(j))
              Next

              Call Rhino.EnableRedraw(True)
              Next

              End Sub

              12.6.09

              tens.tesselation


              Here some other surface tesselation experiments, I have already posted the first one but now it is fixed (no more Rhino.command!). Anyway there is not a relevant physics accuracy in both scripts, take them just as tries.





















              ' CASE 10 SURFSTARS

              Sub surfstars(strsurf,upar,vpar)
              upar = upar*5
              vpar = vpar*5
              Dim dblheight : dblheight = rhino.getreal("extrusion height?" ,.05)
              If isnull (dblheight) Then Exit Sub
              Dim attrpoint : attrpoint = rhino.getobject("point attractor",1)
              Dim arrpoint : arrpoint = rhino.PointCoordinates(attrpoint)
              Call rhino.enableredraw(False)
              Dim i, j
              Dim uvalone(1), uvaltwo
              Dim arrUone, arrVone
              Dim arrpttemp, pointtwo
              Dim pt1, pt2, pt3, pt4, pt5, pt6, PT7, Pt8, pt5b, pt6b, pt7b, pt8b, ptc1, ptc2, pt1c, pt2c, pt3c, pt4c
              ReDim matrix (upar, vpar)
              Dim tempt
              arruone = array (0,0)
              arrVone = array (0,0)
              Dim strcell, arrct, arrptsurf, arrnorm, arrnormend,arrnormenddown, arrline, strcell2
              Dim pt1b,pt2b,pt3b,pt4b
              If rhino.IsSurface(strsurf) Then
              arruone = rhino.surfacedomain(strsurf,0)
              arrVone = rhino.surfacedomain(strsurf,1)
              End If
              For i=0 To upar
              For j=0 To vpar
              uvalone(0)= ((arruone(1)-arruone(0))/upar)*i
              uvalone(1) = ((arrVone(1)-arrVone(0))/vpar)*j
              arrpttemp = rhino.EvaluateSurface(strsurf,uvalone)
              matrix(i,j) = arrpttemp
              Next
              Next
              Dim oct1, oct2, oct3, oct4, arrlinehuge, arrel1, arrel2, arrdom, midplane, midcircle1, midcircle2
              Dim rn, crvtemp, dbldist

              For i = 1 To upar-1
              For J=0 To vpar-1
              pt1 = matrix(i,j)
              pt2 = matrix(i+1,j)
              pt3 = matrix(i,j+1)
              pt4 = matrix(i+1,j+1)
              pt5 = array( (pt1(0)+pt2(0))/2,(pt1(1)+pt2(1))/2,(pt1(2)+pt2(2))/2)
              pt6 = array( (pt2(0)+pt4(0))/2,(pt2(1)+pt4(1))/2,(pt2(2)+pt4(2))/2)
              pt7 = array( (pt3(0)+pt4(0))/2,(pt3(1)+pt4(1))/2,(pt3(2)+pt4(2))/2)
              pt8 = array( (pt1(0)+pt3(0))/2,(pt1(1)+pt3(1))/2,(pt1(2)+pt3(2))/2)
              ptc1 = array( (pt5(0)+pt7(0))/2,(pt5(1)+pt7(1))/2,(pt5(2)+pt7(2))/2)
              ptc2 = array( (pt6(0)+pt8(0))/2,(pt6(1)+pt8(1))/2,(pt6(2)+pt8(2))/2)
              dbldist = rhino.Distance(ptc1,arrpoint)
              dbldist = Rhino.Log10 (dbldist*3)
              If dbldist<1 dbldist ="">
              pt5b = array( pt5(0)+(ptc1(0)-pt5(0))/(dbldist),pt5(1)+(ptc1(1)-pt5(1))/(dbldist),pt5(2)+(ptc1(2)-pt5(2))/(dbldist))
              pt6b = array( pt6(0)+(ptc2(0)-pt6(0))/(dbldist),pt6(1)+(ptc2(1)-pt6(1))/(dbldist),pt6(2)+(ptc2(2)-pt6(2))/(dbldist))
              pt7b = array( pt7(0)+(ptc1(0)-pt7(0))/(dbldist),pt7(1)+(ptc1(1)-pt7(1))/(dbldist),pt7(2)+(ptc1(2)-pt7(2))/(dbldist))
              pt8b = array( pt8(0)+(ptc2(0)-pt8(0))/(dbldist),pt8(1)+(ptc2(1)-pt8(1))/(dbldist),pt8(2)+(ptc2(2)-pt8(2))/(dbldist))

              Call rhino.AddCurve(array(pt1,pt2,pt4,pt3,pt1),1)
              strcell = rhino.addcurve(array(pt1,,pt5b, pt2,pt6b, pt4, pt7b,pt3,pt8b,pt1),1)

              arrct = array( (pt4(0)+pt1(0))/2,(pt4(1)+pt1(1))/2,(pt4(2)+pt1(2))/2)
              arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
              arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
              arrnorm = rhino.VectorScale(arrnorm, dblheight)
              arrnormend = rhino.PointAdd(arrct,arrnorm)
              arrnormenddown = rhino.Pointsubtract(arrct,arrnorm)
              crvtemp = rhino.AddSrfPt(array(pt1,arrnormend,pt5b))
              crvtemp = rhino.AddSrfPt(array(pt5b,arrnormend,pt2))
              crvtemp = rhino.AddSrfPt(array(pt2,arrnormend,pt6b))
              crvtemp = rhino.AddSrfPt(array(pt6b,arrnormend,pt4))
              crvtemp = rhino.AddSrfPt(array(pt4,arrnormend,pt7b))
              crvtemp = rhino.AddSrfPt(array(pt7b,arrnormend,pt3))
              crvtemp = rhino.AddSrfPt(array(pt3,arrnormend,pt8b))
              crvtemp = rhino.AddSrfPt(array(pt8b,arrnormend,pt1))

              crvtemp = rhino.AddSrfPt(array(pt1,arrnormenddown,pt5b))
              crvtemp = rhino.AddSrfPt(array(pt5b,arrnormenddown,pt2))
              crvtemp = rhino.AddSrfPt(array(pt2,arrnormenddown,pt6b))
              crvtemp = rhino.AddSrfPt(array(pt6b,arrnormenddown,pt4))
              crvtemp = rhino.AddSrfPt(array(pt4,arrnormenddown,pt7b))
              crvtemp = rhino.AddSrfPt(array(pt7b,arrnormenddown,pt3))
              crvtemp = rhino.AddSrfPt(array(pt3,arrnormenddown,pt8b))
              crvtemp = rhino.AddSrfPt(array(pt8b,arrnormenddown,pt1))
              arrline = rhino.AddLine(pt1,pt2)
              arrdom=rhino.CurveDomain(arrline)
              midplane=rhino.CurvePerpFrame(arrline,arrdom(0))
              midcircle1=rhino.AddCircle(midplane,0.09)
              midplane=rhino.CurvePerpFrame(arrline,arrdom(1))
              midcircle2=rhino.AddCircle(midplane,0.09)
              Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
              arrline = rhino.AddLine(pt3,pt4)
              arrdom=rhino.CurveDomain(arrline)
              midplane=rhino.CurvePerpFrame(arrline,arrdom(0))
              midcircle1=rhino.AddCircle(midplane,0.09)
              midplane=rhino.CurvePerpFrame(arrline,arrdom(1))
              midcircle2=rhino.AddCircle(midplane,0.09)
              Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))

              Next
              Next

              Call rhino.deleteobject(strsurf)
              Call rhino.EnableRedraw(True)
              End Sub



              '----- CASE 11 SURFholetens -----


              Sub SURFholetens (strsurf,upar,vpar)
              Dim dblheight : dblheight = rhino.getreal("elements height?" ,.6)
              Dim attrpoint : attrpoint = rhino.Getobject("attractor",1)
              Dim attrpointcoord : attrpointcoord= rhino.pointcoordinates(attrpoint)
              If isnull (dblheight) Then Exit Sub
              Call rhino.enableredraw(False)
              Dim i, j
              Dim uvalone(1), uvaltwo
              Dim arrUone, arrVone
              Dim arrpttemp, pointtwo
              Dim pt1, pt2, pt3, pt4, pt5, pt6, pta, ptb, ptc,ptd
              ReDim matrix (upar, vpar)
              Dim tempt
              arruone = array (0,0)
              arrVone = array (0,0)
              Dim arrct, arrptsurf, arrnorm, arrnormend, arrline
              If rhino.IsSurface(strsurf) Then
              arruone = rhino.surfacedomain(strsurf,0)
              arrVone = rhino.surfacedomain(strsurf,1)
              End If
              For i=0 To upar
              For j=0 To vpar
              uvalone(0)= ((arruone(1)-arruone(0))/upar)*i
              uvalone(1) = ((arrVone(1)-arrVone(0))/vpar)*j
              arrpttemp = rhino.EvaluateSurface(strsurf,uvalone)
              matrix(i,j) = arrpttemp
              Next
              Next
              Dim dbldist
              Dim strquad1,strcentr,strquad2,strcell, midline,midcircle1,midcircle2, midplane,arrdom,ptmid
              Dim midp1,midpoint1
              Dim midp2,midpoint2
              For i = 1 To upar-2 Step 3
              For J=0 To vpar-2 Step 4
              pt1 = matrix(i,j)
              pt2 = matrix(i+1,j)
              pt3 = matrix(i+2,j+1)
              pt4 = matrix(i+1,j+2)
              pt5 = matrix(i,j+2)
              pt6 = matrix(i-1,j+1)
              pta = matrix(i-1,j)
              ptb = matrix(i+2,j)
              ptc = matrix(i+2,j+2)
              ptd = matrix(i-1,j+2)
              strcell = rhino.AddCurve(array(pt6,pt1,pt2,pt3,pt4,pt5,pt6),2)
              strquad1 = rhino.AddCurve(array(pta,ptb,ptc,ptd,pta),1)
              Call rhino.objectcolor(strquad1,rgb(255,255,255))'bianco
              arrct = array( (pt6(0)+pt3(0))/2,(pt6(1)+pt3(1))/2,(pt6(2)+pt3(2))/2)
              arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
              dbldist=rhino.Distance(arrct,attrpointcoord)
              dbldist = Rhino.Log10 (dbldist*7)
              If dbldist < dbldist ="">
              strcell = rhino.scaleobject(strcell,arrct,array(0.95/dbldist,0.95/dbldist,0.95/dbldist))
              arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
              arrnorm = rhino.VectorScale(arrnorm, dblheight)
              arrnormend = rhino.PointAdd(arrct,arrnorm)
              arrline = rhino.AddLine(arrct,arrnormend)
              Call rhino.AddLoftSrf(array(strcell,strquad1))
              strquad2=rhino.copyObject(strquad1,arrct,arrnormend)
              strcentr=rhino.copyobject(strcell,arrct,arrnormend)
              Call rhino.addloftsrf(array(strquad2,strcentr))
              Call rhino.addloftsrf(array(strquad2,strquad1))
              Call rhino.addloftsrf(array(strcentr,strcell))

              midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
              midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
              ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
              midpoint1=rhino.addpoint(midp1)
              midpoint2=rhino.AddPoint(midp2)
              Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
              midp1=rhino.PointCoordinates(midpoint1)
              midp2=rhino.PointCoordinates(midpoint2)
              midline = rhino.AddLine(midp1,midp2)
              arrdom=rhino.CurveDomain(midline)
              midplane=rhino.CurvePerpFrame(midline,arrdom(0))
              midcircle1=rhino.AddCircle(midplane,dblheight/6)
              midplane=rhino.CurvePerpFrame(midline,arrdom(1))
              midcircle2=rhino.AddCircle(midplane,dblheight/6)
              Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
              Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
              Next
              Next
              For i = 2.5 To upar-2 Step 3
              For J=2 To vpar-2 Step 4
              pt1 = matrix(i,j)
              pt2 = matrix(i+1,j)
              pt3 = matrix(i+2,j+1)
              pt4 = matrix(i+1,j+2)
              pt5 = matrix(i,j+2)
              pt6 = matrix(i-1,j+1)
              pta = matrix(i-1,j)
              ptb = matrix(i+2,j)
              ptc = matrix(i+2,j+2)
              ptd = matrix(i-1,j+2)
              strcell = rhino.AddCurve(array(pt6,pt1,pt2,pt3,pt4,pt5,pt6),2)
              strquad1 = rhino.AddCurve(array(pta,ptb,ptc,ptd,pta),1)
              Call rhino.objectcolor(strquad1,rgb(255,255,255))'bianco
              arrct = array( (pt6(0)+pt3(0))/2,(pt6(1)+pt3(1))/2,(pt6(2)+pt3(2))/2)
              arrptsurf = rhino.SurfaceClosestPoint(strsurf,arrct)
              dbldist=rhino.Distance(arrct,attrpointcoord)
              dbldist = Rhino.Log10 (dbldist*7)
              If dbldist < dbldist ="">
              strcell = rhino.scaleobject(strcell,arrct,array(0.95/dbldist,0.95/dbldist,0.95/dbldist))
              arrnorm = rhino.SurfaceNormal(strsurf,arrptsurf)
              arrnorm = rhino.VectorScale(arrnorm, dblheight)
              arrnormend = rhino.PointAdd(arrct,arrnorm)
              arrline = rhino.AddLine(arrct,arrnormend)
              Call rhino.AddLoftSrf(array(strcell,strquad1))
              strquad2=rhino.copyObject(strquad1,arrct,arrnormend)
              strcentr=rhino.copyobject(strcell,arrct,arrnormend)
              Call rhino.addloftsrf(array(strquad2,strcentr))
              Call rhino.addloftsrf(array(strquad2,strquad1))
              Call rhino.addloftsrf(array(strcentr,strcell))
              midp1 = array((ptd(0)+ptc(0))/2,(ptd(1)+ptc(1))/2,(ptd(2)+ptc(2))/2)
              midp2 = array((pta(0)+ptb(0))/2,(pta(1)+ptb(1))/2,(pta(2)+ptb(2))/2)
              ptmid= array((arrct(0)+arrnormend(0))/2,(arrct(1)+arrnormend(1))/2,(arrct(2)+arrnormend(2))/2)
              midpoint1=rhino.addpoint(midp1)
              midpoint2=rhino.AddPoint(midp2)
              Call rhino.MoveObjects(array(midpoint1,midpoint2),arrct,ptmid)
              midp1=rhino.PointCoordinates(midpoint1)
              midp2=rhino.PointCoordinates(midpoint2)
              midline = rhino.AddLine(midp1,midp2)
              arrdom=rhino.CurveDomain(midline)
              midplane=rhino.CurvePerpFrame(midline,arrdom(0))
              midcircle1=rhino.AddCircle(midplane,dblheight/6)
              midplane=rhino.CurvePerpFrame(midline,arrdom(1))
              midcircle2=rhino.AddCircle(midplane,dblheight/6)
              Call rhino.AddLoftSrf (Array(midcircle1,midcircle2))
              Call rhino.DeleteObjects (array(arrline,strquad1,strcentr,strquad2,strcell,midpoint1,midpoint2,midline,midcircle1,midcircle2))
              Next
              Next
              Call rhino.DeleteObject(strsurf)
              Call rhino.EnableRedraw(True)
              End Sub
               
              sa gaming 168 vip เข้า สู่ ระบบ alpha88 pc ฝาก 10 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น สล็อต ออนไลน์ ios fifa55gen ทาง เข้า ufa8k แทง บอล ให้ ได้ เงิน ล้าน ufabet asia slotxo ติด ตั้ง เว็บ ufabet888 slot ฝาก 1 รับ 50 ดาวน์โหลด สล็อต slotxo สมาชิก ใหม่ 100 สมัคร slotxo88 www databet88 com เว็บ ยู ฟ่า 777 ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เว็บ เดิมพัน กีฬา sa gaming 5 บาท แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th โหลด xo ios fifa555 ฝาก 50 ฟรี 100 แทง บอล 24 ufa656 ทาง เข้า แทง ออนไลน์ ufabet อัน ไหน ดี fifa555a ี ufa147 ทาง เข้า ufa88 แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด เครดิต ฟรี xo ทาง เข้า ฟีฟ่า บา คา ร่า คลับ ดาว โหลด เกม slot joker ดาวน์โหลด slotxobkk mafia แจก เครดิต ฟรี ล่าสุด สมาชิก ใหม่ ฟรี เครดิต 2020 บา คา ร่า sa 66 ตั้ง slotxo สมัคร ufabet365 เข้า เล่น เกม slotxo ufabet 1668 ฟรี เครดิต 200 ไม่ ต้อง ฝาก ufa356 ดี ไหม wwwufa6666 เครดิต แจก ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี ฟุตบอล แจก เครดิต ฟรี ถอน ได้ atm slot เครดิต ฟรี ดาวน์โหลด 168slotxo ufabet789 ตั้ง slotxo ufabet services ติดต่อ live22 slotxo ios เล่น ไม่ ได้ เครดิต ฟรี ไม่ ฝาก ยู ฟ่า เบ ท 88 mafia333 เครดิต ฟรี ufabet188 เครดิต ฟรี playstar แจก เครดิต ฟรี สมาชิก เก่า slot ฝาก 1 บาท รับ 50 ยู ฟ่า เบ ท 007 ดาว โหลด slot slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 เกม gclub ufabet828 ufabet955 prompay88 เครดิต ฟรี ufa7777 สมัคร ติด ตั้ง xo สมัคร แทง บอล เครดิต ฟรี ufabet2020 แอ พ ufabet slotxo ฝาก 5 บาท ฟรี 99 บาท ล่าสุด omg89bet slotxo ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ufa678 หวย เว ป บอล ดีๆ mm88fair ฝาก ถอน ufa bet236 บา คา ร่า ไม่ ต้อง ฝาก เครดิต ฟรี โบนัส ฟรี ไม่ ต้อง ฝาก sa gaming 1688 slot007 ฟรี เครดิต sa gaming คือ sa แกม มิ ง sa gaming 50000 บา คา ร่า ล็อค ยู ส แทง หวย ligaz888 co เว็บ ufa168 mobile ufabet sa gaming group mm88vip ufabet 188bet sa gaming hacker ฟรี เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน แอ พ sa gaming slotxo โปร ฝาก 19 บาท download slotxo ios แอ พ sa gaming ทาง เข้า agent ufa slot ฝาก 100 รับ 100 เว็บ ufa vip โปร โม ชั่ น sbobet777 sa gaming เล่น ฟรี เปิด ยู ส ฟรี เครดิต vegus365ok slotxo เข้า เกม บา คา ร่า sa vip เครดิต ฟรี ใหม่ ล่าสุด 2020 ทาง เข้า amb555 เครดิต ฟรี ไม่ ต้อง แชร์ 918kiss แจก ฟรี เครดิต ไม่ ต้อง ฝาก slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน sa gaming ลอง เล่น sa gaming 911 slotxo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ufabet99 มือ ถือ เครดิต ฟรี ถอน ได้ เลย เครดิต แจก ฟรี ไม่ ต้อง ฝาก ทาง เข้า ufabet999 แทง บาสเกตบอล slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด 77up2u ufabet 988 ufabet99th แจก ฟรี ไม่ ต้อง ฝาก sa gaming ลอง เล่น สมัคร สล็อต 1234 ทาง เข้า เล่น ยู ฟ่า เบ ท แทง บอล ฟรี เครดิต ไม่ ต้อง ฝาก เครดิต ฟรี playstar ww fifa55 sexxygame1688 ทาง เข้า ufa69 ฟรี เครดิต ถอน ได้ sath88 คา สิ โน slot เครดิต ฟรี 2019 sa gaming คา สิ โน www123fazcom แอ ป slotxo เช็ ก ซี่ บา คา ล่า ufabet วอ เลท ลิ้ ง ufabet เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด 2020 แทง บอล 555 ufabet ทาง เข้า มือ ถือ slotxo 50 รับ 100 ดาว โหลด เกม สล็อต xo บา คา ร่า ออนไลน์ ufabet เครดิต ฟรี ได้ จริงๆ ufabet98 ยิง ปลา ฟรี 150 แอ ป slotxo แทง บอล ไม่ ให้ เสีย ยู ฟ่า เบ ท 888 เปิดโปง บา คา ร่า ufa678 เข้า ไม่ ได้ slotxo joker เครดิต ฟรี kingkongxo slotxo เข้า เล่น เกม slotxo แจก เครดิต ล่าสุด เว็บ ยู ฟ่า 168 ufabet mobile ยู ฟ่า ออนไลน์ ufabet77fc sa gaming ปรับปรุง เปิด ยูสเซอร์ รับ เครดิต ฟรี ยิง ปลา แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2019 เล่น แทง บอล slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน ลิ้ ง โหลด slotxo บา คา ร่า lsm betufa มือ ถือ เครดิต ฟรี ล่าสุด ufabet เข้า สมัคร ยู ฟ่า 191 xo slot ทาง เข้า slotxo sa gaming 5 บาท เครดิต ฟรี 100 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ 2020 ดาว โหลด slot ufa88v3 โหลด สล็อต xo ios fifa888 ufa678 ดี ไหม เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน บอล ออนไลน์ 789 บา คา ร่า 918 ดาว โหลด เกม xo slot บา คา ร่า มังกร sa gaming ts911 ufa7000 fifa5555 หวย ufabet168 id line เครดิต ฟรี ยิง ปลา 150 ฟรี เครดิต 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ เครดิต ไม่ ต้อง ฝาก ติด ตั้ง xo fifa5555 หวย แทง บอล ถูก กฎหมาย sa เกม คา สิ โน แทง บอล fifa555 ufabet lucky บา คา ร่า ค่า คอม สูง สล็อต xo โหลด mm88inter เครดิต ฟรี ยู ฟ่า sbobet222 fifa55 หวย 77up บอล แทง ufabet เว็บ ยู ฟ่า 888 fifa55gol faz123 บา คา ร่า ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด โบนัส ฟรี ไม่ ต้อง ฝาก ufabet747 ufabet998 ฟ่า เบ ท วัน นี้ แทง บอล คู่ ไหน ดี slot free 888 เครดิต ฟรี ไม่ ต้อง แชร์ ไม่ ต้อง ฝาก ก่อน สมัคร kingkongxo ดาวน์โหลด mm88bet pantip ลิ้ ง โหลด slotxo ufabet3 สมัคร เว็บ ยู ฟ่า xo slot ทาง เข้า slotxo ufabet368 ufabet168 สมัคร g2g เครดิต ฟรี ufabet352 ufa888s แอ พ slotxo ยิง ปลา เครดิต ฟรี 150 sa8 บา คา ร่า เค ดิ ต ฟรี xo ยิง ปลา ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด เข้า เว็บ ยู ฟ่า เบ ท บา คา ร่า ae clubfifa55 ดาวน์โหลด joker xo xo slot download เว็บ ufabet ราคา แทง บอล วัน นี้ atm slot เครดิต ฟรี ดาว โหลด ส ล็ ต xo slot ฟรี เครดิต ไม่ ต้อง ฝาก sbobet888888888 สมัคร แท่ง บอล fifa55 เครดิต ฟรี ufa800 เครดิต ฟรี ทาง เข้า เว็บ ufabet slotxo เครดิต ฟรี ไม่ ต้อง ฝาก ก่อน slot ไม่ ต้อง ฝาก แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด เครดิต ฟรี ทันที เอ เย่ น ยู ฟ่า slotxo สมัคร ใหม่ ufa68bet ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ รับ เครดิต ฟรี ufabet1688 ดี ไหม ถอนเงิน ufa ufabet158 ufa goal168 แอ ป sa gaming ufabet line โบนัส ฟรี ไม่ ต้อง ฝาก ถอน ได้ slotxo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 เข้า เว็บ ufabet365 www ufa777 con slotxo ฝาก 29 รับ 100 เช็ ก ซี่ บา คา ล่า sbobetsh sa gaming 168 login vegus168 sure mafia8888 เครดิต ฟรี jumbobcr1 sa เกม บา คา ร่า slot ฝาก 1 รับ 50 บา คา ร่า ทุน 1000 89fifa บา คา ร่า sa gaming 1 slotxo แอ พ มือ ถือ ดาวน์โหลด เดี๋ยวนี้ ทาง เข้า ufathai แจก โบนัส ฟรี ไม่ ต้อง ฝาก ดาว โหลด เกมส์ live22 ufabet5000 ทาง เข้า ยู ฟ่า 191 ufabet แจก เครดิต ฟรี ล่าสุด slot แจก เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ไม่ ต้อง แชร์ เว็บ บอล ยู ฟ่า slotxo free แจก เครดิต ฟรี ใหม่ ล่าสุด สมาชิก ใหม่ ฟรี เครดิต ไม่ ต้อง ฝาก 2020 ufabet แจก เครดิต slot online เครดิต ฟรี แจก เครดิต ฟรี 100 บาท สำหรับ สมาชิก ใหม่ scr888th sexxygame1688 เล่น บอล แบบ นัก ลงทุน ดาวน์โหลด slotxo apk สล็อต xo download ufabet 8888 บอล ดี แทง บอล fifa ufabet777 168 เครดิต ฟรี ไม่ ๊ ufa168 ติดต่อ สล็อต xo สล็อต xo ดาวน์โหลด slotxo fifa555cash บอล ufa sa เกม มิ่ง 66 mafia เครดิต ฟรี ใหม่ ล่าสุด ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด ufabet ทาง เข้า ล่าสุด tbsbet 2562 ufa365s pantip ฟรี เครดิต ไม่ ต้อง ฝาก ถอน ได้ sa vip gaming ทาง เข้า ufabet 6666 fifa555king เล่น ยู ฟ่า 191 แทง บอล ฟรี ufa fun888 เว ป บอล ฝาก ขั้น ต่ํา 100 ufa007 sa gaming66 เข้า สู่ ระบบ บา คา ร่า มา วิน ทาง เข้า สล็อต fifa8888 slotxoth download สมัคร เอเย่นต์ sa sboibc888 pantip ufabet 8111 ufa356 เครดิต ฟรี 100 แจก ฟรี ไม่ ต้อง ฝาก ทาง เข้า ufabet ล่าสุด เครดิต ฟรี 200 ไม่ ต้อง ฝาก ก่อน ufabet rich แทง บอล lsm99 ดาว โหลด slot ufabet 1668 ufa365v2 ufabet pantip slotxo ฝาก 25 รับ 100 สล็อต xo ออ โต้ วัว วัว บา คา ร่า เครดิต ฟรี ล่าสุด 2019 ufabet 100 ฟรี 100 agent ufabet 188bet ฟรี เครดิต 2019 เซ็ ค ซี่ บา คา ล่า ufabet มือ ถือ ufabet cash sa gaming 06 fifa555 ทาง เข้า มือ ถือ slot ฝาก ครั้ง แรก fifa55k mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ufabet8z แทง บอล คืน นี้ สล็อต xo สมัคร ufabet168 เครดิต ฟรี ufa191 ยิง ปลา sa gaming66 เข้า สู่ ระบบ b2y บา คา ร่า ทาง เข้า joker xo aibacca2020 ufabet xxx เว้ บ เครดิต ฟรี บา คา ร่า sa 66 แทง บอล รอง next88 รหัส ฟรี เครดิต ราคา บอล แทง บอล บา คา ร่า จำลอง ฝาก 99 รับ 300 วอ เลท live22 ดาวน์โหลด ufa แทง บอล เข้า เกม สล็อต xo ufabet เอ เย่ น วิธี ติด ตั้ง slotxo 77up line ufa365v2 ทาง เข้า ทาง เข้า slotxo 007 pussy888 ฟรี เครดิต fifa69 pantip ufa168 vip sa gaming 06 ไลน์ ยู ฟ่า เบ ท ufabet mobile fifa 1234 ทาง เข้า ยู ฟ่า 369 download slotxo pc โปร แจก เครดิต ฟรี แจก ฟรี 100 ไม่ ต้อง ฝาก ufabet facebook fifa555a mafia567 เครดิต ฟรี เปิด ยูสเซอร์ ฟรี แทง บอล ฟรี เครดิต 2020 ทาง เข้า สล็อต สตู ร บา คารา ฟรี ufabet dna joker689 เครดิต ฟรี ufa ไม่ ผ่าน เอเย่นต์ แทง บอล สด ufabet955 แทง บอล ยูโร sa บา คา ร่า vip vegus96 ufa24h bet databet88bet เว็บ แท่ง บอล ออนไลน์ 888 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufa goal168 918kiss แจก เครดิต ฟรี 2020 แทง บอล ขั้น ต่ำ 20 บาท 24sbobet online ufabet 115 v2 แจก เครดิต ฟรี สมาชิก ใหม่ เครดิต ฟรี ทันที รับ เครดิต ฟรี ไม่ ต้อง ฝาก แทง บอล ออนไลน์ 888 ufa88 มือ ถือ ufa888a ยิง ปลา ออนไลน์ ฟรี เครดิต ไลน์ ufa ufawb998v3 ทาง เข้า ufa800 ทาง เข้า ufabet45 เว็บ ยู ฟ่า 365 เครดิต ฟรี สมาชิก ใหม่ 2020 บา คา ร่า 66666 ยู ฟ่า ออนไลน์ 168 slotxo ไม่มี ขั้น ต่ํา sa gaming slot game mm88bet ถอนเงิน ufa ufabet8888 ทาง เข้า xo slot ufabet joker เช็ ก ซี่ บา คา ร่า ฝาก ถอน ufabet168 สมัคร สมาชิก ยู ฟ่า ufabet1688 เครดิต ฟรี ดาวน์โหลด เกมส์ สล็อต ออนไลน์ slotxo ฝาก 10 รับ 100 วอ เลท sa gaming ถอนเงิน สมัคร เว็บ ufabet1688 fifa55fifa55 โปร โม ชั่ น sa gaming แทง บอล คืน นี้ สมัคร ufa356 sa gaming 66 เข้า สู่ ระบบ fin24 บา คา ร่า สล็อต โปร โม ชั่ น ww fifa55 แทง บอล ออนไลน์ ฟรี รับ เครดิต ฟรี ทันที ufabet345 ufa369vip slot999 ฟรี เครดิต faz123 บา คา ร่า ได้ บา คา ร่า ี ufabet365 ยู ฟ่า สมัคร sa gamingth slotxo899 ดาวน์โหลด hatyaiisc888 fifa555 ฝาก ขั้น ต่ำ 10 บาท แทง บอล วัน นี้ ฟรี เครดิต 50 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ยู ฟ่า เบ ท 24 ฟ่า เบ ท vegus96 แทง บอล ออนไลน์ ฟรี sa66 คา สิ โน slotxo ฝาก 15 บาท sbobet89 ufabet ฝาก 50 รับ 100 รับ เครดิต ฟรี 100 ไม่ ต้อง ฝาก slotxo ios download สมัคร สมาชิก ufabet slot ไม่ ต้อง แชร์ เกม บา คา ร่า sa เครดิต ฟรี ไม่ ต้อง ไล่ ค์ ไม่ ต้อง แชร์ 2020 สล็อต xo download ฝาก ถอน ufa ufabet 95 ufabet ดี ไหม pantip ป๊อก เด้ง เงิน จริง ฟรี เครดิต ทาง เข้า slotxo joker123 สมาชิก ใหม่ แจก เครดิต ฟรี fifa55hd แทง หวย ฟรี เครดิต web fifa555 เว กา บอล mafia8888 เครดิต ฟรี ยู ฟ่า เบ ท 88 สมัคร เอ เย่ น ufa ี ufa888 โปร แทง บอล ดาวน์โหลด สล็อต live22 สมัคร ufabet ฟรี เครดิต ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ล่าสุด fifa55king mm88vip พัน ทิป โหลด แอ พ slotxo slotxo android ยู ฟ่า เบ ท 1688 sbobet168 ฝาก 100 รับ 200 xo โหลด เกม slot บอล ออนไลน์ 55 โปร โม ชั่ น เครดิต ฟรี สมาชิก ใหม่ sa gaming 168 slotxo899 ดาวน์โหลด ดาวน์โหลด เกมส์ สล็อต slotxo88 sa gaming เครดิต ฟรี ไม่ ต้อง ฝาก line fifa5555 วิธี ติด ตั้ง slotxo ufa9999999 แทง บอล ดาวน์โหลด xo สล็อต ufabet 2999 เครดิต ฟรี 2020 ไม่ ต้อง ฝาก ก่อน โหลด เกม xo slot เครดิต บอล ฟรี ไม่ ต้อง ฝาก ทาง เข้า เล่น ยู ฟ่า เบ ท ดาว โหลด เกม live22 บา คา ร่า เซ๊ ก ซี่ สมัคร ufabet888 เกมส์ ออนไลน์ บา คา ร่า ไม่ ต้อง ฝาก ก่อน ถอน ได้ sa gaming89 betdog289 เครดิต ฟรี allslotking เครดิต ฟรี slotxo โปร สมาชิก ใหม่ ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน 2020 ทาง เข้า ufa365 มือ ถือ ทาง เข้า agent ufa แทง บอล ได้ เงิน จริง บอล ออนไลน์ 55 ี ufabet8 บา คา ร่า xo ufabet 5000 ดาวน์โหลด slotxo 2020 ufabet24hrs sa แกม มิ ง ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก mm88bigwin ฟรี เครดิต 200 ไม่ ต้อง ฝาก ufabet android slot online เครดิต ฟรี ฟรี เครดิต 2019 ไม่ ต้อง ฝาก ufalion 168 ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ufabet ทาง เข้า fhm99 เครดิต ฟรี ufa88 ทาง เข้า ufabet บอล ออนไลน์ 55 ufabet95 แอ ป slotxo fifa55b slotxo joker 100 918kiss ฟรี เครดิต 1000 บาท ี ufabet co เว ป บอล ออนไลน์ ทาง เข้า ufa147 ufa700 like191 เครดิต ฟรี sa ฟรี ufabet speed ี ufa888 สมัคร เว็บ ufabet1688 แจก ฟรี เครดิต ยู ฟ่า เบ ท 007 slot007 ดาวน์โหลด ทาง เข้า ยู ฟ่า เบ ท ฟรี เครดิต ถอน ได้ entaplay เครดิต ฟรี สมัคร ufabet ufa600s slot เครดิต ฟรี 2019 ยิง ปลา sa gaming ufa678 เครดิต ฟรี แอ พ slotxo เครดิต ฝาก 1 บาท รับ 100 sa gaming 168 เข้า สู่ ระบบ ufabet x8 ทาง เข้า ufa365 บา คา ร่า holiday เว็บ ยู ฟ่า 88 ทาง เข้า slotxo bkk ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ slot เครดิต ฟรี ไม่ ต้อง ฝาก เครดิต ฟรี slot สมัคร slot555 โหลด slotxo ล่าสุด แทง บอล 2 คู่ ทาง เข้า ufabet888 sa gaming vip pantip fifa55 members ี ufabet168 บา คา ร่า ราคา ถูก slotxo 1 ufa1688 สมัคร ป๊อก เด้ง เงิน จริง ฟรี เครดิต ดาว โหลด ส ล็ ต xo ufa ทาง เข้า heng999 ฟรี เครดิต atm slot เครดิต ฟรี web fifa55 ufabet v2 ถอนเงิน sa gaming บอล ออนไลน์ 789 slotxo ฝาก 99 รับ 300 แทง บอล ออนไลน์ ฝาก ขั้น ต่ํา 100 ราคา แทง บอล เว็บ ufabet168 sa1688 game ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ี ufabet 356 เครดิต ฟรี sa gaming joker689 เครดิต ฟรี slot free credit ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ lsm77 เครดิต ฟรี ufabet 99999 sa gaming 168vip ยู ฟ้า 888 ทาง เข้า ufa678 fifa55pro ส รู บา คา ร่า ufaclub8 slotxo download android ufabet lion 168 เว็บ ufa vip sa คา สิ โน www ยู ฟ่า เบ ท เครดิต ฟรี ใหม่ ล่าสุด ไม่ ต้อง แชร์ แทง บอล ให้ ได้ เงิน ทุก วัน ค่า คอม ufabet slotxo สมัคร 100 slot เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ufabet 982 บา คา ร่า เซ๊ ก ซี่ แทง บอล ออนไลน์ fifa555 ufabet10 สล็อต xo ฝาก 1 บาท ufabet rich ี ufabet369 sa gaming มือ ถือ slotxo เปิด ใหม่ ufa356 ทาง เข้า เว็บ กา บอล ทาง เข้า ufabet888 บา คา ร่า วัว วัว sa slotxo joker 100 โหลด เกม slot ufabet 881 สมัคร fifa55 ufabet 8s โปร โม ชั่ น แจก เครดิต ฟรี slotxo เข้า เกม แจก เครดิต ฟรี 30 ทาง เข้า slotxo auto ยู ฟ่า เบ ท 365 ๊ ufa168 เข้า เล่น ufa slot ไม่ ต้อง ทํา เทิ ร์ น ufabet ดี ไหม pantip ยูสเซอร์ ฟรี เครดิต โหลด เกม slot ufabet บริษัท ufabet828 บา คา ร่า ทุน 500 บา คา ร่า ล่าสุด แจก เครดิต ฟรี ใหม่ ล่าสุด slotxo apk download เกม บา คา ร่า sa แอ พ บา คา ร่า pantip 888 ufa slotxo ฝาก 50 ทาง เข้า เกม slotxo เว็บ แท่ง บอล ออนไลน์ 888 ยู ฟ่า เบ ท วิน เว็บ ufabet mega888 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 ufax10 เครดิต ฟรี เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ fifa555a sa gaming99 โหลด xo ios สมัคร เล่น บอล ออนไลน์ fa181818 เข้า เล่น ufa ยู ฟ่า 1668 ufathai123 next88 รหัส ฟรี เครดิต ทาง เข้า slotxo vip บา คา ร่า ออ โต้ slot ฟรี 300 777slot เครดิต ฟรี โปร โม ชั่ น แทง บอล แทง บอล ไม่มี ขั้น ต่ำ เข้า เล่น เกม สล็อต xo เข้า ยู ฟ่า slotxo ฝาก 1 บาท ได้ 100 วอ เลท ไม่ ต้อง ฝาก ไม่ ต้อง แชร์ ทาง เข้า ยู ฟ่า pay69 slot เครดิต ฟรี ทาง เข้า ufa95 sa game 25 ยู ฟ่า 369 สมัคร slotxo ฝาก วอ ล เลท vegus5g ufabet68 ฝาก 50 ฟรี 100 slotxo slotxo888 ดาวน์โหลด สมัคร สล็อต xo 888 เว็บ ตรง ยู ฟ่า ดาวน์โหลด xo เครดิต ฟรี ไม่ ต้อง ฝาก 2020 ล่าสุด ไม่ ต้อง แชร์ แทง บอล 777 ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน ทาง เข้า slotxo auto สมาชิก ใหม่ ฟรี เครดิต ล่าสุด ufabet787 ี ufa007 ufabet565 sa gaming ปรับปรุง บา คา ร่า xo ufabet 119 ufabet ฝาก ขั้น ต่ำ 100 ufathai 88 sbobet285 pantip สมาชิก ใหม่ ฟรี เครดิต 300 ยู ฟ่า เบ ท 456 sa gaming th88 ั ufabet เว ป บอล ฝาก ขั้น ต่ํา 100 ufabet 95 โหลด แอ พ slotxo slotxo download pc สมัคร สล็อต xo โบนัส 100 ทาง เข้า agent ufabet ufabet987 fifa55cash โหลด แอ พ สล็อต xo บา คา ร่า ราคา ถูก ufa800 ทาง เข้า slotxo 1 ยิง ปลา ฟรี เครดิต ไม่ ต้อง ฝาก ล่าสุด เครดิต ฟรี ใหม่ vegus168 sure โหลด สล็อต ออนไลน์ ดาวน์โหลด slotxo 888 สล็อต xo ออ โต้ sa gaming เครดิต ฟรี ทาง เข้า slotxo mobile บา คา ร่า พัน ทิป 2563 แจก เครดิต ฟรี สมาชิก ใหม่ เว็บ ยู ฟ่า 369 ยู ฟ่า 191 ฝาก ถอน ยิง ปลา ฝาก 100 ฟรี 300 nova88 next88 รหัส ฟรี เครดิต ufabet777 ทํา เทิ ร์ น เครดิต ฟรี บา คา ร่า แอ พ เครดิต ฟรี รับ ทันที fifa5555 หวย sa gaming 36 slotxo โปร ฝาก ครั้ง แรก ทาง เข้า เกม xo ทาง เข้า เล่น ยู ฟ่า เบ ท เครดิต ฟรี ไม่ ต้อง ไล่ ค์ ไม่ ต้อง แชร์ 2020 แทง บอล ออนไลน์ 888 slot1688 ฟรี เครดิต ufa168 vip แจก เครดิต ฟรี 100 บาท ไม่ ต้อง แชร์ ล่าสุด sa gaming 168vip 123ufabet mafia slot เครดิต ฟรี 2020 slotxoth download ufabet1246 เครดิต ฟรี ก่อน ฝาก ทาง เข้า slotxoz ufabet บริษัท แม่ เซ๊ ก ซี่ บา download slotxo ยู ฟ่า แจก เครดิต ฟรี บอล ออนไลน์ 55 ufabet แจก เครดิต ฟรี 2020 ufabet 100 ฟรี 100 bkk998 ufabet v4 ufa363 ทาง เข้า ufabet168 ดี ไหม slot เครดิต ฟรี ถอน ได้ โหลด แอ พ slotxo ทาง เข้า joker xo ทาง เข้า slotxo auto slotxo apk download bslot88 เครดิต ฟรี ฝาก 1 รับ 100 918kiss xo slot ฟรี เครดิต ufabet เว็บ ตรง bslot88 เครดิต ฟรี ufa888 pantip ss66 บา คา ร่า ทาง เข้า xo mobile เว็บ ufa24h ufa168 ฝาก ถอน ดาวน์โหลด slotxo 2020 ufabet888888 เครดิต ฟรี สมาชิก เก่า ทาง เข้า เกม slotxo เครดิต ฟรี 100 ล่าสุด gclub777 ดาวน์โหลด slotxo 236 ี ufa888 sagame168 vip like191 เครดิต ฟรี ufa แทง บอล ติดต่อ live22 ufabet2020 ufabet1688 ดี ไหม บอล หวย ufabet 982 เว็บ ยู ฟ่า 1688 gclub 1668 sa gaming 86 สมัคร แท่ง บอล บา คา ร่า 345 slotxo ฝาก 5 บาท ฟรี 99 บาท ufabet089 allslotking เครดิต ฟรี ufabet227 ufa168 สมัคร เล่น ยู ฟ่า เค ดิ ต ฟรี slotxo ดาวน์โหลด สล็อต ติด ตั้ง xo ufa363 ทาง เข้า แทง บอล ขั้น ต่ำ 50 บาท สมัคร เล่น เกม สล็อต ufabet cb8 sa66 game live22 เครดิต ฟรี ไม่ ต้อง ฝาก บา คา ร่า sa gaming 77 slot แจก ฟรี เครดิต ufa363 ทาง เข้า live22 สมัคร sa เครดิต ฟรี ไม่ ต้อง แชร์ ทาง เข้า ufabet191 slot ฟรี เครดิต 2019 slotxo ฟรี 100 เซ็ ค ซี่ บา คา ล่า ufabet slots ufa877 คืน ยอด เสีย ufabet222 123ufabet สมัคร slot online ufabet168 ฝาก เงิน สมัคร สมาชิก สล็อต xo ufabet เอ เย่ น เครดิต ไม่ ต้อง ฝาก เว็บ ufabet888 ufabet net default 8 mafia แจก เครดิต ฟรี 50 mm88aec เปิด ยูสเซอร์ ฟรี เครดิต ufa88 ทาง เข้า บา คา ร่า เปิด กี่ โมง ufa365v2 ufabet pantip ufabet666 s ทาง เข้า slotxo สมัคร เล่น slot สล็อต 1234 joker ดาวน์โหลด ufabet 11688 ufabet พัน ทิป ufa189 ลาว คูปอง sa gaming ดาวน์โหลด เกมส์ live22 ufa147 sport ufabet 188bet แจก โบนัส ฟรี แทง บอล ขั้น ต่ำ 1 บาท web ufabet main ufabet881 วิธี ดาวน์โหลด slotxo เข้า ufa 188bet ฟรี เครดิต 2019 เว็บ ufa168 แทง บอล ออนไลน์ เครดิต ฟรี ดาวน์โหลด slotxo ios ufabet main ufabet928 vegus168 usa แจก เครดิต ฟรี 300 ไม่ ต้อง ฝาก 2020 ล่าสุด เครดิต ฟรี เทิ ร์ น 1 เท่า 2020 slot ได้ เงิน จริง ดาวน์โหลด xo สล็อต ufabet เบอร์ โทร ufabet 555 sa gaming 928 ทาง เข้า ufa365 ufabet cn ฝาก ขั้น ต่ํา 10 betufa default 8 ดาวน์โหลด slotxo pc สมัคร เล่น บอล ออนไลน์ ufa88 ทาง เข้า แทง บอล 10 xo เครดิต ฟรี uf9ba online slot ออนไลน์ ฟรี xo ฟรี 100 แทง บอล ด้วย บัตร ท รู ฟรี โบนัส ไม่ ต้อง ฝาก ยิง ปลา เครดิต ฟรี ไม่ ต้อง ฝาก 2019 ล่าสุด fifa555pro ufabet7 บา คา ร่า sa เกม โหลด เกมส์ สล็อต ออนไลน์ ufabet037 s ทาง เข้า slotxo zz8 เครดิต ฟรี ดาวน์โหลด สล็อต xo168 แทง บอล พรีเมียร์ ลีก ufabet ฝาก สมัคร slotxo mobile ufa191 ดี ไหม ufabet พัน ทิป 77up บอล เครดิต ฟรี ไม่ ฝาก ไม่ แชร์ ล่าสุด sagaming 07 ufabet lion ufabet 100 ฟรี 100 เว็บ ufa007 ยู ฟ่า เบ ท 88888 joker999 เครดิต ฟรี เข้า เกม สล็อต xo ufabet xxx ufabet 99999 ฟรี เครดิต ไม่ ต้อง ฝาก 2019 แทง บอล ออนไลน์ ไม่มี ขั้น ต่ำ แทง บอล ถูก กฎหมาย เว กา บอล ฟรี เครดิต ไม่ ต้อง ฝาก ก่อน 2020 ufabet คือ โหลด เกม slot ยิง ปลา ฟรี ได้ เงิน จริง b2y บา คา ร่า ถอนเงิน ufabet1688 sa36 gaming sa gaming 77 เล่น slotxo ผ่าน หน้า เว็บ ฝาก 10 รับ 100 ไม่ ต้อง ทํา เทิ ร์ น คา สิ โน sa ufa678 หวย slot สมาชิก ใหม่ รับ เครดิต ฟรี s ทาง เข้า slotxo cq9 slot ฟรี เครดิต บา คา ร่า ก๊อ ต เครดิต ฟรี เดือน นี้ ufa800 pantip ufabet9999 slotxo ฝาก 9 บาท รับ 100 thaibet789 เครดิต ฟรี 168 slotxo download รับ เครดิต ฟรี 300 ไม่ ต้อง ฝาก ufabet10 ufabet ใหม่ ufa6666 สมัคร เอ เย่ น ufabet ยู ฟ่า เบ ท 666 ดาวน์โหลด เกมส์ สล็อต slotxo88 แจก เครดิต ล่าสุด ี ufa345 ufa191 โกง ufabet net default 8 ดาวน์โหลด slotxo เวอร์ชั่น ล่าสุด sa gaming 168 th ufabet แจก เครดิต slot online เครดิต ฟรี บา คา ร่า sa gaming 77 wwwufa999999 fifa55th fifa55 icon99 บา คา ร่า โปร โม ชั่ น sa gaming รับ เครดิต ฟรี xo ufabet 999999 สมัคร slotxo88
              ยูสเซอร์ 918kiss| joker123 game ikan| joker ฟรี ส ปิ น| เข้า ระบบ joker| เว็บ สล็อต เครดิต ฟรี 2019| fifa69net| เกม ยิง ปลา แจก เครดิต ฟรี| download pgslot| slot game 444| pg slot games| สูตร บา คา ร่า ห้อง sa| ค่าย pg เกม ไหน แตก ดี| สล็อต 50 รับ 100| สมัคร สมาชิก joker123| joker madness slot| ดั ม มี่ กิน ตัง จริง| 48 slot pg| ดาว โหลด เกม สล็อต 888| สล็อต เค ดิ ฟรี| สล็อต ฝาก ขั้น ต่ํา 50 บาท| mcopa882| สมัคร สมาชิก joker gaming| ยูสเซอร์ 918kiss| สล็อต แตก ง่าย ล่าสุด| ทดลอง เล่น สล็อต สวี ท โบ นั น ซ่า| ฟรี เงิน เดิมพัน 2020| เกม ลงทุน น้อย| เว็บ สล็อต ฝาก 10 รับ 100| สล็อต แมชชีน คือ| kingkong pg slot| ทดลอง เล่น สวี ท โบ นั น ซ่า ฟรี| โหลด เกม เล่น ได้ เงิน จริง| หมุน สล็อต ฟรี ได้ เงิน จริง| สล็อต แค ท 777| mafia slot 777| slot vip game| pgslot เข้า เล่น| สมัคร โจ๊ก เกอร์ เกม| สล็อต แบบ เติม วอ เลต| เล่น ไพ่ป๊อก ให้ ได้ เงิน| แจก user ทดลอง เล่น ฟรี 2019| โหลด เกมส์ slotxo| joker slot 789th| เล่น สล็อต ให้ ได้ เงิน แสน| เล่น โจ๊ก เกอร์| สล็อต ถอน ผ่าน วอ เลท| เครดิต ฟรี สล็อต 2019| ทดลอง เล่น สล็อต ค่าย โจ๊ก เกอร์| เครดิต ฟรี ค่าย joker| สมัคร สมาชิก ใหม่ ฟรี เครดิต ไม่ ต้อง ฝาก| joker โปร วัน เกิด| pg slot โปร 100| joker slot 91| เงิน สล็อต ฟรี| เว็บ สล็อต ที่ แตก ง่าย ที่สุด 2020| joker1888 สมัคร สมาชิก| pg โปร 100| สล็อต ฟรี เครดิต 2562| สล็อต ครบ ทุก ค่าย| ส ล๊ อ ต 168| รวม สล็อต ทุก ค่าย ใน เว็บ เดียว| โล เยน สล็อต| เกม ไพ่ แลก เงิน ได้ จริง| สล็อต joker ฝาก 10 รับ 100| รับ เครดิต เดิมพัน ฟรี| สบาย ดี 99 สล็อต|