Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  [ME10] Macro

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
  
Behalten Sie Ihre IT-Sicherheit im Überblick, eine Pressemitteilung
Autor Thema:  [ME10] Macro (3181 mal gelesen)
RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

Win10 64bit
Inventor 2022
AutoCad mechanical 2022
Vault pro 2022

erstellt am: 12. Aug. 2009 09:35    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 Gemeinde,

ich versuche mich mal wieder an ME10 macros, und will gaaaanz klein anfangen, doch selbst da macht er nicht das, was ich will das er macht.

Code:

DEFINE
  LOCAL P1
  LOCAL P2
READ PNT ' Einfügepunkt anklicken' P1
{ CS_REF_PT RELATIVE P1 let P1 (0,0)}              { Koor. Ursprung nach P0}
let P2 (PNT_XY ((X_OF P1)+10) (Y_OF P1))
LINE TWO_PTS P1 P2
END_DEFINE


Zeile2: er soll P1 lokal benutzen
Zeile3: er soll P2 lokal benutzen
Zeile4: er soll die Ausgabe "Einfügepunkt anklicken" bringen und dann den im Fenster angeklickten Punkt als P1 definieren
Zeile5: Auskommentiert
Zeile6: er soll P2 anhand von XY-Werten definieren, und zwar soll X die X-Komp. von P1 +10, und Y die Y-Komp. von P1 sein
Zeile7: er soll eine Linie zeichnen zwischen zwei Punkten, diese seien P1 und P2

Aber er macht das nicht. Er fragt mich nach Anfangs- und Endpunkt, dawischen zeichnet er eine Linie. Ich gehe deshalb davon aus, das er mit den Punkten nichts anfangen kann, warum? Was habe ich vergessen?
Das Macro soll auf der V13.20 laufen.

LG aus Berlin

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

stb68
Mitglied
Dipl. Ing. (BA) Informatik


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

Beiträge: 14
Registriert: 13.01.2004

WorkManager 2.x - 16.x
ModelManager 11.x - 16.x
Modeling 6.x - 16.x
Drafting 4.x - 16.x
Oracle 7, 8, 9, 10
HP-UX 8.x - 11.x
Windows 3.1, NT, 2000, XP, Vista

erstellt am: 12. Aug. 2009 09:51    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 RobCraven 10 Unities + Antwort hilfreich

Hallo RobCraven,

Du musst Deinem Macro auch einen Namen geben. Der steht hinter "DEFINE".

Also z. B.
DEFINE MyLine
  LOCAL P1
  LOCAL P2
READ PNT ' Einfügepunkt anklicken' P1
{ CS_REF_PT RELATIVE P1 let P1 (0,0)}              { Koor. Ursprung nach P0}
let P2 (PNT_XY ((X_OF P1)+10) (Y_OF P1))
LINE TWO_PTS P1 P2
END_DEFINE

Danach kannst Du das Makro MyLine aus der Befehlszeile starten.

Grüße
Stephan

------------------
Alles wird gut ...

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

RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

erstellt am: 12. Aug. 2009 12:29    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 Stephan,

ja, das wars, jetzt geht es. Jedoch geht er scheinbar nicht ganz wieder raus, sprich, nachdem er die gewünschte Linie erstellt hat fragt er wieder nach Anfangs- und Endpunkt um eine Linie zu zeichnen.
Ich habe doch aber das macro mit END_DEFINE beendet, oder nicht?


LG KJ

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

Tobi79
Mitglied
Projektleiter / CAD-Administrator


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

Beiträge: 422
Registriert: 22.02.2002

OSD 15.50B
Drawingmanager

erstellt am: 12. Aug. 2009 12:35    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 RobCraven 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von RobCraven:
Hallo Stephan,

Jedoch geht er scheinbar nicht ganz wieder raus, sprich, nachdem er die gewünschte Linie erstellt hat fragt er wieder nach Anfangs- und Endpunkt um eine Linie zu zeichnen.


LG KJ


setz einfach nach LINE P1,P2 END

Gruss

------------------
Tobi 

 

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

RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

erstellt am: 13. Aug. 2009 08:08    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 Tobi,
Danke für deine Antwort, hat auch super geklappt, jedenfalls bei der Linie.
Jedoch wollte ich jetzt einen Pfeil erstellen, da ist wieder das gleiche Problem, er fragt nach dem Pfeil. Ich habe LEADER_LINE genommen, liegt es vielleicht daran? Gibts noch ne andere Möglichkeit einen Pfeil zu erstellen?
Des Weiteren möchte ich die Farbe der Linie/Pfeil ändern, aber später wieder auf den Anfangswert zurücksetzen. Aber da steigt er ganz aus und erstellt nicht mal die Linie (will irgendwas von ner Formel/Ausdruck wissen). Dieses IF (M=1) ist das wirklich notwendig, wenn ja warum, genauso versteh ich dieses LOCAL nicht wirklich, warum kann man nicht ohne? Und auch allgemein, wenn Ihr was seht, was man einfacher, besser machen kann, sagt bescheid.


Code:
DEFINE Einst_laden                  { setzt Einstellungen                       }
IF (M=1)
LET COLOR EINST_03_201         { setze aktuelle Geometriefarbe             }
END_IF
END_DEFINE

DEFINE Einst_speichern              { speichert Einstellungen                   }
IF (M=1)
INQ_ENV 3
LET EINST_03_201 (INQ 201)     { aktuelle Geometriefarbe                   }
END_IF
END_DEFINE

DEFINE Linie 
    LOCAL P1
    LOCAL P2
   let M (1)
   Einst_speichern
READ PNT ' EinfÏgepunkt anklicken' P1
CS_REF_PT RELATIVE P1 let P1 (0,0)               { Koor. Ursprung nach P0}
let P2 (PNT_XY ((10) (0))
COLOR YELLOW LINETYPE SOLID
LEADER_LINE TWO_PTS P2 P1 END
  Einst_laden
END_DEFINE


LG KJ.

[Diese Nachricht wurde von RobCraven am 13. Aug. 2009 editiert.]

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

stb68
Mitglied
Dipl. Ing. (BA) Informatik


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

Beiträge: 14
Registriert: 13.01.2004

WorkManager 2.x - 16.x
ModelManager 11.x - 16.x
Modeling 6.x - 16.x
Drafting 4.x - 16.x
Oracle 7, 8, 9, 10
HP-UX 8.x - 11.x
Windows 3.1, NT, 2000, XP, Vista

erstellt am: 13. Aug. 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 RobCraven 10 Unities + Antwort hilfreich

Hallo RobCreaven,

LEADER_LINE musst Du mit 2 * END beenden.
Also:
LEADER_LINE TWO_PTS P2 P1 END END.
Das erste END beendet die Punkteeingabe, Du könntest hier auch unendlich
viele Punkte angeben, das zweite END den Befehl selbst.

Gruß
Stephan

------------------
Alles wird gut ...

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

RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

erstellt am: 13. Aug. 2009 09:18    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 Stephan,

das hat auch geklappt. Das mit der Formel/Ausdruck lag an der Eingabe von let P2 (PNT ((10) (0))), wenn eine Klammer gesetzt ist erwartet er scheinbar eine Formel, ich habe das jetzt geändert in let P2 (PNT 10 0) und damit gehts. Nur das Rücksetzen der Linienfarbe geht noch nicht. Das interessiert ihn gar nicht, so wie es scheint.


LG KJ.

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

stb68
Mitglied
Dipl. Ing. (BA) Informatik


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

Beiträge: 14
Registriert: 13.01.2004

WorkManager 2.x - 16.x
ModelManager 11.x - 16.x
Modeling 6.x - 16.x
Drafting 4.x - 16.x
Oracle 7, 8, 9, 10
HP-UX 8.x - 11.x
Windows 3.1, NT, 2000, XP, Vista

erstellt am: 13. Aug. 2009 09: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 Nur für RobCraven 10 Unities + Antwort hilfreich

Hallo RobCraven,

hier habe ich den Code mal überarbeitet, dass er bei mir funktioniert:

DEFINE Einst_laden            { setzt Einstellungen                      }
  IF (M=1)
    COLOR EINST_03_201        { setze aktuelle Geometriefarbe            }
  END_IF
END_DEFINE

DEFINE Einst_speichern        { speichert Einstellungen                  }
  IF (M=1)
    INQ_ENV 3
    LET EINST_03_201 (INQ 201) { aktuelle Geometriefarbe                  }
  END_IF
END_DEFINE

DEFINE Linie 
  LOCAL P1
  LOCAL P2
  let M (1)
  Einst_speichern
  READ PNT ' EinfÏgepunkt anklicken' P1
  CS_REF_PT RELATIVE P1
  let P1 (0,0)              { Koor. Ursprung nach P0}
  let P2 (PNT_XY 10 0)
  COLOR YELLOW LINETYPE SOLID
  LEADER_LINE P2 P1 END
  Einst_laden
  END
END_DEFINE

Änderungen:

- Bei Einst_laden steht kein LET vor COLOR
- Nach LEADER_LINE steht kein TWO_PTS
- Das zweite END nach LEADER_LINE steht nach Einst_laden.

Gruß
Stephan

------------------
Alles wird gut ...

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

barbarossa
Mitglied
Konstrukteur


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

Beiträge: 273
Registriert: 21.02.2003

erstellt am: 13. Aug. 2009 11:51    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 RobCraven 10 Unities + Antwort hilfreich

Hallo RobRaven,

hier ist meine Version (läuft unter 7.0  )

DEFINE M
  0
END_DEFINE

DEFINE EINST_03_201
  0
END_DEFINE

DEFINE Einst_laden                  { setzt Einstellungen                      }
  IF (M=1)
    COLOR EINST_03_201        { setze aktuelle Geometriefarbe            }
  END_IF
END_DEFINE

DEFINE Einst_speichern              { speichert Einstellungen                  }
  INQ_ENV 3
  LET EINST_03_201 (INQ 201)    { aktuelle Geometriefarbe                  }
END_DEFINE

DEFINE Linie 
  LOCAL P1
  LOCAL P2

  Einst_speichern

  READ PNT ' EinfÏgepunkt anklicken' P1

  CS_REF_PT RELATIVE P1 let P1 (0,0)              { Koor. Ursprung nach P0}
  let P2 (PNT_XY ((X_OF P1)+10) (Y_OF P1))
  COLOR YELLOW LINETYPE SOLID
  LEADER_LINE  P2 P1 END END

  let M (1)
  Einst_laden
  let M (0)
END_DEFINE


Du siehst oben zwei weitere "Macros". Du brauchst solcherart Macros
als "globale Variablen". Da Du im Fu.-Aufruf Macroübergreifend Werte
benutzt, brauchst Du diese, sonst erzeugst Du Dir Datensalat.

Gruß
Barbarossa

------------------
-----------------------------------------------
Eventuelle Doppelbuchstaben, welche einen Recht-
schreibfehler darstellen, sind unbeabsichtigte
Tastaturpreller.

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

RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

Win10 64bit
Inventor 2022
AutoCad mechanical 2022
Vault pro 2022

erstellt am: 13. Aug. 2009 13:08    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 Stephan

PERFEKT!!! Danke!!!
Kann man eigentlich nur einmal pro Person und Tread Unitis abgeben?

LG KJ.

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

highway45
Moderator
Bastler mit Diplom




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

Beiträge: 6385
Registriert: 14.12.2004

CoCreate Modeling V20 + PE6
NotePad++

erstellt am: 13. Aug. 2009 13:25    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 RobCraven 10 Unities + Antwort hilfreich

Ja, das Vergeben der Us geht leider nur einmal pro Thread und pro User.

Hallo barbarossa 

------------------
          http://osd.cad.de/

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

barbarossa
Mitglied
Konstrukteur


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

Beiträge: 273
Registriert: 21.02.2003

erstellt am: 13. Aug. 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 Nur für RobCraven 10 Unities + Antwort hilfreich

Hallo Matthias  

------------------
-----------------------------------------------
Eventuelle Doppelbuchstaben, welche einen Recht-
schreibfehler darstellen, sind unbeabsichtigte
Tastaturpreller.

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

der_Wolfgang
Moderator
Tastenhauer


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

Beiträge: 2296
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.5737
● Drafting V17~V20.7@job
● Modeling V17~V20.7@job
● Windchill 12.1.2.6@job
● UWGM Client 13.0.0.1@job
● Taschenrechner
● Stift+Zettel V8.42

erstellt am: 13. Aug. 2009 20:49    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 RobCraven 10 Unities + Antwort hilfreich

Hi,

jetzt habe ich aber auch mal Fragen, an die, die das Macro hier schreiben!

1) Was ist der Unterschied zwischen:

Code:
let M (1)
und
Code:
let M 1
??

2) wozu wird M ueberhaubt genutzt_? In der gezeigten Sequence ist keine sinnvolle Anwendung fuer den fall das M gleich 0 ist!?

3) und wenn.. warum dem Macro Einstellung_laden nicht einen Parameter mitgeben:

Code:
DEFINE Einst_laden
  PARAMETER M
  IF (M=1)
.....
{ -- aufruf -- }
Einst_laden 1
{ -- aufruf -- }
Einst_laden 0

4) wenn man sich der Bedeutung von M bewusst ist, koennte man vielleicht auch einen sprechenderen Bezeichner statt 'M' nutzen. Das erhoeht den Wiedererkennungswert ungemein.   Insbesondere wenn der Macro in 13,5 Monaten (nach dem nächsten upate) nicht mehr funktioniert 

3+4 sollen als Anregung dienen..  1+2 eher zum nachdenken.

Aufmunternde Gruesse.. 

------------------
Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en)NotePad++

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

barbarossa
Mitglied
Konstrukteur


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

Beiträge: 273
Registriert: 21.02.2003

erstellt am: 14. Aug. 2009 13: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 RobCraven 10 Unities + Antwort hilfreich

Hallo Wolfgang,

die Frage, das Problem und der Lösungsansatz stammen offensichtlich
von einem noch unerfahrenen Anfänger in der Macro-Programmierung.

Um ihn nicht gänzlich in seinen Lernschritten abzuhängen, habe ich
seinen Entwurf nur "fehlerbereinigt".

Deine Anregungen sind prinzipiell korrekt, sinnvoll und gut.
Mal sehen, wie Rob Deine Ideen aufnimmt.

Codierte Grüße
Barbarossa

------------------
-----------------------------------------------
Eventuelle Doppelbuchstaben, welche einen Recht-
schreibfehler darstellen, sind unbeabsichtigte
Tastaturpreller.

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

RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

Win10 64bit
Inventor 2022
AutoCad mechanical 2022
Vault pro 2022

erstellt am: 17. Aug. 2009 15: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

Hallo Wolfgang, hallo barbarossa,

Vielen Dank, für eure Antworten und Tipps,

ja also ich bin wirklich blutiger Anfänger, ich habe mir viele Macros angeschaut, und dachte auch, dass ich verstehe was sie tun. Und dann kam ich auf die Idee selbst anzufangen welche zu schreiben, mit eher kläglichem Erfolg. Deshalb dieser Tread hier. Ich möchte von Anfang an verstehen, was er wann warum macht. Ich finde es gut von euch, das Ihr meine Schritte mitgeht.
Zu dem Parameter "M": Ich dachte, dass ich ja die Linienfarbe nur dann speichern möchte, wenn das Macro Linie abgearbeitet wird. Und nur deshalb gibt es diesen Parameter. Wenn ich ihn nicht brauche fliegt er raus. Ich hatte diese "Schreibweise" aus anderen Macros übernommen. Genauso die Vordefinition der lokalen Variablen (LOCAL P1, ...), brauch ich das denn wirklich? Es Funktioniert doch auch ohne, warum vewendet man es?

Code:
1) Was ist der Unterschied zwischen:

    Code:let M (1)

und

    Code:let M 1

??



Keine Ahnung, ich nehme aber an, dass es In Klammerschreibweise auch eine Formel enthalten könnte. ???

Ich bin für weitere Tipps und Anregungen offen.

LG KJ

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

der_Wolfgang
Moderator
Tastenhauer


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

Beiträge: 2296
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.5737
● Drafting V17~V20.7@job
● Modeling V17~V20.7@job
● Windchill 12.1.2.6@job
● UWGM Client 13.0.0.1@job
● Taschenrechner
● Stift+Zettel V8.42

erstellt am: 17. Aug. 2009 22:29    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 RobCraven 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von RobCraven:
Und dann kam ich auf die Idee selbst anzufangen welche zu schreiben
  Gute Idee! Nur so kommt man vorwärts.
Zitat:
Ich finde es gut von euch, das Ihr meine Schritte mitgeht.
Danke, das ist ein Rückmeldung die ich gerne höre. Es bring halt nix einem Lernenden (egal um blutiger Anfänger oder Fortgeschrittenen auf dem Weg zum Experten) eine tolle Lösung vor die Füße / auf die Tastatur zu kippen.
Zitat:
Ich hatte diese "Schreibweise" aus anderen Macros übernommen. Genauso die Vordefinition der lokalen Variablen (LOCAL P1, ...), brauch ich das denn wirklich? Es Funktioniert doch auch ohne, warum vewendet man es?
Ja es gibt auch Situation wo man das benutzt. Denk mal dran Du haettese mehrere Makros.. und immer wieder brauchst du einen Zähler.
Code:
DEFINE Machs_oefter
  LOCAL Counter
  LET Counter 1
  While ......
  ......
  LET Counter (Counter + 1)
  END_while
END_DEFINE

DEFINE Doit_more_often
  LOCAL Counter
  LET Counter 1
  While ......
  ......
  LET Counter (Counter + 2)
  END_while
END_DEFINE


Die Zaehler in beiden Makros sind jeder fuer sich. Ändern wir nun Doit_more_often und rufen den anderen Macro dort auf (verschachtelte Macro aufrufe sind was recht normales)
Code:
DEFINE Doit_more_often
  LOCAL Counter
  LET Counter 1
  While ......
    ......
    LET Counter (Counter + 2)
    Machs_oefter
  END_while
END_DEFINE
Wenn Du nun jeweils 'LOCAL COUNTER' weglaesst(!), wirst Du ein blaues wunder erleben (  nein, einen klassischen BlueScreen vom Betrübssüstem, meinte ich jetzt nicht. So schlimm ist es dann doch nicht)

Die mit LOCAL deklarierte variable ist halt nur innerhalb dieses Makros definiert (!! das ist bereits eine kleine Vereinfachung in der Erklärung!!) Sozusagen von aussen nicht sichtbar.  Lässst du LOCAL xxx weg sind dies 'globale' variablen die Du von jeder beliebigen Stelle aus ändern könntest.  --> mach deine variablen möglichst LOCAL dann bist du auf der sicheren Seite.

Ungewollte GLOBALE variablen haben manchmal 'lustige' Seiteneffekte und das zu finden    ist oft gar nicht lustig.;)

Zitat:
Code:
1) Was ist der Unterschied zwischen:
    let M (1)
    let M 1
Keine Ahnung, ich nehme aber an, dass es In Klammerschreibweise auch eine Formel enthalten könnte. ???

Richtig.. Aber fuer die einfache Zuweisung des WERTES 1 an die Variable M reicht eben

Code:
LET M 1

Anders waere es, wenn Du
Code:
LET M (SQRT 2)
haben willst.. DANN braucht man die klammern, weil hier eine Funktion mit dem Parameter 2 gerufen wird.

Bevor der Beitrag zu lang wird.. schicke ich ihn mal besser ab!

------------------
Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en)NotePad++

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

RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

erstellt am: 18. Aug. 2009 09:11    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 Wolfgang,

also das mit LOCAL hab ich jetzt kapiert, was mir aber noch unklar ist, ist die Variable M. Wie geschrieben, ich möchte ja nur dann die Linienfarbe speichern, wenn das Macro abgearbeitet wird. Meine Gedanken gehen in die Richtung, was passiert tatsächlich wenn das Macro in das ME10 reingeladen wird, durchläuft er dabei das Macro schon zum Teil (spich, speichert er da schon die Linienstärken oder wirklich erst wenn ich das Macro ausführe), oder merkt er sich nur wo es liegt und wie es aufgerufen wird? Danach richtet sich meiner Meinung nach die Verwendung von M, denn wenn er es erst speichert, wenn ich das Macro ausführe, brauche ich M nicht.
Das ist mir noch unklar.

LG KJ.

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

der_Wolfgang
Moderator
Tastenhauer


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

Beiträge: 2296
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.5737
● Drafting V17~V20.7@job
● Modeling V17~V20.7@job
● Windchill 12.1.2.6@job
● UWGM Client 13.0.0.1@job
● Taschenrechner
● Stift+Zettel V8.42

erstellt am: 18. Aug. 2009 22: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 RobCraven 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von RobCraven:
also das mit LOCAL hab ich jetzt kapiert
Prima!
Zitat:
was mir aber noch unklar ist, ist die Variable M.
Ja das ist bei mir gestern abend wohl 'hinten runter' gekippt.. und , ganz ehrlich, heute abend (siehe Uhrzeit) habe ich da nun auch keine Lust drauf.
Zitat:
was passiert tatsächlich wenn das Macro in das ME10 reingeladen wird, durchläuft er dabei das Macro schon zum Teil
Nein, es wird nur definiert, nicht durchlaufen. Etwas hinkender Vergleich: wenn Du Bargeld vom Konto abhebst: ist es dann erstmal nur in der Geldbörse oder wird es automatisch ausgeben wenn du es abhebst?

Ich denke Du brauchst M gar nie nicht.

Ich wuerde 'Einst_03_201' zu einer lokalen variablen innerhalb des Macros Linie machen, dort am Anfang setzen dann den Punkt abfragen und die LeaderLine gelbe zeichenen und am Ende 'Einst_03_201' eben nutzen um den alten Default wert wieder herzustellen. 'Linie' würde ich zu 'Make_refpnt_leader_line' umbenennen. Dann weist du später besser was das Teil wirklich tut.

------------------
Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en)NotePad++

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

barbarossa
Mitglied
Konstrukteur


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

Beiträge: 273
Registriert: 21.02.2003

erstellt am: 20. Aug. 2009 14:46    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 RobCraven 10 Unities + Antwort hilfreich

Hallo Rob,

hier ist mein "Verbesserungsvorschlag" zu Deinem Pfeile-Macro.
Du kannst es
- zur Analyse
- zur Weiterentwicklung
und zum Funktionsausbau benutzen, z.B.
- beliebige Pfeillänge
- beliebiger Pfeilrichtungswinkel

Viel Spass damit

DEFINE Linie_neu 
  LOCAL P1
  LOCAL P2
  LOCAL meine_linien_farbe
  LOCAL mein_linien_typ

  INQ_ENV 3
  let meine_linien_farbe (INQ 201) { speichert  aktuelle Geometriefarbe}
  let mein_linien_typ (INQ 301) { speichert  aktuellen Linientyp}

  COLOR YELLOW LINETYPE SOLID END

  READ PNT ' Einfuegepunkt anklicken' P1
  CS_REF_PT RELATIVE P1 let P1 (0,0) { Koor. Ursprung nach P0}
  let P2 (PNT_XY ((X_OF P1)+10) (Y_OF P1))
  LEADER_LINE  P2 P1 END END

  COLOR meine_linien_farbe LINETYPE mein_linien_typ END
  { ruft aktuelle Geometriefarbe und Linientyp zurueck}
END_DEFINE


Gruß Barbarossa 

------------------
-----------------------------------------------
Eventuelle Doppelbuchstaben, welche einen Recht-
schreibfehler darstellen, sind unbeabsichtigte
Tastaturpreller.

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

RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

Win10 64bit
Inventor 2022
AutoCad mechanical 2022
Vault pro 2022

erstellt am: 20. Aug. 2009 16: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 Wolfgang,

das mit dem Umbenennen mach ich später, wenn das Macro fertig ist. Ich hänge jetzt schon wieder an einem Punkt und weiß nich wie ich's hinkriege... Folgendes: ich möchte über READ STRING einen Buchstaben auslesen,

Code:
DEFINE Schnittbezeichnung
{      LOCAL Schnitt_Bez}
      READ STRING ' Schnittbezeichnung eingeben:' Schnitt_Bez
{      UPC Schnitt_Bez LET Schnitt_Bez}
      let Schnitt_TName ('Schnitt_'+Schnitt_Bez)
END_DEFINE

aber er nimmt den Buchstaben nicht und fragt immer weiter nach der Bezeichnung, ist STRING dafür ungeeignet? Ich hab aber nichts passenderes gefunden. Das Ganze sieht/soll dann so aussehen
Code:
DEFINE Linie 
    LOCAL P0
    LOCAL P1
    LOCAL P2
  Einst_speichern
Schnittbezeichnung
READ PNT ' EinfÏgepunkt anklicken' P1
CS_REF_PT RELATIVE P1 LET P1 (0,0)              { Koor. Ursprung nach P0}
LET P2 (PNT_XY 10 0)
COLOR YELLOW LINETYPE SOLID
LEADER_LINE P2 P1 END
LET P0 (PNT_XY 5 5)
COLOR GREEN LINETYPE SOLID                 
TEXT (Schnitt_Bez) P0 END           
  Einst_laden
  END
END_DEFINE

Ich hab auch schon versucht das in das LINIE Macro einzubinden, aber da passiert das gleiche. Was hab ich da nur schon wieder falsch gemacht?

LG
KJ.

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 20. Aug. 2009 18:18    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 RobCraven 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von RobCraven:
Was hab ich da nur schon wieder falsch gemacht?
LG
KJ.


Vielleicht den Buchstaben ohne Anführungszeichen eingegeben?
Das wär natürlich komfortabler, dann brauchst du aber READ LITERAL

------------------
meine LISP-Makros sind auf osd.cad.de
Disclaimer
Grüße aus Wien

Walter
DC4 Technisches Büro GmbH

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

RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

Win10 64bit
Inventor 2022
AutoCad mechanical 2022
Vault pro 2022

erstellt am: 21. Aug. 2009 07:45    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 Walter,

ja das war/ist es, also brauch ich immer bei READ STRING die Hochkommata. In anderen Macros wo READ STRING verwendet wurde, hab ich das bisher aber noch nicht gesehen, wer weiß, vielleicht hab ich auch nicht so drauf geachtet, oder die haben es dann doch irgendwie anders gemacht. Unterm Strich muß ich also entweder die Hochkommata mit eingeben oder halt READ LITERAL (also alles einlesen) verwenden. Ich werd das jetzt mal probieren.
EDIT:
Ich hab das jetzt mal versucht. Das Einlesen klappt, aber kann es sein das ich das dann nicht über TEXT ausgeben kann?
EDIT

@Barbarossa,

danke auch dir für deine Ideen und Verbesserungsvorschläge, das mit dem belibigen Winkel wird mein nächstes Ziel sein. Aber verrat mir noch nix, ich möchte mir erst meine eigenen Gedanken machen, wenn ich nicht weiter komme frage ich euch.


Ganz liebe Grüße aus Berlin (...heut is Freitag...)

KJ


[Diese Nachricht wurde von RobCraven am 21. Aug. 2009 editiert.]

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 21. Aug. 2009 10: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 Nur für RobCraven 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von RobCraven:
Ich hab das jetzt mal versucht. Das Einlesen klappt, aber kann es sein das ich das dann nicht über TEXT ausgeben kann?

Nachdem du ja irgendwas einliest, solltest du gleich drauf daraus mit (STR Irgendwas) einen Text machen

------------------
meine LISP-Makros sind auf osd.cad.de
Disclaimer
Grüße aus Wien

Walter
DC4 Technisches Büro GmbH

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

RobCraven
Mitglied
Konstrukteur


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

Beiträge: 111
Registriert: 30.01.2009

Win10 64bit
Inventor 2022
AutoCad mechanical 2022
Vault pro 2022

erstellt am: 24. Aug. 2009 08: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

Hallo zusammen,

irgendwie krieg ich das nicht hin. Ich hab das jetzt so:

Code:

READ LITERAL ' Schnittbezeichnung eingeben:' Schnitt_Bez
LET Schnitt_Bez (UPC (STR Schnitt_Bez))
und
Code:

TEXT (Schnitt_Bez) P0 END

Ich habs auch schon ohne das UPC probiert und mit anderen Variablen versucht außerdem ist das jetzt alles ist in einem Macro mit LOCAL Schnitt_Bez.


LG KJ.

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

karl-josef_wernet
Mitglied
SysAdmin CAD-ME im Sabbatical


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

Beiträge: 1046
Registriert: 27.11.2000

PTC-Direct-Modeling/Drafting 19.0
Classic/Tablett
DELL T5820, Precision 7760
Workmanager/Model-/Drawing-Manager
WIN10
PE8.0

erstellt am: 24. Aug. 2009 22:24    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 RobCraven 10 Unities + Antwort hilfreich

Hi

ohne Klammer also

TEXT Schnitt_Bez P0 END

dann muesste es funktionieren.

------------------
kjw

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

r.hoffmann
Mitglied
Techniker


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

Beiträge: 128
Registriert: 07.12.2006

OSD 13.2

erstellt am: 25. Aug. 2009 07:51    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 RobCraven 10 Unities + Antwort hilfreich

Hallo Rob,

versuch das mal:

DEFINE TEST
LOCAL T
  LET T 'A-A'
  READ STRING 'Text:' DEFAULT T T
  LET T (STR T)
  DISPLAY (T)
END_DEFINE

Gruss Robert

------------------
Homepage: www.me10-makros.de

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