{"id":108,"date":"2008-12-10T20:34:55","date_gmt":"2008-12-10T18:34:55","guid":{"rendered":"https:\/\/blogs.ua.es\/glac\/?p=108"},"modified":"2008-12-10T20:51:51","modified_gmt":"2008-12-10T18:51:51","slug":"sunsurfacesplit","status":"publish","type":"post","link":"https:\/\/blogs.ua.es\/glac\/2008\/12\/10\/sunsurfacesplit\/","title":{"rendered":"SunSurfaceSplit"},"content":{"rendered":"<p>\u00a0<\/p>\n<p>Os subimos el script para utilizar la inclinaci\u00f3n del sol como par\u00e1metro que explicamos en la \u00faltima clase<\/p>\n<p><a href=\"https:\/\/blogs.ua.es\/glac\/files\/2008\/12\/sunsurfacesplit.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-109\" src=\"https:\/\/blogs.ua.es\/glac\/files\/2008\/12\/sunsurfacesplit-300x188.jpg\" alt=\"\" width=\"300\" height=\"188\" srcset=\"https:\/\/blogs.ua.es\/glac\/files\/2008\/12\/sunsurfacesplit-300x188.jpg 300w, https:\/\/blogs.ua.es\/glac\/files\/2008\/12\/sunsurfacesplit.jpg 938w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>&#8216;Script written by Miguel Mesa<\/p>\n<p>&#8216;Script copyrighted by {LAC}<\/p>\n<p>&#8216;Script version martes, 26 de agosto de 2008 3:18:07<\/p>\n<p>\u00a0<\/p>\n<p>Call SunSurfaceSplit()<\/p>\n<p>Sub SunSurfaceSplit()<\/p>\n<p><span> <\/span>Dim strSurfaceID : strSurfaceID = Rhino.GetObject(&#8220;Selecciona una Superficie&#8221;, 8, True, True)<\/p>\n<p><span> <\/span>Dim strDirSolID: strDirSolID = Rhino.GetObject(&#8220;Selecciona Direcci\u00f3n del Sol&#8221;, 4, True, True)<\/p>\n<p><span> <\/span>If IsNull (strSurfaceID) Then Exit Sub<\/p>\n<p><span> <\/span>If IsNull (strDirSolID) Then Exit Sub<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>Dim intCount1 : intCount1 = Rhino.GetInteger(&#8220;\u00bfN\u00famero de Frames en u?&#8221;, 10, 2, 2000)<\/p>\n<p><span> <\/span>If IsNull(inCount) Then Exit Sub<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>Dim intCount2 : intCount2 = Rhino.GetInteger(&#8220;\u00bfN\u00famero de Frames en v?&#8221;, 10, 2, 2000)<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>Dim uDomain : uDomain = Rhino.SurfaceDomain(strSurfaceID, 0)<\/p>\n<p><span> <\/span>Dim vDomain : vDomain = Rhino.SurfaceDomain(strSurfaceID, 1)<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>Dim uStep : uStep = (uDomain(1) &#8211; uDomain(0))\/intCount1<\/p>\n<p><span> <\/span>Dim vStep : vStep = (vDomain(1) &#8211; vDomain(0))\/intCount2<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>Dim u, v<\/p>\n<p><span> <\/span>Dim pt<\/p>\n<p><span> <\/span>Dim srfFrame<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>Call Rhino.EnableRedraw(False)<\/p>\n<p><span> <\/span>For u = uDomain(0) To uDomain(1) Step uStep<\/p>\n<p><span> <\/span>For v = vDomain(0) To vDomain(1) Step vStep<\/p>\n<p><span> <\/span>pt = Rhino.EvaluateSurface(strSurfaceID, Array(u, v))<\/p>\n<p><span> <\/span>If Rhino.Distance(pt, Rhino.BrepClosestPoint(strSurfaceID, pt)(0)) &lt; 0.1 Then<\/p>\n<p><span> <\/span>srfFrame = Rhino.SurfaceFrame(strSurfaceID, Array(u, v))<\/p>\n<p><span> <\/span>Dim VectorPerp : VectorPerp = Rhino.SurfaceNormal(strSurfaceID, Array(u, v))<\/p>\n<p><span> <\/span>VectorPerp = Rhino.VectorScale(VectorPerp, 10)<\/p>\n<p><span> <\/span>Dim ExtrudePath : ExtrudePath = Rhino.AddLine(pt,Rhino.VectorAdd(pt,VectorPerp))<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>Dim A : A = Rhino.CurveStartPoint(strDirSolID)<\/p>\n<p><span> <\/span>Dim B : B = Rhino.CurveEndPoint(strDirSolID)<\/p>\n<p><span> <\/span>Dim C : C = Pt<\/p>\n<p><span> <\/span>Dim D : D = Rhino.CurveEndPoint(ExtrudePath)<\/p>\n<p><span> <\/span>&#8216;Dim VSol : VSol = Rhino.VectorCreate(A, B)<\/p>\n<p><span> <\/span>Dim dblAngulo : dblAngulo = Rhino.Angle2(array(A,B), array(C,D))<\/p>\n<p>\u00a0<\/p>\n<p><span> <\/span><\/p>\n<p>\u00a0<\/p>\n<p><span> <\/span>Dim Circle : Circle = Rhino.AddCircle(srfFrame,0.01*dblAngulo(0))<\/p>\n<p><span> <\/span>Dim Cilindro : Cilindro = Rhino.ExtrudeCurve(Circle,ExtrudePath)<\/p>\n<p><span> <\/span>Dim CilindroMoved : CilindroMoved = Rhino.MoveObject(Cilindro, pt, Rhino.VectorSubtract(pt, Rhino.VectorDivide(VectorPerp, 2)))<\/p>\n<p><span> <\/span><\/p>\n<p>\u00a0<\/p>\n<p><span> <\/span>Dim SplitBrep : SplitBrep = Rhino.SplitBrep(strSurfaceID, CilindroMoved, True)<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>If Not IsNull (SplitBrep(0)) Then<\/p>\n<p><span> <\/span>strSurfaceID = SplitBrep(0)<\/p>\n<p><span> <\/span>Call Rhino.DeleteObject(SplitBrep(1))<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>End If<\/p>\n<p><span> <\/span>Call Rhino.DeleteObject(CilindroMoved)<\/p>\n<p><span> <\/span>Call Rhino.DeleteObject(Circle)<\/p>\n<p><span> <\/span>Call Rhino.DeleteObject(ExtrudePath)<\/p>\n<p><span> <\/span>End If<\/p>\n<p><span> <\/span><\/p>\n<p><span> <\/span>Next<span> <\/span><\/p>\n<p><span> <\/span>Next<\/p>\n<p><span> <\/span>Call Rhino.EnableRedraw(True)<\/p>\n<p>End Sub<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 Os subimos el script para utilizar la inclinaci\u00f3n del sol como par\u00e1metro que explicamos en la \u00faltima clase \u00a0 \u00a0 &#8216;Script written by Miguel Mesa &#8216;Script copyrighted by {LAC} &#8216;Script version martes, 26 de agosto de 2008 3:18:07 \u00a0 Call SunSurfaceSplit() Sub SunSurfaceSplit() Dim strSurfaceID : strSurfaceID = Rhino.GetObject(&#8220;Selecciona una Superficie&#8221;, 8, True, True) [&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":[167021],"class_list":["post-108","post","type-post","status-publish","format-standard","hentry","category-cursos","tag-rhinoscript"],"_links":{"self":[{"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/posts\/108","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=108"}],"version-history":[{"count":3,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/posts\/108\/revisions"}],"predecessor-version":[{"id":112,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/posts\/108\/revisions\/112"}],"wp:attachment":[{"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/media?parent=108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/categories?post=108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ua.es\/glac\/wp-json\/wp\/v2\/tags?post=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}