| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Text automatisch ersetzen (1925 mal gelesen)
|
P S I Mitglied CAD-Support
Beiträge: 39 Registriert: 08.09.2004 AutoCAD 2004 Inventor 8 & Inventor8_aip_SP1.exe
|
erstellt am: 29. Sep. 2004 11:18 <-- editieren / zitieren --> Unities abgeben:
Liebe Programmierfreaks Also folgendes wird gewünscht: Ich habe in einem Ordner z.B. 75 dwg's die haben alle Folgende Zeichnungs Nr. 4-14586.15.423 nun gibt es eine Änderung und es kommt ein Index A dazu, also sollte nun im Plan 4-14586.15.423A stehen. Dies sollte ich jedoch über alle 75 dwg's gemachen werden. Kann mir jemand helfen wie ich dies am einfachsten lösen kann, wo ich in einem script den neuen text eingeben kann und dann alle dwg's im selben Ordner durchgerattert werden. Wir hatten eine Software wo es funktionierte für AutoCAD 14 doch mit AutoCAD 2004 ist das veraltet. ------------------ Freundliche Grüsse Solution for AutoCAD & Inventor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, ..., AutoCADs 200X, SWX 2kX
|
erstellt am: 29. Sep. 2004 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für P S I
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 29. Sep. 2004 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für P S I
|
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 29. Sep. 2004 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für P S I
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 29. Sep. 2004 11:42 <-- editieren / zitieren --> Unities abgeben: Nur für P S I
Auch wenn das hier kein Wunschbrunnen ist .... (defun Tausche (Altertext Neuertext / Auswahl Index OBJEKTDATEN) (if(and(=(type Altertext)'str) (=(type Neuertext)'str) (setq AUSWAHL(ssget "_x" (list '(0 . "*TEXT")(cons 1 ALTERTEXT)))) ) (progn (setq INDEX -1) (repeat(sslength AUSWAHL) (setq OBJEKTDATEN(entget(ssname AUSWAHL(setq INDEX(1+ INDEX))))) (entmod(subst(cons 1 NEUERTEXT) (assoc 1 OBJEKTDATEN)OBJEKTDATEN)) ) ) ) ) ersetzt innerhalb der Zeichnung alle (nicht in Blöcken) Texte mit Inhalt=Altertext auf Inhalt = Neuertext. Also für dich (tausche "4-14586.15.423" "4-14586.15.423A") evtl kann man auch den NEUERTEXT mit (strcat ALTERTEXT "A") erstellen..
------------------ - Thomas - "Bei 99% aller Problemen 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 |
P S I Mitglied CAD-Support
Beiträge: 39 Registriert: 08.09.2004 AutoCAD 2004 Inventor 8 & Inventor8_aip_SP1.exe
|
erstellt am: 30. Sep. 2004 15:24 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmals evtl. habe ich mich nicht genau ausgedrückt also ich habe 75 dwg's mit der Bezeichnung: 001EM001.dwg 001EM002.dwg 001EM003.dwg und so weiter....001EM075.dwg doch im Plankopf ist eine Zeichnungsnummer 4-14586.15.423 und als separates Attribut der Index z.B. A nun wird eine Änderung gemacht und in allen 75 dwg's muss der Index auf B korrigiert werden. Wie kann ich dies Automatisieren mit einem Script für AutoCAD 2004 so das die Zeichnungen dann selber durch geackert werden.Im selben Prinzip wie z.B. das Stapelplotten. Vielleicht noch wichtig alle diese Zeichnungen befinden sich im selben Ordner, also man müsste sie nicht selktieren sondern den Befehl einfach über die Zeichnungen laufen lassen in diesem Verzeichniss ------------------ Freundliche Grüsse Solution for AutoCAD & Inventor [Diese Nachricht wurde von P S I am 30. Sep. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marvin101010 Mitglied ingenieur der architektur ohne diplom, bauzeichner ohne lehre, cad-admin ohne wissen :-)
Beiträge: 562 Registriert: 22.01.2003 Pentium 4 Windows XP Autocad 2002 Autocad 2002LT + Extender ADT 3.3 ArchiCAD
|
erstellt am: 30. Sep. 2004 15:31 <-- editieren / zitieren --> Unities abgeben: Nur für P S I
Ich habe gerade einen Selbstversuch hinter mir. Ich habe 75 DWG-Namen geändert und dann deine Postings nachgetippt. Rate was schneller ging ;-) mfg
------------------ ...so long and thanx for all the fish! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 30. Sep. 2004 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für P S I
Text? Attribut? Plankopf? .. Also , wenn es sich beim Plankopf um eine Blockrefernz mit Attributen handelt, und der Block- und der Attributname in allen Zeichnungen gleich ist.. dann könnte dir ein Umstricken des Tools aus diesem weiterhelfen... ...wenn nicht -> dann auch, aber mit mehr Änderungsaufwand. ------------------ - Thomas - "Bei 99% aller Problemen 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 |
P S I Mitglied CAD-Support
Beiträge: 39 Registriert: 08.09.2004 AutoCAD 2004 Inventor 8 & Inventor8_aip_SP1.exe
|
erstellt am: 30. Sep. 2004 15:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Marvin ich weis zwar nicht was du genau getestet hast...ich weis nur das der Dateiname.dwg bleibt nur der Index Buchstabe im Plankopf der ein Attribut ist sollte automatisch geändert werden. ------------------ Freundliche Grüsse Solution for AutoCAD & Inventor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 30. Sep. 2004 16:09 <-- editieren / zitieren --> Unities abgeben: Nur für P S I
und? Handelt es sich nun um ein immer gleichbenanntes Attribut in einer [b]Blockreferenz[b]? Dann teste mal das Lisp unter dem angegebenen Link mit deinen Block- und Attributnamen. Wenns funzt, ist der Rest die Sache eines Scriptes! ------------------ - Thomas - "Bei 99% aller Problemen 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 |
P S I Mitglied CAD-Support
Beiträge: 39 Registriert: 08.09.2004 AutoCAD 2004 Inventor 8 & Inventor8_aip_SP1.exe
|
erstellt am: 30. Sep. 2004 16:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas Ja das Attribut befindet sich ja im Plankopf und in allen 75 dwg's ist der selbe Plankopf mit dem selben Attribut... Attribut Name: 0ATTUSER der ist für den INDEX eintrag gedacht. ich suche noch deinen Link...?? in deiner vorgehenden Antwort habi ich mal nach gelesen..doch dieses script verstehe ich nicht. ------------------ Freundliche Grüsse Solution for AutoCAD & Inventor [Diese Nachricht wurde von P S I am 30. Sep. 2004 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: 30. Sep. 2004 16:43 <-- editieren / zitieren --> Unities abgeben: Nur für P S I
ok... dann speicher dir folgende Zeilen mal als *.lsp : (defun UPDATE-Title-Block ( INSERTNAME ATTRIBNAME ATTRIBWERT / AUSWAHL INDEX OBJEKTDATEN) (if (= (type INSERTNAME) 'STR) (setq AUSWAHL (ssget "_x" (list '(0 . "INSERT")(cons 2 INSERTNAME)))) ) (if(or AUSWAHL (setq AUSWAHL (ssget "_x" '((0 . "INSERT")))) ) (progn (setq INDEX -1) (repeat (sslength AUSWAHL) (setq OBJEKTDATEN (entget (ssname AUSWAHL (setq INDEX (1+ INDEX))))) (if (assoc 66 OBJEKTDATEN) (while (/= (cdr (assoc 0 OBJEKTDATEN)) "SEQEND") (setq OBJEKTDATEN (entget (entnext (cdr (assoc -1 OBJEKTDATEN))))) (if (and(=(cdr (assoc 0 OBJEKTDATEN)) "ATTRIB") (=(strcase (cdr(assoc 2 OBJEKTDATEN))) ATTRIBNAME) ) (progn (entmod(subst(cons 1 ATTRIBWERT) (assoc 1 OBJEKTDATEN) OBJEKTDATEN ) ) ) ) ) ) ) ) ) ) (defun c:UPDATE-Title-Block () (UPDATE-Title-Block nil "BLOCKNAME" "ATTRIBUTNAME" "B") (command "_.regen") ) wobei du "BLOCKNAME" durch den Namen Deines Plankopfes und "ATTRIBUTNAME" durch den Namen deines Attribute ersetzen mußt! dann ruf die Funktion in der Befehlszeile mit UPDATE-Title-Block auf ( zum testen ) und wenns funzt, mach die ein script, das die Zeichnung öffnet und genau diesen Befehl ausführt, speichert und wieder schließt! ------------------ - Thomas - "Bei 99% aller Problemen 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 |
P S I Mitglied CAD-Support
Beiträge: 39 Registriert: 08.09.2004 AutoCAD 2004 Inventor 8 & Inventor8_aip_SP1.exe
|
erstellt am: 30. Sep. 2004 16:57 <-- editieren / zitieren --> Unities abgeben:
also ich habe das *.LSP angepasst doch was mache ich falsch ich kann es gar nicht testen. wenn ich den Befehl "UPDATE-Title-Block" in Bef.zeile gebe kommt Fehler: Zu viele Argumente sorry vielleicht weis ich gewisse grundliegende Sachen nicht.
------------------ Freundliche Grüsse Solution for AutoCAD & Inventor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangGutke Mitglied Konstrukteur
Beiträge: 109 Registriert: 28.09.2004 AutoCAD 2002 AutoCAD 2006 ObjectDCL 2.02
|
erstellt am: 30. Sep. 2004 17:04 <-- editieren / zitieren --> Unities abgeben: Nur für P S I
Hallo, Thomas hat hier einen kleinen Tippfehler gemacht: (defun c:UPDATE-Title-Block () (UPDATE-Title-Block nil "BLOCKNAME" "ATTRIBUTNAME" "B") (command "_.regen") ) muss auf (defun c:UPDATE-Title-Block () (UPDATE-Title-Block "BLOCKNAME" "ATTRIBUTNAME" "B") (command "_.regen") ) geändert werden. VG Wolfgang
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
P S I Mitglied CAD-Support
Beiträge: 39 Registriert: 08.09.2004 AutoCAD 2004 Inventor 8 & Inventor8_aip_SP1.exe
|
erstellt am: 30. Sep. 2004 17:09 <-- editieren / zitieren --> Unities abgeben:
Super hat ge funtzt... mit der kleinen anpassung von Wolfgang... so und wie bringe ich nun den 75 dwg's bei das die das auch machen sollen....natürlich automatisch... Herzlichen dank an alle...ich verstehe zwar den script nicht ...doch es hat bis hierhin funktioniert. ------------------ Freundliche Grüsse Solution for AutoCAD & Inventor [Diese Nachricht wurde von P S I am 30. Sep. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |