{###### Makro ohne die undokumentierten POINTER (die bei mir auch nicht funktionieren) EVA_Batch_dwg (Makro vereinfacht ohne Directory, Anfang Ende) Beispiel: EVA_Batch_dwg 'd:\mi' 'd:\dwg' 'hp_i3098_v' Ordner 'd:\mi' und 'd:\dwg' müssen dann existieren Ordner 'c:\temp' muss auf jeden Fall existieren ###### Der Dateiname darf nicht länger als 40 Zeichen sein ###### Die Schriftarten und -grössen werden in die Datei _texte.txt geschrieben Die geänderten MI-Dateien werden in den Ausgabeordner geschrieben, falls diese auch generell geändert werden sollen (die Original-MI-Dateien liegen ja im MI-Ordner) ######} DEFINE EVA_Batch_dwg PARAMETER InVerzeichnis { mi-Dateien } PARAMETER OutVerzeichnis { dwg-Dateien } PARAMETER Z_Schriftart LOCAL Dateiname LOCAL Zaehler LOCAL Schleife LOCAL TextausZeichnung LOCAL Schriftart LOCAL Groesse LOCAL Versi store all del_old ('c:/temp/eva_sbd.mi') CATALOG InVerzeichnis SELECT 'FILE_NAME' '*' DEL_OLD (OutVerzeichnis+'/'+'eva_sbd.txt') LET Zaehler 0 OPEN_INFILE 1 (OutVerzeichnis+'/'+'eva_sbd.txt') OPEN_OUTFILE 2 DEL_OLD (OutVerzeichnis+'/'+'_texte.txt') READ_FILE 1 Dateiname READ_FILE 1 Dateiname READ_FILE 1 Dateiname READ_FILE 1 Dateiname LOOP LET Zaehler (Zaehler+1) READ_FILE 1 Dateiname IF (Dateiname<>'END-OF-FILE') LET Dateiname (SUBSTR Dateiname 1 40) LET Dateiname (TRIM Dateiname) EDIT_PART TOP DELETE ALL CONFIRM TRAP_ERROR LOAD (InVerzeichnis+'/'+Dateiname) IF (CHECK_ERROR) DISPLAY_NO_WAIT (Dateiname+' ... '+ERROR_STR) END_IF WRITE_FILE 2 ('########## '+Dateiname+' ##########') INQ_ENV 8 { Hole hoechste Teilenummer } LET Schleife (INQ 5) WHILE (Schleife>0) { alle Teilenummern durchlaufen } TRAP_ERROR EDIT_PART ('~'+(STR Schleife)) { editiere Teil } IF (NOT CHECK_ERROR) { Teil vorhanden? } INQ_SELECTED_ELEM TEXTS ALL WHILE (INQ 14) IF (INQ 403 = TEXT) LET Schriftart (INQ 302) LET Groesse (INQ 6) WRITE_FILE 2 (Schriftart+' '+STR Groesse) CHANGE_TEXT_FONTNAME Z_schriftart (INQ 101) END IF ((Groesse > 0) AND (Groesse <= 2.5)) CHANGE_TEXT_SIZE 2.5 (INQ 101) END ELSE_IF ((Groesse > 2.5) AND (Groesse <= 5)) CHANGE_TEXT_SIZE 3.5 (INQ 101) END ELSE_IF ((Groesse > 5) AND (Groesse <= 10)) CHANGE_TEXT_SIZE 8 (INQ 101) END END_IF INQ_NEXT_ELEM END_IF { IF (INQ 403 = TEXT) } END_WHILE END_IF LET Schleife (Schleife - 1) { naechstes Teil } END_WHILE TRAP_ERROR STORE MI ALL DEL_OLD (OutVerzeichnis+'/'+Dateiname) CONFIRM STORE DWG V1012 ALL DEL_OLD (OutVerzeichnis+'/'+Dateiname+'.dwg') CONFIRM IF (CHECK_ERROR) DISPLAY_NO_WAIT (Dateiname+' ... '+ERROR_STR) WAIT 2 END_IF END_IF {(Dateiname<>'END-OF-FILE')} EXIT_IF (Dateiname='END-OF-FILE') END_LOOP END CLOSE_FILE 2 CLOSE_FILE 1 EDIT_PART TOP DELETE ALL CONFIRM load ('c:/temp/eva_sbd.mi') END_DEFINE