| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Umwandlung von (getvar DWGNAME) (2181 mal gelesen)
|
Waldemar Mitglied Applikationsingenieur
Beiträge: 264 Registriert: 06.09.2001
|
erstellt am: 29. Sep. 2006 10:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Kollegen/innen, erstelle nachfolgende Variable: (setq DATNAME (getvar "DWGNAME")) Das Ergebnis lautet XXX.dwg Wie kann ich DATNAME so abkürzen, dass nur der Dateiname (ohne ".dwg") angezeigt wird. XXX Grüße Waldemar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 29. Sep. 2006 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 29. Sep. 2006 10:29 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
es gibt auch die Funktionen (cadr(fnsplitl(getvar "DWGNAME"))) oder (vl-filename-base (getvar "DWGNAME")) das mit dem (- (strlen (getvar "DWGNAME")) 4)) funktioniert zwar auch, aber die anderen Funcs sind besser für die anderen Eventualitäten gerüstet ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Waldemar Mitglied Applikationsingenieur
Beiträge: 264 Registriert: 06.09.2001
|
erstellt am: 29. Sep. 2006 10:48 <-- editieren / zitieren --> Unities abgeben:
|
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 30. Sep. 2006 22:16 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 01. Okt. 2006 12:38 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
fnsplitl ist eine undokumentierte Funktion .. die Suche in der Lisphilfe bringt da auch bloß einen eher nicht beabsichtigten Treffer. Als Beschreibung mal: fnsplitl .. Zerlegt Dateinamen in Verzeichnis, Dateiname und Extension. Parameter ist ein String, Rückgabe eine Liste mit 3 Strings. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 01. Okt. 2006 16:42 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
|
Angeltoni Mitglied Display Designer
Beiträge: 18 Registriert: 05.01.2006 AutoCAD 2007 Inventor 11 Display Bereich <P>Marbach + Wild Plotter
|
erstellt am: 04. Okt. 2006 16:14 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
super funktioniert bei mir .... aber meine Zeichnungsnamen sind folgende zB.: HZ2060230-FA-etwasText.dwg nur das fettgeschriebene will ich als Text haben ??? also: 2060230 etwasText geht das überhaupt ??? [Diese Nachricht wurde von Angeltoni am 04. Okt. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 04. Okt. 2006 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
ja mit den Funktionen vl-string-search , substr und strcat kommst du weiter. -> F1 ! Aber ohne zu wissen, wie deine Dateinamen im Allgemeinen aufgebaut sind, enden hier auch schon die Hilfsmöglichkeiten. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 04. Okt. 2006 23:54 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
Hallo, mit den Beispielen wie: "STR_DIV" und "STR_TOK" von Axel, funktioniere die folgenden Beispiele sehr gut. ;; Den ersten Teilsting ausgeben (setq ERST_STR (car (STR_DIV STRING "\\"))) ;; Den letzten Teilsting ausgeben ;; Dateiname aus Dateiname mit Pfad (setq DATNAM (last (STR_TOK FILENAME "\\"))) Wenn, wie bei ICAD, keine VL-Befehle möglich. Gruß Theodor Schönwald Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Angeltoni Mitglied Display Designer
Beiträge: 18 Registriert: 05.01.2006 AutoCAD 2007 Inventor 11 Display Bereich <P>Marbach + Wild Plotter
|
erstellt am: 05. Okt. 2006 07:49 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
oh danke ... werde gleich mal herum experimentieren wegfallen sollen folgende positionen im Dateinamen: 1, 2, 10, 11, 12 und am ende .dwg ersten beiden z.B. HZ = Hauptzeichnung SF = Stanzform AA = Aufbauanleitung usw.. 10, 11, 12 = Namenskürzel sind also immer an gleicher Stelle für 1:1 Transparent Ausdrucke brauch ich halt am Rand nur die Nummer und den Text also Namenskürzel und die beiden Zeichnungsbuchstaben entfallen. Dateiname kann sein: HZ3060113-FA-Bodendisplay Tesa.dwg und soll werden: 3060113-Bodensteller Tesa oder AA2040465-UH-Schaufensterplakat Euzerin.dwg und soll werden: 2040465-Schaufensterplakat Euzerin thx Angeltoni
[Diese Nachricht wurde von Angeltoni am 05. Okt. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
Angeltoni Mitglied Display Designer
Beiträge: 18 Registriert: 05.01.2006 AutoCAD 2007 Inventor 11 Display Bereich <P>Marbach + Wild Plotter
|
erstellt am: 05. Okt. 2006 09:21 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
habe jetzt rumgespielt und den Code erstellt: Code: (defun C:name () (SETQ P0 (GETPOINT "Einfügepunkt: ")) (SETQ TH (GETREAL "Texthöhe: ")) (SETQ TW (GETREAL "Textwinkel: ")) (SETQ dwgname (vl-filename-base (getvar "DWGNAME"))) (setq dwgname (vl-string-right-trim ".dwg" dwgname)) (setq dwgname (strcat (substr dwgname 3 (- (vl-string-position (ascii "-") dwgname) 2) ) (substr dwgname (+ 1 (vl-string-position (ascii "-") dwgname nil T)) ) ) ) (command "dtexted" "1") (setq TX (strcat dwgname)) (command "LAYER" "SE" schrift "") (command "text" P0 TH TW TX) )
klappt auch soweit aber die Zeichen in der Mitte bleiben erhalten. kommt : nil mfg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 05. Okt. 2006 10:01 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
Hallo Angeltoni, teste doch mal Deine einzelnen Codezeile (auch abschnittsweise) im Lisp-Editor / VL-Konsole. Da siehst Du was die einzelnen substr Anweisungen liefern. Das erhaltenbleiben der mittleren Zeichen: Kann es sein, dass Dein aktueller Dateiname das zweite "-" Zeichen nicht hat? Das wird nämlich gesucht. Wenn Deinen Dateinamenstruktur immer so "starr" ist wie angegeben brauchst Du auch nur die gewünschten Abschnitte rausgreifen. Code:
(setq dwgname (vl-string-right-trim ".dwg" dwgname)) (setq TX (strcat (substr dwgname 3 7) (substr dwgname 13)))
Wie Thomas (Cadmium) schon sagte, mal die Hilfe zu strcat und substr lesen. Noch was, (command "Text" ...) kann Probleme bereiten, wenn Stil mit fest vorgegebener Texthöhe verwendet wird, dann ist diese nämlich nicht mit anzugeben. HTH LG Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Angeltoni Mitglied Display Designer
Beiträge: 18 Registriert: 05.01.2006 AutoCAD 2007 Inventor 11 Display Bereich <P>Marbach + Wild Plotter
|
erstellt am: 05. Okt. 2006 10:04 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
Mein Dateiname heisst: HZ3060224-FA tesa Bodensteller.dwg es sollte dann beim Einfügepunkt erscheinen: 3060224 tesa Bodensteller es steht aber: 3060224-FA tesa Bodensteller und copy der Befehlszeile:
Code: Befehl: name2 Einfügepunkt: Texthöhe: 20 Textwinkel: 0 dtexted Neuen Wert für DTEXTED eingeben <1>: 1 Befehl: text Aktueller Textstil: "Standard" Texthöhe: 90.00 Startpunkt des Texts angeben oder [Position/Stil]: Höhe angeben <90.00>: 20.00000000000000 Drehwinkel des Texts angeben <0>: 0.000000000000000 Text eingeben: 3060224-FA tesa Bodensteller Befehl: nil
[Diese Nachricht wurde von Angeltoni am 05. Okt. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Angeltoni Mitglied Display Designer
Beiträge: 18 Registriert: 05.01.2006 AutoCAD 2007 Inventor 11 Display Bereich <P>Marbach + Wild Plotter
|
erstellt am: 05. Okt. 2006 10:13 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
|
Angeltoni Mitglied Display Designer
Beiträge: 18 Registriert: 05.01.2006 AutoCAD 2007 Inventor 11 Display Bereich <P>Marbach + Wild Plotter
|
erstellt am: 05. Okt. 2006 10:41 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
|