Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor VBA
  Reset Layers IDW

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
  
PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
Autor Thema:  Reset Layers IDW (119 / mal gelesen)
Bluejay
Mitglied
Ingenieur


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

Beiträge: 207
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 20. Feb. 2025 08:27    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

Guten Morgenzusammen,
ich habe mir folgenden Code hier aus dem Forum kopiert um die Layerüberschreibungen einer IDW zurückzusetzen. Oft bleibt der Code aber in der Zeile "For Each oDrawCurveSegment In oDrawCurve.Segments" hängen.
Hat jemand hier eine schnelle Lösung woran es liegen könnte?

Private Sub ResetLayers()
    Dim oApp As Inventor.Application
    Set oApp = ThisApplication
 
    If oApp.Documents.Count = 0 Or Not oApp.ActiveDocumentType = kDrawingDocumentObject Then
    MsgBox "Funktion nur in Zeichnungsableitungen möglich.", vbCritical, "ResetLayer"
    Exit Sub
    End If
 
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = oApp.ActiveDocument
 
   
        Call ResetAllViews(oDrawDoc.ActiveSheet)

    MsgBox "Fertig", vbInformation, "ResetLayer"
End Sub
Private Sub ResetAllViews(ByVal oSheet As Sheet)
    Dim oView As DrawingView
    For Each oView In oSheet.DrawingViews
        Call ResetView(oSheet, oView)
    Next
End Sub

Private Sub ResetView(ByVal oSheet As Sheet, ByVal oView As DrawingView)
    Dim oDrawCurves As DrawingCurvesEnumerator
    Set oDrawCurves = oView.DrawingCurves()
 
    If Not oDrawCurves Is Nothing Then
        Dim oDrawCurveSegColl As ObjectCollection
        Set oDrawCurveSegColl = GetAllResetCurveSegs(oDrawCurves)
     
        Call ThisApplication.ActiveDocument.SelectSet.Clear
        Call ThisApplication.ActiveDocument.SelectSet.SelectMultiple(oDrawCurveSegColl)
     
        Call oSheet.ChangeLayer(oDrawCurveSegColl, Nothing)
     
        Call ThisApplication.ActiveDocument.SelectSet.Select(oView)
        Call ThisApplication.CommandManager.ControlDefinitions("AppLocalUpdateCmd").Execute
    End If
End Sub

Private Function GetAllResetCurveSegs(ByVal oDrawCurves As DrawingCurvesEnumerator) As ObjectCollection
    Dim oDrawCurve As DrawingCurve
    Dim oDrawCurveSegment As DrawingCurveSegment
    Dim oDrawCurveSegColl As ObjectCollection
    Set oDrawCurveSegColl = ThisApplication.TransientObjects.CreateObjectCollection
 
  For Each oDrawCurve In oDrawCurves
        For Each oDrawCurveSegment In oDrawCurve.Segments
            If oDrawCurveSegment.HiddenLine = False And oDrawCurveSegment.Visible = True Then
                Call oDrawCurveSegColl.Add(oDrawCurveSegment)
            End If
        Next
    Next
 
    Set GetAllResetCurveSegs = oDrawCurveSegColl
End Function

'https://ww3.cad.de/foren/ubb/Forum50/HTML/022563.shtml

------------------
MFG

BlueJay

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

Windows 10 x64, AIP 2020-2025

erstellt am: 20. Feb. 2025 08: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 Nur für Bluejay 10 Unities + Antwort hilfreich

Moin

Was meinst du mit "hängen bleiben" gibt es da eine Fehlermeldung oder steigt das Makro einfach aus und beendet sich?
Wie äußert sich das hängen?

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

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

Bluejay
Mitglied
Ingenieur


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

Beiträge: 207
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 20. Feb. 2025 09:21    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

Danke für die Rückfrage:
Laufzeitfehler 424 in der Zeile "For Each oDrawCurveSegment In oDrawCurve.Segments" Diese hat es aber schon mehrmals durchlaufen und auch einige Ansichten wurden auch zurückgesetzt.
LG

------------------
MFG

BlueJay

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

Windows 10 x64, AIP 2020-2025

erstellt am: 20. Feb. 2025 09:35    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 Bluejay 10 Unities + Antwort hilfreich

Moin

Passiert das immer wieder an der gleichen Stelle in der IDW oder funktioniert es bei mehrfachem Durchlauf plötzlich? Ist die betroffene Ansicht eine Erstansicht oder eine Detail/Ausbruch/Schnitt? In den abgeleiteten Ansichten macht die DIVA immer wieder mal seltsame Dinge.
Kannst du mir eine betroffene IDW samt den 3D-Modellen zur Verfügung stellen?

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

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

Bluejay
Mitglied
Ingenieur


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

Beiträge: 207
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 20. Feb. 2025 09:51    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

Leider kann ich aus Datenschutzgründen nichts hochladen. Aber es handelt sich immer um abgeleitete Ansichten und Schnittansichten.
Ich forsche mal weiter
Danke aber für die Hilfe

------------------
MFG

BlueJay

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

Windows 10 x64, AIP 2020-2025

erstellt am: 20. Feb. 2025 10:03    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 Bluejay 10 Unities + Antwort hilfreich

Moin

Probiere es mal vorübergehend mit einem ignorieren des Fehlers. Ich vermute in der Ansicht nicht sichtbare Linien werden in der Sammlung der DrawingCurves gelistet, liefern aber beim Zugriff irgendwas oder nichts zurück.

Code:

Private Function GetAllResetCurveSegs(ByVal oDrawCurves As DrawingCurvesEnumerator) As ObjectCollection
    Dim oDrawCurve As DrawingCurve
    Dim oDrawCurveSegment As DrawingCurveSegment
    Dim oDrawCurveSegColl As ObjectCollection
    Set oDrawCurveSegColl = ThisApplication.TransientObjects.CreateObjectCollection

'zum Testen alle Fehler ignorieren
On Error Resume Next

  For Each oDrawCurve In oDrawCurves
        For Each oDrawCurveSegment In oDrawCurve.Segments
            If oDrawCurveSegment.HiddenLine = False And oDrawCurveSegment.Visible = True Then
                Call oDrawCurveSegColl.Add(oDrawCurveSegment)
            End If
        Next
    Next

On Error Goto 0

    Set GetAllResetCurveSegs = oDrawCurveSegColl
End Function


------------------
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 | 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