| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | BOM Assistant für Stücklistenerstellung , eine App
|
Autor
|
Thema: Dateiname als Beziehung (2467 mal gelesen)
|
D.H Mitglied Maschinenbau-, Witschaftstechniker

 Beiträge: 54 Registriert: 14.06.2003 ProEngineer 4.0
|
erstellt am: 23. Jul. 2008 10:41 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen alle zusammen, ich habe mehrere Beziehungen im Teil erstellt um mir in einer Zeichnung "Benennung " und Materialnummer" aus dem Dateinamen zu ziehen. Bei uns wird jedes Teil/Baugruppe unter einem zusammengesetzten Namen gespeichert z.B 80009000_Quader-100x100x100... Der Dateiname kann bis zu 31 Zeichen lang werden. Die ersten 8 Zeichen stehen für MatNr. und der Rest für die Kurzbenennung. Meine Absicht ist eben diese Angaben in Teilvorlage speichern und dann immer in Zeichnung unter Benennung und MatNr aufrufen. Die angelegten Beziehungen funktionieren nur teilweise. Ich krige es hin die ersten 8 Zeichen für MatNr auszufiltern, die andere Bez. für Benennung funktioniert leider nicht. Siehe Bilder Was ist falsch daran??? MFG Dimitri Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K_H_A_N Ehrenmitglied Dipl.-Ing. (freiberuflich)
    
 Beiträge: 1554 Registriert: 21.07.2004
|
erstellt am: 23. Jul. 2008 10:51 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
|
U_Suess Moderator CAD-Admin / manchmal Konstrukteur
       

 Beiträge: 10679 Registriert: 14.11.2001 CREO 8.0.6.0 (+Geniustool für Creo 10.0.1) PDMLink 12.0.2.8 NTSI Contender E64 SC8 mit NVIDIA Quadro P4000 Intel Core i7-10700KF / 3,80 GHz 64GB DDR4-RAM / 2933 MHz Win 10 Prof. 64Bit
|
erstellt am: 23. Jul. 2008 10:52 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
Bei der Angabe der zu extrahierenden Anzahl gehst du von der maximalen Länge aus. Das meckert Pro/E an, da diese Anzahl in dem Fall nicht erreicht wird. Versuch mal folgendes: Code: benennung=extract(real_model_name,10,string_length(real_model_name)-10)
BTW: Was ist ein QTADER? ------------------ Gruß Udo Keine Panik, Du arbeitest mit Pro/E! Und Du hast cad.de gefunden! Neu hier? Verwundert über die Antworten? Dann schnell nachfolgende Link durchlesen.  • Richtig Fragen • Nettiquette • Suchfunktion • System-Info • 7er-Regel • Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nobody333 Mitglied Dipl. Ing. (FH) (Konstruktion)
  
 Beiträge: 593 Registriert: 06.07.2007 HP Workstation Z400 Intel Xeon W3565 4x3,20GHz 12GB RAM Nvidia Quadro FX1800 Windows 7 x64 Prof. SP1 Creo Parametric 2 (M100) FoundationAdv bzw. Flex3C Startup Tools 2013 MathCad Prime 3
|
erstellt am: 23. Jul. 2008 11:33 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
|
D.H Mitglied Maschinenbau-, Witschaftstechniker

 Beiträge: 54 Registriert: 14.06.2003 ProEngineer 4.0
|
erstellt am: 23. Jul. 2008 11:36 <-- editieren / zitieren --> Unities abgeben:         
Hallo, mit Klammern hat es nichts zu tun, geht trotztdem nicht. Mit der folgender Eintragung BENENNUNG=extract(rel_model_name,10,String_length(rel_model_name)-10) fehlt mir letzter Zeichen "0". Warum kann ich in der Beziehung nicht von max.31 Zeichen ausgehen??? Denn die Länge der Dateinamen ist immer verschieden außerdem soll diese Beziehung in die Vorlage rein und für alle neue Teile gelten. PS: QTADER hat nichts zu bedeuten ich habe es nur Probeweise angelegt um diese Eintagungen zu testen. Gibt es noch andere Möglichkeiten eine Abfrage von bis zu 31 Zeichen zur Funktion zu bringen?? MFG Dimitri Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nobody333 Mitglied Dipl. Ing. (FH) (Konstruktion)
  
 Beiträge: 593 Registriert: 06.07.2007 HP Workstation Z400 Intel Xeon W3565 4x3,20GHz 12GB RAM Nvidia Quadro FX1800 Windows 7 x64 Prof. SP1 Creo Parametric 2 (M100) FoundationAdv bzw. Flex3C Startup Tools 2013 MathCad Prime 3
|
erstellt am: 23. Jul. 2008 11:48 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
Die Beziehung von Udo war fast korrekt: Code: benennung=extract(rel_model_name,10,(string_length(rel_model_name))-9)
Zur Erläuterung: In "Benennung" soll der String des Modellnamens ab dem Zeichnen Nummer 10 landen. Der Name hat z.B. 20 Zeichen. Wenn ich bei Zeichen 10 starte, muessen also 11 Zeichen mitgenommen werden. Daher muss von der Länge des Strings die Nummer des Startbuchstabes -1 abgezogen werden. Auf diese Lösung hätte man aber auch selbst schliessen können. Die Bausteine wurden hier ja deutlich gezeigt.------------------ Gruß Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
U_Suess Moderator CAD-Admin / manchmal Konstrukteur
       

 Beiträge: 10679 Registriert: 14.11.2001 CREO 8.0.6.0 (+Geniustool für Creo 10.0.1) PDMLink 12.0.2.8 NTSI Contender E64 SC8 mit NVIDIA Quadro P4000 Intel Core i7-10700KF / 3,80 GHz 64GB DDR4-RAM / 2933 MHz Win 10 Prof. 64Bit
|
erstellt am: 23. Jul. 2008 11:55 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
Da ich die Beziehung nicht getestet habe (wir haben zum Glück keine Benennung "außen" dran stehen) musst du eben die Beziehung ein wenig ändern. Und wenn er ein Zeichen zu wenig übergibt, dann ist wohl die Beziehung derart zu ändern, dass sie so aussieht: Code: benennung=extract(rel_model_name,10,(string_length(rel_model_name)-9))
Leider finde ich es nicht so schön, wenn man wirklich alles bis ins kleinste Detail prüfen muss, nur weil die Fragenden sich nicht einmal die Mühe machen, den Fehler selbst zu finden oder zumindest verstehen, was man ihnen dort aufgeschrieben hat. @nobody IMHO war eine Klammer zu viel. Deshalb noch mal die Wiederholung. ------------------ Gruß Udo Keine Panik, Du arbeitest mit Pro/E! Und Du hast cad.de gefunden! Neu hier? Verwundert über die Antworten? Dann schnell nachfolgende Link durchlesen.  � Richtig Fragen � Nettiquette � Suchfunktion � System-Info � 7er-Regel � Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nobody333 Mitglied Dipl. Ing. (FH) (Konstruktion)
  
 Beiträge: 593 Registriert: 06.07.2007 HP Workstation Z400 Intel Xeon W3565 4x3,20GHz 12GB RAM Nvidia Quadro FX1800 Windows 7 x64 Prof. SP1 Creo Parametric 2 (M100) FoundationAdv bzw. Flex3C Startup Tools 2013 MathCad Prime 3
|
erstellt am: 23. Jul. 2008 12:03 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
Zitat: Original erstellt von U_Suess:
@nobody IMHO war eine Klammer zu viel. Deshalb noch mal die Wiederholung.
Stimmt, da stimmt was nicht. Aber die ist nur an der flaschen Stelle. Code: benennung=extract(rel_model_name,10,(string_length(rel_model_name)-9))
So sollte es stimmen. Bei dir gehen 3 Klammern auf, aber nur 2 zu Udo.------------------ Gruß Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
D.H Mitglied Maschinenbau-, Witschaftstechniker

 Beiträge: 54 Registriert: 14.06.2003 ProEngineer 4.0
|
erstellt am: 23. Jul. 2008 12:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo, darauf bin ich durch testen auch gekommen, wenn die -9 eingetragen wird somit war es vollständig. Das beantwortet aber nicht meine Hauptfrage. Diese Beziehung soll in eine Vorlage für Teil integriert werden. Damit soll es für alle mögliche Dateiname-Längen verwendbar sein. Das heißt Dateiname kann auch länger werden, je nachdem wie kreativ der Ersteller ist. Wie siehets es damit aus?? Gibt es da noch Hoffnung? MFG Dimitri Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
U_Suess Moderator CAD-Admin / manchmal Konstrukteur
       

 Beiträge: 10679 Registriert: 14.11.2001 CREO 8.0.6.0 (+Geniustool für Creo 10.0.1) PDMLink 12.0.2.8 NTSI Contender E64 SC8 mit NVIDIA Quadro P4000 Intel Core i7-10700KF / 3,80 GHz 64GB DDR4-RAM / 2933 MHz Win 10 Prof. 64Bit
|
erstellt am: 23. Jul. 2008 12:11 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
Zitat: Original erstellt von D.H: Das beantwortet aber nicht meine Hauptfrage.
Doch! Zitat: Diese Beziehung soll in eine Vorlage für Teil integriert werden.
Mach es doch einfach und teste es aus (wenn du den nächsten Teil der Antwort nicht machen möchtest). Zitat: Damit soll es für alle mögliche Dateiname-Längen verwendbar sein.
Wie wäre es, wenn du dir mal ganz im Stillen überlegst, was diese Beziehung macht. Wenn du mit den Befehlen nicht klar kommst, dann sollte man einfach mal in die Hilfe von Pro/E reinschauen. Dort dürften wirklich auch Erklärungen dazu befinden. ------------------ Gruß Udo Keine Panik, Du arbeitest mit Pro/E! Und Du hast cad.de gefunden! Neu hier? Verwundert über die Antworten? Dann schnell nachfolgende Link durchlesen.  • Richtig Fragen • Nettiquette • Suchfunktion • System-Info • 7er-Regel • Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
U_Suess Moderator CAD-Admin / manchmal Konstrukteur
       

 Beiträge: 10679 Registriert: 14.11.2001 CREO 8.0.6.0 (+Geniustool für Creo 10.0.1) PDMLink 12.0.2.8 NTSI Contender E64 SC8 mit NVIDIA Quadro P4000 Intel Core i7-10700KF / 3,80 GHz 64GB DDR4-RAM / 2933 MHz Win 10 Prof. 64Bit
|
erstellt am: 23. Jul. 2008 12:12 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
|
Nobody333 Mitglied Dipl. Ing. (FH) (Konstruktion)
  
 Beiträge: 593 Registriert: 06.07.2007 HP Workstation Z400 Intel Xeon W3565 4x3,20GHz 12GB RAM Nvidia Quadro FX1800 Windows 7 x64 Prof. SP1 Creo Parametric 2 (M100) FoundationAdv bzw. Flex3C Startup Tools 2013 MathCad Prime 3
|
erstellt am: 23. Jul. 2008 12:39 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
|
Nobody333 Mitglied Dipl. Ing. (FH) (Konstruktion)
  
 Beiträge: 593 Registriert: 06.07.2007 HP Workstation Z400 Intel Xeon W3565 4x3,20GHz 12GB RAM Nvidia Quadro FX1800 Windows 7 x64 Prof. SP1 Creo Parametric 2 (M100) FoundationAdv bzw. Flex3C Startup Tools 2013 MathCad Prime 3
|
erstellt am: 23. Jul. 2008 12:45 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
Zitat: Original erstellt von U_Suess: ...Wie wäre es, wenn du dir mal ganz im Stillen überlegst, was diese Beziehung macht...
@D.H: Wenn du meinen Beitrag weiter oben mal aufmerksam liest, siehst du, dass ich im Prinzip auch das schon erklärt habe.
------------------ Gruß Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Master of Desaster Mitglied Konstrukteur
 
 Beiträge: 118 Registriert: 27.03.2008 Creo 2.0 M20 PDM-Link 10.0 M30 Windows 7 professional Intel Core i7 2,93GHz NVIDIA Quadro FX 580 Creo Simulate
|
erstellt am: 23. Jul. 2008 13:10 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
@ D.H wenn deine Materialnummer immer mit einem _ vom Rest getrennt ist, versuch mal dies: U=SEARCH(REL_MODEL_NAME,"_") S_L=STRING_LENGTH(REL_MODEL_NAME) Benennung=EXTRACT(REL_MODEL_NAME,U+1,STRING_LENGTH(REL_MODEL_NAME)-U) ------------------ Gruß RaMü - kaum macht man's richtig - schon geht's - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
D.H Mitglied Maschinenbau-, Witschaftstechniker

 Beiträge: 54 Registriert: 14.06.2003 ProEngineer 4.0
|
erstellt am: 23. Jul. 2008 14:18 <-- editieren / zitieren --> Unities abgeben:         
Hallo Master of Desaster, endlich mal eine gute Hilfe und schon funktioniert es. Super! Könntest du mir es nochmal erklären was in dieser Funktion gemacht wird ich hab`s nicht Tag täglich mit Parameter und Beziehungen anlegen zu tun. Welche funktion hat S_L es wird doch nirgendswo aufgerufen?? MFG Dimitri
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Master of Desaster Mitglied Konstrukteur
 
 Beiträge: 118 Registriert: 27.03.2008 Creo 2.0 M20 PDM-Link 10.0 M30 Windows 7 professional Intel Core i7 2,93GHz NVIDIA Quadro FX 580 Creo Simulate
|
erstellt am: 23. Jul. 2008 14:42 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
Sorry, das war der Test, ob du das nur kopierst, oder dir Gedanken machst Nee, im Ernst: das S_L wollte ich zuerst verwenden, hab dann gesehen, dass ich es in der 3. Zeile gar nicht brauche und habs vergessen zu löschen... Zur Erklärung (nach dem Löschen der unnützen Zeile): in der ersten Zeile zählst du, an welcher Stelle der Unterstrich steht. In der zeiten Zeile sagst du Prö, dass er einen Teil aus dem Dateinamen ziehen soll, dieser Teil soll an der U+1. Stelle anfangen und ist so lang sein, wie der Dateiname-U. ------------------ Gruß RaMü - kaum macht man's richtig - schon geht's - [Diese Nachricht wurde von Master of Desaster am 23. Jul. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BergMax Ehrenmitglied V.I.P. h.c. Dipl.-Ing. (FH)

 Beiträge: 2319 Registriert: 23.08.2005 Creo 4.0 M130 Creo 8.0.3.0 GT/SUT 8.0.0.0 HP z440, Quadro K2200, Win10 Enterp. DualView
|
erstellt am: 23. Jul. 2008 14:54 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
Zitat: Original erstellt von D.H: Hallo Master of Desaster,endlich mal eine gute Hilfe...
Die anderen Hilfen waren auch gut ... Zitat:
Welche funktion hat S_L es wird doch nirgendswo aufgerufen??
Richtig, es wir nicht aufgerufen. Kleiner Fehler vom Master oD. Bitte Nachdenken... U=SEARCH(REL_MODEL_NAME,"_") S_L=STRING_LENGTH(REL_MODEL_NAME) Benennung=EXTRACT(REL_MODEL_NAME,U+1,S_L-U) Jetzt alles Klar? [EDIT] Man, bin ich langsam... [/EDIT] ------------------ Beste Grüße, Max
[Diese Nachricht wurde von BergMax am 23. Jul. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
U_Suess Moderator CAD-Admin / manchmal Konstrukteur
       

 Beiträge: 10679 Registriert: 14.11.2001 CREO 8.0.6.0 (+Geniustool für Creo 10.0.1) PDMLink 12.0.2.8 NTSI Contender E64 SC8 mit NVIDIA Quadro P4000 Intel Core i7-10700KF / 3,80 GHz 64GB DDR4-RAM / 2933 MHz Win 10 Prof. 64Bit
|
erstellt am: 23. Jul. 2008 15:12 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
|
Master of Desaster Mitglied Konstrukteur
 
 Beiträge: 118 Registriert: 27.03.2008 Creo 2.0 M20 PDM-Link 10.0 M30 Windows 7 professional Intel Core i7 2,93GHz NVIDIA Quadro FX 580 Creo Simulate
|
erstellt am: 24. Jul. 2008 16:06 <-- editieren / zitieren --> Unities abgeben:          Nur für D.H
@ Bergmax, Original erstellt von BergMax: Richtig, es wir nicht aufgerufen. Kleiner Fehler vom Master oD. Bitte Nachdenken...
Fehler würde ich es jetzt nicht nennen... - nur unnötig
Es funkt aber auch mit meinem 2-Zeiler: U=SEARCH(REL_MODEL_NAME,"_") Benennung=EXTRACT(REL_MODEL_NAME,U+1,STRING_LENGTH(REL_MODEL_NAME)-U) ------------------ Gruß RaMü - kaum macht man's richtig - schon geht's - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |