| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Engineering Erleben: Innovationen. Interfaces. Impulse., eine Veranstaltung am 01.10.2024
|
Autor
|
Thema: Text Breitenfaktor in CAD Spirit. (6574 mal gelesen)
|
CADoffel Mitglied Tech. Zeichner (Haustechnik)
Beiträge: 131 Registriert: 12.08.2002 - Win XP, - AutoCAD 2004 LT+ LT-Extender+ Exresstools 1-9 - AutoCAD 2002 Architectual Desktop + Expresstools 1-9
|
erstellt am: 15. Apr. 2004 09:17 <-- editieren / zitieren --> Unities abgeben:
Hi, was ist der schnellste Weg den Breitenfaktor aller Texte auf einmal zu ändern? Ich habe folgendes Problem: Die dwg oder dxf Dateien die von CAD Spirit kommen, haben Textfaktoren die mit AutoCAD nicht übereinstimmen. In Spirit heißt Breitenfaktor = Aspekt. Breitenfaktor 1,5 = Aspekt 1,5 in Spirit. Doch im AutoCAD ist der Text 1,5 mal breiter. In Spirt 1,5 mal schmaler. Somit ist Breitenfaktor 1,5 = 0.667 Aspekt. Wie kann ich jetzt die Texte die alle viel zu breit sind auf einmal ändern? Diese haben aber unterschiedliche Breitenfaktoren. Ich suche also eine Möglichkeit den Kehrwert des Breitenfaktors zu finden. Für alle Texte: 1 teilen durch den Breitenfaktor (1/1,5 = 0.667) Ich weiß, wahrscheinlich ganz einfach mit Lisp zu lösen. Doch leider kann ich kein Lisp. :-( Gruß CADoffel ------------------
"ich weiß dass ich nichts weiß, dennoch weiß ich mehr als diejenigen die nicht wissen dass sie nichts wissen" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OtzeMachEd Mitglied Bauzeichner & CAD Systembetreuer
Beiträge: 201 Registriert: 30.05.2003 WIN XP Prof. ACAD 2010 ADT 2010 Express Tools
|
erstellt am: 15. Apr. 2004 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für CADoffel
Hallo, bei einzeiligem Text: Die Texte filtern und über das Eigenschaftsfenster den Breitenfaktor ändern. Bei mehrzeiligem Text über den Textstil! ------------------ Mit freundlichen Grüßen Otze Mach Ed PS: Wer lesen kann ist klar im Vorteil! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADoffel Mitglied Tech. Zeichner (Haustechnik)
Beiträge: 131 Registriert: 12.08.2002 - Win XP, - AutoCAD 2004 LT+ LT-Extender+ Exresstools 1-9 - AutoCAD 2002 Architectual Desktop + Expresstools 1-9
|
erstellt am: 15. Apr. 2004 09:35 <-- editieren / zitieren --> Unities abgeben:
Texte filtern ist kein Problem. Doch wie geschrieben haben diese unterschiedliche Breitenfaktoren. Alle auf einen zu setzen ist keine schöne Lösung. Auch nach Text und Farbe filter ist keine Lösung. Ich muß 1 durch den Breitenfaktor teilen. Gruß CADoffel ------------------
"ich weiß dass ich nichts weiß, dennoch weiß ich mehr als diejenigen die nicht wissen dass sie nichts wissen" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 15. Apr. 2004 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für CADoffel
Hallo CADoffel, Probier die folgenden Zeilen. Wenn es unbedingt 1/Breite sein soll, kann man das auch noch so anpassen.
Code:
(defun c:txtbrscale ( / ALISTE) (setq ALISTE (ssget "X" '((-4 . "<or") (0 . "TEXT") (0 . "MTEXT") (-4 . "or>") ) ) ) (if ALISTE (progn (while (not(setq tfac (getreal "\nScalierfaktor:")))) (mapcar '(lambda (el) (txtbrvaria (entget el) tfac) ) (bau_elemli ALISTE) ) ) ) (princ) );defun (defun txtbrvaria (ad fac /) (entmod (subst (cons 41 (* fac (cdr (assoc 41 ad)))) (assoc 41 ad) ad)) ) (defun bau_elemli (asatz / n elemli) (setq n 0) (repeat (sslength asatz) (setq elemli(cons (ssname asatz n) elemli) n (1+ n)) ) elemli )
Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADoffel Mitglied Tech. Zeichner (Haustechnik)
Beiträge: 131 Registriert: 12.08.2002 - Win XP, - AutoCAD 2004 LT+ LT-Extender+ Exresstools 1-9 - AutoCAD 2002 Architectual Desktop + Expresstools 1-9
|
erstellt am: 15. Apr. 2004 09:59 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, schön mal wieder von Dir zu hören. Die Lösung ist schon fast richtig. Der Breitenfaktor von allen Texten wird nach Eingabe des Skalierfaktors geändert. Kannst du mir bitte das so ändern, daß ich 1/Breitenfaktor der Texte teile? Würde mir wirklich sehr helfen. Gruß CADoffel. ------------------
"ich weiß dass ich nichts weiß, dennoch weiß ich mehr als diejenigen die nicht wissen dass sie nichts wissen" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 15. Apr. 2004 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für CADoffel
Hallo CADoffel, dann so, dann sind beide Möglichkeiten gegeben:
Code:
(defun c:txtbrscale ( / ALISTE) (setq ALISTE (ssget "X" '((-4 . "<or") (0 . "TEXT") (0 . "MTEXT") (-4 . "or>") ) ) ) (if ALISTE (progn (initget "DT _Durchtextbreite") (setq tfac (getreal "\nScalierfaktor [DurchTextbreite] <DT>:")) (mapcar '(lambda (el) (if (= 'REAL(type tfac)) (txtbrvaria (entget el) tfac) (txtbr1d (entget el)) ) ) (bau_elemli ALISTE) ) ) ) (princ) );defun (defun txtbrvaria (ad fac /) (entmod (subst (cons 41 (* fac (cdr (assoc 41 ad)))) (assoc 41 ad) ad)) ) (defun txtbr1d (ad /) (entmod (subst (cons 41 (/ 1 (cdr (assoc 41 ad)))) (assoc 41 ad) ad)) ) (defun bau_elemli (asatz / n elemli) (setq n 0) (repeat (sslength asatz) (setq elemli(cons (ssname asatz n) elemli) n (1+ n)) ) elemli )
Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADoffel Mitglied Tech. Zeichner (Haustechnik)
Beiträge: 131 Registriert: 12.08.2002 - Win XP, - AutoCAD 2004 LT+ LT-Extender+ Exresstools 1-9 - AutoCAD 2002 Architectual Desktop + Expresstools 1-9
|
erstellt am: 15. Apr. 2004 11:16 <-- editieren / zitieren --> Unities abgeben:
Holger du bist ein Genie. Danke vielmals. Funktioniert einwandfrei. Gruß CADoffel. P.S. Nach dem Aufruf der Lisp erscheint "BAU_ELEMLI". Aber die Funktion ist einwandfrei. ------------------
"ich weiß dass ich nichts weiß, dennoch weiß ich mehr als diejenigen die nicht wissen dass sie nichts wissen" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sonora Mitglied selbstständig
Beiträge: 11 Registriert: 11.08.2015 AutoCad 2014
|
erstellt am: 09. Mrz. 2017 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für CADoffel
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 09. Mrz. 2017 12:24 <-- editieren / zitieren --> Unities abgeben: Nur für CADoffel
|
sonora Mitglied selbstständig
Beiträge: 11 Registriert: 11.08.2015 AutoCad 2014
|
erstellt am: 09. Mrz. 2017 13:13 <-- editieren / zitieren --> Unities abgeben: Nur für CADoffel
mit ATTSYNC komme ich nicht zurecht. hier wir nur alles wieder auf normal gestellt. es geht um die spalte "beschaltung" hier muß ich für jeden der 4 blöcke jede zeile anklicken und dort in den textoptionen den breitenfaktor ändern. geht das nicht mit "eigenschaften übertragen" o.ä.? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 09. Mrz. 2017 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für CADoffel
Entweder du passt die Attributdefinition der verschiedenen Blöcke an (sind ja je nach Antennentyp verschiedene), drückst dann Attsync. Oder du markierst die Attribute mit Strg+Mausklick, änderst dann die Breite in den Eigenschaften (strg+1) Oder du nutzt den Befehl -ATTEDIT Ein Tool für "Eigenschaften übertragen für Sub-Elemente" wäre sicher auch kein Problem, in Acad ist die Funkion aber nicht enthalten.
Bei der ersten Variante (bei der nicht nur die Attrbute, sondern auch der Block/die Attributdefinition geändert wird, bedenke aber das es sich um Vorgabeblöcke des (End-)Kunden handelt, die möglicherweise nicht geändert werden dürfen.
------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sonora Mitglied selbstständig
Beiträge: 11 Registriert: 11.08.2015 AutoCad 2014
|
erstellt am: 09. Mrz. 2017 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für CADoffel
hallo, danke für die schnelle antwort. wenn ich mit strg und mausklick den text anklicke, ist er rosa hinterlegt und ich kann den text umschreiben. aber nur das, sonst nichts. es gibt keine eigenschaften. strg+1 geht auch nicht. was mache ich falsch? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |