| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | FMB 2025, eine Veranstaltung am 04.11.2025
|
Autor
|
Thema: VBA: Schriftgröße d. Dokumentenschriftart ändern (2347 mal gelesen)
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...

 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 / zitieren --> Unities abgeben:         
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 ObjectDim 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
    
 Beiträge: 1764 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 / zitieren --> Unities abgeben:          Nur für KMassler
|
HenryV Mitglied Konstrukteur, Engineering
  
 Beiträge: 817 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 / zitieren --> Unities abgeben:          Nur für KMassler
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...

 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 / zitieren --> Unities abgeben:         
|

| |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)

 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 / zitieren --> Unities abgeben:          Nur für KMassler
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 |