Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VBA: Schriftgröße d. Dokumentenschriftart ä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:   VBA: Schriftgröße d. Dokumentenschriftart ändern (1211 mal gelesen)
KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2631
Registriert: 06.11.2000

erstellt am: 24. Nov. 2015 12:15    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

Hi,

ich habe mal wieder ein API-Problem.
Ich muss in mehreren Zeichnungen die Schriftgöße der Dokumentenschriftart verändern, dazu möchte ich mich natürlich eines Makros bedienen.
Ich habe mir die Vorgehensweise mit dem Makrorecorder aufgezeichnet, sieht richtig aus, läuft durch und ändert die Schriftgröße der Dokumentenschriftart- soweit so gut.

Das Problem: die vorhandenen Texte interessiert das überhaupt nicht. Obwohl die Option "Schriftart des Dokuments" aktiv ist, bleiben die, wie sie sind. In den Dokumentenoptionen (Systemoptionen-Dokumenteneigenschaften-Entwurfnorm-Beschriftungen-Schriftart)ist eindeutig zu sehen, dass die veränderte Einstellung drin steht.

Erst wenn ich die Einstellung in den Dokumentenoptionen händisch hin- und her-verändere, wird diese Veränderung auf der Zeichnung dargestellt.

Ich hoffe, ich habe mich klar ausgedrückt 

Hier ist Code, wie er im Prinzip vom Macrorecorder ausgespuckt wurde:

Code:
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myTextFormat As Object

'Beschriftungen
Set myTextFormat = Part.Extension.GetUserPreferenceTextFormat(swUserPreferenceTextFormat_e.swDetailingAnnotationTextFormat, 0)
myTextFormat.CharHeight = 0.01
boolstatus = Part.Extension.SetUserPreferenceTextFormat(swUserPreferenceTextFormat_e.swDetailingAnnotationTextFormat, 0, myTextFormat)
End Sub


0.01 ist die Schrifthöhe 10mm, die ich hier testweise verwendet habe.
Das selbe Problem tritt auch bei der Bemaßungsschriftart auf.

Hat das vielleicht schon mal jemand gelöst?

------------------
Klaus

www.al-ko.com | mein Gästebuch

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

nahe
Ehrenmitglied



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

Beiträge: 1542
Registriert: 18.01.2001

arbeite mit:
HP Z440 Workstation
Xenon (12-Kern) 3.5GHz
32GB RAM
238GB SSD
------------------------
SWX-2016 SP5.0
DBWorks-R15 SP2.17
----------------
Windows 7 64 bit
----------------
VB
VBA
Lotus Notes Datenbanken
erste Schritte mit Swift

erstellt am: 24. Nov. 2015 12:27    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 KMassler 10 Unities + Antwort hilfreich

Hallo Klaus

blöde Frage, ist ev. ein Rebuild notwendig?

------------------
Grüße
Heinz

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 698
Registriert: 18.05.2005

SolidWorks 2018 x64 SP4.0
Dell T3600 Workstation
Intel XENON 6x3.2 GHz
NVIDIA Quadro 4000 2 GB
16GB RAM
2x Dell U2412M, 24" TFT
Windows 7 Professional x64 SP1
Microsoft Office Pro 2010 SP2
Kaspersky Anti-Virus 10.2.4.674
Microsoft VB 2010 Express
SpacePilot von 3Dconnexion

erstellt am: 24. Nov. 2015 14:58    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 KMassler 10 Unities + Antwort hilfreich

Hallo Klaus

Durch deinen Code, wird nur die oberste Ebene, also in "Beschriftungen", geändert.
Wenn du das von Hand machst ändert SolidWorks auch die unteren Ebenen (Stücklistensymbole, Bezüge, usw.)

Mein Vorschlag wäre eine Globale Zeichnungsnorm zu erstellen, und diese dann per Makro zuzuweisen.

Code:
bRet = swModel.Extension.LoadDraftingStandard("C:\SWX-DraftingStandards\MyNewStandards.sldstd")

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2631
Registriert: 06.11.2000

erstellt am: 24. Nov. 2015 17:09    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

Danke!
Das war mal wieder die rettende Idee 

Seit wann gibt's denn diese Möglichkeit, Zeichnungsstandards zu speichern und zu laden?
Anders ausgedrückt: Wie lange habe ich das schon wieder verschlafen? 

------------------
Klaus

www.al-ko.com | mein Gästebuch

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 25. Nov. 2015 07: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 KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,

nur kurz zu der ursprünglichen Frage: ich vermute, dass es mit dem Setzen in (Milli)Metern bei dem Font nicht geklappt hat, weil die Höhe als "in Pixel" definiert ist. Dafür gibt es bei den Textformaten noch die Eigenschaft IsHeightSpecifiedInPts und die dazu passenden Methode TextFormat.CharHeightInPts . Falls es für jemanden von Interesse ist in meinem uralten Makro SolidWorks MakroMania - Dokumentoptionen kopieren habe ich für Zeichnungen auch das kopieren von den Textstilen mit drin, da ist der Beispielcode drin.

Das Makro habe ich aber auch genau wegen der Entwurfsnormen schon geraume Zeit nicht mehr aktualisiert, das "rüberkopieren" der Dokumentoptionen (landläufig "Vorlage wechseln" genannt   ) geht damit mittlerweile erstaunlich gut. Ich glaube die Entwurfsnormen kamen in der 2010 dazu, waren aber in den ersten zwei Jahren noch nicht so wirklich brauchbar, vielleicht hast du die deswegen wieder aktiv vergessen  

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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)2020 CAD.de | Impressum | Datenschutz