Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Detail Sheets löschen

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
Autor Thema:  Detail Sheets löschen (1522 mal gelesen)
denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 12. Dez. 2007 12:45    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

Moin liebe Programmierer,

ich hätte mal eine Frage.

Ich würde gerne mit einem Makro das Löschen von Detail Blättern beliebiger Anzahl realisieren. Leider bricht mein Code immer nach dem ersten Blatt wieder ab und sagt mir das die Methode (Item) Fehlgeschlagen ist. Kann mir da kurz einer Helfen ich bin am verzweifeln.
Die Problemstelle ist die fett makrierte im Code

Code:
Sub CATMain()

    Dim oDRWDoc As DrawingDocument
    Dim oSheet As DrawingSheet
    Dim DrwSheet As Object
    Dim oView As DrawingView
    Dim oDRWComp As DrawingComponent
   
    Set oDRWDoc = CATIA.ActiveDocument
   
    'Schleife für alle Sheets
    For i = 1 To oDRWDoc.Sheets.Count
        Set oSheet = oDRWDoc.Sheets.Item(i)
        'Ist das Sheet kein Detail-Sheet?
        If Not oSheet.IsDetail Then
            'Schleife für alle Views im Sheet
            For j = 1 To oSheet.Views.Count
                Set oView = oSheet.Views.Item(j)
                'Schleife für alle 2D-Komponenten der View
                l=0
                For k = 1 To oView.Components.Count
                    Set oDRWComp = oView.Components.Item(k)
                    '2D-Komponente zerlegen
                    oDRWComp.Explode
                l=l+1
                Next
            Next
        End If
    Next

'Bestätigung der Löschung

Set SelSheet = oDRWDoc.Selection

If l=0 then
  Abfr = MsgBox("bla" +  Chr(10) + "Detail-Sheets löschen?", vbYesNo, "Hinweis")
    If Abfr = 7 then
      MsgBox ("Sie haben sich gegen die automatische Loeschung entschieden. Das Makro wird nun beendet!")
      Exit Sub
    else
      For i = 1 To oDRWDoc.Sheets.Count
      Set oSheet = oDRWDoc.Sheets.Item(i)
        If oSheet.IsDetail then
          Set SelSheet = CATIA.ActiveDocument.Selection
          Set oSheet = CATIA.ActiveDocument.Sheets.Item(2)
          SelSheet.Add(oSheet)
          SelSheet.Delete

        'Else
          'MsgBox("Es sind keine Detail-Sheets vorhanden" + Chr(10) + "ok um das Makro zu beenden")
        End if
      Next
    End if
End If

End Sub


mfg. Denyo

------------------
Die KATJA ist halt doch nur ne zickige Französin

[Diese Nachricht wurde von denyo_1 am 12. Dez. 2007 editiert.]

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

CAMiCADse
Mitglied



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

Beiträge: 177
Registriert: 17.02.2006

V5,R19,SP9

erstellt am: 12. Dez. 2007 16: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 denyo_1 10 Unities + Antwort hilfreich

Hi Denyo,

Deine Schleife läuft von 1 bis Sheets.Count
In der Schleife löscht du ein Sheet --> Sheets.Count wird um 1 kleiner --> Item(i) läuft irgendwann ins leere

Abhilfe:
Do-While-Konstrukt oder
For-Next rückwärts (also von i=Sheets.Count to 1 step -1)

Gruß
CAMiCADse

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

tobul
Mitglied
Physiker


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

Beiträge: 191
Registriert: 06.05.2003

Catia-V5 R24-R30
Delmia R19-R30
NX 12,1892
Windoof 7,10

erstellt am: 12. Dez. 2007 16:11    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 denyo_1 10 Unities + Antwort hilfreich

Hallo!

Oder:
For Each oSheet In oDRWDoc.Sheets
...
Next

salu'
tobul

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 12. Dez. 2007 19:14    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 denyo_1 10 Unities + Antwort hilfreich

oder einfach:

Code:
For i = 1 To oDRWDoc.Sheets.Count
      Set oSheet = oDRWDoc.Sheets.Item(i)
        If oSheet.IsDetail then
          Set SelSheet = CATIA.ActiveDocument.Selection
          Set oSheet = CATIA.ActiveDocument.Sheets.Item(i)
          SelSheet.Add(oSheet)
          SelSheet.Delete

     
Da stand vorhin eine 2...

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 13. Dez. 2007 07:57    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 Antworten. Bin gestern Nacht noch selber draufgekommen das die Schleife so einen Fehler produzieren muss.

Trotzdem vielen Dank

------------------
Die KATJA ist halt doch nur ne zickige Französin

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