to be used. This to me was an exercise rather than as a plugin.
I'm not sure of your question, refers to this?
Gh_transform can concatenate the transformations (which without that perhaps this component did not have much sense), and also can of course split the concatenation. If you want the step 3 (index 2), then choose the transformations 0, 1 and 2 and concatenate them. The file above (and the video, at end) has an example of this. If you mean something else, please let me know.
Oh damn, I just saw that the undo has stopped working, shit xD you meant that? Something I changed at the last time that it crashed, I will fix it soon.…
them can be addressed before winter.
Bugs:
. Vector preview is great, but it doesn't refresh (clear) when you disconnect components. You must delete the component or reconnect to refresh the vector previews.
. When passing values through a note pad, note pad fails to update continuously. Moving the notepad updates the display.
. Cannot pass a notepad integer into an fx1
. Point preview in RH5 appears as large red blocks, not as red crosses. (This is an old bug, may have been fixed with RH5 update in the meantime.)
. After adjusting Graph in dialog box, graph appears to be a solid grey object until moved.
. After copying and pasting, a lot of components are broken, return nulls. Requires reconnect to recompute (haven't had this problem in a while, will see if I can find a file that recreates it)
. BIG ONE: Loading a graph mapper with a file not found creates broken file... graph mapper disappears off canvas and the output wire appears turns orange and appears to be coming from the 0,0 pixel of the canvas. This happens any time you try to port a .ghx file to another system with different drive letters/paths, etc.
Wish list:
Mass addition for vectors
Interactive domain control for Image Sampler (like with Gradient Mapper)
Allow Addition Component to handle String values (A + B = AB)
BIG ONE: Request Override for Icon display for Parameters, Wireless receiver, and script components if you change the name
BIG ONE: Add new behavior for Stream Filter and Stream Gate: Allow multiple index numbers. The Index number picks the value/object in the corresponding index position in the selected list.
For instance:
List 0: A, B, C, D, E
List 1: 1, 2, 3, 4, 5
List 2: .1, .2, .3, .4, .5
Index Stream: 0, 2, 2, 1, 1, 2, 1, 0, 1
Results: A, .2, .3, 4, 5 (This is new behaviour and more useful than Weaving)
I have attached a GHX that includes VB components that do this, but it would be better to have GH components with I/O manager options and data matching behavior, etc.
Thanks,
Marc Syp
Knowlton School of Architecture
The Ohio State University
Columbus, OH…
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.
…
my post to Lyndon whose understandably engaged.I'm gradually finding own answers, but If your not likewise preoccupied perhaps you've moments for a couple questions if familiar with process,.4) how to alter Lyndon's killer def. so it interpolates between Excel surface coordinates with different xyz points amounts and therefore "cell" amounts?,..i assume both culling and data matching are required, but when time please mention any known requirements\procedures?Lastly,5) as seen in 3 screenshots, when using Untrim, sDivide then Patch Surface(as target)&Trimmed surface(as Source) within Copy Trim, the results are Rotated 90 degrees counter-clockwise around Z. Might you know how to correct this?If i knew Rhino\GH so! powerful and fun, would've used them years ago.Thanks D,J…
d placing the fins see def attached. The "only" thing MIA is: (a) elaborated ways to design the profile, (b) a policy for creating "parts" (for fabrication) out of these rather big mono block fins, (c) an optional policy for "twisting" the planes used for orienting the profiles and ... er ... (d) the big thing: the "adaptive" surface that yields the sweep1 rail curves (see attached).
3. With regard doing an "adaptive" (so to speak) surface that "engulfs" a given building according some rules (and taking into account ways to "split" the big fins into "parts" + the required supporting system) ... this is certainly doable but if I'm going to give you some hints it would be solely via code: i.e. (a) creating a "gross" engulfing surface (or many), (b) modifying the control points with a variety of ways: proximity/altitude or other, (c) "testing" the "parts" for validity etc etc.
PS: Load Rhino file first.…
rks (explanations about the freaky half-lines top tree later on).
The bad news are ... well you know them already don't you? he ,he.
The ugly news are that you'll need a LOT of other stuff (most notably clash detection) in order to design a real-life truss. Activate all the 3 available boolean toggles and see what I mean. Clash detection is performed obviously via trigonometry and NOT via Brep to Brep soild "ops".
BTW: Given the opportunity, in general and in order to avoid using excess material I would strongly recommend to work on triangulated meshes (and/or line graphs). The real-life benefits in cost are pretty colossal. Of course by making negative the "d" you can control the triangulation "orientation" (usually the skin is applied there).
best, Lord of Darkness
…
ng the basics of Rhino and Grasshopper, how to clean and export your design and how to use it in a cutting machine software ready to transfer into a T-shirt.
More Info :D
…
re looks like a mesh to me. Apparently the Mesh class in RhinoCommon has no method to unweld edges. So you will have to implement it yourself. Of course you need to have a basic understanding of how data (vertices, edges, faces) are stored and structured in a mesh if you want to do this.
Assuming that the edge you want to unweld is shared by 2 faces, I can imagine the algorithm will look like something like this
1. Determine the 2 vertices A and B at the two end of the edge (by using the TopologyEdge property of the Mesh class)
2. Duplicate these 2 vertices to get 2 new vertices, called A' and B'
3. Choose one of the two faces that share the edge (again, use the TopolgyEdge property)
4. The chosen face will have four vertices A, B, C and D.
5. Create a new face from A', B', C and D.
6. Remove the old face (otherwise we would have two overlapping faces)
Have a look at the Mesh class in RhinoCommon
http://4.rhino3d.com/5/rhinocommon/html/AllMembers_T_Rhino_Geometry...
... and MeshTopologyEdgeList class
the http://4.rhino3d.com/5/rhinocommon/html/AllMembers_T_Rhino_Geometry...…
Added by Long Nguyen at 9:42am on January 15, 2015
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…
ion y fabricación en un mismo proceso.
Para este taller se han seleccionado un conjunto de técnicas y estrategias para resolver problemas que hoy se presentan en el diseño y fabricación digital de formas complejas y euclidianas.
Bajo dos entornos de trabajo, entre técnicas interactivas y soluciones algorítmicas, se examinan conceptos y casos de estudio que le permitirán al participante decidir como y en que momento estas tecnologías pueden ser utilizadas como aliadas en los procesos de diseño y fabricación. Tomando como plataforma básica Rhino, se explora y optimiza el diseño y fabricación de topologías complejas bajo los entornos de Grasshopper, RhinoNest y RhinoCam.
En el mes de Febrero de 2010 (23 al 26 de febrero) se realizará el Workshop D.O.F Diseño-Optimizacion-Fabricacion en McNeel Argentina,
Está abierto para todas las personas y al participar obtendrás una licencia de Rhino 4.0.
Para hacer el workshop se requiere un conocimiento basico de Rhino 3.0 o 4.0
Contenidos:
1. Modelado Avanzado y sus Tecnicas. Aplanado y Desarrollo de Superficies.Anidado y distribución Nesting.
2. Introducción al Diseño Paramétrico.Definiciones Avanzadas de Grasshopper,posibilidades y limitaciones. Ajustes de escala para impresión y corte.
3. Introducción a la Manufactura en CNC - RhinoCAM 2.0. Visita al laboratorio CAM.
4. Guía Paso a Paso para la realización de un Renderizado usando Brazil 2.0. Presentación DIGITAL de proyectos.
El workshop tiene una duracion de 32 hrs. (4 dias x 8 horas por dia, horario 9 a 13 hrs y 15 a 19hrs)
Docentes
Andres Gonzalez Posada - McNeel Miami. - Grasshopper - RhinoCAM - RhinoNest
Facundo Miri - McNeel Argentina - Brazil for Rhino.
Se dictara en McNeel Argentina
Ciudad de la paz 2719 3A. - Belgrano - Capital Federal.
Costo del Curso
U$S250+IVA Curso D-O-F SIN entrega de licencia de Rhino 4
U$S350+IVA Curso D-O-F con entrega de licencia de RHino 4 Educativa (solo para docentes y estudiantes).- Precio de la licencia sola U$S195
U$S995+IVA Curso D-O-F con entrega de licencia de Rhino 4 Comercial. (profesionales y empresas) - Precio de la licencia sola U$S995
Contactos:
Facundo Miri
Facundo Miri (54-011) 4547-3458
facundo@mcneel.com
McNeel Argentina
Robert McNeel & Associates
McNeel Seattle - Miami - Buenos Aires
Ciudad de la Paz 2719 3A
www.rhino3d.TV - www.rhinofablab.com
Las personas interesadas pueden llamar al 4547-3458 o enviar mail a facundo@mcneel.com
Quienes esten fuera de la ciudad podran hacer un deposito bancario (solicitar datos de la cuenta por mail) y enviar por mail el comprobante de deposito con siguientes datos:
Nombres completos - DNI - Fecha de Nacimiento - Teléfono fijo - Celular - Correo Electrónico.
Muchas Gracias
You can find the prices at: http://www.rhino3d.com/sales/order-la.htm just click on the "Commercial" o "Student" tab.…
Added by Facundo Miri at 1:10pm on December 10, 2009