| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: in Beziehungen Aus String Substring heraustrennen (3520 mal gelesen)
|
sa173 Mitglied Student
Beiträge: 15 Registriert: 18.03.2010 Win XPSp3 Core2Duo 2.66GHz 3.48GB RAM WF 4
|
erstellt am: 21. Jun. 2010 15:47 <-- editieren / zitieren --> Unities abgeben:
moin moinn, da wir mit PDMLink9.1 arbeiten und dort im Parameter PTC_WM_CREATED_BY die Zeichenkette "Vorname Nachname" vorhanden. nun möchte ich aber nur den Nachnamen herausfiltern. Dazu habe ich in Beziehungen folgenden Quelltext: Nachname= extract(PTC_WM_CREATED_BY , search(PTC_WM_CREATED_BY , Leerzeichen) , string_length(PTC_WM_CREATED_BY) ) Nun ergibt sich für mich das Problem, wie geb ich an, dass ich nach einem Leerzeichen suche. Die Möglichkeiten: ' ' " " 32 '32' "32" %20 #32 hab ich schon versucht, aber bei der verifizierung erhielt ich immer Fehlermeldungen. Desweiteren hab ich auch für das Leerzeichen einen Parameter erstellt und den mit obigen Zeichen belegt, immer ohne erfolg. Hat vielleicht schonmal einer von euch was ähnliches Probiert und eine Lösung gefunden? Grüße Sascha Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arni1 Ehrenmitglied V.I.P. h.c.
Beiträge: 3875 Registriert: 17.12.2002 Pro/E seit Version 11 Creo6 HP Z210 Intel Xeon 3.3GHz; 20 GB RAM NVIDIA Quadro 2000 HP ZR30w Win10 64bit
|
erstellt am: 21. Jun. 2010 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
position_leerzeichen = search(PTC_WM_CREATED_BY, " ") laenge=string_length(PTC_WM_CREATED_BY) start_nachname=position_leerzeichen+1 if laenge>start_nachname laenge_nachname=laenge-start_nachname+1 else laenge_nachname=1 endif nachname=extract(PTC_WM_CREATED_BY,start_nachname,laenge_nachname) Bemerkung: Die Schleife braucht es nur, falls bei Nachname nur 1 Zeichen eingetragen wird.
Gruß Arni
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sa173 Mitglied Student
Beiträge: 15 Registriert: 18.03.2010 Win XPSp3 Core2Duo 2.66GHz 3.48GB RAM WF 4
|
erstellt am: 21. Jun. 2010 16:36 <-- editieren / zitieren --> Unities abgeben:
|
JakeB Mitglied
Beiträge: 12 Registriert: 04.09.2012 Windchill 9.1 ProE Wf 4
|
erstellt am: 04. Sep. 2012 09:06 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
Klasse, funktioniert einwandfrei. Einzige Herausforderung die ich jetzt noch habe: ich möchte mir gerne auch noch den Ersteller der Zeichnung anzeigen lassen aber unter Beziehungen lässt er so etwas wie PTC_WM_CREATED_BY: D nicht zu (Fehler). In einer Notiz kann man über &PTC_WM_CREATED_BY: D den Ersteller der Zeichnung problemlos anzeigen lassen. Allerdings nur im "Vorname Nachname" Format. Kann mir jemand sagen wie ich dieses ": D" oder etwas in der Art in den Beziehungen verwenden kann, damit ich an den Nachnamen meines Zeichnungserstellers komme? [Diese Nachricht wurde von JakeB am 04. Sep. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
U_Suess Moderator CAD-Admin / manchmal Konstrukteur
Beiträge: 10560 Registriert: 14.11.2001 CREO 4 M120 (+Geniustool für Creo 6.0.2) PDMLink 11.0 M030 NTSI Contender E64 SC8 mit NVIDIA Quadro P4000 Intel Core i7-10700KF / 3,80 GHz 64GB DDR4-RAM / 2933 MHz Win 10 Prof. 64Bit (20H2)
|
erstellt am: 04. Sep. 2012 09:28 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
Zitat: Original erstellt von JakeB: ... ich möchte mir gerne auch noch den Ersteller der Zeichnung anzeigen lassen aber unter Beziehungen lässt er so etwas wie PTC_WM_CREATED_BY: D nicht zu (Fehler). ...
Wo hast Du denn die Beziehungen eingetragen, um den Ersteller der Zeichnung auszuwerten? Falls Du dies in den Beziehungen eines Teils oder einer Baugruppe hinterlegt hast, dann kann es nicht gehen. Schließlich bedeutet der Nachsatz Code: : D
, dass es sich bei dem Parameter um einen in der Zeichnung vorhandenen Parameter dreht. Demzufolge muss diese Beziehung dann auch in der Zeichnung eingetragen werden. Leider gibt es dort den Punkt 'Beziehungen' nicht. Es nennt sich dort Zeichnungsprogramm.------------------ Gruß Udo Keine Panik, Du arbeitest mit Pro/E! Und Du hast cad.de gefunden! Neu hier? Verwundert über die Antworten? Dann schnell nachfolgende Links durchlesen. • Richtig Fragen • Nettiquette • Suchfunktion • System-Info • Pro/E-Konfig • 7er-Regel • Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JakeB Mitglied
Beiträge: 12 Registriert: 04.09.2012 Windchill 9.1 ProE Wf 4
|
erstellt am: 04. Sep. 2012 09:47 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
Hallo Udo, bin in einer drw unter Tools > Beziehungen unterwegs. In dem Fall kann das so garnicht funktionieren? Hast du mir einen Tip wie ich an den Nachnamen des Zeichnungserstellers ran komme? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
U_Suess Moderator CAD-Admin / manchmal Konstrukteur
Beiträge: 10560 Registriert: 14.11.2001 CREO 4 M120 (+Geniustool für Creo 6.0.2) PDMLink 11.0 M030 NTSI Contender E64 SC8 mit NVIDIA Quadro P4000 Intel Core i7-10700KF / 3,80 GHz 64GB DDR4-RAM / 2933 MHz Win 10 Prof. 64Bit (20H2)
|
erstellt am: 04. Sep. 2012 10:10 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
|
JakeB Mitglied
Beiträge: 12 Registriert: 04.09.2012 Windchill 9.1 ProE Wf 4
|
erstellt am: 05. Sep. 2012 07:59 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
Habe es ausprobiert und folgenden Code in Tools > Zeichnungsprogramm eingeben: /*erster Buchstabe des Vornamens: ZVORNAME=extract(PTC_WM_CREATED_BY,1,1) /*Nur Nachname: ZPOSITION_LEERZEICHEN=search(PTC_WM_CREATED_BY," ") ZLAENGE=string_length(PTC_WM_CREATED_BY) ZSTART_NACHNAME=ZPOSITION_LEERZEICHEN+1 ZLAENGE_NACHNAME=ZLAENGE-ZSTART_NACHNAME+1 ZNACHNAME=extract(PTC_WM_CREATED_BY,ZSTART_NACHNAME,ZLAENGE_NACHNAME) Und dann im Vorlagenframe die Parameter: &ZVORNAME.&ZNACHNAME Ergibt den ersten Buchstaben des Vornamen des Zeichnungserstellers, dann einen Punkt und dann den Nachnamen des Zeichnungserstellers im Schriftfeld. Grüße JakeB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JakeB Mitglied
Beiträge: 12 Registriert: 04.09.2012 Windchill 9.1 ProE Wf 4
|
erstellt am: 07. Sep. 2012 11:27 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
Hallo zusammen. Ich würde den obenstehenden Code gerne in jeder neuen Zeichnung stehen haben. Eine Schablone habe ich erzeugt und das funzt auch. Meine Frage: Kann man das in eine Zeichnungsvoreinstellungsdatei einbauen, damit jeder diesen Code zieht auch wenn er eine leere neue Zeichnung erstellt? Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
U_Suess Moderator CAD-Admin / manchmal Konstrukteur
Beiträge: 10560 Registriert: 14.11.2001 CREO 4 M120 (+Geniustool für Creo 6.0.2) PDMLink 11.0 M030 NTSI Contender E64 SC8 mit NVIDIA Quadro P4000 Intel Core i7-10700KF / 3,80 GHz 64GB DDR4-RAM / 2933 MHz Win 10 Prof. 64Bit (20H2)
|
erstellt am: 07. Sep. 2012 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
|
JakeB Mitglied
Beiträge: 12 Registriert: 04.09.2012 Windchill 9.1 ProE Wf 4
|
erstellt am: 07. Sep. 2012 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
Schon klar Udo. Ich will einfach vermeiden, dass Anwender nicht versehentlich (oder aus Gewohnheit:krank die leere Zeichnung mit Formatierung öffnen. Dann funzt die Sache mit meinen programmierten Einträgen nämlich nicht. Gruß JakeB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
U_Suess Moderator CAD-Admin / manchmal Konstrukteur
Beiträge: 10560 Registriert: 14.11.2001 CREO 4 M120 (+Geniustool für Creo 6.0.2) PDMLink 11.0 M030 NTSI Contender E64 SC8 mit NVIDIA Quadro P4000 Intel Core i7-10700KF / 3,80 GHz 64GB DDR4-RAM / 2933 MHz Win 10 Prof. 64Bit (20H2)
|
erstellt am: 07. Sep. 2012 12:08 <-- editieren / zitieren --> Unities abgeben: Nur für sa173
|