| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | MAIT erhält den Abas Partner Performance Award 2025, eine Pressemitteilung
|
Autor
|
Thema: Makro bei ME10 (2254 mal gelesen)
|
P.Greskamp Mitglied Ingenieur

 Beiträge: 18 Registriert: 12.03.2003
|
erstellt am: 12. Mrz. 2003 18:50 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich hätte mal eine Frage zur Makroprogrammierung bei ME10. Möchte aus mehreren Ordner tiff-Dateien ausschreiben. Da es sich um sehr viele Zeichnungen handelt will ich nicht alle Zeichnungsnummer eingeben müssen. Gibt es da einen Befehl der alle .mi-Zeichnungen in dem Ordner liest und dann auch wieder ausschreibt. Das Makro soll dann selbstständig laufen und eine nach der anderen Zeichnung aufrufen, das klappt auch soweit wenn ich die Zeichnungsnummern händisch eingebe. Würde mir sehr helfen wenn jemand so einen Befehl kennt der den Inhalt des Ordners liest. Vielen Dank im voraus. ------------------ Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumgartner Mitglied Dipl.-Ing. Maschinenbau
  
 Beiträge: 715 Registriert: 05.01.2001 Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10. * ME10-Makros * ME10-Makroschulungen
|
erstellt am: 12. Mrz. 2003 19:37 <-- editieren / zitieren --> Unities abgeben:          Nur für P.Greskamp
hallo, ungetestet, da ich jetzt weg muss DEFINE CATALOG_LADE LOCAL dateiname CATALOG "" SELECT "FILE_NAME" "*.mi" DEL_OLD "catalog-datei.tmp" OPEN_INFILE 1 "catalog-datei.tmp" LOOP READ_FILE 1 dateiname EXIT_IF (dateiname="END-OF-FILE") IF (POS dateiname ".mi") (* ggf hier den Dateinamen so kürzen und bearbeiten, dass nur der tatsächliche Dateiname erscheint. Ist abhängig von deinen Katalogoptionen *) DELETE ALL CONFIRM (* ggf. ON_ERROR, ERROR_TRAP wäre ganz hilfreich *) LOAD dateiname (* deine TIFF-Aktionen aufrufen *) END_IF END_LOOP CLOSE_FILE 1 END_LOOP Wenn es noch Fragen gibt, dann darfst Du mich gerne kontaktieren. Ich halte auch individuelle Makrokurse zu diesen Thema. Aber jetzt noch nicht getestet, wenn ich Zeit finde mache ich es morgen noch.
------------------ Grüsse aus dem Schwarzwald  www.Andreas-Baumgartner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
P.Greskamp Mitglied Ingenieur

 Beiträge: 18 Registriert: 12.03.2003
|
erstellt am: 13. Mrz. 2003 13:49 <-- editieren / zitieren --> Unities abgeben:         
Hallo Andreas, erstmal danke für die schnelle Hilfe. Hat mich etwas weiter gebracht, den Katalog schreibt er aus sind aber noch mehr Daten drin als gewünscht. Es soll ja nur der Dateiname eingetragen werden. Hab dir mal den Katalogdatei unten aufgeführt wie es ausgeschrieben wird. Kann ich den Namen irgendwie kürzen oder den Katalog so einstellen das nur die ersten 16 Ziffern genommen werden. Der Dateiname hat den Typ von 4-114025-1112.mi. Auch beim laden nimmt er den Name nicht, ist das ein Problem das er da ZAhlen drin hat, weil der "DAteiname" ist als '4-114025-1112.mi' definiert, aber es geht trotzdem nicht so laden. Zu weit bin ich schon mit dem Makro:
DEFINE CATALOG_LADE LOCAL Dateiname CATALOG 'U:\Ordner\test' DEL_OLD "catalog-datei.tmp" SELECT "FILE_NAME" "*.mi" OPEN_INFILE 1 "catalog-datei.tmp" LOOP READ_FILE 1 Dateiname EXIT_IF (Dateiname="END-OF-FILE") IF (POS dateiname ".mi") (* ggf hier den Dateinamen so kürzen und bearbeiten, dass nur der tatsächliche Dateiname erscheint. Ist abhängig von deinen Katalogoptionen *) DELETE ALL CONFIRM (* ggf. ON_ERROR, ERROR_TRAP wäre ganz hilfreich *) LOAD 'test\Dateiname' Plot_pdf '' '' Plot_tiff '' '' '' delete all confirm END_IF END_LOOP CLOSE_FILE 1 END_LOOP END_DEFINE ------------------ Gruß Peter
[Diese Nachricht wurde von P.Greskamp am 13. März 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumgartner Mitglied Dipl.-Ing. Maschinenbau
  
 Beiträge: 715 Registriert: 05.01.2001 Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10. * ME10-Makros * ME10-Makroschulungen
|
erstellt am: 13. Mrz. 2003 14:08 <-- editieren / zitieren --> Unities abgeben:          Nur für P.Greskamp
hallo, die kleine Ergänzung für Dich ... DEFINE CATALOG_LADE LOCAL dateiname CATALOG "" SELECT "FILE_NAME" "*.mi" DEL_OLD "catalog-datei.tmp" OPEN_INFILE 1 "catalog-datei.tmp" LOOP READ_FILE 1 dateiname EXIT_IF (dateiname="END-OF-FILE") IF (POS dateiname ".mi") (* hiermit wird die ausgelesene Zeile auf den Dateinamen gekuerzt *) LET DATEINAME (SUBSTR DATEINAME 1 ((POS DATEINAME ".mi")+2) ) DELETE ALL CONFIRM (* ggf. ON_ERROR, ERROR_TRAP wäre ganz hilfreich *) LOAD dateiname (* deine TIFF-Aktionen aufrufen *) END_IF END_LOOP CLOSE_FILE 1 END_LOOP Aber jetzt viel Spass... - ich hatte jetzt Zeit die Sache zu probieren. Um das Makro wasserdicht zu machen, wären TRAP_ERROR und ON_ERROR noch angebracht. Dank im voraus für die Unities. ------------------ Grüsse aus dem Schwarzwald www.Andreas-Baumgartner.de Edit: Klammer ergänzt, Makro müsste jetzt laufen [Diese Nachricht wurde von baumgartner am 13. März 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
P.Greskamp Mitglied Ingenieur

 Beiträge: 18 Registriert: 12.03.2003
|
erstellt am: 13. Mrz. 2003 15:02 <-- editieren / zitieren --> Unities abgeben:         
tut mir ja leid das ich nerve aber das funktioniert nicht bei mir. Muss ich denn für "dateiname" was eingeben oder ist das der Name? Und wieso ist das einmal klein und gross geschrieben. Der Dateiname muss dann später z.B: 4-114025-1112.mi heissen. WEnn ich das mit dem LET DATEINAME (SUBSTR DATEINAME 1 ((POS DATEINAME ".mi")+2) eingebe will er ein (Formel)Ausdruck, da fehlt wohl noch eine Klammer, und dann sagt er "für arithemtische Operation sind nur (srting) Zeichendaten zulässig. hast du das bei dir mal ausprobiert mit nem Dateinamen? Steh da irgendwie auf dem Schlauch. Wäre cool wenn du mir nochmal helfen könntest. Noch was: was sind Unities ------------------ Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rhoffmann Mitglied Techniker

 Beiträge: 58 Registriert: 22.01.2003
|
erstellt am: 13. Mrz. 2003 17:01 <-- editieren / zitieren --> Unities abgeben:          Nur für P.Greskamp
Hast ja recht, es fehlt am Ende eine Klammer. LET DATEINAME (SUBSTR DATEINAME 1 ((POS DATEINAME ".mi")+2)) Dann müsste es funktionieren. Falls Leerzeichen im Dateinamen vorkommen, muss dieser in Hochkomma gesetzt werden !! MfG Robert
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumgartner Mitglied Dipl.-Ing. Maschinenbau
  
 Beiträge: 715 Registriert: 05.01.2001 Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10. * ME10-Makros * ME10-Makroschulungen
|
erstellt am: 13. Mrz. 2003 17:09 <-- editieren / zitieren --> Unities abgeben:          Nur für P.Greskamp
|
P.Greskamp Mitglied Ingenieur

 Beiträge: 18 Registriert: 12.03.2003
|
erstellt am: 13. Mrz. 2003 20:02 <-- editieren / zitieren --> Unities abgeben:         
hab immer noch probleme mit dem makro, aber bin am ausprobieren. beim ersten durchlauf sagt er mir dann das die "Datei 1" geschlossen ist. Verstehe ich nicht so ganz. Noch mal danke Andreas, hab dir 10 unities verteilt, wenn ich das so richtig geschnallt habe. Jetzt noch was. Gibt es auch einen Befehl der den ganzen Inhalt des Ordners mit allen Unterordnern einliest. ------------------ Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
H.annes Mitglied CAD-Pfriemler
 
 Beiträge: 482 Registriert: 02.07.2001 OSDD 8.7 - 13.20 ; OSDM 13.00
|
erstellt am: 14. Mrz. 2003 08:07 <-- editieren / zitieren --> Unities abgeben:          Nur für P.Greskamp
Morgen! Tschuldigts, dass ich da auch noch reinpfusche: Also: Baumgartner's Lösung ist astrein & müßte eigentlich klaglos funktionieren. Einer Deiner früheren postings ist allerdings zu entnehmen, daß Du nicht das aktuelle Verzeichnis auslesen willst, sondern ein anderes: in diesem Fall ist noch eine kleine Anpassung nötig: Code:
DEFINE Xxx LOCAL Dateiname LET Verzeichnis 'y:\zip\' CATALOG Verzeichnis SELECT 'FILE_NAME' '*.mi' DEL_OLD 'catalog-datei.tmp' OPEN_INFILE 1 'catalog-datei.tmp' LOOP READ_FILE 1 Dateiname EXIT_IF (Dateiname='END-OF-FILE') IF (POS Dateiname '.mi') LET Dateiname (SUBSTR Dateiname 1 ((POS Dateiname '.mi')+2)) EDIT_PART TOP DELETE ALL CONFIRM TRAP_ERROR LOAD (Verzeichnis+Dateiname) IF (CHECK_ERROR) DISPLAY (Dateiname+' ... '+ERROR_STR) END_IF END_IF END_LOOP CLOSE_FILE 1 END_LOOP END_DEFINE
Den Fehler mit "Datei 1 nicht offen" kann ich nicht ganz verstehen - außer Du hast das CLOSE_FILE in die Schleife geschoben ... Noch ein Hinweis zur 2.Frage: eine rekursive Liste aller Files im aktuellen Verzeichnis kriegst Du in DOS mit: dir /b /on /s /a-d
Gruß aus Österreich, Hannes
------------------ oba geh ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |