Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  per iLogic die Farbe von Referenz Modellen ändern

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
Auf dem Weg zur digitalen Auftragsmappe. , ein Anwenderbericht
Autor Thema:  per iLogic die Farbe von Referenz Modellen ändern (3933 / mal gelesen)
mfleon
Mitglied
Maler

Sehen Sie sich das Profil von mfleon an!   Senden Sie eine Private Message an mfleon  Schreiben Sie einen Gästebucheintrag für mfleon

Beiträge: 8
Registriert: 08.07.2017

erstellt am: 08. Jul. 2017 12:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

bin neu hier und brauche Hilfe bei meinem vorhaben.
Da die Erkenntlichkeit von Referenzbauteilen in Baugruppen optisch gar nicht gegeben ist dachte ich mir wäre es sinnvoll diese per iLogic zu verändern. Jedoch bin ich was die iLogic "Programmierung" angeht ein Neuling. Kann mir hier einer helfen?

Umgesetzt werden soll das ich per iLogic Regel eine Baugruppe durchsuche nach Referenzmodellen und diese dann z.B. Rot färbe.

Freundliche Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nightsta1k3r
Ehrenmitglied V.I.P. h.c.
plaudern



Sehen Sie sich das Profil von nightsta1k3r an!   Senden Sie eine Private Message an nightsta1k3r  Schreiben Sie einen Gästebucheintrag für nightsta1k3r

Beiträge: 11279
Registriert: 25.02.2004

Hier könnte ihre Werbung stehen!

erstellt am: 08. Jul. 2017 12:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mfleon 10 Unities + Antwort hilfreich

nicht direkt die Lösung, aber nimm als Referenzfarbe etwas Transparentes, grün klar o.ä. (die transparenten Farben sind inzwischen gut versteckt  ) , rot ist die Pechvogellösung. 

------------------

------------------
Der Clown ist die wichtigste Mahlzeit am Tag.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mfleon
Mitglied
Maler

Sehen Sie sich das Profil von mfleon an!   Senden Sie eine Private Message an mfleon  Schreiben Sie einen Gästebucheintrag für mfleon

Beiträge: 8
Registriert: 08.07.2017

erstellt am: 08. Jul. 2017 15:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank für die Info 

Ich hab herausgefunden das BOMStructureEnum.kReferenceBOMStructure meine gesuchtes Problem ist. wie mann man das in einer Baugruppe suchen lassen und dem eine Farbe verpassen?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mfleon
Mitglied
Maler

Sehen Sie sich das Profil von mfleon an!   Senden Sie eine Private Message an mfleon  Schreiben Sie einen Gästebucheintrag für mfleon

Beiträge: 8
Registriert: 08.07.2017

erstellt am: 10. Jul. 2017 12:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hier mal eine iLogic das alles in der Baugruppe wieder sichtbar macht vll. hilft das irgendwie?

//codeon

Dim oDoc As Document
oDoc = ThisDoc.Document
Dim comp As ComponentOccurrencesEnumerator
comp =oDoc.ComponentDefinition.Occurrences.AllLeafOccurrences
Dim Occ As ComponentOccurrence
For Each Occ In comp
Occ.Visible = True
Next

//codeoff
Quelle: Autodeskforum

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mfleon
Mitglied
Maler

Sehen Sie sich das Profil von mfleon an!   Senden Sie eine Private Message an mfleon  Schreiben Sie einen Gästebucheintrag für mfleon

Beiträge: 8
Registriert: 08.07.2017

erstellt am: 12. Jul. 2017 07:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Kann mir denn keiner Helfen? Seid ihr alle im Urlaub ? 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GeorgK
Mitglied



Sehen Sie sich das Profil von GeorgK an!   Senden Sie eine Private Message an GeorgK  Schreiben Sie einen Gästebucheintrag für GeorgK

Beiträge: 619
Registriert: 06.06.2001

Inventor 2020
Siemens NX 8.5 - 12.0
Autocad Mechanical 2020
Catia V5R19
3,4 GHz; 64 GB RAM
Windows 10
openSUSE Leap 42.3
Visual Studio 2010 - 2017
Windows 2012 R2
Vault 2017

erstellt am: 12. Jul. 2017 15:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mfleon 10 Unities + Antwort hilfreich

mfleon
Mitglied
Maler

Sehen Sie sich das Profil von mfleon an!   Senden Sie eine Private Message an mfleon  Schreiben Sie einen Gästebucheintrag für mfleon

Beiträge: 8
Registriert: 08.07.2017

erstellt am: 12. Jul. 2017 20:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich hab die iLogic von deinem Link schon ausprobiert genial!

Code:
Sub Main()

oCompDef = ThisDoc.Document.ComponentDefinition
oAssyOccurrences = oCompDef.Occurrences
oViewRepsCollection = oCompDef.RepresentationsManager.DesignViewRepresentations

Dim oOccurrence As ComponentOccurrence
Dim oViewRep As DesignViewRepresentation
Dim oSubOccurrence1 As ComponentOccurrence 'For first level of sub-occurrences
Dim oSubOccurrence2 As ComponentOccurrence 'For second level of sub-occurrences

For Each oViewRep In oViewRepsCollection
    oViewRep.Activate 'Activate each view rep one at a time
    If oViewRep.Name = "Master" Then
    'Do nothing.  This makes the code ignore the Master view rep
    Else
        If oViewRep.Locked Then 'If the view rep is locked, unlock it, make the changes, then lock it again
            oViewRep.Locked = False
            For Each oOccurrence In oAssyOccurrences 'Run the code for top-level occurrences
                If oOccurrence.DefinitionDocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
                'If the occurrence is an assembly, run the code for each of its sub-occurrences
                    If oOccurrence.BOMStructure = BOMStructureEnum.kReferenceBOMStructure Then
                    'If the whole sub-assembly is set to reference, just turn the whole thing off.
                    'No need to control the visibility of sub-components.
                        oOccurrence.Visible = False
                    Else 'Run the code for all sub-components
                        For Each oSubOccurrence1 In oOccurrence.SubOccurrences 'Run the code for the first level of sub-components
                            If oSubOccurrence1.DefinitionDocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
                            'If the occurrence is an assembly, run the code for each of its sub-occurrences
                                If oSubOccurrence1.BOMStructure = BOMStructureEnum.kReferenceBOMStructure Then
                                'If the whole sub-assembly is set to reference, just turn the whole thing off.
                                'No need to control the visibility of sub-components.
                                    oSubOccurrence1.Visible = False
                                Else 'Run the code for all sub-components
                                    For Each oSubOccurrence2 In oSubOccurrence1.SubOccurrences
                                    'Run the code for the second level of sub-components
                                        fVisibilitySwitch(oSubOccurrence2)
                                    Next
                                End If
                            Else 'Run the code if the sub-component is a part document
                                fVisibilitySwitch(oSubOccurrence1)
                            End If
                        Next
                    End If
                Else 'Run the code if the component is a part document
                    fVisibilitySwitch(oOccurrence)
                End If
            Next
            oViewRep.Locked = True
        Else 'Runs the code on the unlocked view reps
            For Each oOccurrence In oAssyOccurrences 'Run the code for top-level occurrences
                If oOccurrence.DefinitionDocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
                'If the occurrence is an assembly, run the code for each of its sub-occurrences
                    If oOccurrence.BOMStructure = BOMStructureEnum.kReferenceBOMStructure Then
                    'If the whole sub-assembly is set to reference, just turn the whole thing off.
                    'No need to control the visibility of sub-components.
                        oOccurrence.Visible = False
                    Else 'Run the code for all sub-components
                        For Each oSubOccurrence1 In oOccurrence.SubOccurrences 'Run the code for the first level of sub-components
                            If oSubOccurrence1.DefinitionDocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
                            'If the occurrence is an assembly, run the code for each of its sub-occurrences
                                If oSubOccurrence1.BOMStructure = BOMStructureEnum.kReferenceBOMStructure Then
                                'If the whole sub-assembly is set to reference, just turn the whole thing off.
                                'No need to control the visibility of sub-components.
                                    oSubOccurrence1.Visible = False
                                Else 'Run the code for all sub-components
                                    For Each oSubOccurrence2 In oSubOccurrence1.SubOccurrences
                                    'Run the code for the second level of sub-components
                                        fVisibilitySwitch(oSubOccurrence2)
                                    Next
                                End If
                            Else 'Run the code if the sub-component is a part document
                                fVisibilitySwitch(oSubOccurrence1)
                            End If
                        Next
                    End If
                Else 'Run the code if the component is a part document
                    fVisibilitySwitch(oOccurrence)
                End If
            Next
        End If
    End If
Next

oViewRepsCollection.Item("Default").Activate 'Sets the view rep back to the one called "Default"
End Sub


Sub fVisibilitySwitch(oOccurrence As ComponentOccurrence)
'This sub toggles the component visibility based on if its BOM structure
' is set to reference (visibility = off) or other (visibility = on).
If (oOccurrence.BOMStructure = BOMStructureEnum.kReferenceBOMStructure) Then
    oOccurrence.Visible = False
Else If oOccurrence.Visible = False Then
    'Do nothing.  This makes sure that if the visiblity is already off,
    ' it will stay off.  This prevents the code from undoing any visibility
    ' changes that have been made to set up custom view representations.
    'This method will not automatically turn the visiblity on if the item's
    ' BOM structure is changed from reference to something else.
    'This will have to be done manually.
Else
    oOccurrence.Visible = True
End If

End Sub



hier mal der Code davon. Wenn ich jetzt ein iLogic Gott wär könnt ich sicherlich dahintersteigen wo ich was ändern muss. Jedoch steh ich aufm Schlauch. Aber ich werds mir morgen mal auf der arbeit anschauen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mfleon
Mitglied
Maler

Sehen Sie sich das Profil von mfleon an!   Senden Sie eine Private Message an mfleon  Schreiben Sie einen Gästebucheintrag für mfleon

Beiträge: 8
Registriert: 08.07.2017

erstellt am: 18. Jul. 2017 18:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ist das Problem so einfach oder wieso meldet sich hier kaum jemand?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KraBBy
Mitglied
Maschinenbau-Ingenieur


Sehen Sie sich das Profil von KraBBy an!   Senden Sie eine Private Message an KraBBy  Schreiben Sie einen Gästebucheintrag für KraBBy

Beiträge: 721
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 20. Jul. 2017 13:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mfleon 10 Unities + Antwort hilfreich

Hier nur ein Denkanstoß. Hatte leider keine Zeit, das fertig anzupassen. Evtl. hilft es trotzdem...

Der Code unten färbt eine Komponente ein (auf Bgr.Ebene, ipt bleibt unverändert/ungefärbt). Ich habe mal willkürlich "Glas" gewählt.
Erst wird geprüft, ob die Farbe schon im Dokument vorhanden ist und falls nötig aus der Bibliothek geholt. Name der Bibliothek im Code unbedingt anpassen!

Im Grunde musst Du alle Stellen in Deinem Code, wo die Sichtbarkeit ausgeschaltet wird ( .Visible = False) durch den Aufruf des Subs unten ersetzen. Außerdem fehlt dann noch die umgekehrte Richtung (also das Gegenstück zu .Visible = True) bei dem die Farbüberschreibung deaktiviert wird.

Mein Code ist VBA. Nicht getestet in iLogic!

Code:
Sub SetOccurrenceAppearance(occ As ComponentOccurrence)
'aus Hilfe kopiert und angepasst
'  Set the appearance of an occurrence. API Sample
' und angepasst, so dass eine bestimmte Darstellung einer Komponente zugewiesen wird
'
    Dim asmDoc As AssemblyDocument
    Set asmDoc = ThisApplication.ActiveDocument
   
    ' Get an appearance from the document.  To assign an appearance is must
    ' exist in the document.  This looks for a local appearance and if that
    ' fails it copies the appearance from a library to the document.
    Dim localAsset As Asset
    On Error Resume Next
    Set localAsset = asmDoc.Assets.Item("Glas")
    If Err Then
        On Error GoTo 0
       
        ' Failed to get the appearance in the document, so import it.
       
        ' Get an asset library by name.  Either the displayed name (which
        ' can changed based on the current language) or the internal name
        ' (which is always the same) can be used.
        Dim assetLib As AssetLibrary
        Set assetLib = ThisApplication.AssetLibraries.Item("Firma_COLORS")    'hier den zutreffenden Namen der Bibliothek angeben!!
       
        ' Get an asset in the library.  Again, either the displayed name or the internal
        ' name can be used.
        Dim libAsset As Asset
        Set libAsset = assetLib.AppearanceAssets.Item("Glas")
       
        ' Copy the asset locally.
        Set localAsset = libAsset.CopyTo(asmDoc)
    End If
    On Error GoTo 0
             
    ' Assign the asset to the occurrence.
    occ.Appearance = localAsset
End Sub

------------------
Gruß KraBBy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mfleon
Mitglied
Maler

Sehen Sie sich das Profil von mfleon an!   Senden Sie eine Private Message an mfleon  Schreiben Sie einen Gästebucheintrag für mfleon

Beiträge: 8
Registriert: 08.07.2017

erstellt am: 25. Jul. 2017 08:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank! Ich werde mir dies mal genauer anschauen und melde mich 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

W. Holzwarth
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



Sehen Sie sich das Profil von W. Holzwarth an!   Senden Sie eine Private Message an W. Holzwarth  Schreiben Sie einen Gästebucheintrag für W. Holzwarth

Beiträge: 9335
Registriert: 13.10.2000

Inventor bis 2025, Rhino 8, Mainboard ASUS ROG STRIX X570F-Gaming, CPU Ryzen 9 5900X, 64 GB RAM, 4 TB SSD, Radeon RX 6900 XT, Dual Monitor 24", Spacemouse Enterprise, Win 10 22H2

erstellt am: 25. Jul. 2017 18:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mfleon 10 Unities + Antwort hilfreich

mfleon
Mitglied
Maler

Sehen Sie sich das Profil von mfleon an!   Senden Sie eine Private Message an mfleon  Schreiben Sie einen Gästebucheintrag für mfleon

Beiträge: 8
Registriert: 08.07.2017

erstellt am: 06. Aug. 2017 11:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank es funktioniert wunderbar!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz