{"id":48,"date":"2008-11-19T21:37:36","date_gmt":"2008-11-19T19:37:36","guid":{"rendered":"https:\/\/blogs.ua.es\/glac\/?p=48"},"modified":"2008-11-19T22:34:30","modified_gmt":"2008-11-19T20:34:30","slug":"suavizar-polineas","status":"publish","type":"post","link":"https:\/\/blogs.ua.es\/glac\/2008\/11\/19\/suavizar-polineas\/","title":{"rendered":"Suavizar pol\u00edneas"},"content":{"rendered":"<p>Este es el Script para suavizar polil\u00edneas:<\/p>\n<p><a href=\"https:\/\/blogs.ua.es\/glac\/files\/2008\/11\/untitled.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-49 alignnone\" src=\"https:\/\/blogs.ua.es\/glac\/files\/2008\/11\/untitled-300x149.png\" alt=\"\" width=\"286\" height=\"141\" \/><\/a><\/p>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address> <\/address>\n<address><span style=\"color: #000000\">Option Explicit<\/span><\/address>\n<address>&#8216;Script para suavizar polil\u00edneas y hacer un offset de las mismas<\/address>\n<address>\n<\/address>\n<address> <\/address>\n<address> <\/address>\n<address>Call SuavizarPolilineas()<\/address>\n<address> <\/address>\n<address> <\/address>\n<address>Sub SuavizarPolilineas()<\/address>\n<address> <\/address>\n<address><span> <\/span>Dim arrCrvs,strCrv, arrPoints,arrPoint<\/address>\n<address><span> <\/span>Dim K,i,arrNPt,hh,kk, Offset, Degree<\/address>\n<address> <\/address>\n<address><span> <\/span>arrCrvs = Rhino.GetObjects(&#8220;Select curves&#8221;, 4)<\/address>\n<address><span> <\/span>Offset = Rhino.GetReal(&#8220;Offset?&#8221;)<\/address>\n<address><span> <\/span>Degree = Rhino.GetReal(&#8220;Degree?&#8221;,3,1,100)<\/address>\n<address><span> <\/span>If IsNull(arrCrvs) Then Exit Sub<\/address>\n<address> <\/address>\n<address><span> <\/span>ReDim arrCC(UBound(arrCrvs))<\/address>\n<address> <\/address>\n<address><span> <\/span>hh=0<\/address>\n<address><span> <\/span>For Each strCrv In arrCrvs<\/address>\n<address><span> <\/span>If Rhino.IsPolyline(strCrv) Then<\/address>\n<address><span> <\/span>arrPoints = Rhino.PolylineVertices(strCrv)<\/address>\n<address> <\/address>\n<address><span> <\/span>If IsArray(arrPoints) Then<\/address>\n<address><span> <\/span>k=UBound(arrPoints)<\/address>\n<address><span> <\/span>kk=(k+1)*2-2<\/address>\n<address> <\/address>\n<address><span> <\/span>ReDim arrNPt(kk)<\/address>\n<address> <\/address>\n<address><span> <\/span>Dim nn : nn=0<\/address>\n<address> <\/address>\n<address><span> <\/span>For i=1 To kk Step 2<\/address>\n<address><span> <\/span>arrNPt(i) = Array((arrPoints(nn)(0)+arrPoints(nn+1)(0))\/2, (arrPoints(nn)(1)+arrPoints(nn+1)(1))\/2, (arrPoints(nn)(2)+arrPoints(nn+1)(2))\/2 ) <\/address>\n<address><span> <\/span>nn=nn+1 <\/address>\n<address><span> <\/span>Next<\/address>\n<address><span> <\/span>nn=0<\/address>\n<address><span> <\/span>For i=0 To kk Step 2<\/address>\n<address><span> <\/span>arrNPt(i) = arrPoints(nn)<\/address>\n<address><span> <\/span>nn=nn+1<\/address>\n<address><span> <\/span>Next<\/address>\n<address> <\/address>\n<address><span> <\/span>arrCC(hh) = Rhino.AddCurve (arrNPt ,Degree)<\/address>\n<address><span> <\/span>Dim arrCentro : arrCentro = Rhino.CurveAreaCentroid(arrCC(hh))<\/address>\n<address><span> <\/span>Call Rhino.OffsetCurve(arrCC(hh), arrCentro(0), Offset)<\/address>\n<address><span> <\/span><\/address>\n<address><span> <\/span>hh=hh+1 <\/address>\n<address><span> <\/span><\/address>\n<address><span> <\/span><\/address>\n<address><span> <\/span>End If<\/address>\n<address><span> <\/span>End If<\/address>\n<address><span> <\/span>Next<\/address>\n<p><span> <\/span>Rhino.SelectObjects arrCC<\/p>\n<p><span> <\/span>Rhino.DeleteObjects arrCC<\/p>\n<p><span> <\/span>Rhino.DeleteObjects arrCrvs<\/p>\n<p>End Sub<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este es el Script para suavizar polil\u00edneas: Option Explicit &#8216;Script para suavizar polil\u00edneas y hacer un offset de las mismas Call SuavizarPolilineas() Sub SuavizarPolilineas() Dim arrCrvs,strCrv, arrPoints,arrPoint Dim K,i,arrNPt,hh,kk, Offset, Degree arrCrvs = Rhino.GetObjects(&#8220;Select curves&#8221;, 4) Offset = Rhino.GetReal(&#8220;Offset?&#8221;) Degree = Rhino.GetReal(&#8220;Degree?&#8221;,3,1,100) If IsNull(arrCrvs) Then Exit Sub ReDim arrCC(UBound(arrCrvs)) hh=0 For Each strCrv In arrCrvs [&hellip;]<\/p>\n","protected":false},"author":503,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[835],"tags":[2431,3283,167021],"class_list":["post-48","post","type-post","status-publish","format-standard","hentry","category-cursos","tag-agregar-una-nueva-etiqueta","tag-ceclec","tag-rhinoscript"],"_links":{"self":[{"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/posts\/48","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/users\/503"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":12,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/posts\/48\/revisions"}],"predecessor-version":[{"id":61,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/posts\/48\/revisions\/61"}],"wp:attachment":[{"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/media?parent=48"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/categories?post=48"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/tags?post=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}