algorithmic modeling for Rhino
I am trying to create a VB node that will bake a closed Brep and then export the baked Rhino geometry to an IGES file. Right now, I am just trying to make the bake part of the node, but I cannot seem to get it to work.
Here is the code I'm using: (hull is the Brep, BakeOrNot is a boolean toggle)
Private Sub RunScript(ByVal Hull As Object, ByVal BakeOrNot As Object, ByRef Results As Object)
Dim doc As MRhinoDocument
Dim obj_inst As IRhinoObject
Dim obj_guid As System.Guid
Dim att As IRhinoObjectAttributes
Results = CType(Results, String)
Dim ghBrep As New Grasshopper.Kernel.Types.GH_Brep
ghBrep = Hull
If BakeOrNot = True Then
ghBrep.BakeGeometry(doc, att, obj_guid)
Results = "Geometry has been baked!"
End If
Results = "Geometry failed to bake"
End Sub
The error I get says:
Type 'MRhinoDocument' is not defined.
Does anyone have any thoughts on how to make this work?
Tags:
Hi dorvieto,
MRhinoDocument, IRhinoObject and IRhinoObjectAttributes are all types in the old SDK. They don't exist in RhinoCommon, or rather, they have different names now.
You'll need something like this (untested):
If (Not BakeOrNot) Then Return
Dim ghBrep As New Grasshopper.Kernel.Types.GH_Brep(Hull)
Dim id As Guid
If (ghBrep.BakeGeometry(doc, Nothing, id)) Then
Results = "Geometry has been baked with id: " & id.ToString()
Else
Results = "Geometry failed to bake"
End If
But you don't have to use GH_Brep at all, since you already have the Rhino.Geometry.Brep you can get away with this:
If (Not BakeOrNot) Then Return
Dim id As Guid = doc.Objects.AddBrep(hull)
If (id = Guid.Empty) Then
Results = "Bake failed"
Else
Results = "Bake succeeded"
End If
--
David Rutten
david@mcneel.com
Poprad, Slovakia
I am now trying to bake mutiple sets of curves. Will code like that posted above work for lists of curves also? I have had trouble making it work with the existing code that I have. Any suggestions?
If you have a list of shapes you'll need to iterate over the list and bake the shapes individually.
Dim ids As New List(Of Guid)
For Each shape As Brep in hulls
ids.Add(doc.Objects.AddBrep(hull))
Next
Results = ids
--
David Rutten
david@mcneel.com
Poprad, Slovakia
Hi David-
I'm using the above code, but I'd like to delete the object after adding it (part of an animation, using SS of rhino viewport). I can't figure out how to delete the object. Here is code, not much changed from above:
Private Sub RunScript(ByVal path As String, ByVal geo As Brep, ByVal bakeOrNot As Object, ByVal results As Object, ByRef A As Object)
If (Not bakeOrNot) Then Return
Dim id As Guid = doc.Objects.AddBrep(geo)
If (id = Guid.Empty) Then
results = "Bake failed"
Else
results = "Bake succeeded"
'doc.Objects.Delete(?What goes here? I can't delete id, can I?)
End If
End Sub
Thanks,
Matt
Nevermind, just realized I wasn't giving doc.Objects.Delete the second argument (the boolean). duh
Can someone explain what's going wrong here?
The following code take a screenshot at a specified interval. I'm using it to capture kangaroo animations. I'd like to use the new "Pen" display mode. It's probably not the most elegant solution, but the code works for the older display modes (shaded, ghosted, etc.), but when I set the display mode to Pen, the .png only contains the background of the viewport, without the geometry.
Thoughts?
Private Sub RunScript(ByVal path As String, ByVal geo As Brep, ByVal bakeOrNot As Object, ByVal results As Object, ByVal count As Integer, ByRef A As Object)
If (Not bakeOrNot) Then Return
Dim id As Guid = doc.Objects.AddBrep(geo)
If (id = Guid.Empty) Then
results = "Bake failed"
Else
Dim view As Rhino.Display.RhinoView = doc.Views.ActiveView
view.Redraw
Dim mode As Rhino.Display.DisplayModeDescription = Rhino.Display.DisplayModeDescription.FindByName("Pen")
Dim ss As Bitmap = view.CaptureToBitmap(mode)
ss.Save("C:\Users\mswaidan\Desktop\Test\" & count & ".png")
doc.Objects.Delete(id, False)
results = "Bake succeeded"
End If
End Sub
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by