Search
  • Sign In

Grasshopper

algorithmic modeling for Rhino

  • Home
    • Members
    • Listings
    • Ideas
  • View
    • All Images
    • Albums
    • Videos
    • Architecture Projects
    • Installations
    • Add-ons
  • Download
    • Rhino 7 w/Grasshopper
    • Add-ons
  • Forums/Support
    • Current Discussions
    • Legacy Forum
  • Learn
    • Getting Started
    • Online Reference
    • API documentation
    • Video Tutorials
    • Common Questions
    • Scripting and Coding
    • Books and Articles
  • Attend
  • My Page

Search Results - 杭州余杭区(小姐约炮)约炮微信(156-8194-7106)提供外围女小姐上门服务快速安排面到付款这里存放顺序变量,一行一个.n

Topic: Dynamic Space Planning Experiment
rea.  (GH screenshot, Excel screenshot, and various model space screenshots in jpg below)  organize%20by%20floor_v4_for_online_question.jpg (GH definition) : organize%20by%20floor_v4.gh The user controls the length of the floor plate with a slider while the width is taken from Excel as the largest width value among the rooms. The rooms are prioritized sequentially. (e.g. 'A' is prioritized above 'B', 'B' is prioritized above 'C', etc.)   This essentially means that is the floor plate gets to small to accommodate all room, the last room (in this case 'D') would be first to move to higher floors, then 'C', and then 'B' as necessary.  'A' would always remain on the first floor plate. My thought process: Compare the added lengths of different room combinations that could potentially be adjacent to one another to the user determined floor plate length.  Using dispatch components, create a 'flowchart' of If/Then scenarios that tests these comparisons and seek for a room configuration that minimizes room displacement. Once the definition knows what should move where, the rooms are moved using vertices that are put together from the room dimensions, as all movement is relative to the other spaces. My problem: This definition is highly customized for the scenario of having only 4 rooms, but I would like to create a definition that performed a similar operation on any potential 'n' amount of rooms.  The problem with that is that it would require the use of a varying amount of components, as increased number of rooms would need more length summations, length comparisons, and embedded dispatch paths.  Is what I am trying to do possible? Can grasshopper create a varying number of components based on the list length of rooms? Please help!! Thanks!! …
Added by Drew Brooks at 11:02am on January 22, 2014
Blog Post: Grasshopper Q&A
Q:Replace a list of statements with numbers

A:

feed your…

Added by Yi Lü 吕谊 at 10:11am on June 11, 2011
Comment on: Topic 'workflow'
equation such as Enneper's minimal surface ParametricPlot3D[{u - u^3/3 + u v^2, -v - u^2 v + v^3/3,   u^2 - v^2}, {u, -2, 2}, {v, -2, 2}] with Mantis you will compute the equation to get the x&y&z coordinates to link it with xyz of pointsin grasshopper which will be previewed in rhino viewport such as N[Table[{u - u^3/3 + u v^2, -v - u^2 v + v^3/3,u^2 - v^2}, {u, -2, 2}, {v, -2, 2}]] put the previous equation into a panel component and link it with Mathematica Solution component in Mantis tools  the output is a string of coordinates of points such as {{{x,y,z},{x1,y1,z1},.........}}} then, convert the string into doubles "with the same order" in Mantis 0.4" within the next 2 weeks i will release a component will facilitate the conversion but for Mantis 0.3 i made some simple steps with string replace component Secondly, you can't export a dxf or 3d files from mathematica buy using mantis while you can get xyz coordinates of any 3d object vertices into grasshopper then export it from rhino ***you can import any 3d object into mathematica to make any editing on it with ending the import command line with ; Import["ExampleData/747.3ds.gz"]; because if you didn't end this line with ; the standard mathematica kernel can't enable visualizing these models but it can compute all of the 3d data without seeing the output as image Import["ExampleData/747.3ds.gz", "VertexData"]  Import["ExampleData/747.3ds.gz", "PolygonData"] and if you are good in using mathematica language you will see its powerful potentials which enables the user to compute complicated and complex equations and steps in a very fast way. At last,for any notebook file-> you can copy and past most of the equation as previous or save the files as *.m initialization files and then call it easily such as <<Graphics`Polyhedra`; or  Needs["Graphics`Polyhedra`"]; then write your commands which are depended on the initialization file. Best Regards M.Zaghloul…
Added by Zaghloul4d to Mantis at 5:37pm on May 30, 2011
Comment on: Topic 'intersection'
N, O}. In this case it's very obvious what needs to happen. You want to create lines combining the following points {AK, BL, CM, DN, EO}.   If the second set however only contains 3 points {K, L, M}, it is no longer obvious. The default behaviour for Components is to keep on matching points until both sets are depleted. This is called Longest List Matching. It will give you 5 lines, that connect the following points: {AK, BL, CM, DM, EM}. As you can see, the last point in the second list (M) has been 'recycled' three times.   You can also change the default data matching behaviour. For example if you change it to Shortest List, then the component will stop working as soon as the smallest set is depleted: {AK, BL, CM}. In this case the points D and E are completely ignored because no 'sibling' could be found for them in the second set.   A third option is Cross Reference matching, which will create all possible combinations: {AK, AL, AM, BK, BL, BM, CK, CL, CM, DK, DL, DM, EK, EL, EM}.   However the best solution in this particular case is not to muck about with the data matching, but instead Graft your data. Grafting means that all the items in a set are moved into their own little set. Thus, if you graft {A, B, C, D, E}, you actually end up with 5 sets, each containing a single item {A}, {B}, {C}, {D} & {E}. When you combine this new data layout with your second set {K, L, M}, each grafted item will be matched with all the items in the second set, this is after all how Longest List works. So you end up with a data layout that looks like this: {AK, AL, AM}, {BK, BL, BM}, {CK, CL, CM}, {DK, DL, DM} & {EK, EL, EM}, which is very similar to the Cross Reference matching, but retains more of the original layout. I.e., it's not just a huge list of all the lines, they are still five groups of three items each, which is a far more informative layout than Cross Reference would generate.   I'm afraid at this time of night this is the best I can explain it.    -- David Rutten david@mcneel.com Poprad, Slovakia…
Added by David Rutten at 3:18pm on July 18, 2011
Comment on: Video 'Simulating the Dynamic Features of Using Scenarios'
am afraid I cannot explain everything in detail because I am too lazy to write extensively:) However, the framework is much easier to deal with. This animation emerged during our efforts to develop an application for evaluating using scenarios. The collaboration of our lab at the collage of architecture of Texas A&M University with another lab at the department of computer science ended up in a developing a tool that was presented last Summer in EDRA 44. The reference is below: Zarrinmehr, S., Rodriguez, S., Giese, A., Al-Douri, F., Clayton, M., & Amato, N., (2013). “Prototyping an Evidence-Based Evaluation System for Nursing Scenarios Using Agent-Based Modeling”, Presented in EDRA44, Providence, Rhode Island, United States. The agent (i.e. nurse) navigates the environment to reach certain destinations where patients need care delivery. On regular occasions each patient’s room needs to be checked even though care delivery might not be asked for. I also need to add that the periodical visits to the destinations also have some randomness. Therefore, the walking trail is not predetermined, while the destinations and their periodical visits are determined. The path is always selected from the cone of vision. The implementation method used partial isovist calculation to capture the cone of vision and Dijkstra algorithm to find the shortest path. The partial isovist finds the potential points in the visible scene and Dijkstra connects them to the temporary destinations. The whole operation was done in a one battery in GH because of several reasons which mainly include the iterative process of decision-making. Grasshopper has an isovist calculation battery that shoots rays at equal angles. This battery missed many of the potential exit points needed to calculate the shortest paths. A potential exit point is a point in the visible scene which may offer an exit. In the example below these points are highlighted in green. I developed another algorithm to capture isovist that walked with equal step lengths on the visible edges. Their difference in 360 degree cone of vision is shown in the following images.   GH isovist My isovist an potential exit points Dijkstra Algorithm is very well-known and you just need to search it online to find tones of examples and tutorials to learn and use it.…
Added by Saied Zarrinmehr at 1:24pm on October 22, 2013
Comment on: Topic 'is it freeform or just algorithem'
strictly with code (BTW: did you crossed Rubicon?). 1. See this: Imagine a curve (say a "rail") that is divided N times and then circles are created with random radii. Circle control points (9, that is) are sampled (obviously) into a DataTree where branches are the rail divisions. Let's call the control points: "start" seed points. 2. Imagine a capability ... that stores all these (the original "seed" control points) into a "parameter" and then each time that a change occurs to them (varying the x/y, on a per point on a per branch on a per plane basis[that provides the Z]) stores the "modified point" into the parameter (at the same index with the old: meaning "deleting" the old) ... and then some other code gets that data and makes curves and lofts them. Reset means: sample again the original "seed" points into that "parameter". Closing are reopening the definition has no effect: the lofted stuff is derived from the (internalized, so to speak) modified points (from the "parameter"). 3. A variety of "automation" is available: for instance if you jump from branch to branch and from item to item the value of the selected point is inquired and the sliders that control the new x/y are "set" to 0,0 (meaning no change - yet) values. There's mo "store" mode: it works automatically as far as you modify points or you hit the reset button 4. This does that (only achievable with code): 5. Obviously points can been replaced with anything ... and thus ... we can individually modify items in collections ... and forget for ever attractor points and all that (OK where appropriate, he he). I'll post 30 similar examples soon in the forthcoming  mother of all threads: "GH goes (at last) interactive". Watch this space. BTW: study the "animation" where points with index 6 are "sequentially" modified. I've added some delay in order to give you time to get the gist of the whole thingy. best, Lord of Darkness …
Added by peter fotiadis at 3:38am on July 24, 2015
Comment on: Topic 'ULTIMATE SOLUTION TO FINALLY TEACH DATA TREES'
nce in programming I found that the best way to explain data structure is a real-life case scenario (even pretty mundane) where you actually need a tree to organize things (no matter what those things are, it is their organization that matters in this case), and then show how and why it is important in the articulation of data inside Grasshopper. Typically I make the case of a restaurant. It's quite verbose (sorry for the long post that follows), but hopefully didactic enough. Let's say that you open a new restaurant and want to start small, so you can serve one client at the time: keeping track of his/her order is easy, it's just one (case of single data). The client is satisfied, the buzz spreads so you are able to afford to serve a single table with n clients. To keep track of the clients orders you now need a list (case of single list - of which the single data is a particular case). Things are going well. So now you can afford other two tables. How do you keep track of the orders? You number the tables {0}, {1} and {2}, each table with its separately processed list of orders. So now you know that if you need to look for the order of a particular client you first need to look for the right table number and then the client number at that table.Either you're in luck or you're really good: now you can expand your restaurant in a second room, with 4 more tables. So now, you'll have the tables in room {0} and the ones in room {1}. Respectively: {0;0}, {0;1}, {0;2} and {1;0},{1;1}, {1;2}, {1;3}. Welcome to data trees (of which a list is a particular case of a tree with a single branch, of which....). Ok, I think you get the idea..... next step would be opening on another building, with 3 rooms, each of which has..... (and so on and so forth). Turns out you are a famous franchise or something like that. The important things about this example (besides talking about food - so you immediately get everyone's attention) in my opinion are:. it grows from simple to complex, allowing the metaphor to grow along in the learner's mind before goin into a visual reference . it teases the necessity of a tree structure to organize data, rather than imposing it without any basis . it has a grasp to a real-life case, so people can relate to it The complex operations require practice in order to become fluent with data trees, and that depends only on how much practice one needs to acquire the required fluency, but I believe this simple example can give a good foundation on the basic concepts. Hope this was helpful!…
Added by Alessio Erioli at 6:43pm on September 22, 2016
Comment on: Topic 'Morphing One Object into Another - DISTORTED HELP'
way. I have a lot of similar cases (~50) but unfortunately are carried over solely via code (useless to you ... unless you speak C#). In general imagine a mesh that has N vertices and we want to "morph" it into something other: let's assume for simplicity into a "spherical mesh" (all vertices lay in a given sphere). Imagine that for each vertex V we find the closest point (cP) on the sphere and then we define a pMod point at 0-1 on the yielding line V,Cp (Note: you don't need to reparametrise a Line). Imagine that we sample the vectors (pMod - V) into a Vectors List and then we feed the PDeform GH native component with (a) the mesh, (b) the mesh vertices (i.e. the from part) and (c) the deformation vectors (i.e. the to part). The result could be something like that: So ... if we replace the sphere with some object and we mastermind some proper vector creation strategy ... is possible to "morph" a mesh into another mesh that "looks" like the target object (add some " " more, he he). Obviously the "variations" are unlimited, for instance this deformation  ... follows another logic (maps only the "basePoints" into a circle and modifies the topmost points): Meaning that theoretically a banana could become an alligator (obviously a yellow one). Anyway ... notify if you want an example of the above.…
Added by peter fotiadis at 10:49am on February 1, 2017
Topic: Big mistery on DA.GetDataTree with optional inputs
n tried to switch between 3.5 or 4.0, but nothing is changing. Example: (List, working) Protected Overrides Sub RegisterInputParams(pManager As Grasshopper.Kernel.GH_Component.GH_InputParamManager) pManager.Register_StringParam("TestString", "TestString", "OPTIONAL // TestString.", GH_ParamAccess.list) pManager(0).Optional = True End Sub Protected Overrides Sub RegisterOutputParams(pManager As Grasshopper.Kernel.GH_Component.GH_OutputParamManager) pManager.Register_StringParam("Test", "Test", "Test") End Sub Protected Overrides Sub SolveInstance(DA As Grasshopper.Kernel.IGH_DataAccess) Dim TestString As New List(Of String) Dim Log As New List(Of String) If (Not DA.GetDataList(0, TestString)) Then Log.Add("Blop") DA.SetDataList(0, Log) End If End Sub End Class (Tree, not working) Protected Overrides Sub RegisterInputParams(pManager As Grasshopper.Kernel.GH_Component.GH_InputParamManager) pManager.Register_StringParam("TestString", "TestString", "OPTIONAL // TestString.", GH_ParamAccess.tree) pManager(0).Optional = True End Sub Protected Overrides Sub RegisterOutputParams(pManager As Grasshopper.Kernel.GH_Component.GH_OutputParamManager) pManager.Register_StringParam("Test", "Test", "Test") End Sub Protected Overrides Sub SolveInstance(DA As Grasshopper.Kernel.IGH_DataAccess) Dim TestString As New Grasshopper.Kernel.Data.GH_Structure(Of Grasshopper.Kernel.Types.GH_String) Dim Log As New List(Of String) If (Not DA.GetDataTree(0, TestString)) Then Log.Add("Blop") DA.SetDataList(0, Log) End If End Sub End Class I have been searching an error somewhere all the day, and I really don't get it... it's doing the same thing with any data type... Any clues? It really drives me crazy... …
Added by Thibault Schwartz at 10:43am on February 25, 2012
Topic: Shortcut Keys (my list so far)
that aren't relevant anymore or if there are any I missed please let me know.  Maybe we can get a list like this in a better place as well. Thank you. Right Mouse - When wiring, plugs wire into multiple inputs.Shift+Click - Pick component aggregate.Shift+Clicking - Place component aggregate.Alt+Left - Click Split canvas tool.Ctrl+Q - Preview toggle.Ctrl+E - Enable toggle.Ctrl+Left - Navigate upstream.Ctrl+Right - Navigate downstream.Ctrl+M - Mesh Edge display toggle.Ctrl+1 - No previewCtrl+2 - Wireframe preview.Ctrl+3 - ShadedCtrl+Alt+Shift+Click - Save image of canvas.Ctrl+Alt and Shift+Ctrl+Alt - Highlights components on the canvas and component palette.Ctrl+Shift - Rewire component input/output.Double Click - Find/SearchAlt+Drag - Copy component on canvas.Ctrl+Tab - Document cycling.Ctrl+Shift+P - PreferencesCtrl+N - New fileCtrl+O - Open fileCtrl+S - Save file.Ctrl+Shift+S - Save as.Ctrl+Alt+S - Save backup.Ctrl+W - Close open document.Ctrl+Z - Undo copy.Ctrl+Y - RedoCtrl+X - CutCtrl+C - CopyCtrl+P - PasteCtrl+Alt+V - Paste in placeCtrl+Shift+V - Paste in centerCtrl+A - Select allCtrl+D - DeselectCtrl+Shift+I - Invert SelectionCtrl+Shift+A - Grow SelectionCtrl+Shift+Left Arrow - Grow UpstreamCtrl+Shift+Right Arrow - Grow DownstreamCtrl+Left Arrow - Shift upstreamCtrl+Right Arrow - Shift downstreamCtrl+G - Group selectionF3 - FindF4 - CreateF5 - RecomputeCtrl+B - Send to backCtrl+F - Bring to frontCtrl+Shift+B - Move backwardsCtrl+Shift+F - Move forwardsInsert - Bake selectedCtrl+Q - Toggle previewCtrl+E - Toggle enabled selected …
Added by kleerkoat at 12:48pm on August 16, 2012
  • 1
  • ...
  • 761
  • 762
  • 763
  • 764
  • 765
  • 766
  • 767
  • 768
  • 769
  • 770

About

Scott Davidson created this Ning Network.

Welcome to
Grasshopper

Sign In

Translate

Search

Photos

  • Parametric Structure

    Parametric Structure

    by Parametric House 0 Comments 0 Likes

  • Tensile Column

    Tensile Column

    by Parametric House 0 Comments 0 Likes

  • Quarter Pavilion Rhino Grasshopper Tutorial

    Quarter Pavilion Rhino Grasshopper Tutorial

    by June Lee 0 Comments 0 Likes

  • Quarter Pavilion Rhino Grasshopper Tutorial

    Quarter Pavilion Rhino Grasshopper Tutorial

    by June Lee 0 Comments 0 Likes

  • Quarter Pavilion Rhino Grasshopper Tutorial

    Quarter Pavilion Rhino Grasshopper Tutorial

    by June Lee 0 Comments 0 Likes

  • Add Photos
  • View All
  • Facebook

Videos

  • Parametric Structure

    Parametric Structure

    Added by Parametric House 0 Comments 0 Likes

  • Tensile Column

    Tensile Column

    Added by Parametric House 0 Comments 0 Likes

  • Quarter Pavilion Rhino Grasshopper Tutorial

    Quarter Pavilion Rhino Grasshopper Tutorial

    Added by June Lee 0 Comments 0 Likes

  • Circle Packs

    Circle Packs

    Added by Parametric House 0 Comments 0 Likes

  • Random Abstract 2d Pattern - Rhino Grasshopper

    Random Abstract 2d Pattern - Rhino Grasshopper

    Added by kgm 0 Comments 0 Likes

  • Inflated Diamonds

    Inflated Diamonds

    Added by Parametric House 0 Comments 0 Likes

  • Add Videos
  • View All
  • Facebook

© 2025   Created by Scott Davidson.   Powered by Website builder | Create website | Ning.com

Badges  |  Report an Issue  |  Terms of Service