| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | |  | SolidWorks Kurs mit IHK-Zertifzierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
|
|
Autor
|
Thema: Mit API den Projektionstyp ändern (759 / mal gelesen)
|
BranscheidGmbh Mitglied Dipl. Ing.

 Beiträge: 58 Registriert: 15.01.2016 Solidworks Professional 2023 SP 5
|
erstellt am: 09. Feb. 2024 18:33 <-- editieren / zitieren --> Unities abgeben:         
Guten Abend allerseits  ich habe mich gerade längere Zeit mit CHATGPT darüber "unterhalten", wie man per API den "Projektionstyp" einer Zeichnung auf "erster Winkel" setzen kann - leider erfolglos. Vermutlich kann mir ein Mensch da besser weiter helfen ? Dann kann ich mit diesem Makro mehrere Zeichnungen durchlaufen und entsprechend anpassen/aufräumen. Schon mal Danke im Voraus !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Tide Ehrenmitglied V.I.P. h.c. -

 Beiträge: 5047 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 10. Feb. 2024 12:05 <-- editieren / zitieren --> Unities abgeben:          Nur für BranscheidGmbh
Zitat: Original erstellt von BranscheidGmbh: Vermutlich kann mir ein Mensch da besser weiter helfen ? 
Hallo BGmbH, Du kannst Dir wahrscheinlich am besten selbst helfen. Mit der Aufzeichnung eines Macros bekomme ich mit SWX2022: Code: ' ****************************************************************************** ' C:\Users\HP\AppData\Local\Temp\swx7096\Macro1.swb - macro recorded on 02/10/24 by HP ' ****************************************************************************** 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 boolstatus = Part.SetupSheet5("Blatt2", 12, 12, 1, 2, False, "t:\001_vorlagen\a3_tide-swx2021.slddrt", 0.42, 0.297, "Standard", False) End Sub
...und SetupSheet5 in die API-Web-Hilfe eingegeben führt über obsolete zu SetupSheet6. In der Beschreibung des Befehls siehst Du, dass der sechste Parameter (boolean) für die Umstellung verantwortlich zeichnet. Das für mehrere Zeichnungen aufzurufen und gegebenfalls für jedes Blatt separat umzustellen ist wahrscheinlich auch keine große Sache. Die Hinweise hierzu findest Du hier im Forum. Weitere Tipps (wenn Du das nicht schon von der KI gelernt hast ): StefanBerlitz PAC4SWX, DPS-JobBox... HTH Ralf
------------------
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
BranscheidGmbh Mitglied Dipl. Ing.

 Beiträge: 58 Registriert: 15.01.2016 Solidworks Professional 2023 SP 5
|
erstellt am: 12. Feb. 2024 11:24 <-- editieren / zitieren --> Unities abgeben:         
Danke Ralf. Ich habe mal Deinen Makrovorschlag verfeinert, denn es müssen ja noch u.a. der Blattformatname mit angegeben werden. ================================================== Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swDraw As SldWorks.DrawingDoc Dim swSheet As SldWorks.Sheet Dim vSheetNames As Variant Dim bRet As Boolean Dim i As Long Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swDraw = swModel Set swSheet = swDraw.GetCurrentSheet Dim Filenam As String Dim Sheet As String FileName = swModel.GetPathName Sheet = swSheet.GetName vSheetNames = swDraw.GetSheetNames For i = 0 To UBound(vSheetNames) Dim Maßstab As String Dim CurrentSheet As Variant Dim vSheetProps As Variant Set CurrentSheet = Application.SldWorks.ActiveDoc.GetCurrentSheet vSheetProps = CurrentSheet.GetProperties Dim papersize As String Dim templatein As String Dim scale1 As String Dim Scale2 As String Dim firstAngle As String Dim Width As String Dim Height As String papersize = vSheetProps(0) templatein = vSheetProps(1) scale1 = vSheetProps(2) Scale2 = vSheetProps(3) firstAngle = CBool(vSheetProps(4)) Width = vSheetProps(5) Height = vSheetProps(6) templatename = swSheet.GetTemplateName '### False -> dritter Winkel '### True -> erster Winkel boolstatus = Part.SetupSheet5(vSheetNames(i), papersize, templatein, scale1, Scale2, True, templatename, Width, Height, "Standard", False) Next i End Sub '### Get and Set Sheet Properties Example (VBA) '### https://help.solidworks.com/2022/english/api/sldworksapi/get_and_set_sheet_properties_example_vb.htm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |