Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Schriftart in Textstilen ändern

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Schriftart in Textstilen ändern (279 mal gelesen)
Musicus
Mitglied
Staatl. gepr. Techniker


Sehen Sie sich das Profil von Musicus an!   Senden Sie eine Private Message an Musicus  Schreiben Sie einen Gästebucheintrag für Musicus

Beiträge: 590
Registriert: 26.07.2005

AutoCAD 2017
Linear, CATS
Windows 7 Pro

erstellt am: 11. Aug. 2017 08:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Forum,

ich habe mir ein Tool gebastelt, dass die Schriftart in allen Textstilen ändert. Das funktioniert auch in der geöffneten Zeichnung.
Wenn die Zeichnung aber gespeichert und erneut geöffnet wird, sind wieder die vorherigen Schriftarten eingestellt. Es ist dann auch nicht möglich, die Schriftart von Hand zu ändern, der Button Anwenden ist dann ausgegraut, so dass Änderungen nicht gespeichert werden können. Nochmaliges Speichern und Öffnen der Zeichnung behebt dies.

Jetzt meine Frage, woran liegt es?

Code:
(defun c:TEXTSTYLE ( / STILDEF STILNAME OBJEKTDATEN AWS)
  (setq STILDEF (tblnext "STYLE" T))
  (while STILDEF
  (setq STILNAME (cdr(assoc 2 STILDEF)))
  (setq OBJEKTDATEN (entget (tblobjname "STYLE" STILNAME)))
  (if (assoc 3 OBJEKTDATEN)
  (setq OBJEKTDATEN (subst (cons 3 "isocp.shx")(assoc 3 OBJEKTDATEN) OBJEKTDATEN))
  );end if
        (entmod OBJEKTDATEN)  
  (setq STILDEF (tblnext "STYLE"))
  );end while
);end defun

Danke und Gruß,
Musicus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Peter2
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

Beiträge: 2833
Registriert: 15.10.2003

Win 7/64 Prof & Win 10/64 Pro
AutoCAD 2011 - 2017, Expresstools, VPRaster
BricsCAD V16

erstellt am: 11. Aug. 2017 08:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Musicus 10 Unities + Antwort hilfreich

So als Ferndiagnose schaut der Code nicht schlecht aus.

Aber du solltest dringend darauf achten, dass deine Funktionen nicht genauso heißen wie Standardbefehle. Das kann Probleme geben.

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Musicus
Mitglied
Staatl. gepr. Techniker


Sehen Sie sich das Profil von Musicus an!   Senden Sie eine Private Message an Musicus  Schreiben Sie einen Gästebucheintrag für Musicus

Beiträge: 590
Registriert: 26.07.2005

AutoCAD 2017
Linear, CATS
Windows 7 Pro

erstellt am: 11. Aug. 2017 08:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Eieiei, das war mir gar nicht aufgefallen, das muss ich ändern. Danke für den Hinweis.

[Diese Nachricht wurde von Musicus am 11. Aug. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 17748
Registriert: 14.06.2002

System: F1
und Google

erstellt am: 11. Aug. 2017 09:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Musicus 10 Unities + Antwort hilfreich

In diesen Fällen empfehle ich immer:
Beispieldatei mit Wherst öffnen, Prüfung durchführen, Bereinigen, speichern.
Rechner aus, Rechner an, Kaffee holen, Autocad mit reinem Autocadprofil starten, erneut testen.

Erst dann bin ich ratlos und es würde interessant werden.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Musicus
Mitglied
Staatl. gepr. Techniker


Sehen Sie sich das Profil von Musicus an!   Senden Sie eine Private Message an Musicus  Schreiben Sie einen Gästebucheintrag für Musicus

Beiträge: 590
Registriert: 26.07.2005

AutoCAD 2017
Linear, CATS
Windows 7 Pro

erstellt am: 11. Aug. 2017 11:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Das Tool wird angewendet auf Fremdpläne unterschiedlicher Herkunft. Es ist in jedem Plan so. Es ist völlig egal, ob ich nur das Tool ausführe oder ob es über ein Skript aufgerufen wird.
Bereinigt etc. sind die Dateien zum Zeitpunkt des Aufrufs, ich habe aber auch schon andere Varianten (bei Skriptverwendung) versucht, das ändert nichts am Ergebnis.
Gestartet wird es in einem reinen AutoCAD-Profil. Ich habe es auch in einem unveränderten AutoCAD-Profil getestet, das Ergebnis bleibt das gleiche.

*Kaffee reich*

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 17748
Registriert: 14.06.2002

System: F1
und Google

erstellt am: 11. Aug. 2017 12:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Musicus 10 Unities + Antwort hilfreich

Na dann interessiert es mich:
Bitte lösche ALLES AUSSER einem Textobjekt (mit dem es nachvollziehbar ist bei dir),
bereinige, SpeichernUnter DXF2013

Poste die Datei,
ich führe dann das Lisp aus, und wenn es so läuft wie bei dir und so wie ich es verstehe:
im Stil-Dialog sind dann andere Fonts eingestellt?
ich speichere die Datei unter anderem Namen,
ich öffne die Datei erneut , im Stil Editor stehen wieder die alten Fonts und lassen sich nicht ändern,
ich speichere die Datei unter anderem Namen,
ich öffne die datei erneut und alles ist gut?

(ich nutze auch KSICH anstatt speichern falls das einen Unterschied macht)

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Musicus
Mitglied
Staatl. gepr. Techniker


Sehen Sie sich das Profil von Musicus an!   Senden Sie eine Private Message an Musicus  Schreiben Sie einen Gästebucheintrag für Musicus

Beiträge: 590
Registriert: 26.07.2005

AutoCAD 2017
Linear, CATS
Windows 7 Pro

erstellt am: 11. Aug. 2017 12:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Test_Schriftarten.dxf

 
Fast, alles gut am Ende nicht, aber ich kann dann wieder die Textstile bearbeiten.

Für die Textstile ist Arial eingestellt (hier beim verbliebenen ERSTELLTER_STIL_3). Nach dem Lisp steht der auf isocp, nach Regenerieren sieht der Text auch so aus.
Speichern, schließen, wieder öffnen, es ist wieder Arial eingestellt, nicht änderbar.
Erneut speichern, schließen und wieder öffnen, es ist immer noch Arial eingestellt, kann jetzt aber wieder geändert werden.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 17748
Registriert: 14.06.2002

System: F1
und Google

erstellt am: 11. Aug. 2017 13:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Musicus 10 Unities + Antwort hilfreich

Mir ist zwar spontan die Funktionalität vom AutoCAD diesbezüglich nicht bekannt,
aber die Lösung ist: Deine Textstile haben den Arial-Font NICHT per gc3 erhalten,
sondern über einen ACAD-xdata Eintrag (der gc3 ist leer "").

Acad repariert die datei anscheinend nach eigenem ermessen in diesem Fall.
Ich wüßte gerne wie es dazu kam, ich tippe auf eine Fontersetzung oder ähnliches,
aber derzeit fehlt mir die Muße dafür.

Lösung:
Prüfen ob gc leer ist, falls ja, xdaten prüfen, falls ja, die entsprechenden Einträge löschen.
Und den neuen Stil dann in gc3 schreiben.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 211
Registriert: 15.07.2011

AC2016
Windows10

erstellt am: 12. Aug. 2017 11:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Musicus 10 Unities + Antwort hilfreich

Und so ?
Code:
(while (setq STILDEF (tblnext "STYLE" (not STILDEF)))
  (setpropertyvalue
    (tblobjname "STYLE" (cdr (assoc 2 STILDEF)))
    "FileName"
    "isocp.shx"
  )
)

------------------
Gruß Wolfgang

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Musicus
Mitglied
Staatl. gepr. Techniker


Sehen Sie sich das Profil von Musicus an!   Senden Sie eine Private Message an Musicus  Schreiben Sie einen Gästebucheintrag für Musicus

Beiträge: 590
Registriert: 26.07.2005

AutoCAD 2017
Linear, CATS
Windows 7 Pro

erstellt am: 15. Aug. 2017 09:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Wolfgang,

das funktioniert, ich habe es jetzt mit mehreren Plänen durchgetestet.
Nur das Warum erschließt sich mir noch nicht. Aber das kann ich ja mal in Ruhe auseinander pflücken, wenn ich mal etwas mehr Zeit habe.

Erstmal auch im Namen der Kollegen (die das jetzt nicht mehr von Hand machen müssen) vielen Dank.

Gruß,
Musicus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2017 CAD.de