Inventor Customization

Reply
Mentor
GVDB
Posts: 215
Registered: ‎01-16-2006
Message 1 of 2 (338 Views)
Accepted Solution

Attaching balloon

338 Views, 1 Replies
02-15-2012 01:20 AM

I'm writing a program which attached a balloon to an existing balloon, such as the inventor command  "Attach balloon"

i'm almost there: User selects an existing balloon and a component and gives a direction to draw the balloon and then the balloon is created fine.

The only problem is that i can't connect my balloon to the base balloon. So when i move the base balloon the attached balloon doesn't move with it.

 

Does anybody know how to do this?

 

Geert

 

Code: (is part of a larger Auto ballooning program)

 

PrivateSub CreateAttachBalloon(ByVal oBalloon As Inventor.Balloon)       

Try           

     Dim oDrawDoc As Inventor.DrawingDocument

     oDrawDoc = m_inventorApplication.ActiveDocument

           

     Dim oActiveSheet As Inventor.Sheet

     oActiveSheet = oDrawDoc.ActiveSheet

           

    Dim oDrawingCurveSegment As Inventor.DrawingCurveSegment           

    Dim oSelect AsNew clsSelect

    oDrawingCurveSegment = oSelect.Pick(Inventor.SelectionFilterEnum.kDrawingCurveSegmentFilter,

                 "Select curve in highlighted component!", Inventor.SelectionFilterEnum.kDrawingCurveSegmentFilter)

           

     Dim oDrawingCurve As Inventor.DrawingCurve

     oDrawingCurve = oDrawingCurveSegment.Parent

           

     Dim oTG As Inventor.TransientGeometry

     oTG = m_inventorApplication.TransientGeometry

           

     Dim oLeaderPoints As Inventor.ObjectCollection

     oLeaderPoints = m_inventorApplication.TransientObjects.CreateObjectCollection

           

     Dim dBalloonDiameter AsDouble

     dBalloonDiameter = oBalloon.Style.BalloonDiameter

           

     'user must give direction where to create the balloon           

     Dim Direction AsInteger

     Dim oMouseEvent AsNew MouseEvents(oBalloon)

           

     DoWhile oMouseEvent.isDone = False

                m_inventorApplication.UserInterfaceManager.DoEvents()

                Direction = oMouseEvent.Direction

      Loop

           

     ' Create balloon center point.

       Select Case Direction               

           Case 0

                   Call oLeaderPoints.Add(oTG.CreatePoint2d(oBalloon.Position.X + dBalloonDiameter,

                                   oBalloon.Position.Y - dBalloonDiameter / 2))

            Case 90

                   Call oLeaderPoints.Add(oTG.CreatePoint2d(oBalloon.Position.X, oBalloon.Position.Y +

                                  dBalloonDiameter / 2))

            Case 180

                   Call oLeaderPoints.Add(oTG.CreatePoint2d(oBalloon.Position.X - dBalloonDiameter,

                                  oBalloon.Position.Y - dBalloonDiameter / 2))

            Case 270

                   Call oLeaderPoints.Add(oTG.CreatePoint2d(oBalloon.Position.X, oBalloon.Position.Y -

                                  dBalloonDiameter * 1.5))

      End Select

           

      'Add the GeometryIntent to the leader points collection.

      'This is the geometry that the balloon will attach to.

      Dim oGeometryIntent As Inventor.GeometryIntent

      oGeometryIntent = oActiveSheet.CreateGeometryIntent(oDrawingCurve)

           

       Call oLeaderPoints.Add(oGeometryIntent)

           

       Dim oAttachBalloon As Inventor.Balloon

       oAttachBalloon = oDrawDoc.ActiveSheet.Balloons.Add(oLeaderPoints)

           

       'delete all leadernodes

       Dim oLeaderNode As Inventor.LeaderNode

       For Each oLeaderNode In oAttachBalloon.Leader.AllNodes

                oLeaderNode.Delete()

       Next

          

       'TODO: Attach balloon to base balloon


      Catch ex As Exception

       

     End Try   

End Sub

I already found it!

 

replace:

       Dim oAttachBalloon As Inventor.Balloon

       oAttachBalloon = oDrawDoc.ActiveSheet.Balloons.Add(oLeaderPoints)

By:

Dim oBalloonValueSets As Inventor.BalloonValueSets = oBalloon.BalloonValueSets

Dim oBalloonValueSet As Inventor.BalloonValueSet = oBalloonValueSets.Add(oComponentOccurrence)

 

This will attach balloon!

Mentor
GVDB
Posts: 215
Registered: ‎01-16-2006
Message 2 of 2 (333 Views)

Re: Attaching balloon

02-15-2012 02:27 AM in reply to: GVDB

I already found it!

 

replace:

       Dim oAttachBalloon As Inventor.Balloon

       oAttachBalloon = oDrawDoc.ActiveSheet.Balloons.Add(oLeaderPoints)

By:

Dim oBalloonValueSets As Inventor.BalloonValueSets = oBalloon.BalloonValueSets

Dim oBalloonValueSet As Inventor.BalloonValueSet = oBalloonValueSets.Add(oComponentOccurrence)

 

This will attach balloon!

Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.