| |
 | 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
 
 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 / zitieren --> Unities abgeben:         
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 P2Aber 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

 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 / zitieren --> Unities abgeben:          Nur für RobCraven
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
 
 Beiträge: 111 Registriert: 30.01.2009
|
erstellt am: 12. Aug. 2009 12:29 <-- editieren / zitieren --> Unities abgeben:         
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
 
 Beiträge: 422 Registriert: 22.02.2002 OSD 15.50B Drawingmanager
|
erstellt am: 12. Aug. 2009 12:35 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
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
 
 Beiträge: 111 Registriert: 30.01.2009
|
erstellt am: 13. Aug. 2009 08:08 <-- editieren / zitieren --> Unities abgeben:         
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_DEFINEDEFINE 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

 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 / zitieren --> Unities abgeben:          Nur für RobCraven
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
 
 Beiträge: 111 Registriert: 30.01.2009
|
erstellt am: 13. Aug. 2009 09:18 <-- editieren / zitieren --> Unities abgeben:         
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

 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 / zitieren --> Unities abgeben:          Nur für RobCraven
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
 
 Beiträge: 273 Registriert: 21.02.2003
|
erstellt am: 13. Aug. 2009 11:51 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
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
 
 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 / zitieren --> Unities abgeben:         
|
highway45 Moderator Bastler mit Diplom
       

 Beiträge: 6385 Registriert: 14.12.2004 CoCreate Modeling V20 + PE6 NotePad++
|
erstellt am: 13. Aug. 2009 13:25 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
|
barbarossa Mitglied Konstrukteur
 
 Beiträge: 273 Registriert: 21.02.2003
|
erstellt am: 13. Aug. 2009 14:20 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
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
     
 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 / zitieren --> Unities abgeben:          Nur für RobCraven
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)
undCode: 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
 
 Beiträge: 273 Registriert: 21.02.2003
|
erstellt am: 14. Aug. 2009 13:54 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
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
 
 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 / zitieren --> Unities abgeben:         
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
     
 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 / zitieren --> Unities abgeben:          Nur für RobCraven
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_DEFINEDEFINE 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
 
 Beiträge: 111 Registriert: 30.01.2009
|
erstellt am: 18. Aug. 2009 09:11 <-- editieren / zitieren --> Unities abgeben:         
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
     
 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 / zitieren --> Unities abgeben:          Nur für RobCraven
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
 
 Beiträge: 273 Registriert: 21.02.2003
|
erstellt am: 20. Aug. 2009 14:46 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
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
 
 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 / zitieren --> Unities abgeben:         
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
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 20. Aug. 2009 18:18 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
|
RobCraven Mitglied Konstrukteur
 
 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 / zitieren --> Unities abgeben:         
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
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 21. Aug. 2009 10:02 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
|
RobCraven Mitglied Konstrukteur
 
 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 / zitieren --> Unities abgeben:         
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))
undCode:
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
   
 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 / zitieren --> Unities abgeben:          Nur für RobCraven
|
r.hoffmann Mitglied Techniker
 
 Beiträge: 128 Registriert: 07.12.2006 OSD 13.2
|
erstellt am: 25. Aug. 2009 07:51 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
|