|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | Jetzt verfügbar: NVIDIA RTX PRO 6000 Blackwell Server Edition, eine Pressemitteilung 
 | 
| Autor | Thema:  Fonts in Textstilen automatisch ersetzen lassen (5806 mal gelesen) | 
 | iwa Mitglied
 
 
 
      Beiträge: 3Registriert: 12.11.2009
 |    erstellt am: 16. Nov. 2009 10:07  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo. Wir haben folgendes Problem. Bisher haben wir zum Ersetzen der Autocad-Schriftarten eine eigene Schriftzuordnungsdatei benutzt. Dadurch ist das Arbeiten in unseren Zeichnungen mit viel Text sehr langsam geworden. Wir haben festgestellt, dass das Bearbeiten ohne Schriftzuordnungsdatei um ein Vielfaches schneller geht! Wir haben uns daher überlegt, in unseren Zeichnungen die Textstile entsprechend umzustellen. Allerdings gibt es alte Dateien und von fremden Systemen erstellte Dateien, bei denen bis zu 50 Textstile vorhanden sind, in denen die Fonts umgestellt werden müssten. Am Besten wäre es daher, ein LISP-Programm zu haben, das auf Knopfdruck alle Fonts in der Zeichnung nach einer Tabelle umstellt. Habt Ihre eine Idee, wie das aussehen könnte? Ich habe leider keine Erfahrung mit LISP-Programmen, auch nicht über deren Aufbau. Daher wäre ich über Eure Hilfe sehr dankbar! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 16. Nov. 2009 10:23  <-- editieren / zitieren -->    Unities abgeben:           Nur für iwa   
  Wenn es nur um die Fonts geht .. und nicht um die Zusammenführung der verschiedenen Textstile , reicht es , die Textstile entsprechend zu bearbeiten. Dazu kann man mit (vl-load-com) (vlax-for ITEM (vla-get-textstyles (vla-get-activedocument (vlax-get-acad-object)))     (setq LISTE (cons (list(vla-get-name ITEM) (vla-get-fontfile ITEM) ITEM) LISTE))   ) sich eine Liste der Textstyle mit den Fonts estellen , da eine Zuordnung schaffen und mit (vla-put-fontfile .. einen neuen zuordnen ------------------
  - 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 | 
                        | CADchup Ehrenmitglied V.I.P. h.c.
 
 
 
  
 
      Beiträge: 3338Registriert: 14.03.2001
 Sicher ist, dass nichts sicher ist. Selbst das nicht.Joachim Ringelnatz
 |    erstellt am: 16. Nov. 2009 10:28  <-- editieren / zitieren -->    Unities abgeben:           Nur für iwa   
  Hi und herzlich willkommen, wenn du (noch) nicht lispeln kannst, warum versuchst du's nicht mit einem Skript? Das ist ein relativ schmerzloser Einstieg in die "Programmierung" und in deinem Fall durchaus sinnvoll. Einfach alle deine Stile durchgehen und am Ende die überflüssigen bereinigen. Die Anzahl der Leerzeilen musst du selbst rausfinden:
 Code:
 _-style
 STILNAME1
 TTF-oderSHXNAME
 STILNAME2
 TTF-oderSHXNAME
 _-purge
 _st
 *
 _n
 
 Die wichtigsten Dinge dazu:
 Versuch, die Befehls- und Optionsnamen gleich in englischer Sprache mit vorangestelltem Unterstrich zu schreiben. (Doku gibt's bei CADmaro.de)
 Viele Befehle mit Dialogfenstern lassen sich mit einem vorangestellten Bindesstrich an der Befehlszeile abarbeiten.
 Jeder Zeilenwechsel im Skript entspricht einem Enter in AutoCAD.
 Happy Testing,CADchup
 ------------------CADmaro.de
 [Diese Nachricht wurde von CADchup am 16. Nov. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Ex-Mitglied
 
 
 |    erstellt am: 16. Nov. 2009 10:31  <-- editieren / zitieren -->     
  Hi, herzlich willkommen bei CAD-de!    Da brauchst Du nicht unbedingt programmieren. Denn unter der Voraussetzung, dass es mehrere Zeichnungen gibt, die immer mit der gleichen Übersetzungstabelle 'behandelt' werden sollten, dann:Mach Dir eine leere Zeichnung, in der die Textstile mal richtig eingestellt sind (auf die richtigen Fonts zeigen). Dann kopierst Du die Geometrieelemente aus Deiner Zeichnung in diese neue Zeichnung, ev. holst Du die Layouts dann auch noch per DesignCenter dazu und hast eine neue Zeichnung mit Deinen Stileinstellungen.
 >>Ich habe leider keine Erfahrung mit LISP-Programmen
 Zu obigem und der charmant formulierten Frage  'Habt Ihre eine Idee, wie das aussehen könnte?'  ==> Ja haben, wir! Aber ich hoffe die Frage nicht so verstehen zu müssen  'Habt Ihr Zeit es mir kostenlos zu machen'.  Willst Du es lernen, wie's geht, dann gibt's hier im Forum genug Verweise zu Literatur bzgl. LISP, bzgl. VBA, ... Erst mal Grundlagen ansehen und dann gezielt zu dem Code, den Du gerade am Schreiben bist, Fragen stellen, wo Du hängst. - alfred -  ------------------www.hollaus.at
 | 
                          | iwa Mitglied
 
 
 
      Beiträge: 3Registriert: 12.11.2009
 |    erstellt am: 16. Nov. 2009 10:42  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo, ich danke Euch für Eure schnellen Antworten. Was mache ich denn nun mit dem code, den Ihr mir gegeben habt. Kommt er in eine Datei, oder gebe ich den in die Befehlszeile ein? @ a.n.: Falls es sich hier um ein Programm handelt, was extra für uns geschrieben würde, wären wir bestimmt auch bereit, einen entsprechenden Obulus zu bezahlen. Das müsste ich dann halt mit meinem Chef klären.Die Idee mit der Vorlage hatte ich auch schon, allerdings ist die Bezeichnung der Textstile, die in den systemfremden Dateien vorhanden sind, nicht immer die gleiche.
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 16. Nov. 2009 10:59  <-- editieren / zitieren -->    Unities abgeben:           Nur für iwa   
 Zitat:Original erstellt von iwa:
 Hallo, ich danke Euch für Eure schnellen Antworten. Was mache ich denn nun mit dem code, den Ihr mir gegeben habt. Kommt er in eine Datei, oder gebe ich den in die Befehlszeile ein?
 
 
 naja .. scheints ja wirklich null Erfahrung zu haben .. eigentlich kannste das zur Demo in die Befehlszeile kopieren .. da wird aber niur was angezeigt ... Versteh ich jetz die Aufgabenstellung so richtig :
 Du hast eine Textdatei wo z.B. sowas drin steht :[STANDARD-SHX]
 romans.shx
 [STANDARD-TTF]
 arial.ttf
 [FONTMAP]
 txh.shx     =  romans.shx
 isocp.shx   =  romans.shx
 Swis721.ttf =  romans.shx
 ....
 so das alle Textsile , die txh.shx isocp.shx Swis721.ttf  referenzieren auf den Font  romans.shx umgestellt werden
 Textstile mit shx-Fonts, die nicht in der Liste auftauchen werden auf [STANDARD-SHX] =romans.shxumgestellt
 Textstile mit ttf-Fonts, die nicht in der Liste auftauchen werden auf [STANDARD-TTF]=rial.ttf
 umgestellt
 oder willst du die Anzahl der (dann identischen )Schriftstile auch verringern und den Objekten (Text, Mtext usw) denselben Schriftstil zuordnen und die überflüssigen Textstile dann berreinigen ?
 
 ------------------
  - 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 | 
                        | iwa Mitglied
 
 
 
      Beiträge: 3Registriert: 12.11.2009
 |    erstellt am: 16. Nov. 2009 11:17  <-- editieren / zitieren -->    Unities abgeben:            
 Zitat:
 oder willst du die Anzahl der (dann identischen )Schriftstile auch verringern und den Objekten (Text, Mtext usw) denselben Schriftstil zuordnen und die überflüssigen Textstile dann bereinigen ?
 
 
 Das wäre natürlich noch besser.Unsere Schriftzuordnungsdatei sieht im Moment so aus:
 COMPLEX;Swis721 BT
 COMPLEX.SHX;Swis721 BT
 DIJK-S.SHX;CommercialScript
 DIJK-S.shx;CommercialScript
 DIN;Swis721 Lt BT
 DIN.SHX;Swis721 Lt BT
 DIN.shx;Swis721 Lt BT
 din;Swis721 Lt BT
 FUTL-S.shx;Swis721 Lt BT
 FUTL-S.SHX;Swis721 Lt BT
 FUTM-H.shx;Swis721 BT
 FUTM-H.SHX;Swis721 BT
 HLVM-H.SHX;Swis721 BT
 HLVM-H.shx;Swis721 BT
 HLVB-H.SHX;Swis721 Blk BT
 HLVL-H.SHX;Swis721 Ex BT
 helv;Swis721 Ex BT
 HLVM-O.SHX;Swis721 BlkOul BT
 iso8;Swis721 Lt BT
 ITALIC;Swis721 BT
 italicc;Swis721 BT
 monotxt;Swis721 BT
 monotxt8;Swis721 BT
 romans;Swis721 Lt BT
 romanc;Swis721 BT
 romand;Swis721 BT
 romand8;Swis721 BT
 romant8;Swis721 BT
 simplex;Swis721 BT
 SIMPLEX;Swis721 BT
 sqsb___.pfb;Swis721 BlkOul BT
 STENEQ.SHX;Monospac821 BT
 STENEQ.shx;Monospac821 BT
 STENEQ;Monospac821 BT
 txt.shx;Swis721 BT
 UNIV;Swis721 BT
 UNIV.shx;Swis721 BT
 UNIV.SHX;Swis721 BT
 univh;Swis721 BT
 UNIVHS;Swis721 BT
 In Zukunft möchten wir ohne sie arbeiten, aber alles was auf der linken Seite steht, sollte doch die Fonts auf der rechten Seite ersetzt werden, auf Knopfdruck. Textstile mit gleichen Eigenschaften könnten auch zusammengefasst werden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Der Turl Mitglied
 HKLS Ing.
 
 
      Beiträge: 4Registriert: 09.02.2011
 Win 7  / 64 Bit  MEP 2011
 |    erstellt am: 04. Mai. 2011 17:15  <-- editieren / zitieren -->    Unities abgeben:           Nur für iwa   
  Ich möchte diesen alten Thread wiederbeleben :-) also ich hab da ein ähnlich gelagertes problem welches sich bei der übernahme von architekturzeichnungen in extrem vielen TEXTSTILE nach dem schema STIL 1 => ARIAL
 STIL 2 => ARIAL
 .
 .
 STIL 234 => ARIAL
 STIL 235 => VERDANA
 STIL 236 => VERDANA
 STIL 237 => VERDANA
 .
 .
 STIL 333 => VERDANA
 usw äußert.
 somit sind unzählige schriftstile mit jedoch nur einigen SCHRIFTARTEN vorhanden. mein ziel ist es diese Stile zu belassen aber global in zB. SIMPLEX abzuändern wobei jedoch auch bestimmte zb. ROMANS ausgenommen werden sollen ( wäre als realisierungs stufe 2 des skripts anzusehen *g*). hab das schon via SKRIPT versucht ( dem kann ich eingermaßen folgen ) aber da scheiters schon an der auswahl der textstile da diese massenhaft vorhanden sind und sich somit vielleicht über eine wildcard "*" auswählen lassen. kann mir da jemand behilflich sein ?  oder schaffe ich das vorhaben nur via LISP ? Code:
 _style
 "*" ( hier scheiters schon an der auswahl ! möchte alle auswählen können)
 simplex.shx jaja
 regenall
 zoom
 g
 
 
 [Diese Nachricht wurde von Der Turl am 04. Mai. 2011 editiert.] [Diese Nachricht wurde von Der Turl am 04. Mai. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | wronzky Ehrenmitglied V.I.P. h.c.
 CAD-Dienstleistungen für Architekten
 
 
  
 
      Beiträge: 2154Registriert: 02.05.2005
 CAD:AutoCAD 2.6 bis 2014
 ADT 2005 - 2014
 Arcibem
 System:
 Windows 2000, XP, NO VISTA
 Internet-Startseite:
 http://www.archi.de
 |    erstellt am: 04. Mai. 2011 18:52  <-- editieren / zitieren -->    Unities abgeben:           Nur für iwa   
  Da hast Du schlechte Karten mit Scripts, da Du nicht weißt, wie die einzelnen Stile heißen, und über den Befehl "_-style" nur einzeln geändert werden können. Mit Thomas Lisp-Zeilen könnte es so gehen: Code:Grüsse, Henning(vl-load-com)
 (vlax-for ITEM (vla-get-textstyles (vla-get-activedocument (vlax-get-acad-object)))
 (vla-put-fontfile ITEM "SIMPLEX.SHX")
 )
 
 ------------------Henning Jesse
 VoxelManufaktur
 Computer-Dienstleistungen für Architekten und Ingenieure
   http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |