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!

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