| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: eingepassten Text verbinden (983 mal gelesen)
|
Gerd_Ecke Mitglied Bergbauingenieur
Beiträge: 141 Registriert: 28.08.2002 Civil 3D 2020, GeoCAD BricsCAD 18
|
erstellt am: 21. Sep. 2006 11:22 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe folgendes Problem : PDF-Zeichnung mit vielen Punkten die eine Bezeichnung haben. Da sie in einem Raster angelegt sind und die Namen sehr lang hat die Fremdfirma diese Texte um ca 20grad gedreht. Wandele ich jetzt die PDF in eine DWG um so erstellt das Wandelprogramm je Punktnamen 3-4 Textteile. Die aneinandergereiht werden müssten um sie auf Winkel 0 zudrehen. Da es eingepasste Texte sind ist die Koordinate "Textausrichtung" des Textteiles 1 ungefähr (0,01 Einheiten) die "Position" des Textteiles 2. Insgesamt sind das ca 3000 Textteile. Wie könnte der Lösungsansatz aussehen ? MfG GE ------------------ ACAD 2000, Map 2006, GeoCAD wenig LTplus pur (ICAD) alles unter w2k 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: 21. Sep. 2006 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für Gerd_Ecke
Ähm - kannst du uns mal ein Beispiel eines solche Textes zukommen lassen ? Ich glaube, dass dein Anliegen generell leichter zu verstehen ist, wenn man es an einem konkreten Beispiel sieht. Ich verstehe es derzeit (noch) nicht... - leider. ------------------ Grüsse Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gerd_Ecke Mitglied Bergbauingenieur
Beiträge: 141 Registriert: 28.08.2002 Civil 3D 2020, GeoCAD BricsCAD 18
|
erstellt am: 21. Sep. 2006 12:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, siehe Bild1, "A" ist ein eigepasster Text, "BCE" ist ein ... "1" ist ein ... und "2-3" ist ein angepasster Text. Der 'Textausrichtungspunkt' von "A" ist ungefähr die 'Position' von "BCE" -- und der 'Textausrichtungspunkt' von "BCE" ist ungefähr die 'Position' von "1" ... Ich möchte aber einen Text "ABCE12-3" sonst passiert Bild2 MfG GE
------------------ ACAD 2000, Map 2006, GeoCAD wenig LTplus pur (ICAD) alles unter w2k Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 667 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 21. Sep. 2006 13:58 <-- editieren / zitieren --> Unities abgeben: Nur für Gerd_Ecke
hi gerd! evtl. so: zusammen gehörige texte über einfügepunkt, ausrichtungspunkt, fuzzyabstand (equal) einsammeln, nach x-wert sortieren (wenn der "verdrehwinkel" der texte nicht größer pi/2 ist, strcat, und mit dem ersten einfügepunkt zurückschreiben. ciao georg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004 Window 10 ACAD 2021 CIVIL 2021 BricsCAD V14-V22 Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz 16.0GB RAM NVIDIA GeForce GTX 1050<P>
|
erstellt am: 21. Sep. 2006 14:01 <-- editieren / zitieren --> Unities abgeben: Nur für Gerd_Ecke
Hallo Gerd, vielleicht hilft Dir folgender Code weiter: Es werden Texte ausgewählt, die Textwerte und Basispunktkoordinaten werden in eine Liste geschrieben. Diese Liste wird dann nach den kleinsten x-Werten sortiert, und in der neuen Reihenfolge werden die Textwerte zu einem zusammengefasst. Als letztes wird eine neuer Text erzeugt, der den zusammengefassten Textwert beinhaltet. Die Drehung wird über den Winkel von erstem Basispunkt zu letztem Basispunkt angegeben. Code:
(defun c:text_test ( / aws wert_liste wert) (if (setq aws (ssget (list (cons 0 "TEXT")))) (progn (setq n 0) (repeat (sslength aws) (setq wert_liste (cons (list(cdr(assoc 1 (entget(ssname aws n))))(cdr(assoc 10(entget(ssname aws n)))))wert_liste) n (+ n 1))) ;Liste mit Textwerten nach x-Wert sortieren (setq wert_liste (vl-sort wert_liste '(lambda (e1 e2) (< (car(cadr e1))(car(cadr e2)))))) (setq wert(apply 'strcat(mapcar '(lambda(A)(car A))wert_liste))) (command "_.text" (cadr(car wert_liste)) (cdr(assoc 40 (entget(ssname aws 0)))) 0.0 wert "") (entmod (subst (cons 50 (angle (cadr(car wert_liste))(cadr(last wert_liste)))) (assoc 50 (entget (entlast)))(entget(entlast))))) (alert "Keine Texte ausgewählt.")))
------------------ viele Grüße Jörn [Diese Nachricht wurde von joern bosse am 21. Sep. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |