Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor
  Komponenten aus Baugruppe löschen (iLogic)

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
  
Autodesk Inventor CAM, ein Webinar am 22.08.2025
Autor Thema:  Komponenten aus Baugruppe löschen (iLogic) (1093 / mal gelesen)
OibelTroibel
Mitglied
Konstrukteur


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

Beiträge: 602
Registriert: 18.04.2014

ACAD/Inventor 2018-21

erstellt am: 08. Mrz. 2023 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

Hallo zusammen

Ich stehe wieder mal an und bin mir sicher, dass es eine bessere Lösung geben muss. Daher wende ich mich mal wieder an euch
Ich habe eine Konfigurator für eine grosse Baugruppe erstellt. Da die Komponenten aus dem Vault kommen, habe ich die Konfiguratorbaugruppe mit allen Komponenten befüllt. Somit werden alle Komponenten automatisch abgerufen, sobald der Konfigurator geöffnet wird. Danach wird über eine Maske die Baugruppe konfiguriert und über ein iLogic-Script generiert.

Am Anfang des Scripts werden zuerst alle Komponenten aus der Baugruppe gelöscht und danach die benötigten Komponenten am richtigen Ort platziert. Das funktioniert soweit ganz gut. Jedoch dauert der Löschvorgang aller Komponenten am Anfang sehr lange.

Ich mache das ganz einfach mit

Code:
oComps = ThisDoc.Document.ComponentDefinition.Occurrences

For Each oComp In oComps
    oComp.Delete
Next


Wenn ich mit Ctrl+A alle Komponenten auswähle und lösche, geht das ein vielfaches schneller.
Gibt es etwas ähnliches in iLogic, um den Löschvorgang aller Komponenten zu beschleunigen?

Beste Grüsse
Raphael

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2825
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 08. Mrz. 2023 16:18    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 OibelTroibel 10 Unities + Antwort hilfreich

Moin

Mal probiert alle Occurrences in einer ObjectCollection zu sammeln, dann über SelectSet.SelectMultiple(Entities As ObjectCollection) auswählen und mit SelectSet.Remove alle auf einmal löschen?
Ich vermute das neu durchrechnen der Abhängigkeiten und des Modelles dauert, da es nach jedem Löschen ausgeführt wird. Dabei werden auch die entsprechenden Events ausgelöst und wenn da z.B. irgendwelche anderen iLogic Regeln oder Addins daran hängen, dauert es noch länger.

EDIT: In iLogic sollte es auch möglich sein, BeginManage und EndManage derartige Massenänderungen zu koordinieren.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

OibelTroibel
Mitglied
Konstrukteur


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

Beiträge: 602
Registriert: 18.04.2014

ACAD/Inventor 2018-21

erstellt am: 09. Mrz. 2023 10:08    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

Hallo Ralf

Vielen Dank für deine Tipps. Leider bringe ich es nicht auf die Reihe, auch wenn es trivial zu sein scheint. Vielleicht ist es auch einfach nicht mein Tag Wie muss ich da genau vorgehen?

Beste Grüsse
Raphael

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2825
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 09. Mrz. 2023 15:25    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 OibelTroibel 10 Unities + Antwort hilfreich

Moin

Sonderfälle wie iAssemblies oder Ersatzdarstellungen usw. sind nicht getestet. Das Verhalten bei mehreren Modellzuständen hab ich auch nicht ausprobiert. Aber einfache Exemplare und Muster (auch ineinander geschachtelte) sollte man so handhaben können:

Code:

Dim oAssDoc As AssemblyDocument = ThisDoc.Document
Dim oCompDef As AssemblyComponentDefinition = oAssDoc.ComponentDefinition
Dim oObjColl As ObjectCollection = ThisApplication.TransientObjects.CreateObjectCollection
Dim oSelSet As SelectSet = oAssDoc.SelectSet

Dim oTrans As Transaction = ThisApplication.TransactionManager.StartTransaction(oAssDoc,"Alle Komponenten löschen")

Try
    ' Der Teil ist nur relevant, fall Reihenanordnungen existieren
    ' die werden, falls ineinander geschachtelt, von "innen nach außen" gelöscht
    ' wenn nicht erforderlich, einfach rauslöschen
    ' --- Schnipp ---
    Dim oPattern As OccurrencePattern
    While oCompDef.OccurrencePatterns.Count>0
        For Each oPattern In oCompDef.OccurrencePatterns
            oObjColl.Add(oPattern)
        Next
        oSelSet.SelectMultiple(oObjColl)
        If oSelSet.Count > 0 Then oSelSet.Delete
            oObjColl.Clear
    End While
    ' --- Schnapp ---

    Dim oOcc As ComponentOccurrence
    For Each oOcc In oAssDoc.ComponentDefinition.Occurrences
        oObjColl.Add(oOcc)
    Next

    oSelSet.SelectMultiple(oObjColl)
    If oSelSet.Count > 0 Then oSelSet.Delete

    oTrans.End
Catch ex As Exception
    Logger.Debug(ex.Message)
    oTrans.Abort
End Try


------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

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

OibelTroibel
Mitglied
Konstrukteur


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

Beiträge: 602
Registriert: 18.04.2014

ACAD/Inventor 2018-21

erstellt am: 09. Mrz. 2023 16:48    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

Herzlichen Dank Ralf für dein fertiges Script, das sogar mehr abdeckt als ich benötige
Dier Zeitersparnis ist genau so, wie ich es mir erhofft habe. Von ca 2 min auf unter 3 Sekunden
Vielen herzlichen Dank nochmals

Beste Grüsse
Raphael

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)2025 CAD.de | Impressum | Datenschutz