are invisible in the picture.
So what you see it's a common band that has lost all those characteristics of the original in order to protect the process.
We also did an "invisible setting" prototype which has built in Flexibility.
If you are in the jewelry industry you would know what I mean and it is close to a miracle.
It's a shame I can not share details and this is why I am planning my next major work on something 10 times more complex then this, at least.
It's will be for my own business and for the jewelry industry as well.
I hate to tease people and then not to be able to produce anything more than an image.
But I thought it would be better than nothing, at least for jeweler designers, so they can see that there are more and more users and that complexity it is not something to shy away from, and it's worth the time spent because the returns on production are far larger than for special orders and this is why GH is useful.
We can design a piece of jewelry usually in less then 1 hour, hence GH is not really worth the time.
But for production with so many variables (Finger sizes controlling most of the outcome together with stone sizes etc.) then GH it's a MUST!
I really appreciate everyone's comments and suspicions and I understand why.
99% of the people out there do not really understand the complexity of jewelry at the industrial level. It' s not just form but the post-production that's the killer.
This industry it's still an hybrid of technology and art with, and due to the lack of the old school pros, unfortunately, we face very lousy and unpredictable execution in the post production (after the casting process). This leaves you with a design process and intention that requires a lot of control over every possible variant of the object.
One wrong design aspect it's multiplied thousands of times at the benches (for every single piece) = bad profits!
It sound more serious that it is but very few companies are willing to do so (delivering good product vs low quality and this also happens because the consumer is not longer aware of the difference. So, who does keep quality, it's only because of integrity, third party QA or just pride).
This is way GH is invaluable. This is why that Def looks like out of proportion for that (Visual) simple band.
It is because there are dozens and dozens of variable effecting everything else. In fact it is not even complete as it is in order to cover everything but the most critical ones.
Sorry for the long replays. I am an instructor and a professional jeweler by trade since I was very young and I love to teach, so I overflow with explanations... and Components :)).
Next time it will be "in the open" as they say...…
uments:
1. You are targeting CATIA don't you? (not exactly tomorrow but ... soon) and/or SolidWorks (hello C# haven't we met before?).
2. You MUST deal with nested block instances instead of what you are trying to do right now (I'm talking about the real MERO things not abstract Lines and points). This is not doable with GH components I'm afraid (but it's rather easy with code).
3. You MUST deal with RDBMS in order to keep track with what's going on in your company per project per case per designer (who sells that bolt? what's his cat name? is he a reliable supplier? what I'm doing in life? ... that sort of "queries"). At this point: CATIA is 1% CAD things and 99% PLM stuff (Product Life cycle Management). We do want that since it's 21st century running don't we?.
I hear you: but these are 3 arguments ... indeed but ... hey who's counting? he he.
Method:
A. This def attached has a very simple C# that gets mesh Pts and makes a nice U/V style collection of points (DataTree in plain English).
B. Then we go to that umbrella sticks thingy: we can calculate anything (already the thing does "some") plus your collections of divided points (with the right way, he he) VS a given node: you said (Skype) that you want to calculate angles with these (from 2 to 6) in mind: obvious since you are doing real-life MERO things.
C. Then we could calculate the appropriate Planes for PlaneToPlane transformations: get a nested instance definition (the red things that you've showed to me yesterday) placed at 0,0,0 (Plane.WorldXY) and put in in every Plane collection related with every node (clash defection is an obvious must).
Case resolved, closed: what about that Vodka?
More in Skype
…
merely automates finding clear intersections between pairs of objects and then splits the objects along those intersection *curves*, deletes the trims, then joins the remains, and cycles on. But within the confusing Rhino Settings tolerance value, wherever surfaces actually just sort of come closely together, there *is* *no* clear intersection curve. So it bugs out and stops working EVERY time you try more than a dozen or two spheres.
Some software can do this by switching to volumetric pixels (voxels). $9K-$30K Geomagic Freeform is an example of this. It also fails sometimes, often due to memory issues, as you can imagine since it needs to fill all inner space of each sphere definition with 3D pixels.
Materialize Magics for $16K can often handle such Booleans well. It will take a seeming lifetime to figure out such often pirate software kludges though.
One thing you can try though is to simply drape a mesh or NURBS plane onto the top of your spheres.
There's a well known *reason* your Booleans are failing. Nobody here has yet even hinted at it:
The main reason is that Rhino/Grasshopper developers don't care about the human element. The math exists to make this work very fast, every time. It just has to join things *right*, incorporating human knowledge of kissing surfaces, instead of acting stupidly, like some pocket calculator. But that would involve hacks that make 99% of complex Booleans work instead of 10%, and we can't have that since it will be SLOWER for the other 1% that just happen to have no nearly kissing or really kissing surfaces.
You could also use the new Cocoon plugin to do a surface *around* your structures, with a given radius of extension beyond the spheres, then offset that surface back the same radius. That is 100% robust, but won't offer quite as sharp of intersections, more rounded, like most everybody wants anyway.
You can *test* Boolean failures, by running a Grasshopper intersection command, to see the intersection curves, and zoom in to see how badly many of them are, all knotted, or twisted, or even with gaps, often with gaps.
It's a math problem nobody at McNeel wants to solve, sorry.
Just write a check for $25K and spend six months taking notes, like I did, and you can merge your simple spheres finally.…
Added by Nik Willmore at 6:33pm on October 20, 2015
It was originally developed at NBBJ by the Design Computation Leadership Team over the course of about 10 months in 2015-2016.
Primary development by:
Andrew Heumann / andheum / @andrewheumann
Lead Developer
Marc Syp / marcsyp / @mpsyp
Product Manager
Nate Holland / nateholland / @_NateHolland
Contributing Developer
----
Gone are the days of faking a user interface by laying out sliders and text panels and hiding wires on the Grasshopper canvas. Human UI interfaces are entirely separate from the Grasshopper canvas and leverage the power of Windows Presentation Foundation (WPF), a graphical subsystem for rendering user interfaces in the Windows environment.
OLD NEW
In other words: Human UI makes your GH definition feel like a Windows app. Create tabbed views, dynamic sliders, pulldown menus, checkboxes, and even 3D viewports and web browsers that look great and make sense to anyone--including designers and clients with no understanding of Grasshopper.
Download the plugin + sample files:
Food4Rhino
View the project on Bitbucket:
Bitbucket
We look forward to seeing where this project takes you, please share your projects made with Human UI!…
basis" problem ... all of a sudden - quite recently - a girl posted the MITESIGF (Most Important Thread Even Seen In Grasshopper Forums). She doesn't even realized that: she's novice:
http://www.grasshopper3d.com/forum/topics/array-1
4. Why this MITESIGF is MITESIGF? For 2 reasons:
4.a: Wooden pairs (Beams) Profile Curves (belonging in some tree) MUST allow individual control on a per "item basis" (OK, that's obvious) - see Images posted in the thread. No attractor (or any other "global" policy) can cut the mustard here (to tell you the truth this happens in 99% of pure engineering cases, but they appear very rarely in GH Forums - if at all, mind). If the profile curves are defined with 5 points (or 9 for the double thing) we need "on-the-fly" control over this Array (like the radii in your Sphere Manipulator) :
4.b: Critical Bottom-to-Top issues arise: Create a "global" topology (call it "parent") - the beams - and then place real-life "components" (call them "childs") that affect (most probably) the "parent". OK, that's impossible to do with GH/Rhino (peace of cake with CATIA/Microstation) but you can "approximate" things up to a point. Alternatively: you can "trigger" some interest from GH/Rhino developers if they have any AEC market(s) in mind.
Topic 4.a requires the master-to-slave slider thingy (iterate over branches (index slider:master) > reset the 5 values (value slider:slave) > modify them on the fly > save > increase/decrease branch > ...).
Other than that my definitions are far more challenging than this simple case ... but ... anyway ... long is the path (and hilly).
more soon.
best, The Troll
…
ns. but first allow me to explain what i'm trying to do: i have a serial device i want to talk to, but i have to do it using some sort of handshaking. for instance, when i send a command/data, i need to wait for an appropriate response before sending another. i have used andy payne's general serial components from firefly, but i don't think they'll work for what i want to do, and in general, i want to know how to do this from scratch. i'm using the pyserial library to do the comm, and i can get it to work within one script. here's an example of a working (mostly) port open/close script (x=input param for baud, y=input param for port name, z=boolean input param for open/close):
import serialmyPort=serial.Serial()myPort.baudrate = xmyPort.port = yif z == True: try: myPort.open() except: print "Something went wrong. Cannot open port." if myPort.isOpen() == True: print myPort.name + " is open" if z != True: try: myPort.close() except: print "Something went wrong. Cannot close port." if myPort.isOpen != True: print myPort.name + " is closed"
this all works well and good. here are my questions:
1) I can open the port and then close it. however, if i try to re-open it, i get an access denied error. it seems rhino is holding the port open, as i have to re-start rhino to get it working again. i read through the discussions and didn't see any definitive answers to this problem. any advice?
2) I'd like to share this port with other components (or at least break up the functions of opening/closing the port and read/write, not unlike how the firefly components are organized), but i have no idea how to share an object instance between components. i did see that there is a sticky dict and tried to add myPort to it, but i kept getting errors in the other component when i try to use the object's methods. for instance:
Component 1 Script:
import serial
import scriptcontext
myPort=serial.Serial("COM4", 9600)
scriptcontext.sticky['myPort']=myPort
Component 2 Script:
import serial
import scriptcontext
myPort=scriptcontext.sticky['myPort']
print myPort.read()
but i get messages like:
Runtime error (MissingMemberException): 'Serial' object has no attribute '_port_handle'
any assistance would be greatly appreciated!!
best,
~BB~…
nter the programming world and tinker more complex, interactive solutions. We will also explore advanced programming paradigms. There is no class official programming language, as both C# and Vb.Net are possible on the participant’s side, and all examples will be provided in both C# and Vb.Net. Additionally, we will see how to get started writing full .Net plug-ins. Finally, we will have time to explore user’s own proposals on the third day.
Day 1 Morning: programming introduction in .Net
• The Grasshopper scripting components. Choosing a .Net language. Language developments
• Variables declaration, assignment and utilization. Operators. Methods [functions]. Calls
• Classes: declaration and instancing. Constructors. Importing a namespace. On3dPoints, OnLines
• Arrays declaration and usage. Lists. Adding to arrays and lists, advantages and opportunities.
Afternoon: patterns
• About OOP (object oriented programming) as opposed to procedural programming. Discussion
• Example of OOP good code reuse: sorting points by coordinates using the .Net SDK classes
• Lists as input parameters. Trees as input parameters. Usage and limitations
• Finding resources: on the net with website that can help getting started and troubleshoot. And books
Day 2 Morning: extending Grasshopper functionality with our definitions
• Store data between updates. The use of fields [globals, or static locals]
• Examples on how to use stored data between updates: a simple agents simulation
• Baking geometry with scripting directly into the Rhino document. Baking with names
• Passing custom types from a scripted component to another one. Our own code reusability
• Rendering an animation from Grasshopper. How to get started and final results
Afternoon: customizing our tools
• Our Rhino plug-in with Visual Studio C# [Vb.Net] Express Edition & wizard. Parametric mesher
• Writing a custom Grasshopper component: hacking an exporter for our data to Excel
Day 3 All day: personal project
• Rehearsal on any example from the first two days. A project that you want to start on your own, being it a Rhinoceros plug-in, a Grasshopper assembly or a script. Example might be to send data through network with UDP to Processing
MINIMUM REQUIREMENTS
A good foundation of Grasshopper visual programming is mandatory. You will need a level which corresponds to the Grasshopper 101 course outline. Examples of things that will not be covered in this course are: sorting document spheres by diameter, paneling of a surface with grasshopper components. You are expected to already know these from the Grasshopper course.…
of a hack to push it to an android device, and you can't use labels, which is a very bad point!
...
I won't buy an Iphone!
The other is Control OSC. It looks rougher, but it has a lot of advantages to me.
+ Game of Life included!
+ you can use and update labels :))
+ Has a nice muti touch widget unfeatured in touch osc
+ You can script the interface using java script manipulation in gh, stream it to your dropbox and update in one "tap", as follows
Does anyone have experience with scripting interfaces for this software? I'm stuck already. I know nothing of java script to begin with. As you can see I managed to format the labels but the osc message I could not find a way, it stays untouched.
Just in case someone knows better, here are my "objects" (I said that right?). The userXXX are replaced in GH.
{ "name":"userName", "type":"Slider", "x":(xPadding + .11), "y": yPadding, "width":.82, "height":.082, "color":"userColor", "min":userMin, "max":userMax, "ontouchmove" : "var roundedvalue = this.value.toFixed(userFix); LbluserName2.changeValue(roundedvalue)", "onvaluechange": "oscManager.sendOSC('/userName', 'f', this.value.toFixed(userFix))",},{ "name":"LbluserName1", "type":"Label", "x":xPadding, "y": yPadding, "width":.1, "height":.05, "color":"userColor", "value": "userName"},{ "name":"LbluserName2", "type":"Label", "x":xPadding, "y": (yPadding + 0.05), "width":.1, "height":.05, "address":"/userName", "color":"userColor", "value": 0},…
[2 of 8] No context surfaces...5. [3 of 8] Writing geometry...6. [4 of 8] Writing Electric Load Center - Generator specifications ...7. [5 of 8] Writing materials and constructions...8. [6 of 8] Writing schedules...9. [7 of 8] Writing loads and ideal air system...10. [8 of 8] Writing outputs...11. ...... idf file is successfully written to : C:\Users\Personal\Desktop\TESI\x006\THOR001\EnergyPlus\THOR001.idf12. 13. Analysis is running!...14. C:\Users\Personal\Desktop\TESI\x006\THOR001\EnergyPlus\eplusout.csv15. ......
Done! Read below for errors and warnings:
16. 17. Program Version,EnergyPlus, Version 8.3.0-6d97d074ea, YMD=2016.01.17 17:56,IDD_Version 8.3.018. 19. ** Warning ** IP: Note -- Some missing fields have been filled with defaults. See the audit output file for details.20. 21. ************* Beginning Zone Sizing Calculations22. 23. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)24. 25. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00126. 27. ** ~~~ ** because vertex 1 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00128. 29. ** ~~~ ** (Dot Product indicator=184.4593)30. 31. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.32. 33. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)34. 35. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00136. 37. ** ~~~ ** because vertex 2 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00138. 39. ** ~~~ ** (Dot Product indicator=184.4593)40. 41. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.42. 43. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)44. 45. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00146. 47. ** ~~~ ** because vertex 3 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00148. 49. ** ~~~ ** (Dot Product indicator=184.4593)50. 51. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.52. 53. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)54. 55. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00156. 57. ** ~~~ ** because vertex 4 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00158. 59. ** ~~~ ** (Dot Product indicator=184.4593)60. 61. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.62. 63. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)64. 65. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00166. 67. ** ~~~ ** because vertex 1 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00168. 69. ** ~~~ ** (Dot Product indicator=184.4593)70. 71. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.72. 73. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)74. 75. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00176. 77. ** ~~~ ** because vertex 2 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00178. 79. ** ~~~ ** (Dot Product indicator=184.4593)80. 81. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.82. 83. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)84. 85. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00186. 87. ** ~~~ ** because vertex 3 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00188. 89. ** ~~~ ** (Dot Product indicator=184.4593)90. 91. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.92. 93. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)94. 95. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00196. 97. ** ~~~ ** because vertex 4 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00198. 99. ** ~~~ ** (Dot Product indicator=184.4593)100. 101. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.102. 103. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)104. 105. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001106. 107. ** ~~~ ** because vertex 1 of back surface=PELLE_COMUNIONE002 is in front of receiving surface=PELLE_COMUNIONE001108. 109. ** ~~~ ** (Dot Product indicator=184.4593)110. 111. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.112. 113. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)114. 115. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001116. 117. ** ~~~ ** because vertex 2 of back surface=PELLE_COMUNIONE002 is in front of receiving surface=PELLE_COMUNIONE001118. 119. ** ~~~ ** (Dot Product indicator=184.4593)120. 121. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.122. 123. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)124. 125. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001126. 127. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001128. 129. ** ~~~ ** (Dot Product indicator=182.6148)130. 131. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.132. 133. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)134. 135. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001136. 137. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001138. 139. ** ~~~ ** (Dot Product indicator=92.2297)140. 141. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.142. 143. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)144. 145. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001146. 147. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001148. 149. ** ~~~ ** (Dot Product indicator=92.2297)150. 151. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.152. 153. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)154. 155. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001156. 157. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001158. 159. ** ~~~ ** (Dot Product indicator=182.6148)160. 161. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.162. 163. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)164. 165. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001166. 167. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001168. 169. ** ~~~ ** (Dot Product indicator=92.2297)170. 171. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.172. 173. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)174. 175. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001176. 177. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001178. 179. ** ~~~ ** (Dot Product indicator=182.6148)180. 181. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.182. 183. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)184. 185. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001186. 187. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001188. 189. ** ~~~ ** (Dot Product indicator=92.2297)190. 191. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.192. 193. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)194. 195. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001196. 197. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001198. 199. ** ~~~ ** (Dot Product indicator=1.8446)200. 201. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.202. 203. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)204. 205. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001206. 207. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001208. 209. ** ~~~ ** (Dot Product indicator=1.8446)210. 211. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.212. 213. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)214. 215. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001216. 217. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_3 is in front of receiving surface=PELLE_COMUNIONE001218. 219. ** ~~~ ** (Dot Product indicator=92.2297)220. 221. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.222. 223. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)224. 225. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001226. 227. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_3 is in front of receiving surface=PELLE_COMUNIONE001228. 229. ** ~~~ ** (Dot Product indicator=1.8446)230. 231. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.232. 233. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)234. 235. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001236. 237. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_3 is in front of receiving surface=PELLE_COMUNIONE001238. 239. ** ~~~ ** (Dot Product indicator=92.2297)240. 241. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.242. 243. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)244. 245. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001246. 247. ** ~~~ ** because vertex 3 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE001248. 249. ** ~~~ ** (Dot Product indicator=184.4593)250. 251. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.252. 253. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)254. 255. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001256. 257. ** ~~~ ** because vertex 4 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE001258. 259. ** ~~~ ** (Dot Product indicator=184.4593)260. 261. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.262. 263. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)264. 265. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001266. 267. ** ~~~ ** because vertex 1 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE001268. 269. ** ~~~ ** (Dot Product indicator=184.4593)270. 271. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.272. 273. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)274. 275. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001276. 277. ** ~~~ ** because vertex 2 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE001278. 279. ** ~~~ ** (Dot Product indicator=184.4593)280. 281. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.282. 283. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)284. 285. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001286. 287. ** ~~~ ** because vertex 1 of back surface=WIN_001_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001288. 289. ** ~~~ ** (Dot Product indicator=180.7210)290. 291. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.292. 293. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)294. 295. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001296. 297. ** ~~~ ** because vertex 3 of back surface=WIN_001_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001298. 299. ** ~~~ ** (Dot Product indicator=180.7210)300. 301. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.302. 303. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)304. 305. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001306. 307. ** ~~~ ** because vertex 2 of back surface=WIN_001_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001308. 309. ** ~~~ ** (Dot Product indicator=180.7210)310. 311. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.312. 313. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)314. 315. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001316. 317. ** ~~~ ** because vertex 3 of back surface=WIN_001_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001318. 319. ** ~~~ ** (Dot Product indicator=180.7210)320. 321. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.322. 323. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)324. 325. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001326. 327. ** ~~~ ** because vertex 3 of back surface=PELLE_OVEST is in front of receiving surface=PELLE_COMUNIONE001328. 329. ** ~~~ ** (Dot Product indicator=184.4593)330. 331. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.332. 333. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)334. 335. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001336. 337. ** ~~~ ** because vertex 4 of back surface=PELLE_OVEST is in front of receiving surface=PELLE_COMUNIONE001338. 339. ** ~~~ ** (Dot Product indicator=184.4593)340. 341. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.342. 343. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)344. 345. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001346. 347. ** ~~~ ** because vertex 1 of back surface=WIN_002_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001348. 349. ** ~~~ ** (Dot Product indicator=180.7210)350. 351. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.352. 353. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)354. 355. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001356. 357. ** ~~~ ** because vertex 3 of back surface=WIN_002_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001358. 359. ** ~~~ ** (Dot Product indicator=180.7210)360. 361. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.362. 363. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)364. 365. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001366. 367. ** ~~~ ** because vertex 2 of back surface=WIN_002_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001368. 369. ** ~~~ ** (Dot Product indicator=180.7210)370. 371. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.372. 373. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)374. 375. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001376. 377. ** ~~~ ** because vertex 1 of back surface=WIN_002_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001378. 379. ** ~~~ ** (Dot Product indicator=180.7210)380. 381. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.382. 383. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)384. 385. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001386. 387. ** ~~~ ** because vertex 3 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001388. 389. ** ~~~ ** (Dot Product indicator=184.4593)390. 391. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.392. 393. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)394. 395. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001396. 397. ** ~~~ ** because vertex 4 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001398. 399. ** ~~~ ** (Dot Product indicator=184.4593)400. 401. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.402. 403. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)404. 405. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001406. 407. ** ~~~ ** because vertex 7 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001408. 409. ** ~~~ ** (Dot Product indicator=184.4593)410. 411. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.412. 413. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)414. 415. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001416. 417. ** ~~~ ** because vertex 8 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001418. 419. ** ~~~ ** (Dot Product indicator=184.4593)420. 421. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.422. 423. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)424. 425. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001426. 427. ** ~~~ ** because vertex 1 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001428. 429. ** ~~~ ** (Dot Product indicator=184.4593)430. 431. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.432. 433. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)434. 435. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001436. 437. ** ~~~ ** because vertex 4 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001438. 439. ** ~~~ ** (Dot Product indicator=184.4593)440. 441. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.442. 443. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)444. 445. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001446. 447. ** ~~~ ** because vertex 5 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001448. 449. ** ~~~ ** (Dot Product indicator=184.4593)450. 451. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.452. 453. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)454. 455. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001456. 457. ** ~~~ ** because vertex 8 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001458. 459. ** ~~~ ** (Dot Product indicator=184.4593)460. 461. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.462. 463. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)464. 465. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001466. 467. ** ~~~ ** because vertex 1 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002468. 469. ** ~~~ ** (Dot Product indicator=167.5695)470. 471. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.472. 473. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)474. 475. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001476. 477. ** ~~~ ** because vertex 2 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002478. 479. ** ~~~ ** (Dot Product indicator=167.5695)480. 481. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.482. 483. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)484. 485. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001486. 487. ** ~~~ ** because vertex 3 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002488. 489. ** ~~~ ** (Dot Product indicator=195.1092)490. 491. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.492. 493. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)494. 495. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001496. 497. ** ~~~ ** because vertex 4 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002498. 499. ** ~~~ ** (Dot Product indicator=195.1092)500. 501. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.502. 503. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)504. 505. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001506. 507. ** ~~~ ** because vertex 3 of back surface=PELLE_COMUNIONE001 is in front of receiving surface=PELLE_COMUNIONE002508. 509. ** ~~~ ** (Dot Product indicator=167.5695)510. 511. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.512. 513. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)514. 515. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001516. 517. ** ~~~ ** because vertex 4 of back surface=PELLE_COMUNIONE001 is in front of receiving surface=PELLE_COMUNIONE002518. 519. ** ~~~ ** (Dot Product indicator=167.5695)520. 521. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.522. 523. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)524. 525. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001526. 527. ** ~~~ ** because vertex 1 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002528. 529. ** ~~~ ** (Dot Product indicator=32.0568)530. 531. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.532. 533. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)534. 535. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001536. 537. ** ~~~ ** because vertex 2 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002538. 539. ** ~~~ ** (Dot Product indicator=139.1556)540. 541. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.542. 543. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)544. 545. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001546. 547. ** ~~~ ** because vertex 3 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002548. 549. ** ~~~ ** (Dot Product indicator=139.1556)550. 551. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.552. 553. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)554. 555. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001556. 557. ** ~~~ ** because vertex 4 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002558. 559. ** ~~~ ** (Dot Product indicator=32.0568)560. 561. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.562. 563. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)564. 565. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001566. 567. ** ~~~ ** because vertex 1 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002568. 569. ** ~~~ ** (Dot Product indicator=167.5695)570. 571. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.572. 573. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)574. 575. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001576. 577. ** ~~~ ** because vertex 2 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002578. 579. ** ~~~ ** (Dot Product indicator=167.5695)580. 581. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.582. 583. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)584. 585. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001586. 587. ** ~~~ ** because vertex 3 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002588. 589. ** ~~~ ** (Dot Product indicator=167.5695)590. 591. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.592. 593. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)594. 595. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001596. 597. ** ~~~ ** because vertex 4 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002598. 599. ** ~~~ ** (Dot Product indicator=167.5695)600. 601. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.602. 603. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)604. 605. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001606. 607. ** ~~~ ** because vertex 1 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002608. 609. ** ~~~ ** (Dot Product indicator=195.1092)610. 611. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.612. 613. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)614. 615. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001616. 617. ** ~~~ ** because vertex 2 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002618. 619. ** ~~~ ** (Dot Product indicator=195.1092)620. 621. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.622. 623. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)624. 625. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001626. 627. ** ~~~ ** because vertex 3 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002628. 629. ** ~~~ ** (Dot Product indicator=195.1092)630. 631. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.632. 633. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)634. 635. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001636. 637. ** ~~~ ** because vertex 4 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002638. 639. ** ~~~ ** (Dot Product indicator=195.1092)640. 641. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.642. 643. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)644. 645. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001646. 647. ** ~~~ ** because vertex 5 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002648. 649. ** ~~~ ** (Dot Product indicator=195.1092)650. 651. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.652. 653. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)654. [...]
thisthe errorthat appen when i lunch E+ with only one zone....what is going on???? …
o Common - just like C#. But Rhino Python has a "Scripting Language Wrapper" which breaks commonly used taks down to simpler functions.
Here's a general Example:
Take a look at the code on this website http://wiki.mcneel.com/developer/rhinocommonsamples/addline). Generally it's Rhino Common code in three language to create a line. They look equally difficult.
But if you use Rhino Python Scripting you can use an simplified syntax to get the same result. It's very similar to Rhino Script.
The code would be:
import rhinoscriptsyntax as rsstart_point = rs.GetPoint("Get start point")end_point = rs.GetPoint("Get end point")line_id = rs.AddLine(start_point, end_point)
OK - No Error Tracking here, but still you can see that the syntax is much simpler. (And in the end you just have less lines of code you have to debug.
And the good thing about Rhino Python is, that you can mix these approaches. Once you reach a level where Rhino Python Script doesn't get you there, which by the way happens very rarely, you can still use the Rhino Common methods.
Also, in Python Sycripting 99% of what you probably would like to do is available as a "wrapped" script function.
Rhino Python Script is currently also better documented than Rhino Common for C# and VB.Net. If you have used Rhino VB Script before, these functions will be very familar to you.
I'm not sure, why it's currently a separate plug-in. I belive the reason is that Rhino 4 (which is supported by GH) doesn't support Rhino Python. Also it's currently WIP, so it needed to be updated more frequently than GH itself. In the long run (I believe) it might be integrated into GH as a general component
- Martin
P.S.: To use Rhino Python within GH is a little more tricky than my example - but nothing compared to developing C#
P.S.2 Here's the code with Error Tracking:
import rhinoscriptsyntax as rsdef AddLine(): start_point = rs.GetPoint("Get start point") if start_point is None: print "No start point was selected" return end_point = rs.GetPoint("Get end point") if end_point is None: print "No end point was selected" return line_id = rs.AddLine(start_point, end_point) return line_idAddLine()
…