Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Direct Modeling
  Texterzeugung per 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 PTC CREO
Autor Thema:  Texterzeugung per Makro (2089 mal gelesen)
stere0
Mitglied



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

Beiträge: 41
Registriert: 29.11.2012

Win10
CED V20.0
MM 20.0
PEX
Solid Power
Creo 8.0.0.0

erstellt am: 10. Okt. 2014 13: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

Hallo zusammen,

ich habe mir ein kleines Makro geschrieben um mein Schriftfeld auszufüllen. Hierzu werden erst alle Daten in eine Maske eingegeben und dann als einzelne Textfelder auf der Zeichnung platziert.
Das ganze klappt soweit auch ganz gut, zumindest auf meinem "Test-System" zu Hause.
Starte ich jetzt das Makro auf der Arbeit kann ich die Daten zwar eingeben, bekomme aber beim starten des Platzierens sofort beim ersten Textelement einen Fehler und das Makro bricht mit der Fehlermeldung "Zeichenfolge "DerEingegebeneText" entspricht nicht dem Element des gewünschten Typs" ab.

In dem unten stehenden Code schein ihm schon was nicht zu schmecken. Das Textelement erstellt er noch und fügt es auch der Skizze zu, allerdings als leeres Textelement ohne den zuvor eingegeben Text. Danach kommt der Abbruch bzw. die Felhlermeldung.


Code:
(am_create_text (format nil "~a" bg_txt_bez1)
: owner (format nil "/~a/~a" csn bg_sketch_SF)
:size 3.5
:color 16776960 : done
:ratio 0.8
:adjust 2
(gpnt2d (+(gpnt2d_x bg_pos_bg_bez1) (gpnt2d_x bg_ppnt_SF)) (+(gpnt2d_y bg_pos_bg_bez1) (gpnt2d_y bg_ppnt_SF)))

)
Achtung enthält Leerzeichen hinter Doppelpunkten zur Smiley Abwehr...

Bei meiner Fehlersuche auf der Arbeit bin ich zumindest soweit gekommen das es an unseren Anpassungen liegen muss. Starte ich Modeling & Anno nämlich ohne Anpassungen funktioniert das Makro auch auf der Arbeit. Nur das weglassen unserer Anpassungen ist nicht die Lösung des Problems...

Als Anpassungen haben wir die "Power Extensions" sowie "Solid Power" am laufen.


Hat einer ne Idee woran das liegen kann?

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

stere0
Mitglied



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

Beiträge: 41
Registriert: 29.11.2012

Win10
CED V20.0
MM 20.0
PEX
Solid Power
Creo 8.0.0.0

erstellt am: 15. Okt. 2014 10:17    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


am_SF_forum.lsp

 
Bisher keine eine Idee..? 

Habe mal das ganze Makro angehangen.

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 15. Okt. 2014 16:55    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 stere0 10 Unities + Antwort hilfreich


am_SF_forum.lsp

 
Zitat:
Original erstellt von stere0:
Bisher keine eine Idee..?  

...doch!

Nochdem ich folgendes hinzugefügt habe ist es bei mir gelaufen:

Code:

(AM_CREATE_TEXT : docu-text (format nil ...


--> Leerzeichen vor docu-text muss raus!!

------------------
...viele Grüße
Stephan

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

stere0
Mitglied



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

Beiträge: 41
Registriert: 29.11.2012

Win10
CED V20.0
MM 20.0
PEX
Solid Power
Creo 8.0.0.0

erstellt am: 16. Okt. 2014 21: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

Hey Stephan,

danke dir!
Funktioniert jetzt auch hier, zumindest größtenteils...
Beim ersten mal läufts durch, beim zweiten (und weiteren) ausführen bekomme ich noch einene Fehlermeldung die ich aber wegklicken kann, danach läufts auch weiter und erstellt alle Texte. Meldung muss ich morgen noch mal auf der Arbeit schauen.

Hab jetzt auch endlich die Online Reference gefunden. Hab mich schon immer gefragt wo die am_... Befehle beschrieben sind.

Ich hab auch gleich noch ne Fragen... *DUCK*
Du hast in dem von dir geposteten Code am Ende ein Trace eingefügt und auskommentiert. Was muss ich noch machen damit die Funktion in der Console angezeigt wird wenn ich es wieder reinnehme? Werde aus dem was im IKIT steht und hier im Forum finde nicht schlau.

Danke im Vorraus..!

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 17. Okt. 2014 07: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 Nur für stere0 10 Unities + Antwort hilfreich

Guten Morgen,

Um eine Funktion zu Tracen muss diese global definiert werden. Mit local-functions geht das nicht!

Ich hatte das angedacht war dann aber zu bequem die ganzen Variablen zu handeln...

Letzendlich verstehe ich nicht viel von der Sache, habe aber einfach mal "AM_CREATE_TEXT" in das Suchfeld der Hilfe eingegeben und den Syntax mit Deinem Code verglichen.

------------------
...viele Grüße
Stephan

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

seistandhaft
Mitglied
Zeichner, Konstr., Admin.


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

Beiträge: 197
Registriert: 20.08.2004

erstellt am: 27. Okt. 2014 13: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 stere0 10 Unities + Antwort hilfreich


Schriftfeld.lsp

 
Hallo,
ich habe mir obiges Macro kopiert und versucht es für meine Zwecke anzupassen.
Ich kenne mich zwar mit ME10-Macros und VBA aus, aber von LISP habe ich bisher noch keine Ahnung.

Was mir in dem Macro fehlt, ist eine WENN-Abfrage:
WENN Form = "Fl." dann bg_rohmass = Fl. Breite * Höhe * Länge
WENN Form = "Rd." oder "4kt." dann bg_rohmass = Rd. Breite * Länge

Ein Problem habe ich auch mit dem Verknüpfen von Texten.
Habe schon stundenlang gegockelt und bin auf "strcat" "concat" und "concatinate" gestoßen.
Konnte damit aber noch keine Ergebnisse erzielen.
Für Tipps wäre ich sehr dankbar.
Gruß
Jörg

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: 2143
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook 17 G4, Windows 10 Pro 64

erstellt am: 27. Okt. 2014 13:59    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 stere0 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von seistandhaft:

Was mir in dem Macro fehlt, ist eine WENN-Abfrage:
WENN Form = "Fl." dann bg_rohmass = Fl. Breite * Höhe * Länge
WENN Form = "Rd." oder "4kt." dann bg_rohmass = Rd. Breite * Länge


Eine schlanke Lösung:
Code:

(case Form
("Fl." (setf bg_rohmass (* Fl.Breite Höhe Länge)))
("Rd." (setf bg_rohmass (* Rd.Breite Höhe Länge)))
("4kt." (setf bg_rohmass (* Rd.Breite Höhe Länge)))
(t nil) ;; falsche Angaben ignorieren
)

Zitat:


Ein Problem habe ich auch mit dem Verknüpfen von Texten.


Die passende Funktion hast du eigentlich schon gefunden (format)
Sieht z.B. so aus:
Code:

(setf textA "blau")
(setf textB "rund")
(setf ausgabetext (format nil "Das Ergebnis ist ~a und ~a" textA textB)


=> Das Ergebnis ist blau und rund 


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

Walter

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: 2143
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook 17 G4, Windows 10 Pro 64

erstellt am: 27. Okt. 2014 14:12    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 stere0 10 Unities + Antwort hilfreich

Andere Bedingungen:
Code:

(cond
((sd-string= Form "Fl.") (setf bg_rohmass (* Fl.Breite Höhe Länge)))
((or (sd-string= Form "Rd.")(sd-string= Form "4kt."))(setf bg_rohmass (* Rd.Breite Höhe Länge)))
(t nil) ;; falsche Angaben ignorieren
)

Code:

(when (sd-string= Form "Fl.") (setf bg_rohmass (* Fl.Breite Höhe Länge)))
(when (or (sd-string= Form "Rd.")(sd-string= Form "4kt."))(setf bg_rohmass (* Rd.Breite Höhe Länge)))

quick and dirty:

Code:

(if (sd-string= Form "Fl.")
(setf bg_rohmass (* Fl.Breite Höhe Länge))
(setf bg_rohmass (* Rd.Breite Höhe Länge)))
)

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

Walter

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 27. Okt. 2014 14:19    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 stere0 10 Unities + Antwort hilfreich

Hallo Walter!

...dafür kriegste von mir auch'n 10er!

------------------
...viele Grüße
Stephan

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

seistandhaft
Mitglied
Zeichner, Konstr., Admin.


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

Beiträge: 197
Registriert: 20.08.2004

erstellt am: 27. Okt. 2014 15: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 Nur für stere0 10 Unities + Antwort hilfreich


Schriftfeld.lsp

 
Hallo Walter,
habe deinen Vorschlag so eingefügt:

(if (sd-string= bg_stl_form "Fl.")
(setf bg_rohmass (format nil "~a " " ~a " * " ~a " * " ~a" bg_stl_form bg_stl_breite bg_stl_hoehe bg_stl_laenge))
(setf bg_rohmass (format nil "~a " " ~a " * " ~a" bg_stl_form bg_stl_breite bg_stl_laenge))
)

Erhalte aber jetzt folgende Fehlermeldung:
The function GPNTDOCU is undefined.
Was bedeutet diese Meldung?
Gruß
Jörg

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

CEDM V20
SolidPower V20
ModelSearch
KeyShot 7
CadDoctor V4.2
SWX 2008
PHOENIX V10

erstellt am: 27. Okt. 2014 15:22    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 stere0 10 Unities + Antwort hilfreich

...lass mal die viele Gänsefüsschen weg

Code:

(if (sd-string= bg_stl_form "Fl.")
(setf bg_rohmass (format nil "~a ~a * ~a  * ~a" bg_stl_form bg_stl_breite bg_stl_hoehe bg_stl_laenge))
(setf bg_rohmass (format nil "~a ~a * ~a" bg_stl_form bg_stl_breite bg_stl_laenge))
)

------------------
...viele Grüße
Stephan

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

seistandhaft
Mitglied
Zeichner, Konstr., Admin.


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

Beiträge: 197
Registriert: 20.08.2004

erstellt am: 28. Okt. 2014 10:30    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 stere0 10 Unities + Antwort hilfreich


Schriftfeld.lsp

 
Hallo nochmal,
ich bekomme es nicht ans laufen.
Ich habe die Abfrage an verschiedene Positionen geschrieben,
aber entweder werden die Werte nicht an das FORM gehängt
(Fl.  *  *) oder ich erhalte schon beim Laden eine Fehlermeldungen wie: Odd length of keyword-value pair list in BG_TXT_FORM: (VALUE-TYPE..
Wie schon geschrieben habe ich von LISP keine Ahnung.
Kann einer von euch vielleicht mal einen Blick werfen?
Danke
Jörg

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: 2143
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook 17 G4, Windows 10 Pro 64

erstellt am: 28. Okt. 2014 10:48    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 stere0 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von seistandhaft:
Wie schon geschrieben habe ich von LISP keine Ahnung.


Nicht die allerbeste Vorraussetzung. ;)
Welchen Editor benutzt du denn? Notepad++ kann LISP und zeigt Klammerpaare interaktiv an.
Die von dir beschriebebenen Effekte tauchen gern bei Klammerfehlern auf. Zumindest einen hab ich gleich mal gefunden:
Code:

...
(bg_txt_form :value-type :string
                :title "Form"
:range ((" ")("Fl.")("Rd.")("4kt."))
:initial-value bg_stl_form
:size :half
(progn
                    (if (sd-string= bg_stl_form "Fl.")
                              (setf bg_rohmass (format nil "~a ~a * ~a * ~a" bg_stl_form bg_stl_breite bg_stl_hoehe bg_stl_laenge))
                              (setf bg_rohmass (format nil "~a ~a * ~a" bg_stl_form bg_stl_breite bg_stl_laenge))
));;<<<<< Die da!!!!
)
...

Du schliesst zwar das (If) aber (progn) bleibt offen; im Endeffekt aber sucht sich der Interpreter nach Möglichkeit die nächste Klammer und macht letztendlich Unsinn draus

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

Walter

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

seistandhaft
Mitglied
Zeichner, Konstr., Admin.


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

Beiträge: 197
Registriert: 20.08.2004

erstellt am: 28. Okt. 2014 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 Nur für stere0 10 Unities + Antwort hilfreich


Schriftfeld.lsp

 
Ja, ich benutze Notepad++.
Klammerfehler habe ich behoben.
Die o.a. genannte Fehlermeldung kommt aber immer noch, wenn ich das Makro ins Anno-Fenster ziehe.
Bei ME10-Macros oder Excel-VBA ist die Fehlersuche doch etwas leichter
als bei LISP.
Gruß
Jörg

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)2023 CAD.de | Impressum | Datenschutz