| |
| 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: Text aus Block filtern (410 mal gelesen)
|
m.schuster Mitglied Konstrukteur / Admin
Beiträge: 8 Registriert: 08.05.2006
|
erstellt am: 31. Jan. 2008 10:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich bin auf der Suche nach einer Funktion die alle Text und Attributstexte in Blöcken kopiert. Die Kopierten Text sollen dann außerhalb vom Block sein und einen separaten Layer erhalten. Folgen Funktion könnte man als Basis nutzen: (defun C:attrtotxt_noexp( / as i e el bn nl l1 l2) (if (setq as (ssget)) (progn (setq i 0) (while (setq e (ssname as i)) (setq el (entget e)) (if (/= (assoc 66 el) nil) (progn (setq bn e) (while (/= (cdr (assoc 0 (setq el (entget e)))) "SEQEND") (if (and (= (cdr (assoc 0 el)) "ATTRIB") (/= (logand (cdr (assoc 70 el)) 1) 1) ) (progn (setq nl (cdr el)) (setq nl (subst '(0 . "TEXT") (assoc 0 nl) nl)) (setq l1 (cdr (member (assoc 2 nl) nl))) (setq l2 (reverse (cdr (member (assoc 2 nl) (reverse nl))))) (setq nl (append l2 l1)) (setq l1 (cdr (member (assoc 70 nl) nl))) (setq l2 (reverse (cdr (member (assoc 70 nl) (reverse nl))))) (setq nl (append l2 l1)) (setq nl (subst (cons 73 (cdr (assoc 74 nl))) (assoc 74 nl) nl)) (entmake nl) (setq el (subst '(1 . "") (assoc 2 el) el)) (entmod el) ) ) (setq e (entnext e)) ) ) ) (entupd bn) (setq i (1+ i)) ) (command "._REGEN") ) ) 'DANKE ) Was hier noch fehlt ist, dass der Text in den Attributen nicht erhalten bleibt und das die normalen Texte nicht mitkopiert werden. Hintergrund der Funktion ist: Alle Text auf zwei unterschiedliche Layer zu erhalten um Zeichnungen schneller in verschiedene Sprachen übersetzen zu können. Leider reichen meine Lisp Kenntnisse hierfür nicht mehr aus. Ich hoffe somit dass mir hier jemand helfen kann. Danke! Gruß, Martin
------------------ Mechanical 2000i, SW2006, WINXP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 31. Jan. 2008 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für m.schuster
lass einfach das (entmod el) weg, so werden die Attribute unverändert gelassen. Texte aus Blockdefinitionen den Referenzen zuordnen (besonders bei mehrfach verschachtelten , transformierten)ist aber noch was komplizierter und ist auch nicht mit nem 10-Zeiler getan. Wie darf ich "Leider reichen meine Lisp Kenntnisse hierfür nicht mehr aus" interpretieren? Ach ja, zu "ich bin auf der Suche nach einer Funktion die alle Text und Attributstexte in Blöcken kopiert..." fällt mir noch ein : Google ist ne prima Suchmaschine... oder suchst du jemanden, der das für dich programmiert? SCNR.
------------------ - 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 |
m.schuster Mitglied Konstrukteur / Admin
Beiträge: 8 Registriert: 08.05.2006
|
erstellt am: 31. Jan. 2008 10:46 <-- editieren / zitieren --> Unities abgeben:
Zitat:
lass einfach das (entmod el) weg, so werden die Attribute unverändert gelassen.
Danke! Und schon bin ich einen Schritt weiter Zitat:
Texte aus Blockdefinitionen den Referenzen zuordnen (besonders bei mehrfach verschachtelten , transformierten)ist aber noch was komplizierter und ist auch nicht mit nem 10-Zeiler getan.
Verschachtelte Blöcke müssten nicht berücksichtigt werden. Was meinst du mit Referenzen zuordnen? der statische Text müsste doch einfacher gehen zu vervielfältigen. Zitat:
Wie darf ich "Leider reichen meine Lisp Kenntnisse hierfür nicht mehr aus" interpretieren?
Bei irgendwelchen Schleifen sind leider meine Kenntnisse zu Ende Zitat:
Ach ja, zu "ich bin auf der Suche nach einer Funktion die alle Text und Attributstexte in Blöcken kopiert..." fällt mir noch ein : Google ist ne prima Suchmaschine... oder suchst du jemanden, der das für dich programmiert? SCNR.
Was meinst du wo ich den Code herab? Google natürlich. ------------------ Mechanical 2000i, SW2006, WINXP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 31. Jan. 2008 11:13 <-- editieren / zitieren --> Unities abgeben: Nur für m.schuster
Zitat: Original erstellt von m.schuster: Hintergrund der Funktion ist: Alle Text auf zwei unterschiedliche Layer zu erhalten um Zeichnungen schneller in verschiedene Sprachen übersetzen zu können.
Servus!
ich würde die Texte nicht duplizieren. Bau dir eine Datei mit den Texten in den verschiedenen Sprachen zeilenweise. Dann die Datei einlesen und nur die 1er Gruppencodes in den Blockdefinitionen (bei den Texten) und den Attributen tauschen. Vorteil: Du hast keine doppelte Datenhaltung und kannst die Datei auch beliebig erweitern (zeilenweise mit zusätzlichen Texten, spaltenweise mit zusätzlichen Sprachen). .... nur mal so als Anregung. Ciao Georg
------------------ http://www.xx-tausend.info Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 31. Jan. 2008 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für m.schuster
Zitat: Original erstellt von gmk: Servus!ich würde die Texte nicht duplizieren. Bau dir eine Datei mit den Texten in den verschiedenen Sprachen zeilenweise. Dann die Datei einlesen und nur die 1er Gruppencodes in den Blockdefinitionen (bei den Texten) und den Attributen tauschen. Vorteil: Du hast keine doppelte Datenhaltung und kannst die Datei auch beliebig erweitern (zeilenweise mit zusätzlichen Texten, spaltenweise mit zusätzlichen Sprachen). .... nur mal so als Anregung. Ciao Georg
Würd ich auch so machen ..aber ich würde da ein WinINI-ähnliches Format vorziehen
------------------ - 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 |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 31. Jan. 2008 11:22 <-- editieren / zitieren --> Unities abgeben: Nur für m.schuster
Yep, Win.INI artiges Format ODER aber in Listenform in externe Datei schreiben. Vorteil: Man kann dann die Datei über einen simplen Lisp-Befehl > (load ...) wieder einfach und vor allem schnell, zur sofortigen Verwendung importieren... ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
m.schuster Mitglied Konstrukteur / Admin
Beiträge: 8 Registriert: 08.05.2006
|
erstellt am: 31. Jan. 2008 11:30 <-- editieren / zitieren --> Unities abgeben:
Danke schon mal für die schnelle Mithilfe. Die Idee hatte ich auch schon. Ich habe sie aber dann wieder fallen gelassen, weil ich am Original eigentlich nichts verändern will. Dann müsste ich ja alle Text wieder zurück tauschen und ob das immer funktioniert, bin ich mir nicht ganz sicher. ------------------ Mechanical 2000i, SW2006, WINXP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 31. Jan. 2008 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für m.schuster
ne, der Originaltext kann ja in XDATA gepackt werden, den das Übersetzungstool dann jeweils auswertet. Und wenn du die Texte duplizierts, machst du ja auch was am Original.. und da mußt du dann alles nochmal von Hand übersetzen .. deshalb noch mal genau überlegen, wo ihr wie hinwollt. ------------------ - 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 |