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.
…
s for some solution "as it is" no matter the cost? (that's an extra stupid approach, very old fashioned). Do you use EvoluteTools Pro and/or Kangaroo for "optimization" ?
2. What is the FEA/FIM stuff in use? Do you expect "from/back" interactions? (If this is not doable ... increase this or that etc etc).
3. Do you validate real-life components with FEA/FIM? By what means you design these components? - present and/or future (inside Rhino?). This makes things "interesting" in a variety of ways (we need to extensively talk about that - Skype). The problem is that Rhino IS NOT a feature driven solid modeling app and thus ... a "certain" bottleneck arrives in no time: In the CATIA world you design ("MANUALLY") a parametric history driven component that "complies" to his parent "directives" (say: the Topology) and/or "imposes" his rules to his parent. This is what we call top<>bottom design approach (would become a standard across the AEC industry pretty soon: in around 123 years give or take some). This is far and beyond from what Rhino can do - but we DO make real-life things don't we?
4. Are all these things under a BIM umbrella ? What BIM? What type of details (blue prints) you deliver? (or you just make the thing?).
5. By what means cost is restricting/encouraging the solution? By what means you get feedback from component(s) cost that is outsourced? (i.e. outside your company). Do you monitor all things via some RDBMS? (that's Data Base).
6. What are the long term plans for dealing with such solutions? Using what apps (even in theory for the moment).…
-life fabrication issues ... then ... well ... that's the reason for the Skype.
2. In general I would say that exploiting parametric "arrangements" (in the broad sense) is less than 5% of the whole ... given the fact that in real-life there's a lot of other constrains. Again using Kim's IKEA note: for instance packaging (at least for the magnitude of IKEA's business) is rather more important than ANY smart of stupid design.
3. Reliable components VS Design/Manufacturing cost IS the ultimate "fitness" challenge: this involves bottom-top design disciplines (not doable with Rhino/GH by any means) and ... well... some top dog feature driven MCAD app. Most makers/designers use the cheapo alternatives (SolidWorks/Creo etc etc) and the results ... well .. you get what you've paid for, he he.
4. Why bottom-top may you ask? (and what means this anyway?) Well ... one "connecting node" that would been made 1Z times at the minimum cost possible is a 100 times more challenging task than designing a shelve system that uses that node. See for instance A LOT of IKEA solutions (i.e. the nuts and bolts of them) that are exceptionally flimsy, very badly designed and ... well ... suitable for 1 week's usage (but there's some others that are less faulty). On the other hand IKEA actually serves the ephemeral ... thus ... this MAY be intentional (recycle > buy > recycle > buy > ...).
I buy therefor I exist.
For instance a certain IKEA mold injected "multi join node" for a given series of shelves ... it would sustain less than 5 minutes "abuse" (in case that someone would attempt to "rearrange" things). Moral: reality and theory ARE not the same thing.
I could continue until the end of Time listing "aspects" of the whole puzzle related with production issues ... but for the moment I would conclude by the following:
GH is a good "general" purpose graphic editor and Rhino IS NOT a feature driven solid modelling app. If you combine these 2 ... you can easily outline what you can and what you can't (or shouldn't) do on that subject.…
ay to make some real-life proper nodes for that kind of T truss (we use machined balls solely for MERO KK type of normal trusses).
3. I'll post here soon a modular demo system suitable for this case (real-life for AEC purposes - NOT for decorative/artistic stuff, I don't care about that since I'm an engineer). This would include a policy for the X struts that require a variable linkage (the X angle). and in the same time a multi cable tensioner "bracket".
4. "Basic" coding next week for T trusses ? Er ... well ... are you kidding me right? I mean that ... hmm ...
5. C# things (about 2+K) around me are classified into 2 "groups": things that are weapons in the right hands and others that serve as demos/start points for mostly abstract cases. The former are internal the latter for public use. I'll remove some sensitive lines from a T truss C# maker and I'll post it here as a "guideline" ... for ...hmm... 4.
All in all:
Provided that you have system(s) on hand (see 3) that work 100% OK in an ideal world you'll need:
A. Something that does the general topology AND (especially) clash detection. Maybe Kangaroo as well as a "first pass" with regard rigidity of the structure in case that you don't adopt a classic T "configuration" (there are many > Google tensegrity).
B. Connectivity trees that relate nodes/edges and maybe faces (say for roofing panels/curtain walls etc etc). Without them is impossible to assemble the T thingy.
C: Something that places real-life "parts" as instance definitions and/or (optional) a "tracking variants history" ability.
D. A bullet proof way to EXPORT things (on an assembly/component schema, say: STEP214 - see C) into a proper BIM app (the likes of AECOSim/Revit) and/or into a MCAD app (the likes of CATIA/NX).
E. FEA/FIM in order to validate the structural ability of the components and the T truss itself.
F. Roofing/cladding/envelope components.
G. "Interactive" cost estimation(s) - T trusses are hideously expensive at least versus "classic" trusses (exactly like a planar glazing system that retails 3++ times more than a humble semi-structural one)…
mations we use a STANDARD thingy (Plane.WorldXY) VS any other plane (that's what the Orient does). This applies for blocks/cats/dogs/anything: meaning that if anyone in the present or the future uses such a "component" he knows the origin (especially if other CAD apps are used in parallel).
2. NEVER EVER make a thing (i.e. the profile) to be oriented "off center" (in the occasion domain start/end values for x/y). If you want to do that treat the destination plane accordingly. That way you build up a mentality were the "source" is standard - so to speak.
3. RHS (but HEB/HEA/IPN/IPE blah, blah) fillets are related with thickness (in real-life) ... therefore when you offset (always inwards: meaning neg values for counter clock wise closed curves) ... take into consideration that simple fact.
…
in App store.
2. Modelo now supports VR! check out this video:
3. We've added a specular option in the rendering settings. So now you can have your design rendered a little bit shinny-er.
4. There is also a "filters" option in this panel, with which you can get some interesting image post processing effects. We are expanding this filter library, if you have any suggestions, please let us know.
5. This one is very important and has been requested by our customers for a long time. Now when you upload a model, you can grab the reviews(3d comments, screenshots,sketches) from your previously uploaded model! This works really conveniently if you use Modelo for your design review/presentation, cause you don't have to recreate the same 3d anchor views every time you made some changes to your design.
6. Also, our developer API is almost ready, which means if anyone is interested in developing a grasshopper plugin that works with Modelo, they can!
There are some many other updates and bug fixes happened. I don't want to list all of them here. Definitely stay subscribed with our newsletter. Modelo is thrived to grow into a more comprehensive platform! If you have any good ideas about our platform, please do not hesitate to let me know!
Here is our Youtube channel: https://www.youtube.com/channel/UCufBShhLtUQepsit9ilI-AA
Cheers
Qi…
Added by Suqi to Modelo at 1:24pm on October 18, 2016
You can create Design Options using the Iris Layer component!
For each set of geometries that you create, you can assign a layer and define whether it will be visible or not in Virtual Reality on the
Added by IrisVR to IrisVR at 8:34am on January 23, 2017
console app into "Rhino\System\" directory the program runs fine. I've searched for days regarding the loading of dll's but to no avail. Could it be that the Rhino dll's are protected in the program files directory? The code is very simple, please take a look.
using Rhino.Geometry;using System;using System.Collections.Generic;using System.Text;namespace Rhino{ class Program { static void Main(string[] args) { Point3d j = new Point3d(1, 1, 1); Point3d k = new Point3d(2, 2, 2); List<Point3d> list = new List<Point3d>(); list.Add(j); list.Add(k); Console.WriteLine(new List<Point3d>{j,k}); Point3d p = Point3d.Add(j, k); Console.WriteLine(Point3d.ArePointsCoplanar(list, 1.0)); Console.Read(); } }}
…
. Solution exception:Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
I assume it is related to how/where the components and related files were copied to the GH special folders.
Both Newtonsoft.Json.xml and PrairieDog.gha have been copied to the "Libraries" folder of GH.
Are there any other requirements in terms of where the Prairie Dog folder should be located and the app run from?
+1 for additional sliders
+1 for expressions
Thanks for your hard work.
Grant
…