st work on lists? There may be a good reason for this, I just cuoldn't work it out while skimming the code.
2) I'd recommend declaring variables at the last possible moment, not all at the top of the file. It makes it very difficult to see what variable is used where that way. Also, if you change code, it's a lot of work figuring out what variables just became obsolete.
3) In VB.NET you can declare for loop iteration variables inside the loop, cleaning up the code: For t As Integer = 0 To X
4) If statements with conditionals should not be written like this: If (value = False) Then. There's nothing technically wrong with it, but the general rule is to write If (Not value) Then or If (value) Then.
5. Things like k = k+1 can be written shorter in VB.NET, namely k += 1. I just think that looks cooler :)
6. In VB.NET, Exit Sub is still legal (for legacy purposes) but the Return keyword is to be preferred.
7. I'm happy to see you're using sensible variable names and casing.
8. For a program like Grasshopper, one would expect to get the same results when the same setup is run at a later time. That means creating Random instances with a fixed seed value, not DateTime.Now.Millisecond. If your result depends in any way on the seed value, it should be kept constant.
On the whole pretty good work, code is quite self-documenting, properly commented and fast. Hats off.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
2. See this? It's a abstract (for the moment) layout of some WIP thing: Imagine a region where "evenly" random points are placed (and then a random zNoise is added) - then a ball-pivot/delauney triangulation is applied ... then ... :
2. I use my method to create "even" points (I suspect that David's is way better/faster/cooler ... but anyway): after a random point is found (inside the region) an additional check is performed: think of the point as a "candidate" that must "pass" a 2nd constrain: if the min distance from all the already found (random) points is smaller than a user defined one > reject and try again (the "try-again" thing [call it: min distance "loops"] is also user controllable). Thus that C# captured attempts to place 122 points but due to (a) the min distance constrain AND (b) the low (about 8 in this case) amount of "try-again" loops it finishes with "only" 59 (not a big deal for this case). The interesting part is that the attempts required are 1573 (~30 times the random points returned). Of course there's a lot of factors affecting this 1573 (variable) thing ... but don't stick to that.
3. So if David uses a "similar" culling method (add some " " more, he he) ... for 80K points ... well we are talking about a BIG number of attempts.
I can provide you with a "no-even" random points C# that (I assume/guess/hope) can speed things a bit (after all: who's gonna notice an "even" random distribution of 80K points within a micro cube?).
best, Peter
…
Component its manage a CSV like a Database, i found that the csv native Python module doesn't work in IronPython cuz its compiled in PythonC (or something like this), so i found a .Net module that can be imported to IronPython to work with CSV file
So Here a
Pseudo Code of my Toughs
1 - Import .net Module.
2 - Read Csv File. by a Path Assigned by interactive Imput.
3 - Identify the Header of The Csv File.
4 - Create a List of the Fields found in the Csv Header for Further (Sorting, Retrieve specific, create relations with others files by fields in commons, etc. etc. (whatever can imagine))
5 - Read the Data of the Csv File
6 - Out put the Attributes of the Header. (simple list of the fields to identify with what we deal for )
7 - Out Put a list of all the Attributes of the Header ( Complete List of the Fields by Rows Found in the Csv File.
8 - Out Put a list of all the Data inside the Csv File in relation with the Point 7.
over here's my thoughts Any Comment or Suggetions for the Component ?
i will be posting a Github for this, to all who want to collaborate with this.
i'm doing this cuz i'm dealing with a lot of amount of data in my Thesis Project, wich its focus on managing Shapes files, and Csv Files of Data that are not in the same dataset, so i need to relationate a lot of things just to develop my examinations techniques about the city.
…
nded from the centerline at a specified thickness, which may vary along the stent.Two parameters, tmid and tend, control thickness variation
along the segment’s longitudinal direction according to the kinematically admissible Hermitian
curve:
t (d) = tend + t(3d2 − 2d3) 0 ≤ d ≤ 1
t = tmid − tend
where d is the normalized distance along the segment’s
NURBS curve between its endpoint and midpoint. This
form ensures there are no discontinuities in thickness at
the segment midpoint or at the interface of segments in the
overall stent.
2)These normals are then checked and subject to a filleting
procedure to remove re-entrant corners, resulting in
two external sets of boundary coordinates defining the
external edges of the segment’s mid-plane.
3) This plane of nodes is then extruded at a specified angle
(see Section 2.3) to generate a 3-D set of nodes defining
the finite element mesh.
4) These nodes are then mapped to cylindrical coordinates.
5) Finally, 20-node brick elements are generated for finite
element analysis.
I have generated the centerline using 8 control points with degree 7 .
Would be great if anyone can help me with the drawing the normals from the centerline of specified length governed by Hermitian equation,so as to generate the 2D model of a stent (Please refer to the attached figure of a 2D stent and extruded figure) ,using Grasshopper.
The centerline of a single stent segment is representedas a NURBS curve.…
o it would cause troubles with unfolding and fabricating... that's why I used Extrude point component- it will give you similar result, but all surfaces are planar.. you can control extrusion direction with a tip point in rhino...
2)I changed tagging so every tube has 8 points form list A and 8 points from list B... first number of tag is a number of point within one tube... last number of the tag is order of tubes (I draw a little picture in GH, hope you'll understand)...I think original way of tagging wasn't really usefull.. but you can change tagging by yourself...
3) the definition is really messy, sorry about that, but it's just quite complicated task...
4)if you find some incorrect order of tagging, use the slider that controls Shift List component ... it will shift tagging..
5) if you won't be using this definition or find some better way, pleeeease don't tell me - I'll jump out the window :D ... it took me whole day to make it work :D
6)I can't guarantee you anything- I hope it works, but if not - at least I tried... so check everything (especially order of tags and points) twice before you fabricate it.. or print few tubes and make them paper first..
7)there is a part of original definition, that is not useful anymore.. I left it there, but you can delete it (I called it "UNUSED PARTS OF ORIGINAL FILE")
..good luck
Dimitri…
ou will see all of the available components on a ribbon at once so there is no need to keep clicking drop down menus.
It's all about discoverability with GH. What if you're a beginner and don't know about the Create Facility (dbl click canvas) how can you find Extr?
Even if you hover over every component or use the drop down lists you will not see the name Extr appear anywhere.
Sure it makes sense that Extr is short for Extrude but it's also the Nick Name of Extrude to Point component
So you can easily miss the fact that one has a Distance Input verses a Point Input.
I think I made the move to Icons around about the move from version 0.5 to 0.6, possibly before. I initially thought that I would go back to text because I loved the mono chromatic look of the text but I soon realised that Icons were the way forward. The greatest benefit is speed. You don't need to digest and decipher every component (which is written 90 degrees to the norm).
I'm not saying you should move to Icons forthwith but at least consider that once you have a better knowledge and understanding of GH, Icons will set you free.
My top ten tips that I would highly recommend to anyone wanting to better themselves with GH.
1) Turn on Draw Icons
2) Turn on Draw Fancy Wires
3) Turn on Obscure Components
4) Use the Create Facility like a Command Line eg "Slider=-1<0.75<2" or "Shiftlist=-1"
5) Use Component Aliases to customise your use of the Create Facility eg giving the Point XYZ component an alias of XYZ will bring it up as the first option on the Create Facility as opposed to the other possibilities.
6) Try to answer other people's questions even if it's not relevant to your own area. By looking into solving a problem outside of your comfort zone and then posting your results it is very rewarding but it also lets you see the other approaches that get posted in a new light.
7) Take the time to understand Data/Path structures.
8) Buy a second monitor - There is nothing that can compare to real estate when working in Grasshopper.
9) Read Rajaa Issa's Essential Mathematics
10) Pick a panel in a tab on the ribbon and get to know every component inside and out and then move on. Start with the Sets Tab > List Panel…
Ladybug + Honeybee:
(Follow steps 0-4 for basic functionality and 0-9 for full functionality)
0. If you have an old version of LB+HB, download the file here (https://app.box.com/s/ds96em9l6stxpcw8kgtf)
and open it in Grasshopper to remove your old Ladybug and Honeybee version.
1. Make sure that you have a working copy of both Rhino and Grasshopper installed.
2. Open Rhino and type "Grasshopper" into the command line (without quotations). Wait for grasshopper to load.
3. Install GHPython 0.6.0.3 by downloading the file at this link (http://www.food4rhino.com/project/ghpython?ufh) and
drag the .gha file onto the Grasshopper canvas.
4. Select and drag all of the userObject files (downloaded with this instructions file) onto your Grasshopper canvas.
You should see Ladybug and Honeybee appear as tabs on the grasshopper tool bar.
(If you are reading this instruction on github you can download them from http://www.food4rhino.com/project/ladybug-honeybee)
5. Restart Rhino and Grasshopper. You now have a fully-functioning Ladybug. For Honeybee, continue to the following:
6. Install Radiance to C:\Radiance by downloading it from this link (https://github.com/NREL/Radiance/releases/download/4.2.2/radiance-4.2.2-win32.exe) and running the exe.
7. Install Daysim 4.0 for Windows to C:\DAYSIM by downloading it at this link (http://daysim.ning.com/page/download) and running the exe.
8. Install EnergyPlus 8.1 to C:\EnergyPlusV8-1-0 by going to the DOE website (http://apps1.eere.energy.gov/buildings/energyplus/energyplus_download.cfm), making an account, going to "download older
versions of EnergyPlus, selecting 8.1 and running the exe.
9. Copy falsecolor2.exe (http://pyrat.googlecode.com/files/falsecolor2.exe) and evalglare.exe (http://www.ise.fraunhofer.de/en/downloads-englisch/software/evalglare_windows.zip/at_download/file) to C:\Radiance\bin
10. You now have a fully-working version of Ladybug + Honeybee. Get started visualizing weather data with these video tutorials (https://www.youtube.com/playlist?list=PLruLh1AdY-Sj_XGz3kzHUoWmpWDXNep1O).
After I've done all the above I followed this video
https://vimeo.com/96155674
And everything works well.
…
nted" in space (at instance definition creation phase): indicates the obvious fact that if garbage in > garbage out (try it).
2. Load the GH thing. Task for you: Using Named Views locate the points of interest as described further and make a suitable view. That way you can navigate rather easily around (hope dies last).
3. Your attractors are controlled from here:
The slider in blue picks some attractor to play with. You can use this while the K2 is running.
4. Don't change anything here (think of it as a black box: who cares how it works? nobody actually):
5. Enable the other "black box": job done your real-life stuff is placed:
6. Enable the solver: your "real-life" things start to bounce around:
7. Go there are play with the slider. A different attractor yields an other solution:
8. With real-life things in place if you disable the C# ... they are instantly deleted and you are back in lines/points and the likes:
9. Either with instance definitions or Lines/points change ... er ... hmm ... these "simple" parameters and discover the truth out there:
10. Since these are a "few" and they affect the simulation with a variety of ways ... we need a "self calibrating" system: some mini big Brother that does the job for us. Kinda like applying safely the brakes when it rains (I hate ABS mind).
NOTE: the rod with springs requires some additional code ,more (that deals with NESTED instance definitions) in order to (b) bounce as a whole and at the same time (b) elongates or shrinks a bit.
More soon.
…
ng/702/30
EDIT: DK2 works, not with positional tracking yet (14/09/15)
Source is here:
https://github.com/provolot/RhinoRift
Steps:
1) Download these files (also attached below):
https://github.com/provolot/oculus-grasshopper/raw/master/oculus-grasshopper_v0.4.ghx
https://github.com/provolot/oculus-grasshopper/raw/master/OpenTrackRiftGrasshopperUDP.ini
https://github.com/provolot/oculus-grasshopper/raw/master/oculus-grasshopper-test_v0.1.3dm
2) Download OpenTrack - http://ananke.laggy.pk/opentrack/, and setup/install. Once installed, double-click to open.
3) In OpenTrack, load the 'OpenTrackRiftGrasshopperUDP.ini' profile. Click the 'Start' button and move your Rift around - make sure that it looks like the Yaw/Pitch/Roll data is being sent. TX/TY/TZ will all be 0, as Oculus doesn't have absolute positioning data.
4) In Rhino, open the test 3dm. You'll notice that there are two viewports - called 'LeftEye' and 'RightEye'. These have been placed to mimic where the screens should be for the Oculus Rift --- but only when Rhino is in fullscreen mode, with the command 'Fullscreen'. The placement needs to be tweaked, but should work.
If you want to use your own model, you can load your own .3dm file in Rhino, then you can right-click on the viewport name, and go to Viewport Layout > Read from File. If you then load my test file, Rhino should open my two viewports, sized correctly, onto your model.
The placement of these viewports need to be tweaked; if you find a better viewport layout, upload an empty Rhino file with your viewports, and we can share eye-layout 'templates'!
5) In Grasshopper, open the .ghx definition. Everything that is multiple-grouped is a value that can be changed. Two things here:
- IPD: Set this and convert it to the proper units for your model.
- Left/right viewport names. In this case, leave this as-is, since you're using my example file.
6) Turn on the Grasshopper Timer, if it isn't on already.
7) In the GH definition, toggle 'SyncEyes' to be True. Then, in the left viewport, try orbiting around with the mouse. The 'RightEye' viewport should move around as well, pretty much simultaneously.
8) In OpenTrack, click 'Start', then toggle 'ReadUDP' to be True. You should see the 'OpenTrackInfo' panel fill with data that's constantly changing.
9) Move around the landscape with your camera, and when you set on a starting view that's ideal, click the triangle of the Data Dam component to 'store' the data.
10) Finally, toggle 'OculusMove' to be true. If all works correctly, both viewports should move based on the Rift's movement.
Let me know if you have any problems!
Cheers,
Dan…
Added by Dan Taeyoung at 11:47pm on December 10, 2013
hours/day (40 hours) Future University in Egypt (FUE) Department of Continuing Education(DCE) ________________________________________ The aim of this workshop is to teach participants how to create a parametric housing model which can be associated with day lighting and thermal analysis. Moreover, participant will get the opportunity to develop passively design envelope. The workshop is highly interactive giving different examples that develop a strong understanding of Grasshopper Workflow & different passive strategies using the performance simulation tool (DIVA). The participants are divided into groups to study the different orientations and the final outcomes of each group are presented thus concluding the recommendation strategies for each orientation. At the end of the workshop, each participant will receive a Certificate of Attendance from Future University in Egypt. Target Participants: ‐Professional architects. ‐Master and PhD students. ‐ Last year of undergraduate students (ONLY). Prerequisite: -None, however, a basic Grasshopper & Rhinoceros knowledge is preferred. Used Software:(will be provided by the instructor). ‐Rhino 5 SR 3 ‐Grasshopper 0.90066 ‐DIVA Version 2.1.0.3 ________________________________________ Workshop Outline: 1st DAY (Wednesday 29 Jan): 1.Introduction to passive design strategies (efficient envelope) 2.Introduction to parametric design logic 2nd DAY (Thursday 30 Jan) : 1.Developing technical tools based on reverse engineering technology. 2.Examples for parametric facade design 3rd DAY (Saturday 1 Feb): 1.Enforcing the parametric logics with Grasshopper 2.Introducing the performance simulation tool (DIVA) 4th DAY (Sunday 2 Feb): 1.Facade design using grasshopper ‐Studio work. 2.Associative techniques – Day lighting and thermal simulation 5th DAY (Monday 3 Feb): 1.Final optimization and final results 2.Group work presentation ________________________________________ Participants are required to bring their own laptops. To register: 1.Fill in the application form found in this link: https://docs.google.com/forms/d/18OrcwwDks5-vd0irZITC430bjMVb8I8pdw0i5OefyMg/viewform 2.Kindly pay the workshop fees at FUE DCE Admission or in the Bank account Number of participants is a minimum of 20 and a maximum of 24 ________________________________________ Workshop Trainers: Ayman Wagdy Mohamed Ibrahim Researcher at Sustainable Design research group | AUC Lecturer at Parametric design | AUC M.Sc. Architecture – Architecture and Building Technology| Politecnico Di Milano Haitham Salah Ali Mahmoud Teaching Assistant of Design course | AASTMT Head of design team | YBA Architect Principal and cofounder | Arkan Architect ________________________________________ For any questions or info please do not hesitate to contact us at : Mob. : 01003220017 - 01008551772 Email : Fue_ppd@outlook.com…
Added by ayman wagdy at 12:12pm on January 17, 2014