A quick example of how to open a drawing from a balloon.
Dim oDoc As DrawingDocument = ThisApplication.ActiveDocument While True 'select Balloon Dim oBalloon As Balloon = Nothing oBalloon = ThisApplication.CommandManager.Pick _ (SelectionFilterEnum.kDrawingBalloonFilter, _ "Select a balloon to open a it's drawing. " & " (press ESC To Exit selection)") If IsNothing(oBalloon) Then Exit While Dim oLeader As Leader If oBalloon IsNot Nothing Then oLeader = oBalloon.Leader Dim oLeaderNode As LeaderNode = oLeader.AllNodes(oLeader.AllNodes.Count) Dim oIntent As GeometryIntent = oLeaderNode.AttachedEntity Dim oCurve As DrawingCurve = oIntent.Geometry Dim oProxy As EdgeProxy = oCurve.ModelGeometry Dim oOcc As ComponentOccurrence = oProxy.ContainingOccurrence Dim oRefDoc As Document = oOcc.Definition.Document Dim oFilePath As String = oRefDoc.FullFileName() Dim oDrawingFilePath As String = Left(oFilePath, Len(oFilePath) -3) & "idw" Try oDrawDoc = ThisApplication.Documents.Open(oDrawingFilePath, True) Exit While Catch MsgBox("Could not open " & oDrawingFilePath, , "iLogic") End Try End While
Forum links: Inventor iLogic , API and Customization Forum | Inventor Ideas Forum | General Inventor Forum
Migrate Inventor Add-ins to 2025 .Net ( from .Net Framework)
Solved! Go to Solution.
Solved by Curtis_Waguespack. Go to Solution.
Now that's nice! I did notice, however, the code doesn't like balloons that are on tangent surfaces, such as a pipe. When I move the balloon to the pipe's cut edge, it performs the task properly.
Here's what I see when clicking on a tangent-connected balloon:
@harvey3ELEA , good catch, see this updated version
Dim oDoc As DrawingDocument = ThisApplication.ActiveDocument While True 'select Balloon Dim oBalloon As Balloon = Nothing oBalloon = ThisApplication.CommandManager.Pick _ (SelectionFilterEnum.kDrawingBalloonFilter, _ "Select a balloon to open it's drawing. " & " (press ESC To Exit selection)") If IsNothing(oBalloon) Then Exit While Dim oLeader As Leader If oBalloon IsNot Nothing Then oLeader = oBalloon.Leader Dim oLeaderNode As LeaderNode = oLeader.AllNodes(oLeader.AllNodes.Count) Dim oIntent As GeometryIntent = oLeaderNode.AttachedEntity Dim oCurve As DrawingCurve = oIntent.Geometry Dim oOcc As ComponentOccurrence = oCurve.ModelGeometry.ContainingOccurrence Dim oRefDoc As Document = oOcc.Definition.Document Dim oFilePath As String = oRefDoc.FullFileName() Dim oDrawingFilePath As String = Left(oFilePath, Len(oFilePath) -3) & "idw" Try oDrawDoc = ThisApplication.Documents.Open(oDrawingFilePath, True) Exit While Catch MsgBox("Could not open " & oDrawingFilePath, , "iLogic") End Try End While
Success! That did the trick.
The boss is impressed at how I'm now able to use Inventor drawings more effectively with you're recent codes. His first comment: why doesn't Inventor already have those built in?
Thanks, Harvey
Can't find what you're looking for? Ask the community or share your knowledge.