Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  INPUT Makro

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 Creo
  
Windows Server 2025 - Was ist neu im Microsoft Server-Betriebssystem, eine Pressemitteilung
Autor Thema:  INPUT Makro (1365 mal gelesen)

Ex-Mitglied

erstellt am: 03. Jun. 2004 10:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo, hier meine Problemstellung:
Es sollen zyklisch Zeichnungen in Form von ME10-Makrodateien mittels INPUT eingelesen, ausgeführt (=Zeichnung auf Bildschirm erstellen)und danach abgespeichert werden (letztlich zur DXF konvertiert werden). Jetzt kann aber nach Ausführen des INPUT -Befehls das eingelesene Makro nicht sofort ausgeführt werden (z.B. in einem Schleifendurchlauf). Gibt es ein workaround zu diesem Problem, was gibt es sonst für Möglichkeiten?

Dittrich
Mitglied
SysAdmin


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

Beiträge: 388
Registriert: 06.06.2000

Wenn es nicht geht, probier was anderes,
vielleicht geht es dann auch nicht.

erstellt am: 03. Jun. 2004 10: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

Ich hatte noch nie Probleme damit, wenn die Ausführung des Makros aus dem Inputfile kam.
Bsp: Das steht in einer Datei die per Input geladen wird

DEFINE Mal_ma_was_schoenes
...
END_DEFINE

Mal_ma_was_schoenes

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


Ex-Mitglied

erstellt am: 03. Jun. 2004 10:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo und Danke für die promte Reaktion.
Hab ich auch gleich ausprobiert, funktioniert aber leider auch nicht.
Was hat es mit dem Schlüsselwort "IMMEDIATE" aufsich. hilft das vielleicht werter?. Da hatte ich aber schon eine MEldung beim Laden des Makros (mit diesem Befehl), offentsichtlich versucht ME10, diesen Befehl bereits beim Laden auszuführen.

rhoffmann
Mitglied
Techniker


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

Beiträge: 58
Registriert: 22.01.2003

erstellt am: 03. Jun. 2004 11:01    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 Björn,

mit untenstehendem Makro lade ich Zeichnungen.
Die Parameter werden in einem Windowsprogramm
festgelegt. Danach schreibt das Windows-Programm
untenstehendes Makro.
Dieses wird bei mir dann per Funktionstaste aufgerufen.

Denkbar ist auch, diesem Makro fortlaufend neue Parameter
mitzugeben und dementsprechend neu aufzurufen.

DEFINE EVA_AUTOMACRO
  PARAMETER SUB
  PARAMETER Dateiname
  TRAP_ERROR
  IF (SUB=1)
    LOAD SUBPART Dateiname
  ELSE
    LOAD Dateiname
  END_IF
  IF (CHECK_ERROR)
    DISPLAY('Datei '+Dateiname+' nicht gefunden oder ist keine ME10-Datei')
    CANCEL
  END_IF
END_DEFINE

Der Aufruf sieht im ersten Fall so aus:
EVA_AUTOMACRO 0 "D:\Zchng\schaefers\G_0134-1_02.mi"

MfG

Robert Hoffmann
http://home.t-online.de/home/eva-hoffmann

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


Ex-Mitglied

erstellt am: 03. Jun. 2004 11:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo und erstmal danke für die schnellen Antworten.
Den Trick über ein zusätzliches Makro, in dem die Zeichnung geladen wird, hab ich auch schon ausprobiert. Aber leider kann ich auch dann im aufrufenden Makro die Zeichnung nicht auf dem Bildschirm aufbauen lassen. Das geht nur, wenn ich nach dem INPUT bzw. nach dem Rücksprung ins aufrufende Makro dieses aufrufende Makro abbreche und von der Konsole aus das neu geladene Makro aufrufe.

Dittrich
Mitglied
SysAdmin


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

Beiträge: 388
Registriert: 06.06.2000

Wenn es nicht geht, probier was anderes,
vielleicht geht es dann auch nicht.

erstellt am: 03. Jun. 2004 11:26    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

vielleicht kannst Du ja mal ein kleines Beispiel posten.
Man kann in Makros keine Makros verwenden, die noch nicht definiert sind. Man kann aber den Namen als Dummy vordefinieren und in der Inputdatei "umdefinieren", sodaß im auf den Input folgenden Aufruf nicht der Dummy, sondern das umdefinierte Makro ausgeführt wird.


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


Ex-Mitglied

erstellt am: 03. Jun. 2004 11:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo,
hier ein Auszug aus dem Makro:
let zaehler 0
  REPEAT
      let zaehler (zaehler+1)

      let datei_name (READ_LTAB 'dateien' zaehler 1)
      let mi_datei (mi_datei_pfad + '/' + datei_name + '.mi')

      display ('Dateiname='+datei_name)

      DELETE ALL CONFIRM 
      INPUT verzeichnis + '/' + datei_name)
      display ('Platte geladen ')

      platte  {Aufruf des Makros hier }
      display ('Platte aufgerufen')

      { DELETE_MACRO platte }

      WINDOW FIT
      STORE MI ALL DEL_OLD mi_datei
  UNTIL (zaehler = anz_zeilen)

  Die zu ladende Makrodatei hat den aufbau:
  DEFINE Platte
  ...
  ...
  END_DEFINE

Das mit dem Dummy hab ich vorhin auch ausprobiert, hat aber nicht funktioniert, wie sollte denn so eine Dummydefinition aussehen?

Dittrich
Mitglied
SysAdmin


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

Beiträge: 388
Registriert: 06.06.2000

Wenn es nicht geht, probier was anderes,
vielleicht geht es dann auch nicht.

erstellt am: 03. Jun. 2004 11: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

Einfach nur ein Makro namens Platte
DEFINE Platte 
LOCAL P0
LET P0 1
END_DEFINE

Definiert irgendwo in den Makros.
Nach dem Input der Datei wird es durch den dortigen Inhalt überschrieben. Wenn nach dem Input Platte ausgeführt wird sollte es der neue Inhalt sein. Ist nur ein Platzhalter, und wenn ich es mir rechtüberlege vielleicht garnicht nötig.
Welche Fehlermeldung erhältst Du denn, wenn du so eine Datei interaktiv "inputtest". Ohne dein Obermakro.
Wenn du das per cut&paste eingefügt hast, fehlt da aber die eine oder andere Klammer.

DEFINE Platte
..
END_DEFINE
Platte


[Diese Nachricht wurde von Dittrich am 03. Jun. 2004 editiert.]

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


Ex-Mitglied

erstellt am: 03. Jun. 2004 11:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Die Fehlermeldung OHNE Dummydatei lautet:  *** Makro Platte ist nicht definiert
Ich hab jetzt aber das mit dem Dummymakro ausprobiert. Da kam dann zwar keine Fehlermeldung, aber der Inhalt des Dummymakros wurde NICHT durch den Dateiinhalt überschrieben, so das der Aufruf vom Makro "Platte" nicht das gewünschte Ergebnis erzielte.

Dittrich
Mitglied
SysAdmin


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

Beiträge: 388
Registriert: 06.06.2000

Wenn es nicht geht, probier was anderes,
vielleicht geht es dann auch nicht.

erstellt am: 03. Jun. 2004 11: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

Bist Du sicher das der Input klappt?
schreib doch mal in die datei ein
DISPLAY  rein.

Ich habe das gerade mal probiert, um sicher zu gehen, das ich dir keinen Quatsch erzähle. Eine Schleife habe ich nicht gemacht, aber das funktioniert. Egal ob der Aufruf von Platte in der Inputdatei stand oder im Obermakro. Und auch ohne Dummy.
Ich vermute bei deinem Input geht was schief. Entweder er findet die Datei nicht, vielleicht hast Du ja TRAP_ERROR an, sodaß du keine Fehlermeldung bekommst. Oder die Definition des Makros Platte ist nicht korrekt.


[Diese Nachricht wurde von Dittrich am 03. Jun. 2004 editiert.]

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

H.annes
Mitglied
CAD-Pfriemler


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

Beiträge: 482
Registriert: 02.07.2001

OSDD 8.7 - 13.20 ; OSDM 13.00

erstellt am: 03. Jun. 2004 12: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

Mahlzeit!

Ein Problem vom OSDD ist, daß die deutsche Doku nicht immer komplett bzw. nicht auf dem neuesten Stand ist. In der englischen Doku steht zu INPUT IMMEDIATE:

Zitat:
For option IMMEDIATE, the <filename> must not be a variable, and the file <filename> must exist at the time of call to INPUT IMMEDIATE.

Außerdem steht zu INPUT:

Zitat:
The INPUT function should be used inside macros only with the IMMEDIATE option.

Damit fällt für Dein Problem die Option IMMEDIATE weg.

Es gibt aber einen Schmäh dabei:
das INPUT wird erst dann ausgefüht, wenn NACH dem INPUT irgendein Wert eingelesen wird, und dieser Wert VOR dem INPUT geliefert wird.
Wir lösen das immer so:

INPUT "dummyfile"
INPUT "richtigesMakro.mac"
READ Dummywert

Der "dummyfile" enthält nur eine Zeile:

Zitat:
0

Alle INPUT-Befehle, die hintereinander stehen, werden in umgekehrter Reihenfolge ausgeführt.
Das READ erwartet eine Eingabe - die INPUT liefern Daten - daherwerden die INPUT der Reihe nach so lange ausgeführt, bis das READ befriedigt ist 

Kling blöd - ist es auch. Aber es funktioniert 

Hannes


------------------
undmiadanwosmadan undmiadadnawosondasoisdeswosmadan undwosondasdammara

[Diese Nachricht wurde von H.annes am 03. Jun. 2004 editiert.]

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


Ex-Mitglied

erstellt am: 03. Jun. 2004 13:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo und Danke an alle, die geholfen haben.
Der Tip von H.annes hat tatsächlich funktioniert.

H.annes
Mitglied
CAD-Pfriemler


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

Beiträge: 482
Registriert: 02.07.2001

OSDD 8.7 - 13.20 ; OSDM 13.00

erstellt am: 03. Jun. 2004 14:26    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

Zitat:
Original erstellt von bduebler:
Hallo und Danke an alle, die geholfen haben.
Der Tip von Hannes hat tatsächlich funktioniert.

ist auch altbewährt ... 
es ist zwar immer wieder schwierig zu erklären (auch mein Gehirn sträubt sich noch, diese Funktionalität zu kapieren), aber das ist schon Routine, um nicht zu sagen "Dogma": INPUT "dummy", INPUT makrofiles, READ Dummy.

In UNIX hats noch ohne "dummyfile" funktioniert:

  INPUT "| echo 0"
  INPUT Makrofiles
  READ Dummywert

aber am PC geht das nicht mehr.

Gruß,
Hannes

PS: und die Probleme mit der deutschen Doku werden hoffentlich ENDLICH in der Version 13 beseitigt!
Bis dahin gilt: wenn ich im deutschen Manual nichts finde, schau ich im englischen Handbuch nach.

------------------
undmiadanwosmadan undmiadadnawosondasoisdeswosmadan undwosondasdammara

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


Ex-Mitglied

erstellt am: 03. Jun. 2004 15:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo,
jetzt hatte ich schon gedacht, ich hab die Katze im Sack, aber sofort das nächste Problem.
Ab dem 26ten Schleifendurchlauf kommt beim INPUT plötzlich die Meldung "´Dateiname´ für Input eingeben".
Ein Test mit Diyplay hat aber ergeben, das die Variable sehrwohl den korrekten 26ten Dateinamen enthält, Plattenplatz ist auch genug da und das 26te Makrofile läßt sich von der Konsole aus problemlos einlesen. Was ist jetzt wieder Los?

Danke und Grüße
Björn

Dieter Kotsch
Mitglied



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

Beiträge: 311
Registriert: 10.08.2002

erstellt am: 03. Jun. 2004 16:02    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

HI

Unter UX gibt es noch eine Systemvariable, welche sich in deiner Situation auf die max. Anzahl der zu ladenden Dateien auswirkt.

Gruß Dieter

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


Ex-Mitglied

erstellt am: 03. Jun. 2004 16:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo,
hat jemand eine Idee, welche Variable das sein kann und wo ich diese finde?

Danke und Grüße
Björn

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