Die Inventor FAQ wird unterstützt von:

Inventor FAQ Logo

12.03.2018

VBA: Allen Baugruppenkomponenten eine unterschiedliche Zufallsfarbe zuweisen

So sieht das Ergebnis aus, wobei der Aufruf des VBA-Code in der Animation unten über die Inventor Toolbox erfolgt.

TB_Farbe

Hier der Quellcode:

'Quelle: http://modthemachine.typepad.com/my_weblog/2009/02/controlling-part-colors.html
'Leicht erweitert von JW 30092017
Public Sub VBA973()
    On Error GoTo err
    Dim oAsmDoc As AssemblyDocument
    Set oAsmDoc = ThisApplication.ActiveDocument

    ' Initialize the random number generator and get
    ' the number of render styles defined.
    Randomize
    Dim iColorCount As Long
    iColorCount = oAsmDoc.RenderStyles.Count
    
    'JW 30092017
    Dim Invapp As Inventor.Application
    Set Invapp = ThisApplication
    
    Dim oTrans As Inventor.Transaction
    Set oTrans = Invapp.TransactionManager.StartGlobalTransaction(oAsmDoc, "VBA973")
    
    Invapp.UserInterfaceManager.UserInteractionDisabled = True
    Invapp.ScreenUpdating = False
    
    ' Iterate through the top-level occurrences in the assembly.
    Dim oOcc As ComponentOccurrence
    For Each oOcc In oAsmDoc.ComponentDefinition.Occurrences
        ' Set the color to a random color.
        Call oOcc.SetRenderStyle(kOverrideRenderStyle, _
            oAsmDoc.RenderStyles.Item(Int((iColorCount * Rnd) + 1)))
    Next
err:

Invapp.ScreenUpdating = True
Invapp.UserInterfaceManager.UserInteractionDisabled = False

Call oAsmDoc.Update
oTrans.End
End Sub

Keine Kommentare:

Kommentar veröffentlichen

War der Beitrag hilfreich oder hast du eine Ergänzung dazu?
Ist noch eine Frage offen?
Ich freue mich auf deine Rückmeldung!

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.

Related Posts Plugin for WordPress, Blogger...
Inventor FAQ Newsletter. Emailadresse: