ocessed once Grasshopper is done with whatever it's doing now.
3) Grasshopper tells the Slider object that the mouse moved and the slider works out the new value as implied by the new cursor position.
4) The slider then expires itself and its dependencies ([VB Step 1] in this case, but there can be any number of dependent objects).
5) When [VB Step 1] is expired by the slider, it will in turn expire its dependencies (VB Step 2), and so on, recursively until all indirect dependencies of the slider have been expired.
6) When the expiration shockwave has subsided, runtime control is returned to the slider object, which tells the parent document that stuff has changed and that a new solution is much sought after.
7) The Document class then iterates over all its objects (they are stored in View order, not from left to right), solving each one in turn. (Assuming the object needs solving, but since in your example ALL objects will be expired by a slider change, I shall assume that here).
8) It's hard to tell which object will get triggered first. You'd have to superimpose them in order to see which one is visually the bottom-most object, but let's assume for purposes of completeness that it's the [VB Step 1] object which is solved first.
9) [VB Step 1] is triggered by the document, which causes it to collect all the input data.
10) The input parameter [x] is asked to collect all its data, which in turn will trigger the Slider to solve itself (it got expired in step 4 remember?). This is not a tricky operation, it merely copies the slider value into the slider data structure and shouts "DONE!".
11) [x] then collects the number, stores it into its own data structure and returns priority to the [VB Step 1] object.
12) [VB Step 1] now has sufficient data to get started, so it will trigger the script inside of it. When the script completes, the component is all ready and it will tell the parent document it can move on to the next object (the iteration loop from step 7).
13) Let us assume that the slider object is next on the list, but since it has already been solved (it was solved because [VB Step 1] needed the value) it can be skipped right away, which leaves us with the last object in the document which is still unsolved.
14) [VB Step 2] will be triggered by the document in very much the same way as [VB Step 1] was triggered in step 9. It will also start by collecting all input data.
15) Since all the input data for [VB Step 2] is either defined locally or provided by an object which has already been solved, this process is now swift and simple.
16) Upon collecting all data and running the user script, the component will surrender priority and the document becomes active again.
17) The document triggers a redraw of the Grasshopper Canvas and the Rhino viewports and then surrenders priority again and so on and so forth all the way up the hierarchy until Grasshopper becomes idle again.
[end boring]
Pretty involved for a small 3-component setup, but there you have it.
To answer somewhat more directly your questions:
- The order in which objects are solved is the same as the order in which they are drawn. This is only the case at present, this behaviour may change in the future.
- Adding a delay will not solve anything, since the execution of all components is serial, not parallel. Adding a delay simply means putting everything on hold for N milliseconds.
- [VB Step 1] MUST be solved prior to [VB Step 2] because otherwise there'd be no data to travel from [GO] to [Activate]. The only tricky part here is that sometimes [VB Step 1] will be solved as part of the process of [VB Step 2], while at other times it may be solved purely on its own merits. This should not make a difference to you as it does not affect the order in which your scripts are called.
--
The Man from Scene 24…
Added by David Rutten at 4:43pm on December 10, 2009
lass BrepDeform Inherits GH_Component Public Reslist As New List(Of String) Public Sub New() MyBase.New("BrepDeform", "Deform", _ "移动物件的控制点" & vbCrLf & "(Move the control Point to change a object)", "SEG", "Modify")
End Sub Public Overrides ReadOnly Property ComponentGuid As System.Guid Get Return New Guid("8226e0ea-ed6b-47c2-8a24-244f044152d8") End Get End Property Protected Overrides ReadOnly Property Internal_Icon_24x24() As System.Drawing.Bitmap Get Return My.Resources.SEG_BrepDeform End Get End Property Protected Overrides Sub RegisterInputParams(ByVal pManager As GH_Component.GH_InputParamManager) ' pManager.AddTextParameter("Guid", "Id", "将要被替换的犀牛物件" & vbCrLf & "(RhinoObjects that will be replaced)", GH_ParamAccess.item) 'Dim guidParam As New Param_Guid pManager.AddParameter(New Param_Guid, "Guid", "Id", "将要被替换的犀牛物件" & vbCrLf & "(RhinoObjects that will be replaced)", GH_ParamAccess.item) pManager.AddPointParameter("ControlPoint3d", "C", "控制点的位置" & vbCrLf & "(Control Point's location)", GH_ParamAccess.item) pManager.AddPointParameter("NewPoint3d", "P", "新控制点的位置" & vbCrLf & "(New Control Point's location)", GH_ParamAccess.item) pManager.AddNumberParameter("Tolerace", "T", "输入点与物件实际控制点对比的精度" & vbCrLf & "(Tolerace for the Control Point match)", GH_ParamAccess.item, 0.1)
pManager.AddBooleanParameter("BlMove", "M", "如果是True则进行移动" & vbCrLf & "(If true Perform the Move)", GH_ParamAccess.item, False)
End Sub Protected Overrides Sub RegisterOutputParams(ByVal pManager As Kernel.GH_Component.GH_OutputParamManager) pManager.AddTextParameter("Result", "RG", "结果列表" & vbCrLf & "(Result)", GH_ParamAccess.list) End Sub Public Overrides ReadOnly Property Exposure As GH_Exposure Get Return GH_Exposure.primary End Get End Property
Protected Overrides Sub SolveInstance(ByVal DA As Kernel.IGH_DataAccess) If Banner.astrict.showmessage Then Return Dim Ids As Guid = Guid.Empty 'Dim Ids As String = String.Empty Dim tpt As Point3d = Point3d.Unset, opt As Point3d = Point3d.Unset Dim tolar As Double = 0.1 Dim blMove As Boolean = False If Not DA.GetData(0, Ids) Then Return If Not DA.GetData(1, opt) Then Return If Not DA.GetData(2, tpt) Then Return If Not DA.GetData(3, tolar) Then Return If Not DA.GetData(4, blMove) Then Return If Not blMove Then GoTo line1 Reslist.Add(Now & "_未替换!(Replace failed!)") Else Reslist.Clear() ' Grasshopper.Instances.ActiveCanvas.ModifiersEnabled = False End If
' rt.AddRange(docobjlist.Select(Function(geoobj As RhinoObject) GH_Convert.ObjRefToGeometry(New ObjRef(geoobj.Id)))) 'Private Checked(5) As Boolean, Namestr() As String = {"Point", "Curve", "Brep", "Mesh", "TextDot", "TextEntity"}
Try
Dim rh As RhinoDoc = Rhino.RhinoDoc.ActiveDoc Dim rhobj As RhinoObject = rh.Objects.Find(Ids) ' Dim rhobj As RhinoObject = rh.Objects.Find(New Guid(Ids))
Dim bobj As BrepObject = CType(rhobj, BrepObject) RhinoApp.RunScript("Cancel", False) RhinoApp.RunScript("Cancel", False) bobj.Select(True)
RhinoApp.RunScript("_SolidPtOn", False) Dim gobjs As GripObject() = bobj.GetGrips ' rh.Views.RedrawEnabled = False For Each grpobj As GripObject In gobjs
If grpobj.CurrentLocation.DistanceTo(opt) < tolar Then grpobj.Select(True) Dim CurrentPln As Plane = RhinoDoc.ActiveDoc.Views.ActiveView.ActiveViewport.ConstructionPlane Dim tropt As New Point3d(opt), trtpt As New Point3d(tpt) tropt.Transform(Transform.PlaneToPlane(Plane.WorldXY, CurrentPln)) trtpt.Transform(Transform.PlaneToPlane(Plane.WorldXY, CurrentPln))
Dim movestr As String = "_move " + String.Format("{0},{1},{2} ", tropt.X, tropt.Y, tropt.Z) + String.Format("{0},{1},{2} _Cancel _Cancel", trtpt.X, trtpt.Y, trtpt.Z) RhinoApp.RunScript(movestr, True) grpobj.Select(False) End If
Next
'RhinoApp.RunScript("Cancel", False) 'RhinoApp.RunScript("Cancel", False) '' rh.Views.RedrawEnabled = True Reslist.Add(Now & "_替换成功!(Replace Success!)") Catch ex As Exception Reslist.Add(Now & "_替换失败!(Replace failed!)" & vbCrLf & ex.Message)
End Try ' Grasshopper.Instances.ActiveCanvas.ModifiersEnabled = True
line1: DA.SetDataList(0, Reslist) End Sub
'Private Sub Testt_PingDocument(sender As IGH_DocumentObject, e As GH_PingDocumentEventArgs) Handles Me.PingDocument ' Dim Mbool = Aggregate bcbool In Checked Into cb = Any(bcbool)
' If Not Mbool Then ' Checked(0) = True ' Message = Namestr(0) ' Order = 0 ' End If 'End Sub
End Class
The picture below shows the two question.
Question One I must use data dam, or the component can't batch deal the brep. I don't know why, I have You can give me a solution to make it working normal not using the data dam
Question Two I can not uset the Button component, If I use it, the gh canvas will die with some mouse event--. I have see this problem before in this forum,but there is no solution and explain. I want to know why and How to solve it.
I don't know if I have made my question clear,if not give a message. Thank you! Thank you all.
The gh test file and 3dm test file in the upload files.
…
Visiting School Rio de Janeiro will collaborate with the Centro Carioca de Design with the support of Columbia University Studio X to investigate new possibilities for the urban infrastructure surrounding World Cup Stadiums. Nation-wide, there has been significant investment to build and renovate stadiums for the 2014 World Cup in order to meet the required standard FIFA regulations (‘Padrão FIFA’). At the same time, there has been a large public demand for equal investment into transport systems, public space, and public programs such as hospitals and schools. The Visiting School will tap into the momentum of this movement, and promote a series of interventions within and around the World Cup structures, proposing new public programs and standards for their legacy. Students can choose to focus directly on the Maracanã stadium in Rio de Janeiro, the venue for the Final match of the World Cup. The intense ten-day workshop will employ computational design and digital fabrication to introduce a design methodology that creatively automates and promotes transformation, mutation and complexity for these infrastructure interventions.
Prominent Features of the workshop
Teaching teamThe teaching team will include a mix of tutors from the Architectural Association, including Theodore Sarantoglou Lalis e Dora Sweijd (lassa-architects.com) of Diploma 17, and locally-based architects, urban-designers and experts, mediated by locally-based Visiting School directors, to promote cutting-edge innovative strategies informed by local political, economic and construction issues.
Computational skillsThe workshop will teach advanced digital modeling and parametric design skills, no previous experience is needed. A group of specialist computation tutors will conduct an initial skills workshop and continue to assist throughout the workshop to develop the individual projects of the participants.
Digital FabricationA series of physical models will be built using digital fabrication techniques that will be taught during the workshop, no previous experience is needed.
Applications
1) You can make an application by completing the online application found under ‘Links and Downloads’ on the AA Visiting School page. If you are not able to make an online application, email visitingschool@aaschool.ac.uk for instructions to pay by bank transfer.
2) Once you complete the online application and make a full payment, you are registered to the programme. A CV or a portfolio is not required.
The deadline for applications is 11thApril 2014.
All participants travelling from abroad are responsible for securing any visa required, and are advised to contact their home embassy early. After payment of fees, the AA School can provide a letter confirming participation in the workshop.
Fees
The AA Visiting School requires a fee of £695 per participant, which includes a £60 Visiting membership fee.
Fees do not include flights or accommodation, but accommodation options can be advised. Students need to bring their own laptops, digital equipment and model making tools. Please ensure this equipment is covered by your own insurance as the AA takes no responsibility for items lost or stolen at the workshop.
Eligibility
The workshop is open to current architecture and design students, phd candidates and young professionals.
…
para poder parametrizarla - Entender cómo se gestionan los datos con Grasshopper - Asociar formulaciones matemáticas a modelos paramétricos - Panelizar y triangular superficies - Parametrizar estructuras sencillas - Saber deformar modelos tridimensionales paramétricamente - Elaboración de algoritmos simples y aplicarlos a modelos tridimensionales - Exportar e importar tablas de datos
El curso será impartido por dos Authorized Rhino Trainers.
También te informamos de que hemos renovado el temario del curso, preparado específica y exclusivamente por nosotros, y que es revisado y ampliado continuamente, gracias a la experiencia de cursos anteriores. El curso tiene un formato intensivo de 18 horas, cuyo horario es: - viernes, de 16 a 20; - sábado, de 10 a 14 y de 16 a 20; - domingo, de 11 a 14 y de 16 a 19.
Si estás interesado en apuntarte, contáctanos en: cursos@frikearq.com…
ape of the Gatorade Run – Fun Race Machine(https://www.youtube.com/watch?v=S8RIMVhdgIk), and the interactive digitally informed Nike + Fuelband-Wristband Interactive Video-Mapping Projection Concert at at Battersea Power Station(https://vimeo.com/70791746), the AA Visiting School Rio de Janeiro 10-day intensive workshop will focus on how sports infrastructure can be informed and transformed by scanned body data so to both illustrate and improve human athletic capacity and interactively engage the spectator. Students will use theTokyo 2020 Olympic stadium as a testing ground for the creation of a new type of intelligent and interactive sports architecture. The workshop will teach eyeball and brain scanning, interactive coding, and parametric digital design and fabrication using Rhino and Grasshopper, to create a post-robotic morphing between the sensibility of the body and novel computational innovation, between Rio de Janeiro 2016 and Tokyo 2020. All software will be taught from beginning level, no previous experience needed.
APPLICATIONS:
http://rio.aaschool.ac.uk/2016-aa-rio-to-tokyo-interactive/2016-applicationinscricoes/
…
r loops. Cleaning these out manually will be a real pain.
OT I see you making very wide contributions in the forum. Kudos to you and the rest of the mcneel team for an epically elegant product. I've used a wide range of other 3D products for engineering technical and animation purposes but for some reason never looked seriously at rhino. With a couple of 3D and 2D fabrication projects in mind I came across GH for generative geometry and of course it's host, rhino3D. Wow, both perform at the highest level with GH unlocking interactive scripting in a way that is simply beautiful. Rhino shader GPU leverage is also well done. Both rhino and GH could benefit from some broader multithreading leverage; though I well understand a point you have made elsewhere that internal data structure instanciation makes this a little challenging. But there are ways to code around this (painfully); or just throw memory at it... I cannot be alone in running 32GB of 2133DDR3 - and it's painful to be waiting around with just one 4.2GHz core utilised while another 11 idle.
However, my credit card got a workout an hour after discovering the rhino/GH combo and I've no regrets. I've not had so much fun since Mathematica was released.
Its some decades since i worked with a dataflow language, so I was most pleased to find the essential tree data path management tools were comprehensive and effective if sometimes cumbersome. Your rate of innovation seems phenomenal; the new fields components are most intriguing. So much creative capability! This is a most exciting complement to my toolset and one I'm looking to put to serious work in the coming weeks.
Cheers. Rod…
jogs between the curves. My Grasshopper program uses the curves to add orientation curves. These curves are then broken down into 150 segments with a "Divide Equal" command", then merged and fed to my Kuka|prc core. 24 commands in total.
The program works well on the Kuka in T1 setting so I can adjust the speed. Albeit my hand is exhausted holding the buttons... and this will not work when I am not in T1 mode.
When trying to program I found that if I did not have each curve broken into an equal number of segments (i.e. 150) the commands would not merge. I found that each LIN command on the kuka is completed in the same time interval. Unfortunately this means that some of my shorter jog curves can take longer to run than my cutting curves. And my velocities are not constant throughout the program because the curves are different lengths. I need the cutter when in the material to have a consistent cutter speed to optimize my machine time (as well to speed up the jogs).
Is there a better way to program this (or component to use) so I can manipulate the velocity with Kuka|prc? i.e. should I be using Divide Equal and Merge?
Thanks
Joanne…
led to write F2825E_glzP_0 to idf file8. index out of range: 09. Failed to write 29BFFB_glzP_0 to idf file10. index out of range: 011. Failed to write 613DE8_glzP_0 to idf file12. index out of range: 013. Failed to write 3CBCE5 to idf file14. index out of range: 015. Failed to write BDEF6C to idf file16. index out of range: 0
Etc...
Someone knows how to solve this problem.
In attached you can find idf file, gh definition and the errors list.
Thanks for availability.
Best,
Andrea…
len , I lost all of my work (at least the 3d modeling)
And I frankly if I want to participate I´ll need to finnish up the board and i cant do the renders on my own I need more time , but I only have until 11:59 pm of July 6 to finnish up one render, if you feel up to the challenge, whoever completes it will receive 290 dollars (its all I can give) to any account you want. I basically need one single image.
It consists on 3 towers, with an organic facade, I'm including the competition board I had saved on in my dropbox, I want more or less the same perspective shown on the left of the board.
Sorry, but i'm desperate, I had it all done but well cant control everything in life i guess, only do it if you feel you can pull off a professional render.
Thanks. (contact me and I´ll give you more info on the towers, I was able to save some limited sections and floor plans .... but yeah.. limited, so you´ll have to base your work on the images I provide here.
I can give some files now, including images of the physical model.
Board: http://i.minus.com/idYpFK844DWns.jpg
Physical model: http://imgur.com/a/PywJa
Hope its enough, I'm also including one image i had where I explored the footprints of all the buildings, but its just for reference.
I know theres barely enough time to finnish it... but I dont know what else to do, do you guys think i should probably just take a good photograph of the model and run with that? I feel that would probably look very unprofessional :l but I really dont have a choice here
…