Hot News:

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
HEDELIUS Hausmesse 2024
Autor Thema:  VBA: Schriftgröße d. Dokumentenschriftart ändern (1983 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: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

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: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

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: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

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: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

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