Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Filename = PartNumber?

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:  Filename = PartNumber? (6978 mal gelesen)
Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 15. Sep. 2009 13:58    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 liebe Freunde des Makroprogrammierens,

wie Ihr feststellt, bin ich neu hier. Auch meine Makrokenntnisse würde ich eher als bescheiden bezeichnen. Während meiner Diplomarbeit habe ich mich mit Makros beschäftigt, jedoch eher nebenbei.
Nun zu meinem Problem: Ich habe ein Makro geschrieben, welches die PartNumber der Products und Parts in einer beliebigen Struktur abändert. Dies funktioniert soweit ganz gut, nun will ich es soweit abändern, das die neue Partnumber gleichzeitig auch Filename wird... Meine Überlegungen dahingegend drehen sich im Kreis: Eine Möglichkeit wäre anlegen eines neuen Ordners und dann über den Befehl Send To die Dateien kopieren und umbenennen. Erscheint mir aber zu umständlich...
Habe mehrere Stunden mit der Suchfunktion verbracht und nichts gefunden. Bin für jede Hilfe dankbar.

Gruß

Makronizer

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

IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 15. Sep. 2009 14:12    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 Makronizer 10 Unities + Antwort hilfreich

Hi Makronizer,

geht das in die Richtung von Tabellenbauteilen? Du hast ja geschrieben, dass dein Makro die Partnumber des Produktes und Parts abändert. D.h. irgendwo müssen ja die Informationen stehen, wie das Part/Product heißen soll. Wenn du diese Nummer in einen String speicherst und dann die Funktion Catia.Savetofile benutzt mit der variablen Partnummer im Pfad, dann speichert es automatisch dein neues Part ab. Willst du einen haufen Parts/Producte umbenennen und abspeichern, dann musst du eine Schleife aufbauen.

Ich habe früher mal so ein Macro geschrieben, was Tabellenbaugruppen aufbaut. Gesteuert von einer Excel Liste konnte man damit Pneumatikzylinder, die beispielsweise aus 3 Parts bestehen, automatisch erstellen. Auch das Abspeichern funktionierte vollautomatisch.
Geht das in die Richtung oder habe ich dich falsch verstanden?

[Diese Nachricht wurde von IIYTII am 15. Sep. 2009 editiert.]

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 15. Sep. 2009 14:20    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 YT,

das ging ja mal fix... Ja, ich möchte ein A...voll Parts und Products umbenennen, bzw einen Teil der Benennung. Da die "alten" Parts ja noch die alte Bezeichnung im FileName haben, will ich diesen natürlich auch abändern. Da es sich aber um eine riesige Datenmenge handelt, erscheint mir die Funktion SendTo nicht sonderlich ratsam, da die alten Datein dann doch per Hand gelöscht werden müssen.
Die Schleife ist durch die Umbenennung ja schon vorhanden. Eine Schleife für die Parts und eine für die Products. Daher dachte ich, gibt es vllt so eine Art "Replace"-Befehl, der die umgenannten Dateien mit neuem Namen abspeichert und den alten löscht...
Hoffe du verstehst nun, was ich meine...

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

IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 15. Sep. 2009 14: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 Makronizer 10 Unities + Antwort hilfreich

Ja genau, mit replace habe ich mein Tabellenbaugruppenmakro auch aufgebaut. Ich glaube das Problem was du hast ist, dass du die neuen Teile nicht so einfach außerhalb von CATIA über die alten überschreiben kannst, wegen der UUID. Das Product sagt: Das heißt zwar wie das alte Teil, da ist aber nicht das alte drin?

Der Befehl zum ersetzen lautet:

Code:
Dim Neu As Product
Dim Alt As Product

Set Alt = Liste.Item(1)
                Set Neu = Liste.ReplaceComponent(Alt, Verzeichniseingabe & Teil(1) & Format(1), True)


Das habe ich noch in meiner verstaubten Makrokiste gefunden. Verzeichniseingabe ist bei mir eine extra Variable gewesen, aus der die neuen Dateien kommen. Dann kommt die Teilenummer und dann das Format, denn mit dem Makro konnte ich auch Producte in Producte einbauen.

Ein Problem was ich früer hatte war, dass ich Liste.Item(X) nicht variable aufbauen konnte. D.h. er meckerte, denn die Zahl als Variable eingegeben wurde. Sehr unschön das, vllt. findest du ja einen Weg...

Ich hoffe das hilft dir erstmal weiter...

[Diese Nachricht wurde von IIYTII am 15. Sep. 2009 editiert.]

[Diese Nachricht wurde von IIYTII am 15. Sep. 2009 editiert.]

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 15. Sep. 2009 14:41    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

Wenn ich das also richtig verstehe, dann sollte ich in die jeweilige Schleife ein "automatisiertes" Save As einbauen, dann durch ReplaceComponent alt durch neu ersetzen (auch wenn nur die PartNumber sich ändert) und dann die alte Datei löschen? Wäre sicher eine Möglichkeit... ich hoffe das SaveAs macht mir da keinen Strich durch die automatisierte Rechnung... 

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

IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 15. Sep. 2009 14:50    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 Makronizer 10 Unities + Antwort hilfreich

Ich hatte jetzt daran gedacht, das du die neuen Teile, mit den geänderten Partnummern, bereits durch z.B. den CATIA Catalog Editor ausgeschüttet hattest und nun nur noch die alten Parts durch die neuen ersetzen musst. Oder war das jetzt die richtige Antwort zur falschen Frage von mir? :-D

Save as sollte dir jedoch keinen Strich durch die Rechnung machen. Wenn du die UUID behalten willst, solltest du aber mit "Neu aus" arbeiten

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 15. Sep. 2009 14:56    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

An den Parts ändert sich ja nichts, außer die Teilenummer... diese Teilenummer ist auch im Filename vorhanden. Der wird aber leider nicht automatisch mit abgeändert. Lasse ich also einen normalen Save drüber laufen, habe ich zwar die Partnumber geändert, jedoch nicht den Filename. Ich hoffe, ich habe es nun verständlich erklärt. :-D
Die Alternative wäre von Hand: Properties->Partnumber ändern->Save As-> Namen ändern-> ReplaceComponent->eventuelle Verlinkungen umhängen

An den Parts ändert sich nichts, ist also quasi nur eine reine Namensänderung in der PartNumber und entsprechend im Filename.

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 15. Sep. 2009 15:09    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 Makronizer 10 Unities + Antwort hilfreich

Servus
AFAIR gab es da schon einige Scripte: Siehe hier oder hier.

Gruß
Bernd

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

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 16. Sep. 2009 12:38    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 für die Info Bernd,

aus den gegebenen Sachen konnte ich mir das Richtige zurechtbasteln...

MfG
Thomas

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 18. Sep. 2009 08: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

Da ich bisher nur Makros gesehen habe, die die PartNumber aus dem FileName beziehen, stelle ich nun ein Makro online, welches den entgegengesetzten Fall darstellt. PartNumber wird ausgelesen und anschließend wird das Part, Product, Drawing, cgr in einem seperaten Ordner unter neuem Namen Abgespeichert. Hoffe, es kann dem Einen oder anderen behilflich sein.


Sub Speichern()

Dim Eingabe

Eingabe = "S:\..."
Eingabe = InputBox ("Bitte geben Sie den Öffnungs Ort  ein.", "Alle Parts/Products Öffnen", Eingabe)

If (Eingabe = "") Then
Msgbox "Keinen Pfad angegeben", vbInformation, makroname + " " + Version
Exit Sub
End If

Ausgabe = InputBox ("Bitte geben Sie den Zielordnerein.", "Alle", Eingabe)

If (Ausgabe = "") Then
Msgbox "Keinen Pfad angegeben", vbInformation, makroname + " " + Version
Exit Sub
End If

CATIA.DisplayFileAlerts = False

    Dim oFileSystem
    Set oFileSystem = CATIA.FileSystem
    Dim oFolder

' Verzeichnisname für CATIA-Part -------------------------------------------------------------------------

    Set oFolder = oFileSystem.GetFolder (Eingabe)

    Dim FileSep
    FileSep = oFileSystem.FileSeparator
    Dim i
    Dim j
    Dim oFile
    Dim oActiveDoc
 
    For i = 1 To oFolder.Files.Count
        Set oFile = oFolder.Files.Item(i)
      If Right(oFile.Name, 10) = "CATProduct" Then
      Set oActiveDoc = CATIA.Documents.Open(oFolder.Path + FileSep + oFile.Name)

Dim document
Dim splitname
Set document = CATIA.ActiveDocument
splitname = document.Product.PartNumber

            oActiveDoc.SaveAs (Ausgabe & "\" & splitname & ".CATProduct")
            oActiveDoc.Close
     
End If

'For i = 1 To oFolder.Files.Count
        'Set oFile = oFolder.Files.Item(i)
        If Right(oFile.Name, 7) = "CATPart" Then
            Set oActiveDoc = CATIA.Documents.Open(oFolder.Path + FileSep + oFile.Name)

Set document = CATIA.ActiveDocument
splitname = document.Product.PartNumber
oActiveDoc.SaveAs (Ausgabe & "\" & splitname & ".CATPart")
        oActiveDoc.Close
      End If

If Right(oFile.Name, 10) = "CATDrawing" Then
            Set oActiveDoc = CATIA.Documents.Open(oFolder.Path + FileSep + oFile.Name)

Set document = CATIA.ActiveDocument
splitname = document.Product.PartNumber
oActiveDoc.SaveAs (Ausgabe & "\" & splitname & ".CATDrawing")
        oActiveDoc.Close
      End If

If Right(oFile.Name, 3) = "cgr" Then
            Set oActiveDoc = CATIA.Documents.Open(oFolder.Path + FileSep + oFile.Name)

Set document = CATIA.ActiveDocument
splitname = document.Product.PartNumber
oActiveDoc.SaveAs (Ausgabe & "\" & splitname & ".cgr")
        oActiveDoc.Close
      End If
    Next

CATIA.DisplayFileAlerts = True

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 18. Sep. 2009 08:52    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 Makronizer 10 Unities + Antwort hilfreich

Servus
Dir ist bewusst, dass beim öffnen der neuen Products diese die Einzelteile nicht mehr findet (da diese umbenannt wurden)?
Zum das zu verhindern müsstest du die oberste Baugruppe öffnen und nun rekursiv zuerst alle Parts und dann alle Products umspeichern.

Gruß
Bernd

EDIT: Ich hatte schon mal so was ähnliches zusammen gebastelt (siehe hier). Müsstest du auf deinen Fall umbauen (Export nach STEP entfernen)

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

[Diese Nachricht wurde von bgrittmann am 18. Sep. 2009 editiert.]

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 18. Sep. 2009 15:37    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

Huch, da war die Vorfreude wohl ein wenig zu früh angesagt... also wird weitergebastelt... vielen Dank für die Information

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

thomau96
Mitglied
Konstrukteur


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

Beiträge: 43
Registriert: 18.10.2005

Catia V5 R19

erstellt am: 23. Sep. 2009 14:04    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 Makronizer 10 Unities + Antwort hilfreich

Hallo,

ich möchte mich kurz an dieses Thema anhängen.

Gibt es bereits eine Möglichkeit, die Dateinamen aller Parts eines Produkts und dessen Unterprodukte gemäß der Partnumber (Filename = Partnumber) umzubenennen?

Bis jetzt konnte ich leider nur Makros finden, welche nach dem Prinzip Partnumber = Filename arbeiten, jedoch noch nicht umgekehrt.

Vielen Dank vorab 

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 23. Sep. 2009 14:06    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

Wenn ich das richtig verstanden habe, suchst du genau das, was ich gerade versuche zu schreiben...  Sollte ich die Lösung gefunden haben, werde ich das Makro online stellen.

MfG
Thomas

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

thomau96
Mitglied
Konstrukteur


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

Beiträge: 43
Registriert: 18.10.2005

Catia V5 R19

erstellt am: 23. Sep. 2009 14:10    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 Makronizer 10 Unities + Antwort hilfreich

Prima, danach suche ich schon lange!

Freu mich schon auf das Ergebnis 

Leider hab ich bis jetzt noch keine Zeit gefunden, mich selbst mit der Makroprogrammierung zu beschäftigen...

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