Hot News:
   

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor
  Abgeleitetes Ersatzobjekt

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

Digital Engineering: Grundlagen der digitalen Konstruktion mit Autodesk Inventor


Mehr Videos >>>

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
Autor Thema:  Abgeleitetes Ersatzobjekt (337 / mal gelesen)
RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 104
Registriert: 01.03.2024

Inventor 2027

erstellt am: 13. Okt. 2026 13: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

Hallo, eine Frage zum oben genannten Thema.
Der Inventor liefert ja ilogic Codes als Standard im Paket mit.
Unter Hilfe >> Programmierung/API >> Sample programs >> General >> Shrink wrap substitute in assembly (der ist ans sich super).
Ich habe versucht, diesen anzupassen funktioniert aber nicht mehr.
Meine Hauptbaugruppe ist ein Step Import bestehend wiederum aus 20 Unterbaugruppen, die sich über 7 bis 8 Ebenen ziehen.
Daher ist die Speicherung als Basiskörper im Step Import eher schlecht.

Geändert habe ich die Zeilen mit '*** markiert
Fehler in Zeile 35 in Regel Abgeleitetes Ersatzbauteil _Standard_ MVK, in Dokument 12324853_iam_000.iam
Unbekannter Fehler (0x80004005 (E_FAIL))

Code:

Sub Main()
iLogicVb.MemberEditScope = MemberEditScopeEnum.kEditActiveMember
    ' Set a reference to the active assembly document
    Dim oDoc As AssemblyDocument
        oDoc = ThisApplication.ActiveDocument

    Dim oDef As AssemblyComponentDefinition
        oDef = oDoc.ComponentDefinition

    ' Create a new part document that will be the shrinkwrap substitute
    Dim oPartDoc As PartDocument
        oPartDoc = ThisApplication.Documents.Add(kPartDocumentObject, , False)

    Dim oPartDef As PartComponentDefinition
        oPartDef = oPartDoc.ComponentDefinition

    Dim oDerivedAssemblyDef As DerivedAssemblyDefinition
        oDerivedAssemblyDef = oPartDef.ReferenceComponents.DerivedAssemblyComponents.CreateDefinition(oDoc.FullDocumentName)

    ' Set various shrinkwrap related options
    oDerivedAssemblyDef.DeriveStyle = 80642 '"kDeriveAsSingleBodyNoSeams"
    oDerivedAssemblyDef.IncludeAllTopLevelWorkFeatures = kDerivedIncludeAll
    oDerivedAssemblyDef.IncludeAllTopLevelSketches = kDerivedIncludeAll
    oDerivedAssemblyDef.IncludeAllTopLeveliMateDefinitions = kDerivedExcludeAll
    oDerivedAssemblyDef.IncludeAllTopLevelParameters = kDerivedExcludeAll
    oDerivedAssemblyDef.ReducedMemoryMode = True

    Call oDerivedAssemblyDef.SetHolePatchingOptions(kDerivedPatchNone)
    Call oDerivedAssemblyDef.SetRemoveByVisibilityOptions(kDerivedRemovePartsAndFaces, 1)
    '
    'Zeile 32
    ' Create the shrinkwrap component
    Dim oDerivedAssembly As DerivedAssemblyComponent
        oDerivedAssembly = oPartDef.ReferenceComponents.DerivedAssemblyComponents.Add(oDerivedAssemblyDef)
'Zeile 36

    ' Save the part
    'Dim strSubstituteFileName As String
    'strSubstituteFileName = Left$(oDoc.FullFileName, Len(oDoc.FullFileName) - 4)
    'strSubstituteFileName = strSubstituteFileName & "_ShrinkwrapSubstitute.ipt"

'***
    Dim oDate As String = DateTime.Now.ToString("yyyy.MM.dd")


Dim AssDoc As Inventor.AssemblyDocument = TryCast(ThisDoc.Document, AssemblyDocument)
    Dim Directory As String = System.IO.Path.GetDirectoryName(AssDoc.FullFileName)
    Dim FolderName As String = "abgeleitet & vereinfacht"
    Directory = System.IO.Path.Combine(Directory, FolderName)
    If Not System.IO.Directory.Exists(Directory)
System.IO.Directory.CreateDirectory(Directory)
    End If
 
    Dim strSubstituteFileName As String = "vb_" & System.IO.Path.Combine(Directory, System.IO.Path.GetFileNameWithoutExtension(AssDoc.FullFileName)& " Rev." & iProperties.Value("Project", "Revision Number") &"  Stand "  & oDate & ".ipt")

'***
    ThisApplication.SilentOperation = True
    Call oPartDoc.SaveAs(strSubstituteFileName, False)
    ThisApplication.SilentOperation = False

    ' Create a substitute level of detail using the shrinkwrap part.
    Dim oSubstituteMS As ModelState
        oSubstituteMS = oDef.ModelStates.AddSubstitute(strSubstituteFileName)

    ' Release reference of the invisibly opened part document.
    oPartDoc.ReleaseReference
End Sub


Ich möchte quasi die ipt vom abgeleiteten Ersatzobjekt in einen Unterordner "abgeleitet & vereinfacht"
mit Dateiname _eb + der Benennung der Baugruppe + Revision + Stand + Datum ablegen.
1. Was muss hier angepasst werden Zeile 35 oder in meinem Zeilen?
2. Die Benennung Ersatzobjekt1 kann im Modellbaum nicht ersetzt werden?
3. Können Baugruppen, die ich transparent gesetzt habe auch so im Ersatzobjekt übernommen werden?

Dank im Voraus.

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic




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: 3092
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 14. Okt. 2026 10: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 RP4711 10 Unities + Antwort hilfreich

Moin

Code:
Dim AssDoc As Inventor.AssemblyDocument = TryCast(ThisDoc.Document, AssemblyDocument)

Die Zeile ist wofür gut? Einfach weiter oDoc verwenden, da es schon deklariert ist. Das nur am Rande.

Zeile 35 ist welche? Ich bin mit nicht mehr sicher, ob iLogic Leer- und Kommentarzeilen mitzählt. Notfalls einfach eine MessageBox stückweise nach unten schieben, bis sie nicht mehr vor dem Fehler erscheint.

Wenn das Erstellen der DerivedAssemblyComponent fehlschlägt, stimmt etwas mit der DerivedAssemblyDefinition nicht. Als erstes mal prüfen, ob die DerivedAssemblyDefinition überhaupt erstellt wurde und nicht zufällig Nothing ist.
Wurde die Ausgangsbaugruppe vorher mal gespeichert? Ansonsten könnte FullDocumentName leer sein.

Generell empfehle ich, entweder solche Fehler in VBA zu debuggen. Oder sich alternativ z.B. VisualStudio zu installieren und den Debugger dort zu nutzen. Damit kann iLogic direkt debuggt werden.

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

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

RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 104
Registriert: 01.03.2024

Inventor 2027

erstellt am: 14. Okt. 2026 16: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

Hallo, dank für die Rückmeldung. Die Zeile 32 bis Zeile 36 habe ich händisch eingetragen. Jede Zeile wird anscheinend gezählt.
Ich teste mal Ihren Vorschlag. Danke dafür.

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

RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 104
Registriert: 01.03.2024

Inventor 2027

erstellt am: 15. Okt. 2026 07: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

Hallo, ich habe Ihre Anmerkung zu oDoc umgesetzt. Jetzt läuft der Code Stand jetzt mit dem Inventor 2027.
Eine Frage habe ich doch noch. Der Code wird ein einer Baugruppe angewendet. Wenn nun Unterbaugruppen transparent sind, kann das irgendwie auch noch übernommen werden? Die Farbüberschreibung aus der Baugruppe wird schon mal übernommen.
Nochmals vielen Dank.

Code:

Sub Main()
iLogicVb.MemberEditScope = MemberEditScopeEnum.kEditActiveMember
    ' Set a reference to the active assembly document
    Dim oDoc As AssemblyDocument
        oDoc = ThisApplication.ActiveDocument

    Dim oDef As AssemblyComponentDefinition
        oDef = oDoc.ComponentDefinition

    ' Create a new part document that will be the shrinkwrap substitute
    Dim oPartDoc As PartDocument
        oPartDoc = ThisApplication.Documents.Add(kPartDocumentObject, , False)

    Dim oPartDef As PartComponentDefinition
        oPartDef = oPartDoc.ComponentDefinition

    Dim oDerivedAssemblyDef As DerivedAssemblyDefinition
        oDerivedAssemblyDef = oPartDef.ReferenceComponents.DerivedAssemblyComponents.CreateDefinition(oDoc.FullDocumentName)

    ' Set various shrinkwrap related options
    oDerivedAssemblyDef.DeriveStyle = 80642 '"kDeriveAsSingleBodyNoSeams"
    oDerivedAssemblyDef.IncludeAllTopLevelWorkFeatures = kDerivedIncludeAll
    oDerivedAssemblyDef.IncludeAllTopLevelSketches = kDerivedIncludeAll
    oDerivedAssemblyDef.IncludeAllTopLeveliMateDefinitions = kDerivedExcludeAll
    oDerivedAssemblyDef.IncludeAllTopLevelParameters = kDerivedExcludeAll
    oDerivedAssemblyDef.ReducedMemoryMode = True

    Call oDerivedAssemblyDef.SetHolePatchingOptions(kDerivedPatchNone)
    Call oDerivedAssemblyDef.SetRemoveByVisibilityOptions(kDerivedRemovePartsAndFaces, 1)
    '
    'Zeile 32
    ' Create the shrinkwrap component
    Dim oDerivedAssembly As DerivedAssemblyComponent
        oDerivedAssembly = oPartDef.ReferenceComponents.DerivedAssemblyComponents.Add(oDerivedAssemblyDef)
'Zeile 36

    ' Save the part
    'Dim strSubstituteFileName As String
    'strSubstituteFileName = Left$(oDoc.FullFileName, Len(oDoc.FullFileName) - 4)
    'strSubstituteFileName = strSubstituteFileName & "_ShrinkwrapSubstitute.ipt"

'***
    Dim oDate As String = DateTime.Now.ToString("yyyy.MM.dd")
    Dim aktuellerPfad As String = ThisDoc.WorkspacePath()
    Dim zielOrdner As String = aktuellerPfad & "\Bauteile"
Dim FolderName As String = "abgeleitet & vereinfacht"
Dim fullPath As String = System.IO.Path.Combine(zielOrdner, FolderName)
If Not System.IO.Directory.Exists(fullPath)
System.IO.Directory.CreateDirectory(fullPath)
    End If
'Dim AssDoc As Inventor.AssemblyDocument = TryCast(ThisDoc.Document, AssemblyDocument)
    Dim Directory As String = System.IO.Path.GetDirectoryName(oDoc.FullFileName)

    Dim finalFileAndPath As String = System.IO.Path.Combine(fullPath, Directory)

    '***
    Dim strSubstituteFileName As String = System.IO.Path.Combine(fullPath, "eb_"& System.IO.Path.GetFileNameWithoutExtension(oDoc.FullFileName) & " Rev." & iProperties.Value("Project", "Revision Number") &"  Stand "  & oDate & ".ipt")


    ThisApplication.SilentOperation = True
    Call oPartDoc.SaveAs(strSubstituteFileName, False)
    ThisApplication.SilentOperation = False

    ' Create a substitute level of detail using the shrinkwrap part.
    Dim oSubstituteMS As ModelState
        oSubstituteMS = oDef.ModelStates.AddSubstitute(strSubstituteFileName)

    ' Release reference of the invisibly opened part document.
    oPartDoc.ReleaseReference
End Sub


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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic




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: 3092
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 17. Okt. 2026 15:46    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 RP4711 10 Unities + Antwort hilfreich

Moin

Zitat:
Wenn nun Unterbaugruppen transparent sind, kann das irgendwie auch noch übernommen werden?

Ich glaube nicht, dass das geht. Du könntest es mal händisch versuchen. Wenn es dort geht, sollte es auch über die API machbar sein.

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

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

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

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

(c)2026 CAD.de | Impressum | Datenschutz