Monday, 12 December 2016

AutoCAD Electrical Tags in Inventor?

Sharing the knowledge does a whole lot of good and I find that personally very rewarding.

What!? just use post-it...

Every once in awhile, on rare special occasion that can even return back in a multiplied form and the stress, wear out, paranoia, moody states from all the sleep deprivation goes away and you feel exalted again; not too long though, I got used to a level of tiredness and stress it’s hard to work otherwise.

We talked long and detailed (maybe too long) about how to create tags and balloons for equipment on the drawing. I was talking from a tube and pipe point of view but I have mentioned that this will be good for electronic components as well.

We talked about the general concept of drawing tagging, tagging the assembly, both together and even tagging top level components rather than end of tree fittings.

This can be very useful, and Colbjørn recognized the potential so he has adapted the code to help him get AutoCAD Electrical Tags into Inventor Drawing.

But the most important part is that he has shared the code for others to use, adapt, modify.

To be honest I wish I had his programming skill but I am, as often like to call myself, just “a mouse operator”.

You can find the original code here but I have added it down below (hope he doesn’t mind) for you.


Sub Main()
    test(ThisApplication)
End Sub

 Private Sub test(ByVal app As Inventor.Application)
    Dim oDrawDoc As DrawingDocument = app.ActiveDocument
    Dim oSheet As Sheet = oDrawDoc.ActiveSheet
    Dim oBalloon As Balloon
    
    For Each oSheets In oDrawDoc.Sheets
        For Each oBalloon In oSheet.Balloons
            Dim oLeader As Leader = oBalloon.Leader
            Dim oLeaderNode As LeaderNode = oLeader.AllNodes(2)
            Dim oGeometryIntent As GeometryIntent = oLeaderNode.AttachedEntity
            Dim oDrawingCurve As DrawingCurve = oGeometryIntent.Geometry
            Dim oModelGeom As Object = oDrawingCurve.ModelGeometry
            Dim oComponentOccurrence As ComponentOccurrence = oModelGeom.ContainingOccurrence
            Dim attrbSets = oComponentOccurrence.AttributeSets
            Dim attrbSet = attrbSets.Item("com.autodesk.mechatronics")
            Dim attrib = attrbSet.Item("ComponentTag")
            Dim oBalloonValueSet As BalloonValueSet
   
            If oBalloon.Style.Name = "Tags" Then
                For Each oBalloonValueSet In oBalloon.BalloonValueSets
                    oBalloonValueSet.OverrideValue = attrib.Value
                    Exit For
                Next
            End If
        Next
    Next
End Sub


Thanks Colbjørn for sharing it; if you find it useful go give him kudos.

Later,

ADS


photo credit: Dean Hochman post-it notes (license)