<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2192927445445238042</id><updated>2012-03-02T22:06:15.406+01:00</updated><title type='text'>|  edmondo occhipinti architect   |</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-1833505790696539716</id><published>2010-11-17T09:34:00.004+01:00</published><updated>2010-11-17T09:46:49.577+01:00</updated><title type='text'>TAC &amp; LIVE at Politecnico di Milano</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_egQuwieXGho/TOOUWs15_LI/AAAAAAAAAGY/YDk4pfSuAZk/s1600/New%2BPicture.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 285px; height: 400px;" src="http://1.bp.blogspot.com/_egQuwieXGho/TOOUWs15_LI/AAAAAAAAAGY/YDk4pfSuAZk/s400/New%2BPicture.jpg" alt="" id="BLOGGER_PHOTO_ID_5540435084311133362" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;I'm glad to share what I believe is one of the most interesting events of 2011 in Italy on advanced construction. The &lt;a href="http://www.tac.polimi.it/"&gt;TAC&lt;/a&gt; program will take place at Politecnico di Milano and will be a combination of open lectures and dedicated courses for a limited number of students. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-1833505790696539716?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/1833505790696539716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=1833505790696539716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1833505790696539716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1833505790696539716'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2010/11/tac-live-at-politecnico-di-milano.html' title='TAC &amp; LIVE at Politecnico di Milano'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_egQuwieXGho/TOOUWs15_LI/AAAAAAAAAGY/YDk4pfSuAZk/s72-c/New%2BPicture.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-1168424800907619773</id><published>2008-02-10T19:08:00.001+01:00</published><updated>2008-02-10T19:19:44.780+01:00</updated><title type='text'>PCA PB22 | Morphogenetic Strategies</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_egQuwieXGho/R68-niInQTI/AAAAAAAAAEQ/KTon265-2ys/s1600-h/edmondo+pca-architecture+copy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5165416146516001074" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_egQuwieXGho/R68-niInQTI/AAAAAAAAAEQ/KTon265-2ys/s400/edmondo+pca-architecture+copy.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_egQuwieXGho/R68-ciInQSI/AAAAAAAAAEI/lzY4tbxX65g/s1600-h/edmondo+pca-architecture+(6)+copy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5165415957537440034" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_egQuwieXGho/R68-ciInQSI/AAAAAAAAAEI/lzY4tbxX65g/s400/edmondo+pca-architecture+(6)+copy.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/R68-SyInQRI/AAAAAAAAAEA/DAYquTaygHk/s1600-h/Untitled-3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5165415790033715474" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_egQuwieXGho/R68-SyInQRI/AAAAAAAAAEA/DAYquTaygHk/s400/Untitled-3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/R68-FyInQQI/AAAAAAAAAD4/JZMDCK0gRSo/s1600-h/Untitled-2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5165415566695416066" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_egQuwieXGho/R68-FyInQQI/AAAAAAAAAD4/JZMDCK0gRSo/s400/Untitled-2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/R6892yInQPI/AAAAAAAAADw/jZSupXlr0B4/s1600-h/Untitled-1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5165415308997378290" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_egQuwieXGho/R6892yInQPI/AAAAAAAAADw/jZSupXlr0B4/s400/Untitled-1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:Georgia;font-size:100%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;During last months I was contacted as morphogenetic consultant by &lt;a href="http://pca-architecture.com/"&gt;PCA-Architecture &lt;/a&gt;for the skyscrapers project PB22, at the Defense in Paris. The project will be officially presented at the end of February, and I wish to publish some sample studies I did for this project. The idea was to use the environmental site-specific analysis as a vectors field able to determine an optimal morphology according to reduce the wind pressure over the towers bodies and to have an optimal solar exposure for energy absorption and use. At the end of the morphogenetic process I was asked to build the stereolithography model.&lt;br /&gt;&lt;br /&gt;Edmondo Occhipinti&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-1168424800907619773?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/1168424800907619773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=1168424800907619773' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1168424800907619773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1168424800907619773'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2008/02/during-last-months-i-was-contacted-as.html' title='PCA PB22 | Morphogenetic Strategies'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_egQuwieXGho/R68-niInQTI/AAAAAAAAAEQ/KTon265-2ys/s72-c/edmondo+pca-architecture+copy.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-5732357944070331924</id><published>2008-02-10T18:50:00.000+01:00</published><updated>2008-02-10T19:16:40.573+01:00</updated><title type='text'>On Archistorm #29</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_egQuwieXGho/R688ASInQNI/AAAAAAAAADg/AwEA-BZnYUw/s1600-h/edmondo+archistorm+29+cm.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_egQuwieXGho/R687FiInQMI/AAAAAAAAADY/-HoMxjSKs9o/s1600-h/AS_29_Couv.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5165412263865565378" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_egQuwieXGho/R687FiInQMI/AAAAAAAAADY/-HoMxjSKs9o/s400/AS_29_Couv.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5165414759241564386" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_egQuwieXGho/R689WyInQOI/AAAAAAAAADo/HdcbL3FM0Fw/s400/edmondo+archistorm+29+copy.jpg" border="0" /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Trebuchet MS;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;a href="http://archistorm.com/"&gt;Archistorm #29&lt;/a&gt; [January-February 2008] published one of my recent essays, appeared on this blog, last year. I would like to thank Paul Ereth for the interest on my work. After ten months this blog appears still very small due to my day by day work that makes really hard to produce and post regularly. I really appreciate the interest of my twenty-five readers, and I also would like to thank &lt;a href="http://andreagraziano.blogspot.com/"&gt;Andrea Graziano &lt;/a&gt;[digitag] for his moral support since the beginning.&lt;br /&gt;&lt;br /&gt;Edmondo Occhipinti&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-5732357944070331924?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/5732357944070331924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=5732357944070331924' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/5732357944070331924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/5732357944070331924'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2008/02/on-archistorm-29.html' title='On Archistorm #29'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_egQuwieXGho/R687FiInQMI/AAAAAAAAADY/-HoMxjSKs9o/s72-c/AS_29_Couv.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-1647959185322689974</id><published>2007-11-25T02:11:00.000+01:00</published><updated>2007-11-25T02:17:19.228+01:00</updated><title type='text'>Laser-Cutter Model</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_egQuwieXGho/R0jMpImAk6I/AAAAAAAAADQ/OfvKW0u-61E/s1600-h/model04.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5136580382069658530" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_egQuwieXGho/R0jMpImAk6I/AAAAAAAAADQ/OfvKW0u-61E/s400/model04.jpg" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Some weeks ago an architectural firm from paris asked me to build a conceptual model for&lt;br /&gt;An interactive façade. I had a very simple idea (I had no time too!). so this is the result. I rationalized the manufacturing process in rhinoscript. I create a simple automated process able to create the solid model (for presentation, just like in this image) from an input nurbs surface, and also able to extract every section of the model for laser-cutter manufacturing. A very simple stuff, but useful.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-1647959185322689974?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/1647959185322689974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=1647959185322689974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1647959185322689974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1647959185322689974'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/11/laser-cutter-model.html' title='Laser-Cutter Model'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_egQuwieXGho/R0jMpImAk6I/AAAAAAAAADQ/OfvKW0u-61E/s72-c/model04.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-1403794352264070419</id><published>2007-10-11T22:47:00.001+01:00</published><updated>2007-10-11T22:48:50.651+01:00</updated><title type='text'></title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/Rw6aOJiTrZI/AAAAAAAAADA/ONObQnQKibQ/s1600-h/img10.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5120199394235493778" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_egQuwieXGho/Rw6aOJiTrZI/AAAAAAAAADA/ONObQnQKibQ/s400/img10.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;In mathematics exists a lot of affirmations which nobody has ever been able to demonstrate, as the one of most notorious linear Diophantine equation &lt;/span&gt;&lt;a href="http://cgd.best.vwh.net/home/flt/fltmain.htm"&gt;&lt;span style="font-family:trebuchet ms;"&gt;a^n + b^n = c^n has no solutions in non-zero integers for n &gt; 2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; (last Fermat’s theorem). In nineteen-thirty-one Alan Turing was twenty y.o. and just three years before the world had knew the deductible trueness system by the aka Hilbert’s program (is mathematics complete, consistent and decidable?). In that time Turing was in Cambridge studying mathematics, and trying to dematerialize the mathematics’ decidability (Kurt Gödel had just demonstrate one of the most famous theorem about the incompleteness of mathematics, discrediting the first point of &lt;/span&gt;&lt;a href="http://plato.stanford.edu/entries/hilbert-program/"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Hilbert’s program&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;). Woking on decidability -on the hilbertian question given an axiomatic system and an arbitrary proposition, does exist a procedure that allows to determinate if that proposition is true or false, inside the system?- Turing arises to formulate a different related question –does exist a mechanical procedure to make that?- that evidently call for the more general question –what is a mechanical procedure, that is what is a machine?&lt;br /&gt;A machine is a man-made object with a finite number of configurations, that for everyone of those configurations has completely determined comportments, and is also an object that manipulate symbols. Thus Turing thought was no useful to build specialized machines, able to play check, to translate from Italian and to solve differential equations; his idea was to define the different rules tabula for everyone of these activities, to introduce, then, in an universal machine which, having appropriate codes, would be able to simulate every specialized machine (in that time such concepts like hardware and software simply didn’t exist!). But in that time, nineteen-thirty-four, this idea was so innovative that nobody was able to understand it. The Turing Machine expression will be familiar just later, but today this is the name of that platonic idea, that kantian noumenos of “machinity”. Being celebrated in the small room of the formal logic, Turing moved to Princeton, where he stayed for two years; after that he refused the proposal to assist the teaching of John von Neumann, and come back to Cambridge, where Wittgenstein were lecturing. In that time, nineteen-thirty-seven, he saw the Disney animated feature “Snow White and the Seven Dwarfs”; some of his friends tale that Turing singed, over the months, the witch’s melody while she putted the poison in the apple. Then, the war arose, and nobody had news of Turing’s life.&lt;br /&gt;What really happened at that time, is quite interesting to tale. The Britannic secret services were working to try to penetrate the strategic messages’ coding system, based on Enigma, an infernal machine, able to code and decode messages, using a recto-verso rotors system. The Reich guessed Enigma, absolutely inviolable and used that machine among the entire war. Alain Turing was recruited by the Government Code and Cyber School, dependent by Foreign Office (!), as a decoder. This was his best occupation as long as this was his best enjoyment: thus was under his direction that GC&amp;amp;CS was able to build the anti-Enigma machine, best known as &lt;/span&gt;&lt;a href="http://www.mlb.co.jp/linux/science/genigma/enigma-referat/node6.html"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Bomb&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;. In April nineteen-forty Bomb, perfectly working, was installed in a cantina with all the listening-systems of Britannic intelligence; everything intercepted by radio repeaters in all the world, arose Bomb, able to identify and decode, among hundred thousands of messages, those ones which had a war meaningful interest.&lt;br /&gt;We’ll never know if Turing understood the importance of his work, this is, if he was able to understand what responsibility he had, but the Bomb become, in few months, the Major State oracle, and Turing, as a medium able to make Bomb communicate, the head of Britannic war machine. From nineteen-forty-three the man who, exploring the logic problems, had dematerialized Enigma, starts lo loose his importance and begins to study a code system of human voice, named Dalila. The start point was a registration of Churchill discourses, progressively coded in no understandable sounds, and sequentially decoded. Few people knew that the Normandy invasion, the victory of allied and that strange man, that played the role of pythagoric Archimedes, were strictly linked. Perhaps Turing guessed that if he had told how he won the war, people had thought he was completely crazy. Thus, he won the war, but he lost his peace. Coming back to Cambridge and then to Manchester, as an academic researcher, he works to the project for an English computer, against the famous American one, the Electronic Numerical Integrator And Computer, aka &lt;/span&gt;&lt;a href="http://ftp.arl.mil/~mike/comphist/eniac-story.html"&gt;&lt;span style="font-family:trebuchet ms;"&gt;ENIAC&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;. Thus Turing was interested by the implicated logic system: his dream was to build a machine able to execute every kind of application, and to build applications able to execute and simulate every known process; a machine, he said, is no more able to execute calculus than to play check or translate Italian, but his applications could be able to manipulate formal symbols in such a way that the machine will look as if she really does those activities. Exactly the same thing happens with the human brain. Thus, his idea to create a brain.&lt;br /&gt;In the Forty’s nobody talked about informatics, but of cybernetics, so with the greatest names of Neumann, Wiener and Haldane, sometimes one should also find Turing’s name, as a precursor of the cyber, since his article in the thirty-four. In the fifty’ he publish an interesting article on “Mind”, regarding artificial intelligence, contributing to the eternal debating between materialists and spiritualists; he suggested an operational way to decide if a machine can think as the human do: is a machine able to make believe that she thinks like a human? (I suggest to talk few minutes with &lt;/span&gt;&lt;a href="http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1"&gt;&lt;span style="font-family:trebuchet ms;"&gt;A.L.I.C.E.&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;). In Turing opinion nobody, human or machine, “really” thinks, “really” makes mathematics operations, “really” plays checks, “really” feels the sweetness of kisses: at the level of formal system, everybody, machine or human, manipulate symbols, and this manipulation, at other levels, can be named as one of those activities. Some weeks after this publication, considered as one of the most important in the A.I. field Turing was condemned by the law that prohibited the against-nature relationships. Definitively expulsed from the university, he started studying embryology and morphogenesis: his question was how living being know and execute their applications. He tested his models by computer, spending most of his time in his house and following extremely personal protocols.&lt;br /&gt;In nineteen-fifty-four, the 8th of June the housekeeper discovered the body of Turing, on the bad, in his little house of Manchester. He had put poison in his apple. We could resume the salient points of his life, saying he was an important mathematic and pioneer of artificial intelligence, an eccentric actor of the espionage history, during the second world war, and finally an homosexual martyr. Thank to Andrew Hodges, mathematic and gay, who published in the nineteen-eighty-four an amazing biography of Turing, but also thanks to Sara Turing, Alan’s mother, who wrote the first not-so-exciting biography of her son, and finally thanks to Emmanuel Carrère, for his Alain Turing portrait, published in nineteen-ninety-five on Revue de Littérature Générale.&lt;br /&gt;Edmondo Occhipinti&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-1403794352264070419?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/1403794352264070419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=1403794352264070419' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1403794352264070419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1403794352264070419'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/10/in-mathematics-exists-lot-of.html' title=''/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_egQuwieXGho/Rw6aOJiTrZI/AAAAAAAAADA/ONObQnQKibQ/s72-c/img10.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-6575367173983823841</id><published>2007-06-15T14:26:00.001+01:00</published><updated>2007-06-15T14:41:12.275+01:00</updated><title type='text'>triangulation networks</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/RnKUYIK3DYI/AAAAAAAAACs/FIbG2ORMYzg/s1600-h/edmondo+trangulation.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5076282872230776194" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_egQuwieXGho/RnKUYIK3DYI/AAAAAAAAACs/FIbG2ORMYzg/s400/edmondo+trangulation.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Editing previous density points script this is an interesting application of that logic. this script creates a network between three d points, defining an interior volume. adding spheres to every point we can also think to link spheres and obtain something similar to the 3d cristals structure of prevous post.&lt;br /&gt;this script could be used as a diagrammatic tool for networking programatic or functional informations as well as a volumetric tool based on some external information-based points.&lt;br /&gt;to be developped.&lt;br /&gt;&lt;br /&gt;edmondo occhipinti&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/RnKTvIK3DXI/AAAAAAAAACk/7eDwB5-eQr8/s1600-h/edmondo+trangulation.jpg"&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;Option Explicit&lt;br /&gt;'This Script Generate network pipes based on Points set and their Relative Distances&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;'Structural optimization based on reticular triangulation network&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;'Code by Edmondo Occhipinti Architect [codesign.lab] 2007&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;MsgBox "Code by Edmondo Occhipinti Architect &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:trebuchet ms;"&gt;edmondo@co-design-lab.net&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;"&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Sub network &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Dim arrpts, strline, strcmd, piperadius &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Dim dbdist, dbtotdist &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Dim i, u &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;arrpts = Rhino.GetPointCoordinates ("Select Points to Create Skeleton Pattern") &lt;/div&gt;&lt;br /&gt;&lt;div&gt;If IsNull (arrpts) Then &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Exit Sub &lt;/div&gt;&lt;br /&gt;&lt;div&gt;End If &lt;/div&gt;&lt;br /&gt;&lt;div&gt;For i = 0 To UBound (arrpts) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;dbtotdist = 1000000&lt;br /&gt;For u = 0 To UBound (arrpts) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;strline = Rhino.AddLine (arrpts(i), arrpts(u)) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;dbdist = Rhino.Distance (arrpts(i), arrpts(u)) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;piperadius = 1 &lt;/div&gt;&lt;br /&gt;&lt;div&gt;strCmd = "! _Pipe _SelID " &amp; strline &amp;amp; " " &amp; pipeRadius &amp;amp; " _Enter _Enter" &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Rhino.Command strCmd&lt;br /&gt;If u = UBound (arrpts) And dbdist = 0 Then &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Exit Sub &lt;/div&gt;&lt;br /&gt;&lt;div&gt;End If &lt;/div&gt;&lt;br /&gt;&lt;div&gt;If dbdist = 0 Then &lt;/div&gt;&lt;br /&gt;&lt;div&gt;u = u+1 &lt;/div&gt;&lt;br /&gt;&lt;div&gt;dbdist = Rhino.Distance (arrpts(i), arrpts(u)) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;End If If &lt;/div&gt;&lt;br /&gt;&lt;div&gt;dbdist &lt;/div&gt;&lt;br /&gt;&lt;div&gt;dbtotdist = dbdist &lt;/div&gt;&lt;br /&gt;&lt;div&gt;End If &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Next &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Dim arrPlane, crv, text &lt;/div&gt;&lt;br /&gt;&lt;div&gt;text = Rhino.AddText (dbtotdist, arrpts(i), dbtotdist/5) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;arrPlane = Rhino.PlaneFromFrame (arrpts (i), Array(1.0,0.0,0.0), Array(0.0,1.0,0.0)) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;crv = Rhino.AddCircle (arrPlane, dbtotdist/2) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Rhino.AddSphere arrpts(i), dbtotdist/2 &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Next &lt;/div&gt;&lt;br /&gt;&lt;div&gt;End Sub &lt;/div&gt;&lt;br /&gt;&lt;div&gt;network&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-6575367173983823841?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/6575367173983823841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=6575367173983823841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/6575367173983823841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/6575367173983823841'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/06/triangulation-networks.html' title='triangulation networks'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_egQuwieXGho/RnKUYIK3DYI/AAAAAAAAACs/FIbG2ORMYzg/s72-c/edmondo+trangulation.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-4956935618549147269</id><published>2007-06-06T23:43:00.000+01:00</published><updated>2007-06-06T23:46:09.744+01:00</updated><title type='text'>RhinoScript Workshop. Student Training ESA 2</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;And here a second script developed by Taichi Sunayama. Taichi’s idea was to create a structured script able to attempt to different project phases. His quite long script works for sections and interact with users preferences.   The aim was to create a script which calculates the site specific pollution levels and translates it into a faded point cloud. By doing this he is able to create a growing structure (voronoi based) able to proportionate cells’ dimension to pollution levels. He inserts specific values of sound and air pollution into the script. The user can choose some sample parameters of a specific site (such as routes, number of vehicles, heights, dimensions, etc.) and the script will print some prompt-based data. The script will use these values to build the final site-specific structure. Here I’m pleased to post the 42th version of his script… to be continued and updated. &lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;edmondo occhipinti&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;'workshop growing structuresgenerative scripts&lt;br /&gt;'Script supervisor edmondo occhipinti architect COdesignLab&lt;br /&gt;'Script written by taichi sunayama ecole speciale d'architecture&lt;br /&gt;'Script version lundi 12 mai 2007 18:32:03&lt;br /&gt;&lt;br /&gt;Call HighRise()&lt;br /&gt;&lt;br /&gt;Sub HighRise()&lt;br /&gt;&lt;br /&gt;              Dim strHead1 : strHead1 = "PollutionCloud"&lt;br /&gt;              Dim strHead2 : strHead2 = "PollutionCloud &gt; Intention de forme"&lt;br /&gt;              Dim strHead3 : strHead3 = "Localisation"&lt;br /&gt;              Dim strHead4 : strHead4 = "Intention de form"&lt;br /&gt;              Dim strHead5 : strHead5 = "Creation de module"&lt;br /&gt;              Dim strHead6 : strHead6 = "Intention de form &gt; Creation de module"&lt;br /&gt;              Dim strHead7 : strHead7 = "Identification des modules"&lt;br /&gt;              Dim strHead8 : strHead8 = "extract surfaces"&lt;br /&gt;              Dim arrRoute , strRoute&lt;br /&gt;              arrRoute = array(strHead1 , strHead2 , strHead3 , strHead4 , strHead5 , _&lt;br /&gt;                             strHead6 , strHead7) &lt;br /&gt;              strRoute = rhino.ListBox(arrRoute , "selection de Route")&lt;br /&gt;              Select Case strRoute&lt;br /&gt;                             Case strHead1&lt;br /&gt;                                           Call Route1()&lt;br /&gt;                             Case strHead2&lt;br /&gt;                                           Call Route2()&lt;br /&gt;                             Case strHead3&lt;br /&gt;                                           Call Route3()&lt;br /&gt;                             Case strHead4&lt;br /&gt;                                           Call Route4()&lt;br /&gt;                             Case strHead5&lt;br /&gt;                                           Call Route5()&lt;br /&gt;                             Case strHead6&lt;br /&gt;                                           Call Route6()&lt;br /&gt;                             Case strHead7&lt;br /&gt;                                           Call Route7()&lt;br /&gt;                             Case Else Exit Sub&lt;br /&gt;              End Select        &lt;br /&gt;End Sub&lt;br /&gt;             &lt;br /&gt;Sub Route1()&lt;br /&gt;              '********************************************************************&lt;br /&gt;              '--------------------------------------------------------------------&lt;br /&gt;              Dim       strPtCloud : strPtCloud = InputPollution()&lt;br /&gt;              '--------------------------------------------------------------------                                                                                                                                                                                                                                                                                        &lt;br /&gt;End Sub             '"PollutionCloud"&lt;br /&gt;&lt;br /&gt;Sub Route2()&lt;br /&gt;              '********************************************************************* INPUT **************                  &lt;br /&gt;              '--------------------------------------------------------------------------- CONDITION ----&lt;br /&gt;              Dim strPtCloud : strPtCloud = InputPollution()&lt;br /&gt;              '--------------------------------------------------------------------------- INTENTION ----&lt;br /&gt;              Dim strSite : strSite = rhino.GetObject("selection de site" , 4)                                                 '&lt;br /&gt;              Dim dblHigh : dblHigh = rhino.RealBox("hauteur de gabarit" , 50)&lt;br /&gt;              '-------------------------------------------------------------------&lt;br /&gt;              Dim arrEnv : arrEnv =  FormGenerator(strPtCloud , dblHigh , strSite)&lt;br /&gt;              '-------------------------------------------------------------------&lt;br /&gt;End Sub             '"PollutionCloud &gt; Intention de forme"&lt;br /&gt;&lt;br /&gt;Sub route3()&lt;br /&gt;              Dim strPtCloud : strPtCloud = rhino.Getobject ("select Pointcloud" , 2)   &lt;br /&gt;              Call  Localisation(strPtCloud)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sub Route4()&lt;br /&gt;              '************************************************************************                      &lt;br /&gt;              '------------------------------------------------------------------------&lt;br /&gt;              Dim strPtCloud : strPtCloud = rhino.Getobject ("select Pointcloud" , 2)                                                                                                                     &lt;br /&gt;              '------------------------------------------------------------------------&lt;br /&gt;              Dim strSite : strSite = rhino.GetObject("selection de site" , 4)                                                 '&lt;br /&gt;              Dim dblHigh : dblHigh = rhino.RealBox("hauteur de gabarit" , 50)&lt;br /&gt;              '------------------------------------------------------------------------&lt;br /&gt;              Dim arrEnv : arrEnv =  FormGenerator(strPtCloud , dblHigh , strSite)&lt;br /&gt;              Dim strVlEnv : strVlEnv = arrEnv(0)&lt;br /&gt;              Dim strPtEnv : strPtEnv = arrEnv(1)&lt;br /&gt;             &lt;br /&gt;             &lt;br /&gt;End Sub             '"Intention de forme"&lt;br /&gt;&lt;br /&gt;Sub Route5()&lt;br /&gt;              Dim strPtEnv : strPtEnv = rhino.Getobject ("select Pointcloud" , 2)&lt;br /&gt;              Call Rhino.MessageBeep (5)&lt;br /&gt;              Dim strVlEnv : strVlEnv = rhino.GetObject ("selection volume" , 16)&lt;br /&gt;              Call Rhino.MessageBeep (5)&lt;br /&gt;              '-----------------------------------------------------------------------&lt;br /&gt;              Dim arrBbox : arrBbox = rhino.BoundingBox(strPtEnv)   &lt;br /&gt;              Dim dbldiagonale : dbldiagonale = Rhino.Distance(arrBbox(0), arrBbox(6))&lt;br /&gt;              '------------------------------------------------------------------------&lt;br /&gt;              Dim arrPtEnv : arrPtEnv = Rhino.PointCloudPoints(strPtEnv)&lt;br /&gt;              '------------------------------------------------------------------------&lt;br /&gt;              Dim arrType : arrType = array("aligneXY" , "aligneXYZ" , "normal")&lt;br /&gt;              Dim strType       : strType = rhino.ListBox(arrType , "Type de cell" )&lt;br /&gt;              Dim arrPts&lt;br /&gt;              Select Case strType&lt;br /&gt;                             Case  "aligneXY"&lt;br /&gt;                                           arrPts  = AlignXY(arrPtEnv)&lt;br /&gt;                             Case "aligneXYZ"&lt;br /&gt;                                           arrPts  = AlignXYZ(arrPtEnv)&lt;br /&gt;                             Case "normal" &lt;br /&gt;                                           arrPts = arrPtEnv&lt;br /&gt;                             Case Else Exit Sub&lt;br /&gt;              End Select&lt;br /&gt;              '------------------------------------------------------------------------&lt;br /&gt;              Dim arrCells : arrCells = VoronoiCell(arrPts , dbldiagonale , strVlEnv)                 &lt;br /&gt;End Sub             '"Creation de module"&lt;br /&gt;&lt;br /&gt;Sub Route6()   &lt;br /&gt;              '********************************************************************&lt;br /&gt;              '--------------------------------------------------------------------&lt;br /&gt;              Dim strPtCloud &lt;br /&gt;              strPtCloud = rhino.Getobject ("select Pointcloud" , 2)                                                                                                                        &lt;br /&gt;              '--------------------------------------------------------------------&lt;br /&gt;              Dim strSite , dblHigh&lt;br /&gt;              strSite = rhino.GetObject("selection de site" , 4)                                           &lt;br /&gt;              dblHigh = rhino.RealBox("hauteur de gabarit" , 50)         &lt;br /&gt;              '--------------------------------------------------------------------&lt;br /&gt;              Dim arrEnv : arrEnv =  FormGenerator(strPtCloud , dblHigh , strSite)&lt;br /&gt;              Dim strVlEnv : strVlEnv = arrEnv(0)&lt;br /&gt;              Dim strPtEnv : strPtEnv = arrEnv(1)&lt;br /&gt;              '--------------------------------------------------------------------&lt;br /&gt;              Dim arrBbox , dbldiagonale&lt;br /&gt;              arrBbox = rhino.BoundingBox(strPtEnv)&lt;br /&gt;              dbldiagonale = Rhino.Distance(arrBbox(0), arrBbox(6))&lt;br /&gt;              '--------------------------------------------------------------------&lt;br /&gt;              Dim arrPtEnv : arrPtEnv = Rhino.PointCloudPoints(strPtEnv)&lt;br /&gt;              '--------------------------------------------------------------------&lt;br /&gt;              Dim arrType : arrType = array("aligneXY" , "aligneXYZ" , "normal")&lt;br /&gt;              Dim strType       : strType = rhino.ListBox(arrType , "Type de cell" )&lt;br /&gt;              Dim arrPts&lt;br /&gt;              Select Case strType&lt;br /&gt;                             Case  "aligneXY"&lt;br /&gt;                                           arrPts  = AlignXY(arrPtEnv)&lt;br /&gt;                             Case "aligneXYZ"&lt;br /&gt;                                           arrPts  = AlignXYZ(arrPtEnv)&lt;br /&gt;                             Case "normal" &lt;br /&gt;                                           arrPts = arrPtEnv&lt;br /&gt;                             Case Else Exit Sub&lt;br /&gt;              End Select&lt;br /&gt;              '--------------------------------------------------------------------&lt;br /&gt;              Dim arrCells&lt;br /&gt;              arrCells = VoronoiCell(arrPts , dbldiagonale , strVlEnv)                                                          &lt;br /&gt;End Sub             '"Intention de form &gt; Creation de module"&lt;br /&gt;&lt;br /&gt;Sub Route7()&lt;br /&gt;              Dim arrCells : arrCells = rhino.GetObjects("selection de module" , 16)&lt;br /&gt;              Dim arrPM : arrPM = Identity(arrCells)&lt;br /&gt;             &lt;br /&gt;             &lt;br /&gt;             &lt;br /&gt;             &lt;br /&gt;&lt;br /&gt;End Sub             '"Identification des modules"&lt;br /&gt;&lt;br /&gt;Sub Route8()&lt;br /&gt;              Dim arrCells : arrCells = rhino.GetObjects("selection de module" , 16)&lt;br /&gt;              Dim arrIE : arrIE = Extractor(arrCells)&lt;br /&gt;                            &lt;br /&gt;              Call rhino.DeleteObjects(arrIE(0))&lt;br /&gt;End Sub             'extract surfaces&lt;br /&gt;&lt;br /&gt;'========================================================================&lt;br /&gt;Function InputPollution()&lt;br /&gt;              Dim arrRoads()&lt;br /&gt;              Dim arrNCar()&lt;br /&gt;              Dim arrList2()&lt;br /&gt;              Dim arrRoad&lt;br /&gt;              Dim nCar&lt;br /&gt;              '------------------------------------------------------------------------------------------&lt;br /&gt;              Dim i : i = 0&lt;br /&gt;              Do&lt;br /&gt;                             Dim arrEntry1 :  arrEntry1 = array ("ok" , "fin" )&lt;br /&gt;                             Dim strList1  :   strList1 = rhino.ListBox(arrEntry1 , "selectionne de la rue")&lt;br /&gt;                             If strList1 = "ok" Then&lt;br /&gt;                                           arrRoad = rhino.GetObject("selectionne de la rue" , 4)&lt;br /&gt;                                           If isnull(arrRoad) Then Exit Function&lt;br /&gt;                             End If&lt;br /&gt;                             If strList1 = "fin" Then Exit Do&lt;br /&gt;                             '--------------------------------------------------------------------------------------&lt;br /&gt;                             Dim arrTextPt : arrTextPt = rhino.DivideCurve(arrRoad , 4)&lt;br /&gt;                             Dim strText   : strText =  rhino.AddText ("&lt;" &amp; i + 1 &amp;amp; "&gt;" , arrTextPt(1) , 2)&lt;br /&gt;                             '-------------------------------------------------------------------------------------&lt;br /&gt;                             Call rhino.UnselectAllObjects&lt;br /&gt;                             Call rhino.SelectObject (arrRoad)&lt;br /&gt;                             Call rhino.SelectObject (strText)&lt;br /&gt;                             '---------------------------------------------------------------------------------------                          &lt;br /&gt;                             Dim arrEntry2 : arrEntry2 = array("3000 ~ 6000" , "1500 ~ 3000" , "1000 ~ 1500" , "500 ~ 1000" , "250 ~ 500" , "0 ~ 250")&lt;br /&gt;                             Dim strList2  : strList2 = Rhino.ListBox(arrEntry2 , "Input nombre de voiture sur la rue &lt; " &amp; i + 1 &amp;amp; " &gt; (/heure) ")&lt;br /&gt;                             Select Case strList2&lt;br /&gt;                                           Case "3000 ~ 6000"&lt;br /&gt;                                                         nCar = 6000&lt;br /&gt;                                           Case "1500 ~ 3000"&lt;br /&gt;                                                         nCar = 3000&lt;br /&gt;                                           Case "1000 ~ 1500"&lt;br /&gt;                                                         nCar = 1500&lt;br /&gt;                                           Case "500 ~ 1000"&lt;br /&gt;                                                         nCar = 1000&lt;br /&gt;                                           Case "250 ~ 500"&lt;br /&gt;                                                         nCar = 500&lt;br /&gt;                                           Case "0 ~ 250"&lt;br /&gt;                                                         nCar = 250&lt;br /&gt;                                           Case Else Exit Function&lt;br /&gt;                             End Select&lt;br /&gt;                             '-------------------------------------------------------------&lt;br /&gt;                             ReDim Preserve arrNCar(i)&lt;br /&gt;                             arrNCar(i) = nCar&lt;br /&gt;                             '--------------------------------------------------------------                &lt;br /&gt;                            ReDim Preserve arrRoads(i)&lt;br /&gt;                             arrRoads(i) =  arrRoad&lt;br /&gt;                             '----------------------------------------------------------&lt;br /&gt;                             ReDim Preserve arrList2(i)&lt;br /&gt;                             arrList2(i) =  strList2&lt;br /&gt;                             '------------------------------------------------------------&lt;br /&gt;                             i = i + 1&lt;br /&gt;              Loop&lt;br /&gt;              '------------------------------------------------------------------------------------------&lt;br /&gt;              'DIFINITION DE PORTEE D'EFFET&lt;br /&gt;              Dim dblRange : dblRange = rhino.IntegerBox ("largeur de agencement" , 50 )&lt;br /&gt;              If isnull(dblRange) Then Exit Function&lt;br /&gt;              '------------------------------------------------------------------------------------------&lt;br /&gt;              'INTENSITE DE DEVELLOPEMENT&lt;br /&gt;              Dim arrEntrys3: arrEntrys3 = array ("fort" , "moyen" , "faible")&lt;br /&gt;              Dim strList3 : strList3 = Rhino.ListBox(arrEntrys3, "Intensite de devellopement")&lt;br /&gt;              Dim  dblSquare , intRaise&lt;br /&gt;              Select Case  strList3&lt;br /&gt;                             Case "fort"&lt;br /&gt;                                           dblSquare = sqr(dblRange)&lt;br /&gt;                                           intRaise = 2&lt;br /&gt;                             Case "moyen"&lt;br /&gt;                                           dblSquare =sqr(sqr(dblRange))&lt;br /&gt;                                           intRaise = 4&lt;br /&gt;                             Case "faible"&lt;br /&gt;                                           dblSquare =sqr(sqr(sqr(dblRange)))&lt;br /&gt;                                           intRaise = 8&lt;br /&gt;                             Case Else Exit Function&lt;br /&gt;              End Select        &lt;br /&gt;              '------------------------------------------------------------------------------------------       &lt;br /&gt;              Dim arrBbox : arrBbox = rhino.BoundingBox(arrRoads)&lt;br /&gt;              Dim arrListPt&lt;br /&gt;              For i = 0 To  UBound(arrRoads)&lt;br /&gt;                             arrListPt = array(arrBbox(2)(0) , arrBbox(2)(1) - (i * 16) , 0)           &lt;br /&gt;                             Dim txtN , txtCond , txtNCar , txtVar , txtLA , txtID&lt;br /&gt;                             txtN =  rhino.AddText("&lt;" &amp; i+1 &amp;amp; "&gt;" , arrListPt , 1)&lt;br /&gt;                             Call rhino.ObjectName(txtN , "text")&lt;br /&gt;                             txtCond = rhino.AddText("-- condition de la rue --", array(arrListPt(0),arrListPt(1)-2,0) , 1)&lt;br /&gt;                             Call rhino.ObjectName(txtCond , "text")&lt;br /&gt;                             txtNCar = rhino.AddText ("nombre de voiture : " &amp; arrList2(i) &amp;amp; " / heure" , array(arrListPt(0),arrListPt(1)-4,0) , 1)&lt;br /&gt;                             Call rhino.ObjectName(txtNCar , "text")&lt;br /&gt;                             txtVar = rhino.AddText ("-- variable de generation des points --", array(arrListPt(0),arrListPt(1)-8,0) , 1)&lt;br /&gt;                             Call rhino.ObjectName(txtVar , "text")&lt;br /&gt;                             txtLA = rhino.AddText ("largeur de agencement : " &amp; dblRange &amp;amp; "m" , array(arrListPt(0),arrListPt(1)-10,0) ,1)&lt;br /&gt;                             Call rhino.ObjectName(txtLA , "text")&lt;br /&gt;                             txtID = rhino.AddText ("Intensite de devellopement : " &amp; strList3 ,array(arrListPt(0),arrListPt(1)-12,0) , 1)&lt;br /&gt;                             Call rhino.ObjectName(txtID , "text")                     &lt;br /&gt;              Next&lt;br /&gt;              '----------------------------------------------------------------------------------------------------&lt;br /&gt;              Dim arrPts : arrPts =  PollutionCloud(arrRoads , dblRange , dblSquare , intRaise ,arrNCar , arrBbox)&lt;br /&gt;              '----------------------------------------------------------------------------------------------------&lt;br /&gt;              Dim strPts : strPts = rhino.AddPointCloud(arrPts)           &lt;br /&gt;              InputPollution = strPts                               &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function PollutionCloud(arrRoads , dblRange , dblSquare , intRaise ,_&lt;br /&gt;              arrNCar , arrBbox)&lt;br /&gt;             &lt;br /&gt;              Dim arrPtsJ()                  &lt;br /&gt;              Dim  i , j , N&lt;br /&gt;              '------------------------------------------------------------------------&lt;br /&gt;              N = 0                  &lt;br /&gt;              For i = 0 To UBound(arrRoads)&lt;br /&gt;                             'NOx mg/h sur une rue&lt;br /&gt;                             Dim dblLengthRoad : dblLengthRoad =rhino.CurveLength(arrRoads(i))                            &lt;br /&gt;                             Dim dblGas&lt;br /&gt;                             dblGas = 80*(dblLengthRoad/1000)*(arrNCar(i))&lt;br /&gt;                             '*echapement de gaz(NOx):80mg/km&lt;br /&gt;                             dblGas = (int(dblGas*100))/100&lt;br /&gt;                             '--------------------------------------------------------------------&lt;br /&gt;                             'AGENCEMENT DE POINTS      &lt;br /&gt;                             Dim arrPtStart : arrPtStart = rhino.CurveStartPoint (arrRoads(i))&lt;br /&gt;                             Dim arrPtEnd : arrPtEnd = rhino.CurveEndPoint (arrRoads(i))&lt;br /&gt;                             Dim vecS2E : vecS2E = rhino.VectorCreate(arrPtStart , arrPtEnd)&lt;br /&gt;                             Dim dblLength : dblLength = rhino.VectorLength (vecS2E)&lt;br /&gt;                             Dim vecNormal : vecNormal = Rhino.CurveNormal(arrRoads(i))&lt;br /&gt;                             &lt;br /&gt;                             '----------------------------------------------------------------               &lt;br /&gt;                             Dim dblVolume : dblVolume = 3.14*dblRange*dblRange*dblLength&lt;br /&gt;                             ' NOMBREDE DE POINT&lt;br /&gt;                             Dim nPoints : nPoints = int(((dblGas*dblVolume)/10^10)) ' int((dblGas*dblVolume)/10^6)30m  'indice ???????  &gt; photocatalyse&lt;br /&gt;                             Call rhino.Print ( "npoints :" &amp; nPoints)  &lt;br /&gt;                             '----------------------------------------------------------------             &lt;br /&gt;                             'CALCUL DE DENSITE DE POINT&lt;br /&gt;                             Dim dblDensity : dblDensity = nPoints/(dblVolume/1000^3)          '!!&lt;br /&gt;                             dblDensity = int(dblDensity)&lt;br /&gt;                             '----------------------------------------------------------------&lt;br /&gt;                             For j = 0 To nPoints&lt;br /&gt;                                           Dim dblRandom : dblRandom  = rnd*nPoints                                                            &lt;br /&gt;                                           Dim arrDomain : arrDomain = Rhino.CurveDomain(arrRoads(i))&lt;br /&gt;                                           Dim dblParam : dblParam =  ( ( arrDomain(1)-arrDomain(0) ) / ( nPoints ) ) * ( dblRandom )&lt;br /&gt;                                           Dim arrPt : arrPt = Rhino.EvaluateCurve(arrRoads(i), dblParam)&lt;br /&gt;                                           Dim dblRandamEx : dblRandamEx = (rnd*dblSquare)^intRaise&lt;br /&gt;                                           Dim vecDir &lt;br /&gt;                                           vecDir = rhino.VectorRotate (vecS2E , 90 , vecNormal)&lt;br /&gt;                                           vecDir = rhino.VectorRotate (vecDir , rnd*180 , vecS2E)&lt;br /&gt;                                           If vecDir(2) &lt; 0 Then&lt;br /&gt;                                                         vecDir = rhino.VectorReverse(vecDir)&lt;br /&gt;                                           End If&lt;br /&gt;                                           vecDir =  rhino.VectorDivide ( vecDir , dblLength/dblRandamEx )&lt;br /&gt;                                           Dim arrPtEx :  arrPtEx = rhino.PointAdd (arrPt , vecDir)&lt;br /&gt;                                           '------------------------------------------------------------&lt;br /&gt;                                           ReDim Preserve arrPtsJ(N)&lt;br /&gt;                                           arrPtsJ(N) = arrPtEx&lt;br /&gt;                                           N = N + 1&lt;br /&gt;                                           '------------------------------------------------------------                                 &lt;br /&gt;                             Next&lt;br /&gt;                             '----------------------------------------------------------------&lt;br /&gt;                             Dim arrListPt : arrListPt = array(arrBbox(2)(0) , arrBbox(2)(1) - (i * 16) , 0)&lt;br /&gt;                             Dim txtNOx , txtDMP&lt;br /&gt;                             txtNOx = rhino.AddText ("NOx : " &amp; dblGas &amp;amp; " mg / heure"  , _&lt;br /&gt;                                           array(arrListPt(0),arrListPt(1)-6,0) , 1)&lt;br /&gt;                             Call rhino.ObjectName(txtNOx, "text")&lt;br /&gt;                             txtDMP = rhino.AddText ("densite moyenne de point : " &amp; _&lt;br /&gt;                                           dblDensity &amp; "/ km3"  , array(arrListPt(0),arrListPt(1)-14,0) , 1)&lt;br /&gt;                             Call rhino.ObjectName(txtDMP , "text")&lt;br /&gt;                             '----------------------------------------------------------------                                                                      &lt;br /&gt;              Next&lt;br /&gt;              '--------------------------------------------------------------------                                     &lt;br /&gt;              PollutionCloud = arrPtsJ                          &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;'========================================================================&lt;br /&gt;&lt;br /&gt;Function Localisation(PtCloud)&lt;br /&gt;              Dim arrPts    : arrPts    = rhino.PointCloudPoints(PtCloud)&lt;br /&gt;              Dim arrPoint     &lt;br /&gt;              Dim arrPoints()&lt;br /&gt;              Dim i , j&lt;br /&gt;              For i = 0 To UBound(arrPts)&lt;br /&gt;                             Dim intRnd : intRnd = int(rnd*100)&lt;br /&gt;                             If            intRnd = 0 Then&lt;br /&gt;                                           arrPoint = rhino.AddPoint(arrPts(i))&lt;br /&gt;                                           ReDim Preserve arrPoints(j)&lt;br /&gt;                                           arrPoints(j) =     arrPoint             &lt;br /&gt;                                           j = j + 1&lt;br /&gt;                             End If   &lt;br /&gt;              Next&lt;br /&gt;              call rhino.Print(UBound(arrPoints))&lt;br /&gt;              Call Rhino.SelectObjects (arrPoints)     &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;'====================================================================&lt;br /&gt;&lt;br /&gt;Function FormGenerator(PtCloud , High , Base)             &lt;br /&gt;              Dim arrType : arrType = array ("Normal" , "Varie" , "Varie Coubure")&lt;br /&gt;              Dim strType : strType = rhino.ListBox(arrType , "selection de type de generation de la form")&lt;br /&gt;              '=====================================================================================&lt;br /&gt;              Dim strGab : strGab = Gabarit(High , Base)       &lt;br /&gt;              '---------------------------------------------------------&lt;br /&gt;              Dim Bbox : Bbox = rhino.BoundingBox(strGab)&lt;br /&gt;              Dim strText1, strText2 , strText3 , strText4&lt;br /&gt;              strText1 = rhino.AddText("Type de enveloppe : " &amp; strType , array(Bbox(6)(0), Bbox(6)(1)-2,Bbox(6)(2)),1)&lt;br /&gt;              Call rhino.ObjectName(strText1 , "Text")&lt;br /&gt;              '----------------------------------------------------------------------------------&lt;br /&gt;              Dim strPtLimite : strPtLimite = PtLimitor(PtCloud , strGab)&lt;br /&gt;              Dim arrPtSite : arrPtSite = rhino.PointCloudPoints(strPtLimite)&lt;br /&gt;              '======================================================================================             &lt;br /&gt;              Dim strForm&lt;br /&gt;              Dim strPtEnv&lt;br /&gt;              Dim strHigh&lt;br /&gt;              Select Case strType&lt;br /&gt;                             '----------------------------------------------------------------------------------    &lt;br /&gt;                             Case "Normal"&lt;br /&gt;                                           strForm = strGab&lt;br /&gt;                                           strPtEnv = strPtLimite   &lt;br /&gt;                                           '----------------------------------------------------------------------------------&lt;br /&gt;                                           Call rhino.UnselectAllObjects   &lt;br /&gt;                             '----------------------------------------------------------------------------------&lt;br /&gt;                             Case Else&lt;br /&gt;                                           Dim nDiv : nDiv = rhino.IntegerBox("creer la variation - division par : " , 3)&lt;br /&gt;                                           '=====================================================================================&lt;br /&gt;                                           strText2 = rhino.AddText("division des points : " &amp; nDiv , array(Bbox(6)(0), Bbox(6)(1)-4,Bbox(6)(2)),1)&lt;br /&gt;                                           Call rhino.ObjectName(strText2 , "Text")&lt;br /&gt;                                           '=====================================================================================&lt;br /&gt;                                           Call rhino.DeleteObject(strGab)&lt;br /&gt;                                           '-------------------------------------------------------------------------------------&lt;br /&gt;                                           Dim arrGet                                                      &lt;br /&gt;                                           Dim arrPoints()&lt;br /&gt;                                           Dim i , j&lt;br /&gt;                                           For i = 0 To UBound(arrPtsite)&lt;br /&gt;                                                         ReDim Preserve arrPoints(i)&lt;br /&gt;                                                         arrPoints(i) = rhino.AddPoint(arrPtsite(i))&lt;br /&gt;                                                         strHigh = (int((arrPtsite(i)(2))*100))/100&lt;br /&gt;                                                         Call rhino.ObjectName(arrPoints(i) , strHigh)&lt;br /&gt;                                                         Call rhino.Print (strHigh)&lt;br /&gt;                                           Next&lt;br /&gt;                                           '------------------------------------------------------------------------------------&lt;br /&gt;                                           Dim arrPt()        &lt;br /&gt;                                           Dim arrPtCord()                           &lt;br /&gt;                                           i = 0 : j = 0                        &lt;br /&gt;                                           Do &lt;br /&gt;                                                         If i  &gt;= High Then Exit Do&lt;br /&gt;                                                         arrGet =  rhino.ObjectsByName(i)&lt;br /&gt;                                                         If isArray(arrGet) Then&lt;br /&gt;                                                                        ReDim Preserve arrPt(j)             &lt;br /&gt;                                                                        arrPt(j) = arrGet(0)                                                                                                                            &lt;br /&gt;                                                                        j = j + 1&lt;br /&gt;                                                         End If                                              &lt;br /&gt;                                                         i = i + 0.01&lt;br /&gt;                                           Loop&lt;br /&gt;                                           '------------------------------------------------------------------------------------&lt;br /&gt;                                           For i = 0 To UBound (arrPt)&lt;br /&gt;                                                         ReDim Preserve arrPtCord(i)&lt;br /&gt;                                                         arrPtCord(i) = Rhino.PointCoordinates(arrPt(i))&lt;br /&gt;                                           Next&lt;br /&gt;                                           '------------------------------------------------------------------------------------&lt;br /&gt;                                           Dim nPts   : nPts = UBound(arrPtCord) + 1&lt;br /&gt;                                           Dim nPtEns : nPtEns = (nPts/nDiv) -1&lt;br /&gt;                                           '------------------------------------------------------------------------------------&lt;br /&gt;                                           strText3 = rhino.AddText("Nombre des points chanque division : " &amp; int(nPtEns + 1) , array(Bbox(6)(0), Bbox(6)(1)-6,Bbox(6)(2)),1)&lt;br /&gt;                            &lt;br /&gt;                                           Call rhino.ObjectName(strText3 , "Text")&lt;br /&gt;                                           '------------------------------------------------------------------------------------&lt;br /&gt;                                           Dim arrPtGroup()&lt;br /&gt;                                           Dim arrGroup()&lt;br /&gt;                                           Dim N : N = 0&lt;br /&gt;                                           For i = 0 To  (nDiv - 1)&lt;br /&gt;                                                         j = 0&lt;br /&gt;                                                         Do&lt;br /&gt;                                                                        If j &gt; nPtEns Then Exit Do&lt;br /&gt;                                                                        If N &gt;= nPts  Then Exit Do&lt;br /&gt;                                                                        ReDim Preserve arrPtGroup(j)&lt;br /&gt;                                                                        arrPtGroup(j) = arrPtCord(N)&lt;br /&gt;                                                                        N = N + 1&lt;br /&gt;                                                                        j = j +1&lt;br /&gt;                                                         Loop&lt;br /&gt;                                                         ReDim Preserve arrGroup(i)&lt;br /&gt;                                                         arrGroup(i) =  arrPtGroup&lt;br /&gt;                                           Next&lt;br /&gt;                                           '-----------------------------------------------------------------------------------&lt;br /&gt;                                           Dim arrPtLevel&lt;br /&gt;                                           Dim strPtLv&lt;br /&gt;                                           Dim arrPtLv&lt;br /&gt;                                           For i = 0 To UBound(arrGroup)&lt;br /&gt;                                                         strPtLv = "PtLv" &amp; i&lt;br /&gt;                                                         For j = 0 To UBound(arrGroup(i))&lt;br /&gt;                                                                        arrPtLevel = array(arrGroup(i)(j)(0) , arrGroup(i)(j)(1) , arrGroup(i)(UBound(arrGroup(i)))(2))&lt;br /&gt;                                                                        arrPtLevel = rhino.AddPoint(arrPtLevel)&lt;br /&gt;                                                                        Call rhino.ObjectName(arrPtLevel , strPtLv)&lt;br /&gt;                                                         Next&lt;br /&gt;                                                         Call rhino.UnselectAllObjects&lt;br /&gt;                                                         arrPtLv = rhino.ObjectsByName(strPtLv , True)&lt;br /&gt;                                                         Call rhino.Command ("!_Delaunay"  &amp; " " &amp;amp; " " &amp;  "_enter _enter" &amp; "_shader" &amp;amp; " " &amp; "_none" &amp;amp; " " &amp; "_enter")&lt;br /&gt;                                                         Call rhino.DeleteObjects(arrPtLv)                                                                    &lt;br /&gt;                                           Next&lt;br /&gt;                                           '-----------------------------------------------------------------------------------&lt;br /&gt;                                           Dim arrMesh : arrMesh = rhino.ObjectsByType(32 , True)&lt;br /&gt;                                           For Each i In arrMesh&lt;br /&gt;                                                         Call  rhino.ObjectName(i, "Delaunay")&lt;br /&gt;                                           Next&lt;br /&gt;                                           '-----------------------------------------------------------------------------------&lt;br /&gt;                                           '                                          Dim dblAreaBase : dblAreaBase =  rhino.CurveArea (Base)&lt;br /&gt;                                           '-----------------------------------------------------------------------------------&lt;br /&gt;                                           Dim arrOLine&lt;br /&gt;                                           Dim arrOLines()&lt;br /&gt;                                           Dim strOline&lt;br /&gt;                                           Call rhino.Command ("!_CPlane" &amp; " " &amp;amp; "_World" &amp; " " &amp;amp; "_Bottom")                     &lt;br /&gt;                                           For i = 0 To UBound(arrMesh)&lt;br /&gt;                                                         Call rhino.UnselectAllObjects&lt;br /&gt;                                                         Call rhino.Command ("!_bottom")&lt;br /&gt;                                                         Call rhino.SelectObject(arrMesh(i))&lt;br /&gt;                                                         Call rhino.Command("!_Meshoutline" &amp; " " &amp;amp; "_enter")&lt;br /&gt;                                                         arrOLine = rhino.ObjectsByName("",True)&lt;br /&gt;                                                         strOline = arrOLine(0)&lt;br /&gt;                                                         Call rhino.ObjectName(strOline,"Outline")&lt;br /&gt;                                                         Call rhino.MoveObject(strOline , array(0,0,0) , array(0,0,arrGroup(UBound(arrGroup)-i)(UBound(arrGroup(i)))(2)))&lt;br /&gt;                                                         Call rhino.command("!_Perspective")                                &lt;br /&gt;                                                         '-----------------------------------------------------------------------------------&lt;br /&gt;                                                         If strType = "Varie Coubure" Then&lt;br /&gt;                                                                        Dim arrVertice : arrVertice = rhino.PolylineVertices(strOline)       &lt;br /&gt;                                                                        strOline = Rhino.AddInterpCurveEx (arrVertice , 3 , 1 )                                                             &lt;br /&gt;                                                         End If&lt;br /&gt;                                                         '-----------------------------------------------------------------------------------&lt;br /&gt;                                                         ReDim Preserve arrOLines(i)&lt;br /&gt;                                                         arrOLines(i)= strOline&lt;br /&gt;                                           Next&lt;br /&gt;                                           Call rhino.Command ("!_CPlane" &amp; " " &amp;amp; "_World" &amp; " " &amp;amp; "_Top")&lt;br /&gt;                                           '----------------------------------------------------------------------------------&lt;br /&gt;                                           Call rhino.UnselectAllObjects   &lt;br /&gt;                                           Call rhino.DeleteObjects(arrPoints)&lt;br /&gt;                                           '----------------------------------------------------------------------------------&lt;br /&gt;                                           Dim strSite : strSite = rhino.CopyObject(Base)  &lt;br /&gt;                                           Dim arrLoft()&lt;br /&gt;                                           For i = 0 To  UBound(arrOlines) + 1&lt;br /&gt;                                                         If i &lt;&gt;     UBound(arrOlines) + 1  Then&lt;br /&gt;                                                                        ReDim Preserve arrLoft(i)&lt;br /&gt;                                                                        arrLoft(i) = arrOlines(i)&lt;br /&gt;                                                         End If                 &lt;br /&gt;                                                         If i = UBound(arrOlines) + 1 Then&lt;br /&gt;                                                                        ReDim Preserve arrLoft(i)&lt;br /&gt;                                                                        arrLoft(i) = strSite&lt;br /&gt;                                                         End If                 &lt;br /&gt;                                           Next     &lt;br /&gt;                                           Dim arrForm&lt;br /&gt;                                           arrForm = Rhino.AddLoftSrf (arrLoft , , , 2 , 0 , , False)&lt;br /&gt;                                           Call rhino.ObjectName(arrForm , "Enveloppe")&lt;br /&gt;                                           Dim arrCap : arrCap = rhino.ObjectsByName("Enveloppe")&lt;br /&gt;                                           Call rhino.CapPlanarHoles(arrCap(0))&lt;br /&gt;                                           strForm = arrCap(0)&lt;br /&gt;                                           '----------------------------------------------------------------------------------&lt;br /&gt;                                           strPtEnv =          PtLimitor(strPtLimite , strForm)&lt;br /&gt;                                           '----------------------------------------------------------------------------------&lt;br /&gt;                                           Call rhino.DeleteObjects(arrMesh)&lt;br /&gt;                                           Call rhino.DeleteObjects(arrLoft)&lt;br /&gt;                             '----------------------------------------------------------------------------------&lt;br /&gt;              End Select&lt;br /&gt;              '----------------------------------------------------------------------------------&lt;br /&gt;              Dim nPtEnv : nPtEnv = rhino.PointCloudCount(strPtEnv)&lt;br /&gt;              strText4 = rhino.AddText("nombre de point dans volume : " &amp; nPtEnv , Bbox(6),1)&lt;br /&gt;              Call rhino.ObjectName(strText4 , "Text")             &lt;br /&gt;              '----------------------------------------------------------------------------------    &lt;br /&gt;              FormGenerator = array(strForm , strPtEnv)&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function Gabarit(dblHigh , strSite)         &lt;br /&gt;              Dim arrLimite&lt;br /&gt;              arrLimite = array(strSite)&lt;br /&gt;              arrLimite = rhino.AddPlanarSrf(arrLimite)&lt;br /&gt;              Dim strHigh : strHigh = rhino.AddLine(array(0,0,0) , array(0,0,dblHigh))&lt;br /&gt;              Dim strLimite&lt;br /&gt;              strLimite = rhino.ExtrudeSurface(arrLimite(0) , strHigh , True)&lt;br /&gt;              '-----------------------------------------------------------------------------&lt;br /&gt;              Call rhino.DeleteObjects(arrLimite)&lt;br /&gt;              Call rhino.DeleteObject(strHigh)&lt;br /&gt;              Call rhino.UnselectAllObjects&lt;br /&gt;              '-----------------------------------------------------------------------------&lt;br /&gt;              Gabarit = strLimite&lt;br /&gt;End Function    &lt;br /&gt;&lt;br /&gt;Function PtLimitor(PtCloud ,Limite)&lt;br /&gt;              Dim Points : Points = rhino.PointCloudPoints(PtCloud)&lt;br /&gt;              Dim arrPtsIn()&lt;br /&gt;              Dim arrPtsOut()                          &lt;br /&gt;              Dim i , j , N&lt;br /&gt;              j = 0&lt;br /&gt;              N = 0&lt;br /&gt;              For i = 0 To UBound(Points)&lt;br /&gt;                             If rhino.IsPointInSurface(Limite , Points(i)) Then&lt;br /&gt;                                           ReDim Preserve arrPtsIn(j)&lt;br /&gt;                                           arrPtsIn(j) = Points(i)&lt;br /&gt;                                           j = j + 1&lt;br /&gt;                             Else&lt;br /&gt;                                           ReDim Preserve arrPtsOut(N)&lt;br /&gt;                                           arrPtsOut(N) = Points(i)&lt;br /&gt;                                           N = N +1&lt;br /&gt;                             End If                                              &lt;br /&gt;              Next&lt;br /&gt;              '---------------------------------------------------------------------------&lt;br /&gt;              If isArray(arrPtsIn) Then&lt;br /&gt;                             Dim strPtsIn : strPtsIn = Rhino.AddPointCloud (arrPtsIn)&lt;br /&gt;                             Call rhino.ObjectColor(strPtsIn , RGB(139,121,94))&lt;br /&gt;                             Call rhino.ObjectName(strPtsIn , "PtsIn")&lt;br /&gt;              End If   &lt;br /&gt;              If isArray(arrPtsOut) Then&lt;br /&gt;                             Dim strPtsOut : strPtsOut = Rhino.AddPointCloud (arrPtsOut)&lt;br /&gt;                             Call rhino.ObjectColor(strPtsOut , RGB(230,230,230))&lt;br /&gt;                             Call rhino.ObjectName(strPtsOut , "PtsOut")&lt;br /&gt;              End If&lt;br /&gt;              '---------------------------------------------------------------------------&lt;br /&gt;              Call rhino.DeleteObject(PtCloud)           &lt;br /&gt;              '---------------------------------------------------------------------------&lt;br /&gt;              PtLimitor = strPtsIn                                    &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;'====================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Function VoronoiCell(Points , Length , Evlp)&lt;br /&gt;                            &lt;br /&gt;              Dim arrCells&lt;br /&gt;              Dim arrSrfs()&lt;br /&gt;              Dim i, j ,N&lt;br /&gt;              '-------------------------------------------------------------------&lt;br /&gt;              For i = 0 To UBound(Points)      &lt;br /&gt;                             '------------------------------------------------------------------------&lt;br /&gt;                             N = 0&lt;br /&gt;                             For j = 0 To UBound(Points)&lt;br /&gt;                                           If j &lt;&gt; i Then&lt;br /&gt;                                                         Dim vecDir : vecDir = rhino.VectorCreate (Points(j) , Points(i))&lt;br /&gt;                                                         Dim vecMid : vecMid = rhino.VectorDivide (vecDir , 2)&lt;br /&gt;                                                         Dim arrMidPt : arrMidPt = rhino.PointAdd(Points(i) , vecMid)&lt;br /&gt;                                                         Dim arrPlane : arrPlane = rhino.PlaneFromNormal (arrMidPt, vecDir)&lt;br /&gt;                                                         Dim strSrf : strSrf = Rhino.AddPlaneSurface (arrPlane, 2*Length, 2*Length)&lt;br /&gt;                                                         Dim arrCenter : arrCenter = Rhino.SurfaceAreaCentroid (strSrf)&lt;br /&gt;                                                         Call rhino.MoveObject(strSrf , arrCenter(0) , arrMidPt)                                               &lt;br /&gt;                                                         ReDim Preserve arrSrfs(N)&lt;br /&gt;                                                         arrSrfs(N) = strSrf&lt;br /&gt;                                                         N = N + 1&lt;br /&gt;                                                         '                                                         Call Rhino.HideObject (strSrf)&lt;br /&gt;                                                         '--------------------------------------------------------------  &lt;br /&gt;                                           End If&lt;br /&gt;                             Next     &lt;br /&gt;                             '-----------------------------------------------------------------------------------  &lt;br /&gt;                             '                            Call Rhino.ShowObjects (arrSrfs)                                       &lt;br /&gt;                             Dim strEvlp : strEvlp = rhino.CopyObject(Evlp)   &lt;br /&gt;                             Dim strCell : strCell = strEvlp    &lt;br /&gt;                             Dim arrInput1 : arrInput1 =  array(strCell)&lt;br /&gt;                             For j = 0 To Ubound(arrSrfs)&lt;br /&gt;                                                                                                                                                                                                                                                                                                            &lt;br /&gt;                                           Dim arrInput2 : arrInput2 = array(arrSrfs(j))&lt;br /&gt;                                          &lt;br /&gt;                                           Dim arrCell   : arrCell   = Rhino.BooleanIntersection (arrInput1, arrInput2)&lt;br /&gt;                                          &lt;br /&gt;                                           If isArray(arrCell) Then &lt;br /&gt;                                                         arrInput1  =  arrCell                     &lt;br /&gt;                                           Else&lt;br /&gt;                                                         Call rhino.DeleteObject(arrSrfs(j))&lt;br /&gt;                                           End If&lt;br /&gt;                                          &lt;br /&gt;                             Next&lt;br /&gt;                             '----------------------------------------------------------------------------&lt;br /&gt;              Next&lt;br /&gt;              '---------------------------------------------------------------------------&lt;br /&gt;              Call rhino.DeleteObject(Evlp)&lt;br /&gt;              VoronoiCell = rhino.ObjectsByName("Cell")                                   &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function AlignXY(Points)&lt;br /&gt;              Dim arrPts()&lt;br /&gt;              Dim arrNear , dblNear&lt;br /&gt;              '-------------------------------------------------------------------------&lt;br /&gt;              Dim i ,j&lt;br /&gt;              For i = 0 To  UBound(Points)&lt;br /&gt;                             dblNear = 10000&lt;br /&gt;                             '-----------------------------------------------------------------------&lt;br /&gt;                             For j = 0 To UBound(Points)&lt;br /&gt;                                           If i&lt;&gt;j Then&lt;br /&gt;                                                         Dim       arrPtXY1 : arrPtXY1         = array(Points(i)(0), Points(i)(1),0)&lt;br /&gt;                                                         Dim arrPtXY2 : arrPtXY2              = array(Points(j)(0), Points(j)(1),0)          &lt;br /&gt;                                                         Dim dblDis : dblDis = Rhino.Distance(arrPtXY1 , arrPtXY2)        &lt;br /&gt;                                                         If dblDis &lt; dblNear         Then&lt;br /&gt;                                                                        dblNear = dblDis&lt;br /&gt;                                                                        arrNear = Points(j)                                                                  &lt;br /&gt;                                                         End If                                              &lt;br /&gt;                                           End If   &lt;br /&gt;                             Next&lt;br /&gt;                             '-------------------------------------------------------------------------&lt;br /&gt;                             If i&lt;&gt;j Then&lt;br /&gt;                                           arrPtXY2 = array(arrNear(0), arrNear(1),0)          &lt;br /&gt;                                           Dim vecDir    : vecDir    = rhino.VectorCreate (arrPtXY2 , arrPtXY1)&lt;br /&gt;                                           Dim vecMid    : vecMid    = rhino.VectorDivide (vecDir , 2)&lt;br /&gt;                                           Dim arrMidPt  : arrMidPt  = rhino.PointAdd(arrPtXY1 , vecMid)&lt;br /&gt;                                           Dim arrMidPtZ : arrMidPtZ = array(arrMidPt(0) , arrMidPt(1) , Points(i)(2))&lt;br /&gt;                                           ReDim Preserve arrPts(i) &lt;br /&gt;                                           arrPts(i) = arrMidPtZ      &lt;br /&gt;                             End If&lt;br /&gt;                             '-------------------------------------------------------------------------                             &lt;br /&gt;              Next&lt;br /&gt;              '-------------------------------------------------------------------------------&lt;br /&gt;              AlignXY = arrPts             &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function AlignXYZ(Points)&lt;br /&gt;              Dim arrPts()&lt;br /&gt;              Dim arrNear , dblNear&lt;br /&gt;              '-------------------------------------------------------------------------&lt;br /&gt;              Dim i ,j&lt;br /&gt;              For i = 0 To  UBound(Points)&lt;br /&gt;                             dblNear = 10000&lt;br /&gt;                             '-----------------------------------------------------------------------&lt;br /&gt;                             For j = 0 To UBound(Points)&lt;br /&gt;                                           If i&lt;&gt;j Then                      &lt;br /&gt;                                                         Dim dblDis : dblDis = Rhino.Distance(Points(i), Points(j))          &lt;br /&gt;                                                         If dblDis &lt; dblNear         Then&lt;br /&gt;                                                                        dblNear = dblDis&lt;br /&gt;                                                                        arrNear = Points(j)                                                                  &lt;br /&gt;                                                         End If                                              &lt;br /&gt;                                           End If   &lt;br /&gt;                             Next&lt;br /&gt;                             '-------------------------------------------------------------------------&lt;br /&gt;                             If i&lt;&gt;j Then&lt;br /&gt;                                           Dim vecDir    : vecDir    = rhino.VectorCreate (arrNear , Points(i))&lt;br /&gt;                                           Dim vecMid    : vecMid    = rhino.VectorDivide (vecDir , 2)&lt;br /&gt;                                           Dim arrMidPt  : arrMidPt  = rhino.PointAdd(Points(i) , vecMid)&lt;br /&gt;                                           Dim arrMidPtZ : arrMidPtZ = array(arrMidPt(0) , arrMidPt(1) , Points(i)(2))&lt;br /&gt;                                           ReDim Preserve arrPts(i) &lt;br /&gt;                                           arrPts(i) = arrMidPtZ      &lt;br /&gt;                                           'call rhino.AddLine(Points(i) , arrMidPtZ )&lt;br /&gt;                             End If&lt;br /&gt;                             '-------------------------------------------------------------------------                                            &lt;br /&gt;              Next&lt;br /&gt;              '-------------------------------------------------------------------------------&lt;br /&gt;              'call rhino.AddPoints(arrPts)&lt;br /&gt;              AlignXYZ = arrPts           &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;              '====================================================================&lt;br /&gt;&lt;br /&gt;Function Identity(Volumes)&lt;br /&gt;              Dim i&lt;br /&gt;              Dim arrM3&lt;br /&gt;              Dim arrM3s()    &lt;br /&gt;              Dim dblTotal : dblTotal = 0         &lt;br /&gt;              Dim nVolumes : nVolumes = UBound(Volumes)&lt;br /&gt;              For i = 0 To nVolumes&lt;br /&gt;                             arrM3 = Rhino.SurfaceVolume(Volumes(i))&lt;br /&gt;                             Call Rhino.Print ("polysurface volume : " &amp; arrM3(0))&lt;br /&gt;                             dblTotal = dblTotal + arrM3(0)&lt;br /&gt;                             ReDim Preserve arrM3s(i)                                                    &lt;br /&gt;                             arrM3s(i) = arrM3(0)&lt;br /&gt;              Next&lt;br /&gt;              Call Rhino.Print ("totale volume : " &amp; dblTotal)&lt;br /&gt;              '-------------------------------------------------------------&lt;br /&gt;              Dim N : N = 0&lt;br /&gt;              Dim M : M = 0&lt;br /&gt;              Dim dblIndice :dblIndice = dblTotal/nVolumes '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;              Dim arrPlus()&lt;br /&gt;              Dim arrMinus()&lt;br /&gt;              For i = 0 To nVolumes&lt;br /&gt;                             If arrM3s(i) &gt; dblIndice  Then&lt;br /&gt;                                           ReDim Preserve arrPlus(N)&lt;br /&gt;                                           arrPlus(N) = Volumes(i)&lt;br /&gt;                                           N = N + 1&lt;br /&gt;                             End If&lt;br /&gt;                             If arrM3s(i) &lt;= dblIndice Then&lt;br /&gt;                                           ReDim Preserve arrMinus(M)&lt;br /&gt;                                           arrMinus(M) = Volumes(i)&lt;br /&gt;                                           M = M + 1&lt;br /&gt;                             End If&lt;br /&gt;              Next&lt;br /&gt;              '------------------------------------------------------------------           &lt;br /&gt;              Dim arrBbox      : arrBbox = rhino.BoundingBox(Volumes)&lt;br /&gt;              Dim strText1 ,  strText2 ,  strText3&lt;br /&gt;              strText1 = rhino.AddText ("indice de classement volume : " &amp; dblIndice , array(arrBbox(6)(0) ,arrBbox(6)(1) - 4 , arrBbox(6)(2)) , 1)&lt;br /&gt;              strText2 = rhino.AddText("cell + : " &amp; UBound(arrPlus)+1 , array(arrBbox(6)(0) ,arrBbox(6)(1) - 6 , arrBbox(6)(2)) , 1)&lt;br /&gt;              strText3 = rhino.AddText("cell - : " &amp; UBound(arrMinus)+1 , array(arrBbox(6)(0) ,arrBbox(6)(1) - 8 , arrBbox(6)(2)) , 1)        &lt;br /&gt;              '------------------------------------------------------------------------&lt;br /&gt;              Call  Structure(arrMinus)            &lt;br /&gt;             &lt;br /&gt;             &lt;br /&gt;             &lt;br /&gt;             &lt;br /&gt;             &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function Structure(Volumes)    &lt;br /&gt;              Dim arrStrctr()&lt;br /&gt;              Dim i,j&lt;br /&gt;              '--------------------------------------------------------------------------------&lt;br /&gt;              For i = 0 To UBound(Volumes)&lt;br /&gt;                             If Rhino.IsPolysurfaceClosed ( Volumes(i))Then&lt;br /&gt;                                           '---------------------------------------------------------------------------------------                          &lt;br /&gt;                                           Dim arrSrfs : arrSrfs = rhino.ExplodePolysurfaces( Volumes(i) , True )&lt;br /&gt;                                           '-------------------------------------------------------------------------------&lt;br /&gt;                                           For j = 0 To UBound(arrSrfs)                   &lt;br /&gt;                                                         Dim arrCvs1 : arrCvs1   = rhino.DuplicateEdgeCurves(arrSrfs(j))&lt;br /&gt;                                                         Dim arrPl1 : arrPl1 = rhino.JoinCurves(arrCvs1,True)    &lt;br /&gt;                                                         Dim arrCenter : arrCenter = Rhino.SurfaceAreaCentroid (arrSrfs(j))&lt;br /&gt;                                                         Dim strSrfSc : strSrfSc = rhino.ScaleObject(arrSrfs(j) , arrCenter(0) ,array(0.9 , 0.9 , 0.9) , False)&lt;br /&gt;                                                         Dim arrCvs2 : arrCvs2   = rhino.DuplicateEdgeCurves(strSrfSc)&lt;br /&gt;                                                         Dim arrPl2 : arrPl2 = rhino.JoinCurves(arrCvs2,True)                  &lt;br /&gt;                                                         Dim arrVts : arrVts = Rhino.PolylineVertices(arrPl2(0))&lt;br /&gt;                                                         If isarray(arrVts) Then&lt;br /&gt;                                                                        Dim strHole : strHole= Rhino.AddCurve (arrVts , 3)&lt;br /&gt;                                                         End If                                &lt;br /&gt;                                                         Dim arrContours : arrContours = array(arrPl1(0) , strHole) &lt;br /&gt;                                                         Dim strSurface : strSurface = Rhino.AddPlanarSrf (arrContours)&lt;br /&gt;                                                         '-----------------------------------------------------------------------------------------&lt;br /&gt;                                                         '                                                         ReDim Preserve arrStrctr(j)&lt;br /&gt;                                                         '                                                         arrStrctr(j) = strSurface(0)&lt;br /&gt;                                                         '------------------------------------------------------------------------&lt;br /&gt;                                                         Call rhino.DeleteObject(strSrfSc)&lt;br /&gt;                                                         Call rhino.DeleteObjects(arrPl1)&lt;br /&gt;                                                         Call rhino.DeleteObjects(arrPl2)&lt;br /&gt;                                                         Call rhino.DeleteObject(strHole)&lt;br /&gt;                                                         '-------------------------------------------------------------------------------&lt;br /&gt;                                           Next                                                                                                                                                                      &lt;br /&gt;                                           '                                          Call rhino.JoinSurfaces(arrStrctr,True)&lt;br /&gt;                             End If                                                            &lt;br /&gt;              Next     &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function Extractor(Modules)&lt;br /&gt;              Dim arrInte()&lt;br /&gt;              Dim arrExte()&lt;br /&gt;              '----------------------------------------------------&lt;br /&gt;              Dim arrParois : arrParois = Rhino.ExplodePolysurfaces(Modules , True)&lt;br /&gt;              Dim arrCentre&lt;br /&gt;              '---------------------------------------------------&lt;br /&gt;              Dim blnONOFF              &lt;br /&gt;              Dim i , j&lt;br /&gt;              Dim N , M&lt;br /&gt;              N = 0&lt;br /&gt;              M = 0&lt;br /&gt;              For i = 0 To UBound(arrParois)&lt;br /&gt;                             If rhino.IsObject(arrParois(i)) Then&lt;br /&gt;                                           blnONOFF = False&lt;br /&gt;                                           For j = 0 To UBound(arrParois)&lt;br /&gt;                                                         If rhino.IsObject(arrParois(j)) Then&lt;br /&gt;                                                                        If j&lt;&gt;i Then&lt;br /&gt;                                                                                      arrCentre = Rhino.SurfaceAreaCentroid (arrParois(i))                                                                                          &lt;br /&gt;                                                                                      If rhino.IsPointOnSurface(arrParois(j) , arrCentre(0))  Then&lt;br /&gt;                                                                                                    Call rhino.DeleteObject(arrParois(j))     &lt;br /&gt;                                                                                                    ReDim Preserve arrInte(N)        &lt;br /&gt;                                                                                                    arrInte(N) = arrParois(i)&lt;br /&gt;                                                                                                    blnONOFF = True&lt;br /&gt;                                                                                                    N = N + 1&lt;br /&gt;                                                                                                    Exit For                                           &lt;br /&gt;                                                                                      End If                                &lt;br /&gt;                                                                        End If&lt;br /&gt;                                                         End If                 &lt;br /&gt;                                           Next                                                                             &lt;br /&gt;                                           If            blnONOFF = False Then&lt;br /&gt;                                                         ReDim Preserve arrExte(M)&lt;br /&gt;                                                         arrExte(M) = arrParois(i)&lt;br /&gt;                                                         M = M + 1&lt;br /&gt;                                           End If                                                                           &lt;br /&gt;                             End If&lt;br /&gt;                             Call rhino.Print (i)                                                                                  &lt;br /&gt;              Next&lt;br /&gt;              '---------------------------------------------------------------------------&lt;br /&gt;              Extractor = array(arrInte , arrExte)            &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function SurfaceEvaluateDivide(Surface)&lt;br /&gt;             &lt;br /&gt;                                          &lt;br /&gt;              Dim i , j&lt;br /&gt;                            &lt;br /&gt;              Dim arrDomainU, arrDomainV&lt;br /&gt;              Dim arrParam(1)           &lt;br /&gt;              Dim arrPt&lt;br /&gt;              Dim nDivideU: nDivideU = 6&lt;br /&gt;              Dim nDivideV: nDivideV = 10&lt;br /&gt;                            &lt;br /&gt;                            &lt;br /&gt;              ReDim Matrix(nDivideU, nDivideV)         &lt;br /&gt;                            &lt;br /&gt;              arrDomainU = Rhino.SurfaceDomain(Surface, 0)&lt;br /&gt;              arrDomainV = Rhino.SurfaceDomain(Surface, 1)                             &lt;br /&gt;                            &lt;br /&gt;              For i=0 To nDivideU&lt;br /&gt;                             For j=0 To nDivideV                                                  &lt;br /&gt;                                           arrParam(0)=((arrDomainU(1)-arrDomainU(0))/nDivideU)*(i)&lt;br /&gt;                                           arrParam(1)=((arrDomainV(1)-arrDomainV(0))/nDivideV)*(j)                                                                                                                                       &lt;br /&gt;                                           arrPt = Rhino.EvaluateSurface(Surface,arrParam)                                                                                                &lt;br /&gt;                                           '                                          Call Rhino.addpoint (arrPt)                                                   &lt;br /&gt;                                           Matrix(i,j) = arrPt                                                                                                                 &lt;br /&gt;                             Next&lt;br /&gt;              Next                    &lt;br /&gt;              Dim Pt1, Pt2, Pt3, Pt4                                                             &lt;br /&gt;              For i=0 To nDivideU-1&lt;br /&gt;                             For j=0 To nDivideV-1                                              &lt;br /&gt;                                           Pt1 = Matrix(i,j)&lt;br /&gt;                                           Pt2 = Matrix(i+1,j)&lt;br /&gt;                                           Pt3 = Matrix(i+1,j+1)&lt;br /&gt;                                           Pt4 = Matrix(i,j+1)                                                      &lt;br /&gt;                                           Call Paneling(Pt1,Pt2,Pt3,Pt4)                                                           &lt;br /&gt;                             Next&lt;br /&gt;              Next     &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function Paneling(Pt1,Pt2,Pt3,Pt4)&lt;br /&gt;&lt;br /&gt;              Dim arrPts1 : arrPts1 = array(Pt1,Pt2,Pt3)&lt;br /&gt;              Dim panel1 : panel1 = Rhino.AddSrfPt (arrPts1)&lt;br /&gt;              Dim arrPts2 : arrPts2 = array(Pt1,Pt3,Pt4)&lt;br /&gt;              Dim panel2 : panel2 = Rhino.AddSrfPt (arrPts2)&lt;br /&gt;                            &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function XGrid(Pt1,Pt2,Pt3,Pt4)&lt;br /&gt;&lt;br /&gt;              Dim linonetwo, lintwothre, linthrefour, linfourone, linonethre, lintwofour&lt;br /&gt;             &lt;br /&gt;              linonetwo = Rhino.AddLine (Pt1, Pt2)&lt;br /&gt;              lintwothre = Rhino.AddLine (Pt2, Pt3)&lt;br /&gt;              linthrefour = Rhino.AddLine (Pt3, Pt4)&lt;br /&gt;              linfourone = Rhino.AddLine (Pt4, Pt1)&lt;br /&gt;              linonethre = Rhino.AddLine (Pt1, Pt3)&lt;br /&gt;              lintwofour = Rhino.AddLine (Pt2, Pt4)&lt;br /&gt;             &lt;br /&gt;End Function&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-4956935618549147269?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/4956935618549147269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=4956935618549147269' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/4956935618549147269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/4956935618549147269'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/06/rhinoscript-workshop-student-training.html' title='RhinoScript Workshop. Student Training ESA 2'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-2745679995945142677</id><published>2007-06-06T23:02:00.000+01:00</published><updated>2007-06-06T23:26:10.650+01:00</updated><title type='text'>RhinoScript Workshop. Students Training ESA</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;I’m pleased to post one of the scripts developed during the Generative Script workshop at Ecole Special d'Architecture de Paris I superviewed d in middle April. This is a first draft of further developing scripts by Joaquim Silvestre. The aim of Joaquim was to generate a parametric ramp for vehicles, based on site, functional and structural constraints. Thus the idea was to develop a script able to grow into a vertical structure for car storage. This is one of the first training.  I want acknowledge the students from Esa for their participation and their constant interest to go ahead in this first essay. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;edmondo occhipinti&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;'workshop growing structuresgenerative scripts&lt;br /&gt;'Script supervisor edmondo occhipinti COdesignLab&lt;br /&gt;'Script written by silvestre joak ecole speciale d'architecture&lt;br /&gt;'Script version lundi 16 april 2007 13:54:22&lt;br /&gt;&lt;br /&gt;Sub CDR&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;           Dim X&lt;br /&gt;           Dim Y&lt;br /&gt;&lt;br /&gt;           Dim arrRect&lt;br /&gt;           Dim tempcuba&lt;br /&gt;           Dim tempoint(4)&lt;br /&gt;           'creation du rectangle limitatif&lt;br /&gt;           arrRect=Rhino.Getrectangle (2)&lt;br /&gt;           Dim surface&lt;br /&gt;           surface = Rhino.addsrfpt(arrrect)&lt;br /&gt;&lt;br /&gt;           tempoint(4)=Rhino.addpointCloud(arrRect)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;           Dim bala&lt;br /&gt;           bala= Array(1,1,1)&lt;br /&gt;           Dim aroo&lt;br /&gt;           aroo=Array(0,0,0)&lt;br /&gt;           Dim Xi,Yi&lt;br /&gt;           X= Rhino.vectorCreate(arrRect(0), arrRect(1))&lt;br /&gt;           Xi=(Rhino.vectorLength(X))&lt;br /&gt;           Y= Rhino.vectorCreate(arrRect(0), arrRect(3))&lt;br /&gt;           Yi=(Rhino.vectorLength(Y))&lt;br /&gt;           Dim balpha&lt;br /&gt;           balpha=Rhino.Angle (arrRect(0), arrRect(1))&lt;br /&gt;           'balpha=(Rhino.VectorDotProduct(Array(1,0,0),X))&lt;br /&gt;           Rhino.print (balpha(0))&lt;br /&gt;           'Rhino.print(Rhino.ToDegrees(balpha))&lt;br /&gt;           If  IsNull (balpha) Then&lt;br /&gt;                      Rhino.print"Pb avec variable balfa"  &lt;br /&gt;           End If&lt;br /&gt;           Dim gloubi&lt;br /&gt;           gloubi=(Rhino.vectorAdd(x,y))&lt;br /&gt;           Dim boulga&lt;br /&gt;           boulga=(Rhino.vectordivide(gloubi,2))&lt;br /&gt;           Dim pluto&lt;br /&gt;           pluto=(Rhino.PointAdd (aroo,boulga))&lt;br /&gt;           If IsNull(pluto) Then&lt;br /&gt;                      Rhino.print"Pb avec variable pluto"&lt;br /&gt;                     &lt;br /&gt;           End If&lt;br /&gt;           'Dim gepeto&lt;br /&gt;           'gepeto=Rhino.pointcoordinates (pluto)&lt;br /&gt;           '//////////////////////////////////////////////////  &lt;br /&gt;           Dim no&lt;br /&gt;           no=70&lt;br /&gt;           Dim arrpoint,arrpointO&lt;br /&gt;           Dim radius&lt;br /&gt;           Dim strRamp&lt;br /&gt;           Dim strRampO&lt;br /&gt;           ReDim arrPoints(0)&lt;br /&gt;           ReDim arrPointsO(0)&lt;br /&gt;           Dim bi&lt;br /&gt;           Dim g&lt;br /&gt;           ReDim g(2)&lt;br /&gt;           radius=(Rhino.Distance(arrRect(0), arrRect(3)))/2&lt;br /&gt;           Dim a,az,baz&lt;br /&gt;           az=1&lt;br /&gt;           a=1&lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;           Dim n,deltah&lt;br /&gt;           n=0&lt;br /&gt;&lt;br /&gt;           Do&lt;br /&gt;                      no=n+1&lt;br /&gt;                      'new new new new   &lt;br /&gt;                     &lt;br /&gt;&lt;br /&gt;                      baz=n/4&lt;br /&gt;                      'For bi= -5 To 10 Step 0.025&lt;br /&gt;                      'g(0)=(bi * Sin(5*bi))&lt;br /&gt;                      'g(1)=(bi * Cos(3*bi))&lt;br /&gt;                      Dim XB,YB,ZB&lt;br /&gt;                     &lt;br /&gt;                      Dim XU,YD,ZF&lt;br /&gt;                      'XU=((radius)*Sin(n))&lt;br /&gt;                      XB=baz*2&lt;br /&gt;                      XU=(((radius)*Sin(n))*(Xi/(radius*2)))'+XB&lt;br /&gt;                     &lt;br /&gt;                      'YD=((radius)*Cos(n))&lt;br /&gt;                      YB=n+5&lt;br /&gt;                      YD=(((radius)*Cos(n))*a*(Yi/(radius*2)))'+YB&lt;br /&gt;                      ZB=n/2'*(((n*n)+5*n+4)/no)&lt;br /&gt;                      ZF=ZF&lt;br /&gt;                      arrPoint=Array(XU,YD,ZF)&lt;br /&gt;                      If n&gt;1 Then&lt;br /&gt;                                Dim vector,ptprec&lt;br /&gt;                               &lt;br /&gt;                                Call Rhino.Print("intheboucle"&amp;n)&lt;br /&gt;                                vector= Rhino.vectorcreate (ptprec,arrPoint)&lt;br /&gt;                                deltah= Rhino.vectorlength (vector)/7&lt;br /&gt;                                Call Rhino.Print("deltah"&amp;deltah)&lt;br /&gt;                                          &lt;br /&gt;                                ZF=ZF+deltah&lt;br /&gt;                                Call Rhino.Print("ZF"&amp;ZF)&lt;br /&gt;                      Else&lt;br /&gt;                                ZF=0&lt;br /&gt;                      End If &lt;br /&gt;                                arrPoint=Array(XU,YD,ZF)&lt;br /&gt;          &lt;br /&gt;                      If Abs(XB)&gt;Xi/2 Then&lt;br /&gt;                     &lt;br /&gt;                     &lt;br /&gt;                                az=0.25&lt;br /&gt;                      End If&lt;br /&gt;                      If Abs(XB)&gt;Xi Then&lt;br /&gt;                     &lt;br /&gt;                     &lt;br /&gt;                                a=-a&lt;br /&gt;                      End If&lt;br /&gt;                      If n&gt;no/4 Then&lt;br /&gt;                     &lt;br /&gt;                     &lt;br /&gt;                                a=Sin(baz)&lt;br /&gt;                      End If&lt;br /&gt;                      If n&gt;no/2 Then&lt;br /&gt;           baz=-n/4&lt;br /&gt;                     &lt;br /&gt;                                a=Sin(baz)&lt;br /&gt;                      End If&lt;br /&gt;                      If Abs(YB)&gt;Yi Then&lt;br /&gt;                     &lt;br /&gt;                                a=-a&lt;br /&gt;                      End If&lt;br /&gt;                      'If XB&lt;(-1*Xi) Then&lt;br /&gt;                      '          a=-a&lt;br /&gt;                      '          End If&lt;br /&gt;                      arrPointO=Array(XB,YB,ZB)&lt;br /&gt;                      'arrPoint=Array((radius/sqr(n+1) * Sin(5*n)), (radius/sqr(n+1) * Cos(3*n)),n/2)&lt;br /&gt;                      Dim teemp&lt;br /&gt;                      'teemp=(arrPoint&lt;br /&gt;                      Call Rhino.Print("n"&amp;n)&lt;br /&gt;                      ReDim Preserve arrPoints(n)&lt;br /&gt;                      arrPoints(n)=arrPoint&lt;br /&gt;                      ptprec=arrPoints(n)&lt;br /&gt;                      ReDim Preserve arrPointsO(n)&lt;br /&gt;                      arrPointsO(n)=arrPointO&lt;br /&gt;                      'change radius&lt;br /&gt;                      Dim random:random=Rnd()&lt;br /&gt;                      If random&lt;0.5 Then&lt;br /&gt;                                radius=radius+.1+(Rnd()*2.1)&lt;br /&gt;                                radius=radius+.1-(Rnd()*1.5)&lt;br /&gt;                                End If&lt;br /&gt;                      'Next&lt;br /&gt;                      n=n+1&lt;br /&gt;                      If ZF&gt;200 Then Exit Do&lt;br /&gt;           Loop&lt;br /&gt;           Dim arrLine,arrLineO&lt;br /&gt;           arrline=arrpoints&lt;br /&gt;           arrLineO=arrpointsO&lt;br /&gt;           StrRamp=Rhino.AddCurve(arrLine)&lt;br /&gt;           StrRampO=Rhino.AddCurve(arrLineO)&lt;br /&gt;           Dim longroute&lt;br /&gt;           longroute=Rhino.curvelength (StrRamp)&lt;br /&gt;           Call Rhino.Print("longueurroute"&amp;longroute)&lt;br /&gt;          &lt;br /&gt;           Dim ctrRect&lt;br /&gt;           ctrRect=(Rhino.PointSubtract (arrRect(0),boulga))&lt;br /&gt;           If IsNull(ctrRect) Then&lt;br /&gt;                      Rhino.print"Pb avec variable ctrRect"&lt;br /&gt;           End If&lt;br /&gt;           'ligne pr tester&lt;br /&gt;           Dim testline,stato,arivo&lt;br /&gt;          &lt;br /&gt;           stato=Array(0,0,0)&lt;br /&gt;           arivo=Array(10,0,0)&lt;br /&gt;           'testline=rhino.addline( stato,arivo)&lt;br /&gt;           Dim movtest,movtestO&lt;br /&gt;           movtestO=Rhino.RotateObject (StrRampO, Array(0,0,0), (balpha(0)))&lt;br /&gt;           movtest=Rhino.RotateObject (StrRamp, Array(0,0,0), (balpha(0)))&lt;br /&gt;           Dim movu,movuO&lt;br /&gt;           movuO=Rhino.MoveObject (movtestO, Array(0,0,0), ctrRect)&lt;br /&gt;           movu=Rhino.MoveObject (movtest, Array(0,0,0), ctrRect)&lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;CDR&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-2745679995945142677?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/2745679995945142677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=2745679995945142677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/2745679995945142677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/2745679995945142677'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/06/rhinoscript-workshop-students-training.html' title='RhinoScript Workshop. Students Training ESA'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-3107886237021665007</id><published>2007-06-06T22:42:00.000+01:00</published><updated>2007-06-06T22:44:23.681+01:00</updated><title type='text'>cyber.|N|.ethics</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_egQuwieXGho/RmcqqYK3DWI/AAAAAAAAACc/X9DFvTSv01E/s1600-h/cyber2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5073070412787027298" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_egQuwieXGho/RmcqqYK3DWI/AAAAAAAAACc/X9DFvTSv01E/s400/cyber2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;CyberNethics&lt;br /&gt;&lt;br /&gt;Ethic and pathetic! It looks like a funny text, as intensive as I was able to hide the “in between”, and as naïve as I didn’t hide the indecent rave against pseudoscientific-form-workers. Something potently emerges from some kind of considerations about the increasing development of a wide range of new disciplines in the middle twentieth century. [As just noted, by someone else, it’s not so obvious that the inventor of telephone and the engineer of the first reticular structures, are (quite) the same man]. What I need, what I would try to do, it’s to link, to find links, to re-reduce disciplines to their own principles and to allow an “essential” richness of interdisciplinary field. Quite a hard aim, but I’m not a scientist; thus everything is permitted, since while wearing clothes of an architect, people don’t matter about my approach. (That’s False! But let me believe it).&lt;br /&gt;&lt;br /&gt;Based on first studies about self-organization and organic systems constitution , Shannon information theory, Wiener cybernetic with control and servomechanism theory and a bad-named discipline (artificial intelligence) born and developed in the early Fifties. What was really focused in this period was the increasing interest for reducing animate phenomena into physic-chemic ones; it demonstrated the favour for reductionism more than for vitalism. Emergent biologic discipline had to make use of external organizational principles such as information, code, communication, inhibition, repression, control. As noted by Morin, these notions had a cybernetic character in what they identified cellule as a self-controlled and information-based machine. Cybernetic is one of the sciences focused on structure and organization (and control); a machine I an organised whole that cannot be studied beginning on individual feature of its constituents. (The same concept is the base of complex systems theory and this is something I would like to discuss in further text).&lt;br /&gt;&lt;br /&gt;Demonstrating that there’s no living matter, but a structured organization of physic-chemic matter, informational and cybernetic notions are not just referred to high-organized machine: paradigmatically jumping from matter to structure, all the matter relative metaphors change in structure relative ones. [Note the same amplitude and nature of jumping from Euclidian space to topological structures, from Cartesians coordinate (x, y and z) to directional vector fields (U and V), from striated to smooth Deleuzian form of space, and so on]. Thus physic, body, substance, energy, physic world, quantitative analysis changes into cybernetic, form, mind, communication, biological world, whole’s organization and qualitative analysis. Cybernetics pustules that physics are just a cybernetic branch since its interest bases on matter stabilized structures.&lt;br /&gt;&lt;br /&gt;No surprises about the whole cybernetics evolutionary theory-one that begins on the level of individual atoms and molecules, continues through the origin of life and the development of plants and animals, reaches the level of man and self-consciousness, and develops further in the intellectual creations of man, particularly in scientific knowledge- by Turchin. The idea that give from to cybernetic development I that the model, or structure, organize the physic process; this lead inevitably with the concept of retroaction, command of an activated system, able to reinsert in its own the results of its behaviours. In few steps, we’ll assist to the emergence of self-organization, particularly of self-reproducing automata by Von Neumann, of order from noise by Von Foerster and of case-self-organizing by Atlan.&lt;br /&gt;&lt;br /&gt;When, in the Sixties, Lorenz introduce the butterfly effect successfully emphasize the way to think relationships and interactions. But also in this case –just like the telephone and the reticular structures- we’ll not be surprised to recognize that an embryonic expression of the butterfly effect was just introduced in ’50 by Alain Turing in Computer Machinery and Intelligence (in that case Turing express how the smallest electron movement can cause the death of a human being determining the extinction of its future generation end of its genetic improvements). If on one hand human being is trying to investigate complexity, to define it and to reproduce it, on the other hand, we assist to several efforts to rationalize it, to simplify its rules, to control it. Computer science is a fundamental discipline to fully understand these steps. The Wolfram New Kind of Science is just one example of most comprehensive essays on explaining complexity in every phenotypic manifestation, by postulating simple computer-based rules that determine it. (Could we find axiomatic relationship between Wolfram computer-based approach and Turchin cybernetic logics? It’s not the point, but it doesn’t prevent to fascinate me). What is the real affordance of chaos’s theory, of catastrophes’ theory, of complex systems theory? An epistemology of complexity seems the only paradigm we can auspicate to implement in every field of human sciences today.&lt;br /&gt;&lt;br /&gt;Organize means to determine descriptive constraints, like spatial form, volume, limits; it means to create selective interactions between elements; it means to define the existence of energy for interactions; thus it means self-produce-by available energy and hypothesized interactions- organization. Artificial intelligence and computer science are born. Now, what is a script?&lt;br /&gt;&lt;br /&gt;Edmondo Occhipinti&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-3107886237021665007?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/3107886237021665007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=3107886237021665007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/3107886237021665007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/3107886237021665007'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/06/cybernethics.html' title='cyber.|N|.ethics'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_egQuwieXGho/RmcqqYK3DWI/AAAAAAAAACc/X9DFvTSv01E/s72-c/cyber2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-1568390014021894966</id><published>2007-05-16T16:08:00.000+01:00</published><updated>2007-05-18T21:42:11.167+01:00</updated><title type='text'>Structural Optimization. 3d Phononic Crystals</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_egQuwieXGho/Rksei1kkYxI/AAAAAAAAACI/VtfpuHTs46A/s1600-h/radio1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5065175789753099026" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 405px; CURSOR: hand; HEIGHT: 304px; TEXT-ALIGN: center" height="341" alt="" src="http://1.bp.blogspot.com/_egQuwieXGho/Rksei1kkYxI/AAAAAAAAACI/VtfpuHTs46A/s400/radio1.jpg" width="454" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;Structural optimization molecular modelling (not based on the molecular modelling tool by Reconstructivism). I’m working on coding it. I would like to save the work-in-progress code until the end, just to avoid several actualizations dues to changing and re-structuring the actual code. In few words, it bases on a structural module made by two meatball spheres, built by parametric dimensions, inputted in the code. Right now the code places the module according to characteristic angles of sixty spatial degrees, building three-dimensional cells, based on hexagons; something really similar to photonic and phononic 3d crystal structures. The aim would be to begin varying the module according to different external conditions: I’m thinking to compression, dilatation, and modification of internal proportions. I’ll put generative component to work.&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-1568390014021894966?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/1568390014021894966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=1568390014021894966' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1568390014021894966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/1568390014021894966'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/05/structural-optimization-molecular.html' title='Structural Optimization. 3d Phononic Crystals'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_egQuwieXGho/Rksei1kkYxI/AAAAAAAAACI/VtfpuHTs46A/s72-c/radio1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-3640225907187418809</id><published>2007-05-14T22:23:00.000+01:00</published><updated>2007-05-18T21:41:01.442+01:00</updated><title type='text'>Morphogenetic, Ethic and Pathetic</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_egQuwieXGho/RkjTxCcgt1I/AAAAAAAAACA/SaQODWCqRvI/s1600-h/3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5064530620401629010" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_egQuwieXGho/RkjTxCcgt1I/AAAAAAAAACA/SaQODWCqRvI/s400/3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;The introduction, by Leibniz, of differential calculus, which paradigm was surely constituted by the variable curvature, and of the consequent topologic geometry, rationalized in the end of nineteenth century by Felix Klein (which introduces the concept of vectorial field, differential shape and curvilinearity, bases of the general relativity theory), determines the passage from the discrete pace, Descartes’ prerogative, to a space-time. In this new spatial-temporal logic, every morphological entity cannot be seen as not as a continuum, nerved by forces, that is, by dynamic differentials. It’s just on these bases that the illuminist dream of describing reality by differential equations became a even unreal possibility. But it’s only in the twentieth century that the research of solving natural forms by a mathematical approach, push forward as powerfully as it began to be compressed into an individual discipline, commonly (un)known as morphogenetic.&lt;br /&gt;&lt;br /&gt;Publishing, in nineteen seventeen, On Growth and Form puts the Scottish biologist Wentworth D’Arcy Thompson at the origin of a research field that will fill the entire scientific cursus of the twentieth century. His analysis, however based on extrapolating intuitive mathematic relationships and on dynamic reactions, always still reminiscent of Newtonian physics – let’s remember that just ten years before the space become curve –fixes a revolutionary paradigm on natural, organic and inorganic forms genesis; as Lynn notes, the grateful merit of Thompson was to have identified gradient forces, both endogenous and exogenous, able to form, (in)form, (de)form and (trans)form, natural structures and optimize their geometries according to external physic-contextual and environmental variables.&lt;br /&gt;&lt;br /&gt;The interest was pushed, in the short range of a human life, from the result to the process, from the form to the structure: form is not longer an aprioristic data, but a process, a result of progressive metamorphosis, ruled by geometric-topological, physic and mathematic laws. Then, as exactly happened with the projective geometry, which expressed, with Desargues first and - more structurally - with Monge after, how was always possible to homologically deduce the geometric rules that transform one shape into another, just from the features of the original one, at the same time, systems of homographic analysis and morphogenetic previsions are introduced in biology.&lt;br /&gt;&lt;br /&gt;It’s not surprising that one doesn’t understand the complex mathematic-geometric whole that characterize the chaotic systems and the fractal theories of Benôit Mandelbrot –neither that the not simpler morphogenetic theory of René Thom, commonly known as catastrophes’ theory –produce significant considerations in the consciences of these ones that, consciously or not, daily work with shapes; but what is not surprising, I hope, it’s that by sure the progressive development of a morphogenetic research field, legitimized by a topologic-differential dialectic, produced a substantial reconsideration of the form, the space and its dynamic coordinates. It will become legal to discuss the real opportunities that the introduction of a morphogenetic logic provides to the architectural field.&lt;br /&gt;&lt;br /&gt;Digital technologies had definitively modified our approach to the space, allowing us to work with vectorial fields and topological geometries, in a intens(iv)e space, not just defined by traditional Cartesian coordinates, but even by movements, forces and interactions fluxes and, last but not least, by the temporal variable and it generative potential; I don’t think superfluous to remember the n-dimensionality of vectorial spaces. The topological space vectorial definition call an intensive work on diagrammatic structuring information, consciously mediating different order’ variables, aided-proliferating more complex genetic patrimonies, constantly transacting stable evolutionary path and unexpected bifurcations.&lt;br /&gt;&lt;br /&gt;Form became negation of its own circumstantial singularity, became phylum, a topologically equivalent shapes’ family, binary combination, a data’ metamorphic flux, auto-organising and unpredictable sequence. The introduction of morphogenetic dynamics in architecture needs a revaluation of standardized models (I mean modules): it implies to think the project in an inverse procedural way – let’s say bottom-up – as the unfolding of a process in which the diagrammatic structuring of information (information related with meta-project conception) became generative reason of unexpected results. Specifically, I see the integration of interdisciplinary tools, techniques and competences as the best way to optimize the architectural result according to characterizing variables; this could allow us to introduce the user into a complete emotive dynamics, into a continuous sensational metamorphose.&lt;br /&gt;&lt;br /&gt;Dilatation of interdisciplinary involved panorama is needed. We need to introduce osmotic and synergic dynamics, focusing the definition of a morphogenetic sustainability where bio-mimetic and eco-performing logics could be able to afford (with Gibson) significant and proved legitimacies to the architectural result. Just in this sense form, in its architectural paradigm too, cannot be see as an aprioristic and unconditioned dictate, neither as a visionistic or intuitional creation; form we’ll be considered as a procedural equilibrium, always contingent and conditional, but anyway as a product of structural and associative information. This will bring new feelings, new ways, and new dimensions to live the space, to affect it and to be affected by it, suggesting suggestive finalities, catastrophic scenarios, chaotic spatiality. Innovation is not just transformation, but transformation related with contemporary socio-cultural effects; we always have to find it useful, or, at least, meaningful.&lt;br /&gt;&lt;br /&gt;I apologise my English. This is also a problem of form…&lt;br /&gt;&lt;br /&gt;Edmondo Occhipinti&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-3640225907187418809?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/3640225907187418809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=3640225907187418809' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/3640225907187418809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/3640225907187418809'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/05/introduction-by-leibniz-of-differential.html' title='Morphogenetic, Ethic and Pathetic'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_egQuwieXGho/RkjTxCcgt1I/AAAAAAAAACA/SaQODWCqRvI/s72-c/3.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-7183607717208302389</id><published>2007-04-20T21:09:00.000+01:00</published><updated>2007-05-18T21:42:38.756+01:00</updated><title type='text'>growing structures workshop</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/Rikg48NxRGI/AAAAAAAAAB4/_OG6YHIZHtA/s1600-h/rhino+script+workshop.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5055608219308737634" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_egQuwieXGho/Rikg48NxRGI/AAAAAAAAAB4/_OG6YHIZHtA/s400/rhino+script+workshop.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;this workshop was organized by paolo cascone during two days of the eco.logical high-rise atelier at&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;ecole speciale d'architecture de paris. i was invited to introduce the students to script in rhino. here the abstract of my lesson.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;The first aim of this workshop was to teach the basics of the RhinoScript language end the logic of its use. The main focus of my approach was to use a scripting techniques that allow the generation of growing structures families based on parametric variations into the body of the script. On making this we just worked on vertical structures and on the growing possibilities of these structures according to the crucial geometric rules which constitute the genetic matter of our design purposes. The advantage of this logic is the possibility to evaluate and test an ideally infinite forms family by just modifying some specific variable’s values. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Structure &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The workshop was divided in three main phases: a basic first, an analyzing second and an operational third. Every phase included example and sample exercise. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;-basics&lt;br /&gt;In the first phase i exposed the fundamentals of the Script in general, and of the VB.Rhino script in detail. We studied the basic grammar of this language and the main structural rules: variables, conditionals, flow control of a script will be the main focused topics of this first approach. Practical example and dedicated exercises completed this phase.&lt;br /&gt;-script analysis and editing&lt;br /&gt;Once learned the basics of grammar and syntax we leaded with the structure of a script. How to build a basic script, how to run it, how control variations, errors, etc…, this was the main focus of this phase. We also leaded with basic examples and exercise, but we also analyzed some more complex script, trying to understand their logic and their structure.&lt;br /&gt;-script generation&lt;br /&gt;In this last phase we focused on scripting. We began to build our own script and to test them. We focused our attention on building scripts able to output vertical structures, and able to be dynamics, that is, able to grow, to be edited and modified during their execution. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;the output of this workshop will be soon available at the &lt;/span&gt;&lt;a href="http://www.esa-ateliercascone.blogspot.com/"&gt;&lt;span style="font-family:trebuchet ms;"&gt;blog &lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;of the atelier.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;edmondo occhipinti&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-7183607717208302389?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/7183607717208302389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=7183607717208302389' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/7183607717208302389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/7183607717208302389'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/04/growing-structures-workshop.html' title='growing structures workshop'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_egQuwieXGho/Rikg48NxRGI/AAAAAAAAAB4/_OG6YHIZHtA/s72-c/rhino+script+workshop.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-5320591192764505311</id><published>2007-04-18T22:07:00.000+01:00</published><updated>2007-04-18T23:30:22.837+01:00</updated><title type='text'>density points based pattern</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_egQuwieXGho/RiabCXaJk1I/AAAAAAAAABw/YqobxT1N0CY/s1600-h/rhino+script+05.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5054898096715699026" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_egQuwieXGho/RiabCXaJk1I/AAAAAAAAABw/YqobxT1N0CY/s400/rhino+script+05.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_egQuwieXGho/Riaa4HaJk0I/AAAAAAAAABo/8lljG6WPBfo/s1600-h/rhino+script+05.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_egQuwieXGho/RiaKkHaJkzI/AAAAAAAAABg/pR3sjGNZzW8/s1600-h/rhinoscript01.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;this is a little simple script that allows to output different radii circles based on a point set input.my aim was to map a density values from some environmental numerical datas. with this code i can have a circle based pattern that changes its dimension according to the distance between every point and all the other ones. in this first phae of developping i implemented also an extrusion value based on the distance too. every circle will generate inscripted polygons with different height, and will print the smallest distance from the center of the nearest circle. basic, i mean beginner's all purpose symbolic instruction code , but useful. in progress...&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Option Explicit&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Trebuchet MS;font-size:85%;color:#666666;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;'This Script Generate Different Circles and Boxes based on Points set and their Relative Distances&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;'Transformation of the Compartments into Tube or Spine in IL 38 Diatom II&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;'Code by Edmondo Occhipinti Architect [codesign.lab] 2007&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;MsgBox "Code by Edmondo Occhipinti Architect &lt;/span&gt;&lt;a href="mailto:edmondo@co-design-lab.net"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;edmondo@co-design-lab.net&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Sub Circles &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Dim arrpts &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Dim dbdist, dbtotdist &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Dim i, u &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;arrpts = Rhino.GetPointCoordinates ("Select Points to Create Skeleton Pattern") &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;If IsNull (arrpts) Then &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Exit Sub &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;End If &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;for i = 0 To UBound (arrpts) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;dbtotdist = 1000000&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;For u = 0 To UBound (arrpts) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;dbdist = Rhino.Distance (arrpts(i), arrpts(u)) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;If u = UBound (arrpts) And dbdist = 0 Then &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;exit Sub &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;End If &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;If dbdist = 0 Then &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;u = u+1 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;dbdist = Rhino.Distance (arrpts(i), arrpts(u)) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;End If &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;span style="color:#666666;"&gt;If dbdist &lt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;dbtotdist = dbdist &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;End If &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Next &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Dim arrPlane, crv, text &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;text = Rhino.AddText (dbtotdist, arrpts(i), dbtotdist/5) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;arrPlane = Rhino.PlaneFromFrame (arrpts (i), Array(1.0,0.0,0.0), Array(0.0,1.0,0.0)) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;crv = Rhino.AddCircle (arrPlane, dbtotdist/2.1) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Dim arrone, arrtwo, arrthree, arrfour, arrpolyline &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Dim base, height, basept, heightpt, secondpt &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Dim strbox, strpath, two, three, four, deletepts &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Rhino.EnableObjectGrips crv&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;arrone = Rhino.ObjectGripLocation(crv, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;arrtwo = Rhino.ObjectGripLocation(crv, 2) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;arrthree = Rhino.ObjectGripLocation(crv, 4) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;arrfour = Rhino.ObjectGripLocation(crv, 6) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Rhino.EnableObjectGrips crv, vbFalse &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;basept = Rhino.AddPoint (arrone) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;two = Rhino.AddPoint (arrtwo) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;three = Rhino.AddPoint (arrthree) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;four = Rhino.AddPoint (arrfour) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;base = Array (0, 0, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;height = Array (0, 0, 300/dbtotdist) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;heightpt = Rhino.CopyObject (basept, base, height) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;secondpt = Rhino.PointCoordinates (heightpt) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;strpath = Rhino.Addline (arrone, secondpt) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;deletepts = Array (basept, two, three, four) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;arrpolyline = Array (arrone, arrtwo, arrthree, arrfour, arrone) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;strbox = Rhino.AddPolyline (arrpolyline) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Rhino.ExtrudeCurve strbox, strpath &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Rhino.DeleteObject strpath&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Rhino.DeleteObject heightpt &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Rhino.DeleteObjects deletepts &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Next &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;End Sub &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;Circles&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;color:#666666;"&gt;edmondo occhipinti&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-5320591192764505311?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/5320591192764505311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=5320591192764505311' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/5320591192764505311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/5320591192764505311'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/04/this-is-little-simple-script-that.html' title='density points based pattern'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_egQuwieXGho/RiabCXaJk1I/AAAAAAAAABw/YqobxT1N0CY/s72-c/rhino+script+05.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-2346747520278714188</id><published>2007-03-22T14:47:00.000+01:00</published><updated>2007-03-22T15:13:05.106+01:00</updated><title type='text'>dim.strP_rdl v.1 beta</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_egQuwieXGho/RgKMpF4RzII/AAAAAAAAABU/e99RddCVUM4/s1600-h/edmondo+3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5044749170189126786" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 415px; CURSOR: hand; HEIGHT: 262px; TEXT-ALIGN: center" height="302" alt="" src="http://2.bp.blogspot.com/_egQuwieXGho/RgKMpF4RzII/AAAAAAAAABU/e99RddCVUM4/s400/edmondo+3.jpg" width="478" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/RgKJel4RzHI/AAAAAAAAABM/0nWDdx7YwIg/s1600-h/edmondo+3.jpg"&gt;&lt;/a&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Voila. this is the complete code to draw parametric cells, and to grow them into specified number of floor. by varying the input value we'll have different pattern organization, and different scale, and different heights. just to try....and to be completed.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Option Explicit &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;'This script create structural cells grid based on honeycomb logic&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;'Edmondo Occhipinti Architecte codesign-lab 2007 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;MsgBox "Code by Edmondo Occhipinti Architecte codesign-lab 2007 &lt;/span&gt;&lt;/span&gt;&lt;a href="mailto:edmondo@co-design-lab.net"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;edmondo@co-design-lab.net&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;" &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Sub DrawCell &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim floors&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim wth &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim lng&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim geomvalue&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim udiv, vdiv &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;floors = Rhino.GetReal ("Enter the Number of floors", 4, 2, 20)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;If IsNull(floors) Then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Exit Sub&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;wth = Rhino.getreal ("Enter the width of cell", 2, 0.001, 1000)If IsNull(wth) Then Exit Subgeomvalue = Rhino.getreal ("Enter cell geometry factor", 3, 0.1, 10)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;If IsNull(geomvalue) Then &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Exit Sub&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;udiv = Rhino.getreal ("Enter the number of division in U direction", 2, 1, 100)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;If IsNull(udiv) Then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Exit Sub&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;vdiv = Rhino.getreal ("Enter the number of division in V direction", 2, 1, 100)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;If IsNull(vdiv) Then &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Exit Sub&lt;br /&gt;lng = wth*geomvalue&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;''''''draw the conrol points of cell main spline'''''' &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim arrpt01, arrpt02, arrpt03, arrpt04, arrpt05, arrpt06, arrpt07, arrpt08, arrpt09&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim arrpt1, arrpt2, arrpt3, arrpt4, arrpt5, arrpt6, arrpt7, arrpt8, arrpt9 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim arrtotpts, arrcrvpts &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpt01 = array (wth/2, 0, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpt02 = array (wth/2, wth/2, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpt03 = array (wth/4, lng/4, 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpt04 = array (0, lng/3, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpt05 = array (0, lng/2, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpt06 = array (0, lng * 2/3, 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpt07 = array (wth/4, 3*lng/4, 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpt08 = array (wth/2, 5* lng/6, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpt09 = array (wth/2, lng, 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrtotpts = array(arrpt01, arrpt02, arrpt03, arrpt04, arrpt05, arrpt06, arrpt07, arrpt08, arrpt09) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrcrvpts = Rhino.addPoints (arrtotpts)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;''''''draw the cell main spline'''''' &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim crv &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;crv = Rhino.AddCurve (arrtotpts) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Rhino.DeleteObjects arrcrvpts &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim radius, circlebase, component, cmnd &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;radius = wth/10&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;circlebase = Rhino.AddCircle (arrpt01, radius, arrpt09) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;component = Rhino.ExtrudeCurve (circlebase, crv) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;''''''mirror the spline'''''' &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim arrone &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim arrtwo &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim mirrcomponent&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Rhino.EnableObjectGrips crv&lt;br /&gt;arrone = Rhino.ObjectGripLocation(crv, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrtwo = Rhino.ObjectGripLocation(crv, 8)&lt;br /&gt;Rhino.EnableObjectGrips crv, vbFalse&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Rhino.DeleteObject crv &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Rhino.DeleteObject circlebase&lt;br /&gt;mirrcomponent = Rhino.MirrorObject (component, arrone, arrtwo, vbTrue) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;''''''copy cell into uv grid''''''&lt;br /&gt;Dim cell &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim strcrvs &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim arrendptu, arrendptv, arraxis, scdpoint, arrenddeepu &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim i, j &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim arrtotudiv, arrtotvdiv, arrfirst, arrseconduline &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;cell = array (mirrcomponent, component)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;scdpoint = array (wth, lng/2, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arraxis = array (arrpt05, scdpoint)&lt;br /&gt;For i = 1 To udiv - 1 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrendptu = array (wth*i, lng/2, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrenddeepu = array (0, (wth*vdiv)+(wth+(wth/2)), 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'ReDim Preserve arrtotudiv (i) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrtotudiv = Rhino.CopyObjects (cell, arrpt05, arrendptu) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Rhino.RotateObjects arrtotudiv, arrpt01, 90, arraxis, vbFalse&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'ReDim Preserve arrseconduline (i) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrseconduline = Rhino.CopyObjects (arrtotudiv, arrpt05, arrenddeepu) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;''''''solving first cell and v direction cells''''''&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim cellvdir, rotcell, arrenddeepv, arrendmove &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim vaxis &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim firstrotpt, firstcopy, arrsecondvline&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;rotcell = Rhino.RotateObjects (cell, arrpt01, 90, arraxis, vbFalse) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;firstrotpt = array (0, 0, lng/2) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;cellvdir = Rhino.RotateObjects (rotcell, firstrotpt, 90, , vbTrue) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;firstcopy = Rhino.CopyObjects (rotcell, arrpt05, arrenddeepu)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;For j = 1 To vdiv &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrendptv = array (0, wth*j, lng/2)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'ReDim arrtovdiv (j) arrtotvdiv = Rhino.CopyObjects (cellvdir, firstrotpt, arrendptv) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrenddeepv = array ((wth*udiv), wth/2, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'ReDim Preserve arresecondvline (j)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrsecondvline = Rhino.CopyObjects (arrtotvdiv, arrpt05, arrenddeepv)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrendmove = array (0, wth/2, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Rhino.MoveObjects arrtotvdiv, arrpt05, arrendmove &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Next &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Rhino.DeleteObjects cellvdir&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;''''''copying floors''''''&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim arrfirstfloor, arrptone, arrpttwo, arrotherfloors &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim u, arrtotfloors, axeptend, axetwist&lt;br /&gt;arrfirstfloor = Rhino.ObjectsbyType (8) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;For u = 1 To floors-1 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrptone = array (udiv*wth/2, vdiv*wth/2, 0) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrpttwo = array (udiv*wth/2, vdiv*wth/2, u*lng)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Rhino.CopyObjects arrfirstfloor, arrptone, arrpttwo &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Next &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;axeptend = array (udiv*wth/2, vdiv*wth/2, floors*lng)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'axetwist = array (0, 0, 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;axetwist = Rhino.AddLine (arrptone, axeptend)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;arrotherfloors = Rhino.ObjectsbyType (8)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;arrtotfloors = Array (arrfirstfloor, arrotherfloors) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;''''''twisting''''''&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim strObject&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;If IsArray (arrfirstfloor) Then &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;For Each strObject In arrfirstfloor &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Call PipeOne(strObject, axetwist)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Next&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;End If&lt;br /&gt;End Sub &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;'Sub PipeOne(strObject, axetwist)&lt;br /&gt;'Dim strCmd, axetwist2'angle = 90'axetwist2 = Array (0, 0, 10)&lt;br /&gt;'strCmd = "! _Twist _SelID " &amp; strObject &amp;amp; " _Enter _Enter" &amp; axetwist &amp;amp; " _Enter" &amp; axetwist2 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; " _Enter" '&amp; angle &amp;amp; " _Enter"'Rhino.Command strCmd&lt;br /&gt;'End SubDrawCell&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;''''''''To Be Completed'''''''''&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;edmondo occhipinti&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-2346747520278714188?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/2346747520278714188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=2346747520278714188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/2346747520278714188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/2346747520278714188'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/03/dimstrprdl-v1-beta.html' title='dim.strP_rdl v.1 beta'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_egQuwieXGho/RgKMpF4RzII/AAAAAAAAABU/e99RddCVUM4/s72-c/edmondo+3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-6248627401518943565</id><published>2007-03-17T00:53:00.000+01:00</published><updated>2007-03-17T01:16:32.476+01:00</updated><title type='text'>dim.strP_rdl v.01</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/Rfst-pUQ4AI/AAAAAAAAABE/a3JzaNsmtBs/s1600-h/edmondo+2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5042674762037387266" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_egQuwieXGho/Rfst-pUQ4AI/AAAAAAAAABE/a3JzaNsmtBs/s400/edmondo+2.jpg" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt; implementing the same presvous logic into skyscaper generation script. the cell geometry of previous sample was rationalized into 3d box. two cells for every face. very box of 1:3 relation was divided by four plans generating three identical cube. every plans rotate progressivly of 120° degree. in this way i was able to repeat the box, growing the tower at the wished height and preserving continuity between floors. i'm also working more generally on tower generator scripts.&lt;/span&gt; &lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;....to be updated....&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;'''''''''''''''''''''''''''''''''''''''&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;Sub crtplan  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;Dim IntFloorNumber  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:78%;"&gt;Di&lt;/span&gt;&lt;span style="font-size:78%;"&gt;m IntFloorHeight  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;Dim DblFloorRotation  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;Dim arrObjects &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;Dim i    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;IntFloorNumber = Rhino.GetReal ("number of floors", 10, 2, 100)  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;IntFloorHeight = Rhino.GetReal ("height of floors", 4, 3, 6) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt; DblFloorRotation = Rhino.GetReal ("rotation of floors", 30, 0, 359)   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt; arrObjects = Rhino.GetObjects("Select planar curve as a tower base plan", 4) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt; axispoint = Rhino.CurveAreaCentroid (arrObjects)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;  'Dim arrPlnSrf    &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt; 'If IsArray(arrObjects) Then  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;  'arrPlnSrf = Rhino.AddPlanarSrf (arrObjects)&lt;br /&gt;  'End If    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;''''copy floors   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt; Dim arraystart &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt; Dim arrayend  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;Dim intLevel   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;Dim arrCrv  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;Dim axispoint     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;   For i = 1 To intFloorNumber   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt; intLevel = IntFloorHeight * i  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;arraystart = Array(0, 0, i)  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;arrayend = Array(0, 0, intLevel)     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;arrCrv = Rhino.CopyObjects (arrObjects, arraystart, arrayend)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;'''''''''''''''''''''''''''''''''''''''&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;"&gt;workinprogress&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-6248627401518943565?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/6248627401518943565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=6248627401518943565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/6248627401518943565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/6248627401518943565'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/03/dimstrprdl-v01.html' title='dim.strP_rdl v.01'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_egQuwieXGho/Rfst-pUQ4AI/AAAAAAAAABE/a3JzaNsmtBs/s72-c/edmondo+2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-5940378172756312279</id><published>2007-03-16T18:26:00.000+01:00</published><updated>2007-03-16T19:06:31.745+01:00</updated><title type='text'>dim.strPT_rdl v.00</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_egQuwieXGho/Rfrad5UQ3-I/AAAAAAAAAA0/eiLVPTNuo6o/s1600-h/edmondo+1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5042582939931566050" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_egQuwieXGho/Rfrad5UQ3-I/AAAAAAAAAA0/eiLVPTNuo6o/s400/edmondo+1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_egQuwieXGho/RfrT_pUQ39I/AAAAAAAAAAs/p265feqKNyg/s1600-h/edmondo+1.jpg"&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;By studying the self-organizing basic structures from micro-organic samples, I’m working on a generative script able to adapt this pattern according to surface's curvature adaptation. Thinking on reverse engineering logics this pattern could be used to adapt the curvature to specific performance requirements. So if one needs to close or to extend the pattern as a responsive behaviour i.e. driven by solar exposure values, he should control the morphologies’ curvature according to this variable, reducing curvature radius in super-exposed zones and increasing it in sub-exposed ones. We should imagine to implement the sun movement (i.e. along a day) and to link this movement with a variable able to coherently change the curvature of an input surface…….To be Updated…..&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;edmondo occhipinti&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;font-size:78%;"&gt;''''''''''''''''''''''''''''''''''''''''''''&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Sub AddCrv&lt;br /&gt;Dim arrptDim arrcontrolDim crv&lt;br /&gt;'arrpt = Rhino.GetObjects ("select control points for curve", 1)arrpt = Rhino.command ("selPt")&lt;br /&gt;arrcontrol = Rhino.getPointcoordinates (,arrpt)&lt;br /&gt;crv = Rhino.AddCurve (arrcontrol)&lt;br /&gt;Rhino.UnselectAllObjects&lt;br /&gt;Dim strMirDim arrgripDim arroneDim arrtwo&lt;br /&gt;Rhino.EnableObjectGrips crv&lt;br /&gt;arrone = Rhino.ObjectGripLocation(crv, 0)arrtwo = Rhino.ObjectGripLocation(crv, 8)&lt;br /&gt;Rhino.EnableObjectGrips crv, vbFalse&lt;br /&gt;Rhino.MirrorObject crv, arrone, arrtwo, vbTrue&lt;br /&gt;End Sub&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;''''''''''''''''''''''''''''''''''''''''''''&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-size:78%;"&gt;Sub rectangle&lt;br /&gt;Dim wth Dim lngDim strCmd&lt;br /&gt;wth = Rhino.getreal ("enter the width of cell", 10, 0.001, 1000)lng = wth*3&lt;br /&gt;strCmd = "! _Rectangle 0,0,0 " &amp; wth &amp;amp; " " &amp; lngRhino.Command strCmd End Sub&lt;br /&gt;'Sub crvpoints ' Dim arrpt1' Dim arrpt2' Dim arrpt3' Dim arrpt4' Dim arrpt5' Dim arrpt6' Dim arrpt7' Dim arrpt8' Dim arrpt9' Dim arrtotpts ' arrpt1 = Mid ' arrtotpts = arrpt1 + arrpt2 + arrpt3 + arrpt4 + arrpt5 + arrpt6 + arrpt7 + arrpt8 + arrpt9' Rhino.addPoints (arrtotpts) rec&lt;br /&gt;Dim divide Dim strrect strrect = Rhino.FirstObject divide = "! _Rebuild _SelID" &amp;amp; strrect &amp;amp; " _Enter" &amp; " " &amp;amp; 0 &amp; 8 &amp;amp; " _Enter _Enter" Rhino.Command divide &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;''''''''''''''''''''''''''''''''''''''''''''&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;workinprogress&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-5940378172756312279?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/5940378172756312279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=5940378172756312279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/5940378172756312279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/5940378172756312279'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/03/by-studying-self-organizing-basic.html' title='dim.strPT_rdl v.00'/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_egQuwieXGho/Rfrad5UQ3-I/AAAAAAAAAA0/eiLVPTNuo6o/s72-c/edmondo+1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192927445445238042.post-2346994317056547785</id><published>2007-03-08T23:02:00.000+01:00</published><updated>2007-03-16T19:15:18.895+01:00</updated><title type='text'></title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_egQuwieXGho/RfreqJUQ3_I/AAAAAAAAAA8/28v5vmlcYSY/s1600-h/edmondo+0.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5042587548431474674" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_egQuwieXGho/RfreqJUQ3_I/AAAAAAAAAA8/28v5vmlcYSY/s400/edmondo+0.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_egQuwieXGho/RfCIZYA_vpI/AAAAAAAAAAc/qmUbrB2-2ME/s1600-h/desktop.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Let’s begin. By the requests of some students, friends and colleagues, here i am with the first post. This is both virtual and real, since virtual is not opposite to the real, but just part of it. here you will find several experiments about my research. the aim is also to launch an exchanging space of opinion, resources, both technique and theorical. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192927445445238042-2346994317056547785?l=edmondocchipinti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edmondocchipinti.blogspot.com/feeds/2346994317056547785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2192927445445238042&amp;postID=2346994317056547785' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/2346994317056547785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192927445445238042/posts/default/2346994317056547785'/><link rel='alternate' type='text/html' href='http://edmondocchipinti.blogspot.com/2007/03/lets-begin.html' title=''/><author><name>edmondo occhipinti</name><uri>http://www.blogger.com/profile/05198825668488659999</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_egQuwieXGho/RfreqJUQ3_I/AAAAAAAAAA8/28v5vmlcYSY/s72-c/edmondo+0.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
