Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Anzahl Parts in Ordner

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 CATIA & Co.
  
KISTERS 3DViewStation: Schutz sensibler 3D CAD Daten, egal von wo Sie arbeiten, eine Pressemitteilung
Autor Thema:  Anzahl Parts in Ordner (1425 mal gelesen)
Nurium
Mitglied



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

Beiträge: 21
Registriert: 14.11.2013

V5R19 SP8
Lizenz ED2
Hardware wechselnd

erstellt am: 25. Jul. 2014 12:36    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 möchte mit einem Makro Bauteilen ihre Konstruktionstabellen zuweisen. Der Pfad geht durch regelmäßiges Copy&Paste verloren.
Für ein Bauteil klappt das ganze gut. Jetzt möchte ich das Makro auf alle Catparts in einem Ordner erweitern, scheitere allerdings an der For-Schleife. Gibt es eine Möglichkeit die Anzahl der Parts in dem Ordner zu zählen?

Hier mal mein Code soweit:

Sub CATMain()

Dim documents1 As Documents
Dim partDocument1 As PartDocument
Dim AppShell As Object
Dim BrowseDir As Variant
Dim Pfad As String
Dim part1 As Part
Dim relations1 As Relations
Dim designTable1 As DesignTable

'Auswahldialog anzeigen
Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1, 17)
Folder = BrowseDir.Items().Item().Path

For I = 1 To Folder.Files.Count

    Set documents1 = CATIA.Documents
    Set partDocument1 = documents1.Open(Folder & "\Kraftstofftank.CATPart")
    Set part1 = partDocument1.Part
    Set relations1 = part1.Relations
    Set designTable1 = relations1.Item("Parameter_Kraftstofftank_1")

    part1.Update

    Set partDocument1 = CATIA.ActiveDocument

    partDocument1.Save

    partDocument1.Close

Next

End Sub

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 25. Jul. 2014 12:54    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 Nurium 10 Unities + Antwort hilfreich

Servus
Du könntest doch in der For-Schleife, vor dem Öffnen des Dokuments die Dateierweiterung auswerten (If-Verzweigung)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Nurium
Mitglied



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

Beiträge: 21
Registriert: 14.11.2013

V5R19 SP8
Lizenz ED2
Hardware wechselnd

erstellt am: 25. Jul. 2014 13:39    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 Bernd,

erstmal vielen Dank für die schnelle Antwort mit der if-Schleife. Das probiere ich aus.
Mein Problem ist gerade leider das For selbst. Als Fehlermeldung zu dem Folder kommt "invalid qualifier".

Sub CATMain()

Dim documents1 As Documents
Dim partDocument1 As PartDocument
Dim AppShell As Object
Dim BrowseDir As Variant
Dim Folder As String
Dim part1 As Part
Dim relations1 As Relations
Dim designTable1 As DesignTable

'Auswahldialog anzeigen
Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1, 17)
Folder = BrowseDir.Items().Item().Path


For I = 1 To Folder.Files.Count
If InStr(File.Name, ".CATPart") <> 0 Then
     
    Set documents1 = CATIA.Documents
    Set partDocument1 = documents1.Open(Folder & "\Kraftstofftank.CATPart")
    Set part1 = partDocument1.Part
    Set relations1 = part1.Relations
    Set designTable1 = relations1.Item("Parameter_Kraftstofftank_1")

    part1.Update

    Set partDocument1 = CATIA.ActiveDocument

    partDocument1.Save

    partDocument1.Close
End If
Next

End Sub

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 25. Jul. 2014 17:07    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 Nurium 10 Unities + Antwort hilfreich

Servus
Ich würde das Makro so aufbauen (nur das öffnen eingebaut):
Code:
Sub CATMain()

Dim documents1 As Documents
Dim partDocument1 As PartDocument
Dim AppShell As Object
Dim BrowseDir As Variant
Dim Folder As Folder
Dim part1 As Part
Dim relations1 As Relations
Dim designTable1 As DesignTable
Dim File As File

Set documents1 = CATIA.Documents

'Auswahldialog anzeigen
Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1, 17)
If BrowseDir Is Nothing Then
    'Es wurde Abbrechen gedrückt
    Exit Sub
End If


Set Folder = CATIA.FileSystem.GetFolder(BrowseDir.self.Path)


For Each File In Folder.Files
    If InStr(File.Name, ".CATPart") <> 0 Then
        Set partDocument1 = documents1.Open(File.Path)
    End If
Next

End Sub


Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 751
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 28. Jul. 2014 08: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 Nur für Nurium 10 Unities + Antwort hilfreich

Hallo,

ich denke das Problem ist, das du die Variable "Folder" als String definiert hast und dann versuchst mit Folder.Files.Count die Anzahl der Dateien zu erhalten.

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

Nurium
Mitglied



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

Beiträge: 21
Registriert: 14.11.2013

V5R19 SP8
Lizenz ED2
Hardware wechselnd

erstellt am: 28. Jul. 2014 14:16    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, Bernd! Jetzt funktioniert es  
Nur beim Speichern hab ich noch ein Problem.  Es gibt keinen Fehler, aber das Änderungsdatum bleibt gleich und damit wird die neue Verknüpfung nicht gespeichet. Weiß jemand warum?

Code:
Sub CATMain()

Dim documents1 As Documents
Dim partDocument1 As PartDocument
Dim AppShell As Object
Dim BrowseDir As Variant
Dim Folder As Folder
Dim part1 As Part
Dim relations1 As Relations
Dim relations2 As Relations
Dim designTable1 As DesignTable
Dim designTable2 As DesignTable
Dim File As File

Set documents1 = CATIA.Documents

'Auswahldialog anzeigen
Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1, 17)

'Es wurde Abbrechen gedrückt
If BrowseDir Is Nothing Then
    Exit Sub
End If

Set Folder = CATIA.FileSystem.GetFolder(BrowseDir.self.Path)

'Alle Dateien im Ordner durchgehen
For Each File In Folder.Files

    'Alle CATParts bearbeiten
    If InStr(File.Name, ".CATPart") <> 0 Then
        Name_Length = InStr(File.Name, ".CATPart")
        Name = Left(File.Name, Name_Length - 1)
        Set partDocument1 = documents1.Open(File.Path)
        Set part1 = partDocument1.Part
       
        'Abfrage nach erster Konstruktionstabelle und Zuweisung
        If relations1exist Then
            Set relations1 = part1.Relations
            Set designTable1 = relations1.Item("Parameter_" & Name & "_1")
        End If
       
        'Abfrage nach zweiter Konstruktionstabelle und Zuweisung
        If relations2exist Then
            Set relations2 = part1.Relations
            Set designTable2 = relations2.Item("Parameter_" & Name & "_2")
        End If
       
        'Part aktualisieren, speichern und schließen
        part1.Update
        Set partDocument1 = CATIA.ActiveDocument
        partDocument1.Save
        partDocument1.Close
       
    End If
Next

End Sub


[Diese Nachricht wurde von Nurium am 30. Jul. 2014 editiert.]

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 28. Jul. 2014 16:32    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 Nurium 10 Unities + Antwort hilfreich

Servus
Hast du überhaupt was im Part geändert? Wenn nicht wird AFAIK das Dokument auch nicht gespeichert. (ggf muss du ein Speichern durch eine Änderung erzwingen)

Gruß
Bernd

PS: Die Zeile "Set partDocument1 = CATIA.ActiveDocument" kann entfallen.

------------------
Warum einfach, wenn es auch kompliziert geht.

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

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 28. Jul. 2014 17:53    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 Nurium 10 Unities + Antwort hilfreich

Hallo,

so wie ich das sehe, veränderst du nichts an dem Part, sondern erzeugst bis hierhin nur Objekte, an die du etwas übergibst. Den Inhalt veränderst du aber nicht.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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