| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | myPDMtools , eine App
|
Autor
|
Thema: Struktiuranzeige in VBA anpassen (628 / mal gelesen)
|
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 13. Jun. 2025 11:59 <-- editieren / zitieren --> Unities abgeben:         
Servus, ich muss gerade meine Makros an sw2024 anpassen. Dabei ist mir was komisches aufgefallen. Ich kann in der Strukturanzeige die Haken einschalten aber nicht mehr ausschalten. Baugruppe Rechtsklick Strukturanzeige, Name und Beschreibung der Komponente, kommt das Menü im Bild. Ich habe es auf Englisch gestellt, damit ich in der API die Komponenten finde. Primary kann ich umschalten, Secondary einschalten, aber nicht mehr ausschalten. Auch wenn ich definitv 0 schreibe. Code: SetComponentIdentifiers(swComponentIdentifier_ComponentName, 0, 0)
Auch wenn ich überall Null schreibe oder sogar "swComponentIdentifier_None" was ja Null ist. Wo ist mein Fehler? Ein Get als Rückgabe habe ich auch nicht gefunden. Falls man wissen will was gesetzt ist. Gruß Andreas [Diese Nachricht wurde von KSAH am 13. Jun. 2025 editiert.]
[Diese Nachricht wurde von KSAH am 13. Jun. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3874 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 13. Jun. 2025 15:02 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
|
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 13. Jun. 2025 15:16 <-- editieren / zitieren --> Unities abgeben:         
Aus SW2021 hat noch alles funktioniert. Ich bin jetzt mit SW2024 unterwegs. Ab 2022 entstand das Fenster siehe oben. Als mein Kunde umstieg hatte ich damals nur die gewissen Befehle ausgeklammert. Aber jetzt muss ich es bei mir hinbekommen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R3vo Mitglied staatl. gepr. Techniker, Konstrukteur
 
 Beiträge: 161 Registriert: 03.11.2021 CAD: SOLIDWORKS 2024 SP5.0 PDM: SpeedyPDM 7.5.7 ------------------------ CPU: Intel Core i7-10700 @ 2.90GHz GPU: NVIDIA Quadro RTX4000 RAM: 64 GB Datenträger: SSD Windows 11 23H2 22631.4460 Windows Feature Experience Pack 1000.22700.1047.0
|
erstellt am: 16. Jun. 2025 08:12 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
Guten Morgen, nachfolgendes Skript funktioniert bei mir. Code:
Sub setupTreeDisplay(swPart As ModelDoc2) If (swPart Is Nothing) Then Exit Sub Dim swFeatMgr As SldWorks.FeatureManager Set swFeatMgr = swPart.FeatureManager swFeatMgr.ShowDisplayStateNames = False swFeatMgr.ShowComponentConfigurationNames = False swFeatMgr.ShowComponentConfigurationDescriptions = False swFeatMgr.ShowComponentNames = True swFeatMgr.ShowComponentDescriptions = True swFeatMgr.SetComponentIdentifiers swComponentIdentifier_ComponentName, swComponentIdentifier_ComponentDescription, swComponentIdentifier_None End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 16. Jun. 2025 14:43 <-- editieren / zitieren --> Unities abgeben:         
Servus, ich verstehe jetzt gar nichts mehr. Das waren die alten Variablen. Die funktuionierten bis SW2021 sehr gut. Ein Kunde von mir hatte mit SW2022 mit Einführung des neuen Formulars massive Problenme. Ich schaltete damals mit einer Abfrage alles ab. Unf jetzt geht es wieder? Wozu wurde die neue Funktion oder oben als Sub eingeführt? Die SolidWorks API ist dermaßen kompliziert. Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R3vo Mitglied staatl. gepr. Techniker, Konstrukteur
 
 Beiträge: 161 Registriert: 03.11.2021 CAD: SOLIDWORKS 2024 SP5.0 PDM: SpeedyPDM 7.5.7 ------------------------ CPU: Intel Core i7-10700 @ 2.90GHz GPU: NVIDIA Quadro RTX4000 RAM: 64 GB Datenträger: SSD Windows 11 23H2 22631.4460 Windows Feature Experience Pack 1000.22700.1047.0
|
erstellt am: 16. Jun. 2025 14:49 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
Zitat: Original erstellt von KSAH: Servus,ich verstehe jetzt gar nichts mehr. Das waren die alten Variablen. Die funktuionierten bis SW2021 sehr gut. Ein Kunde von mir hatte mit SW2022 mit Einführung des neuen Formulars massive Problenme. Ich schaltete damals mit einer Abfrage alles ab. Unf jetzt geht es wieder? Wozu wurde die neue Funktion oder oben als Sub eingeführt? Die SolidWorks API ist dermaßen kompliziert. Andreas
Keine Sorge, bei SWX verstehen die auch so einige Sachen nicht mehr. Ich hab keine Ahnung wie es vorher war, ich habe das Skript erst vor ein paar Monaten mit SWX 2024 eingeführt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 16. Jun. 2025 15:29 <-- editieren / zitieren --> Unities abgeben:         
Ich wollte nur wissen warum die Funktion oder Sub (Wie man es halt schreibt) funktioniert. Einschalten geht, ausschalten nicht mehr. Zum Glück wollte ich alle Haken setzen. Aber was ist wenn alle Haken weg sollen? Erst die alten Valiablen löschen und dann die Funktion aufführen? Ein Witz. "swComponentIdentifier_None" heißt für mich nein. Ich will das nicht. In der Funktion ist jeder Haken ein Bit.
Code: swComponentIdentifier_ConfigurationName + swComponentIdentifier_ComponentDescription + swComponentIdentifier_ConfigurationDescription
schaltet alles ein. Es ist im Prinzip 32+4+64. Ich schakte 3 Bits ein. Und wenn ich die ausschalte müssten auch die Haken verschwinden. Es geht nicht. Es ist ein Witz. Eigentlich müsste der Fehler gemeldet werden. Aber ich weiß nicht wie. [Diese Nachricht wurde von KSAH am 16. Jun. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SLDW-FEM Mitglied Simulations-Ingenieur
  
 Beiträge: 659 Registriert: 21.02.2005 Solidworks 2017+2019+20+22 SpaceClaim Windows 11 64bit HP-ZBook 32gbRAM NVIDIA
|
erstellt am: 16. Jun. 2025 19:14 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
|
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 17. Jun. 2025 09:53 <-- editieren / zitieren --> Unities abgeben:         
Moin, ich bin kein Programierer. ich kenne die Fachbegriffe nicht. Die Liste der Konstanten kenne ich. Daher habe ich meine Informationen. Auch habe ich schon einzelne Bits in einer Variable manipuliert. So kann man mehrere Informationen in einer Variable unterbringen. Sogar ganze Koordinaten kann man in einer Variable verstecken. (Leider gibt es in VBA kein unsignet int oder long. Ans letzte Bit möglichst nicht gehen.) Dieser Code ist auch aus der API Hilfe:
Code: ' Do show configuration or display state name if only one exists swFeatMgr.HideComponentSingleConfigurationOrDisplayStateNames = False ' Set primary identifier compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, 0, 0) Stop compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentDescription, 0, 0) Stop ' Set primary and secondary identifiers compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName, 0) Stop compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationDescription, 0) Stop compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ComponentDescription, 0) Stop 'Set primary, secondary, and tertiary identifiers compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName + swComponentIdentifier_ConfigurationDescription + swComponentIdentifier_ComponentDescription, swComponentIdentifier_DisplayStateName) Stop
DA funktioniert das Einschalten perfekt. wenn ich vorher die Haken manuell eintferne geht es. Nur ich kann nicht ausschalten. Laut Hilfe müsste: Code: SetComponentIdentifiers(swComponentIdentifier_ComponentName, 0, 0)
alle Haken ausschalten und ganz links den oberen Optionbutton ein. Erste Übergabe gibt den primären Wert an, nächste Übergabe den Sekundären Wert. Und wenn ich da Null übergebe will ich keinen Haken stehen haben. Bei der MsgBox funktioniert es doch auch. (VBInformation, VBQuestion usw.) Ich setze ein Bit. Und jedes Bit hat eine andere Bedeutung. Andreas [Diese Nachricht wurde von KSAH am 17. Jun. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R3vo Mitglied staatl. gepr. Techniker, Konstrukteur
 
 Beiträge: 161 Registriert: 03.11.2021 CAD: SOLIDWORKS 2024 SP5.0 PDM: SpeedyPDM 7.5.7 ------------------------ CPU: Intel Core i7-10700 @ 2.90GHz GPU: NVIDIA Quadro RTX4000 RAM: 64 GB Datenträger: SSD Windows 11 23H2 22631.4460 Windows Feature Experience Pack 1000.22700.1047.0
|
erstellt am: 17. Jun. 2025 12:00 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
Zitat: Original erstellt von KSAH: Moin,ich bin kein Programierer. ich kenne die Fachbegriffe nicht. Die Liste der Konstanten kenne ich. Daher habe ich meine Informationen. Auch habe ich schon einzelne Bits in einer Variable manipuliert. So kann man mehrere Informationen in einer Variable unterbringen. Sogar ganze Koordinaten kann man in einer Variable verstecken. (Leider gibt es in VBA kein unsignet int oder long. Ans letzte Bit möglichst nicht gehen.) Dieser Code ist auch aus der API Hilfe:
Code: ' Do show configuration or display state name if only one exists swFeatMgr.HideComponentSingleConfigurationOrDisplayStateNames = False ' Set primary identifier compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, 0, 0) Stop compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentDescription, 0, 0) Stop ' Set primary and secondary identifiers compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName, 0) Stop compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationDescription, 0) Stop compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ComponentDescription, 0) Stop 'Set primary, secondary, and tertiary identifiers compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName + swComponentIdentifier_ConfigurationDescription + swComponentIdentifier_ComponentDescription, swComponentIdentifier_DisplayStateName) Stop
DA funktioniert das Einschalten perfekt. wenn ich vorher die Haken manuell eintferne geht es. Nur ich kann nicht ausschalten. Laut Hilfe müsste: Code: SetComponentIdentifiers(swComponentIdentifier_ComponentName, 0, 0)
alle Haken ausschalten und ganz links den oberen Optionbutton ein. Erste Übergabe gibt den primären Wert an, nächste Übergabe den Sekundären Wert. Und wenn ich da Null übergebe will ich keinen Haken stehen haben. Bei der MsgBox funktioniert es doch auch. (VBInformation, VBQuestion usw.) Ich setze ein Bit. Und jedes Bit hat eine andere Bedeutung. Andreas [Diese Nachricht wurde von KSAH am 17. Jun. 2025 editiert.]
Genau so funktioniert das bei mir auch, gerade getestet.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 18. Jun. 2025 10:59 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Genau so funktioniert das bei mir auch, gerade getestet.
Geht nicht. Eben getestet. Die Haken schalten sich Stück für Stück zu, aber nicht weg. Ich habe das Makro 1:1 aus der Hilfe übernommen. Code: ' Set primary and secondary identifiers compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName, 0) Stop compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationDescription, 0) Stop compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ComponentDescription, 0) Stop
Hier müssten die Haken nach jeden Stop wechseln. Tun sie aber nicht. Einmal eingeschaltet, bleiben diese eingeschaltet. Code: compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, 0, 0)
Das später unten ran gehängt und die Haken bleiben. Jetzt eben gemerkt, sogar der Tertiäre Haken bleibt. Also macht die Funktion nicht das was sie soll. Ganz oben in der API Hilfe war eine Mail Adresse. Ich habe dort hin was geschickt. Mal sehen was passiert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1362 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 18. Jun. 2025 11:54 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
Hi Andreas, Du kannst das auch so steuern und Haken weg nehmen:
Code: Option Explicit Dim swApp As SldWorks.SldWorks Dim Part As SldWorks.ModelDoc2 Dim swFeatMgr As SldWorks.FeatureManager Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set swFeatMgr = Part.FeatureManager swFeatMgr.HideComponentSingleConfigurationOrDisplayStateNames = False swFeatMgr.ShowComponentConfigurationNames = False swFeatMgr.ShowComponentConfigurationDescriptions = False swFeatMgr.ShowComponentNames = True swFeatMgr.ShowComponentDescriptions = False swFeatMgr.ShowDisplayStateNames = False End Sub
Wenn man bei ".SetComponentIdentifiers" einen Eintrag mit 0 entfernen will kommt als Rückgabewert ein Invalid zurück. Da wird da Problem liegen. Gruss, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R3vo Mitglied staatl. gepr. Techniker, Konstrukteur
 
 Beiträge: 161 Registriert: 03.11.2021 CAD: SOLIDWORKS 2024 SP5.0 PDM: SpeedyPDM 7.5.7 ------------------------ CPU: Intel Core i7-10700 @ 2.90GHz GPU: NVIDIA Quadro RTX4000 RAM: 64 GB Datenträger: SSD Windows 11 23H2 22631.4460 Windows Feature Experience Pack 1000.22700.1047.0
|
erstellt am: 18. Jun. 2025 13:42 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
     
 Beiträge: 3372 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 19. Jun. 2025 08:49 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
Zitat: Original erstellt von KSAH: ... Hier müssten die Haken nach jeden Stop wechseln. Tun sie aber nicht. Einmal eingeschaltet, bleiben diese eingeschaltet. ... Also macht die Funktion nicht das was sie soll.
Hallo Aus dem Hinweis, dass es um Bitweise zuweisung geht, (Werte 1,2,4,8,...) und dem Verhalten der Funktion nehme ich mal an, dass die Funktion eine Bitweise "Oder" Verknüpfung des vorhandenen Wertes mit den 3 übergebenen Werten vornimmt. Damit kann man wohl tatsächlich nur bis zu 3 Bits setzten, aber nicht wieder wegnehmen. 1 = 00000001 2 = 00000010 4 = 00000100 8 = 00001000 ... Ich hätte auch eher angenommen, dass der Wert einfach als Summe der übergebenen Parameter gesetzt wird, dann würde es sich wie von dir vermutet verhalten. (Ich meine an anderen Stellen hab ich es eher so gesehen) Wenn der Progammierer genau dieses Verhalten wollte, würde die Funktion das tun, was sie soll...  Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 19. Jun. 2025 09:58 <-- editieren / zitieren --> Unities abgeben:         
Servus, aber wenn ich eine Null übergebe, müssten alle Bits auf Null gesetzt werden. Genau so kenne ich es. Beispiel MsgBox. Da kann man so viel einstellen. Es gibt zum Beispiel viele Bilder. Setze ich die Variable auf Null oder lasse die weg, dann kommt ein Fenster ohne irgendwas. In einer Variable mehrere Informationen ist Standard. Code: Sub SetBit(iTraeger As Integer, iTraegerPos As Integer, bBit As Boolean) If bBit Then If iTraeger Xor iTraegerPos Then iTraeger = iTraeger Or iTraegerPos End If Else If iTraeger And iTraegerPos Then iTraeger = iTraeger Xor iTraegerPos End If End If End SubFunction GetBit(iTraeger As Integer, iTraegerPos As Integer) As Boolean GetBit = CBool(iTraeger And iTraegerPos) End Function
Ich bin kein hauptberuflicher Programmierer. Ich weiß nicht ob es solche Funktionen schon gibt. Aber hier im Code habe ich selbst zwei Bitmanipulationen programmiert. Trägervariable und die Position auf dem Träger zum lesen und schreiben. Auch da wenn ich Null übergebe, will ich Null und nicht den alten Wert erhalten. Das ist unlogisch. Und ja, ich habe mich geärgert. VBA kennt keine binäre Ein und Ausgabe. Nur Hex. die Position: &H0; &H2; &H4; &H8; &H10; &H20; &H40 Beim Experimentieren sieht man nicht, ob man das gewünschte Bit hat. Aber es ist Standard, dass man ganze Zahlen in einem Träger versteckt. Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 19. Jun. 2025 10:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo Christion, Zitat: Du kannst das auch so steuern und Haken weg nehmen: Code:Option Explicit Dim swApp As SldWorks.SldWorks Dim Part As SldWorks.ModelDoc2 Dim swFeatMgr As SldWorks.FeatureManager Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set swFeatMgr = Part.FeatureManager swFeatMgr.HideComponentSingleConfigurationOrDisplayStateNames = False swFeatMgr.ShowComponentConfigurationNames = False swFeatMgr.ShowComponentConfigurationDescriptions = False swFeatMgr.ShowComponentNames = True swFeatMgr.ShowComponentDescriptions = False swFeatMgr.ShowDisplayStateNames = False End Sub Wenn man bei ".SetComponentIdentifiers" einen Eintrag mit 0 entfernen will kommt als Rückgabewert ein Invalid zurück. Da wird da Problem liegen.
Hier schreibst Du wie es vor 2022 war. So wurde es früher gemacht. Als ein Kunde von mir auf 2022 umstieg, musste ich genau diesen Code deaktivieren. Lief das Makro kam die Einstellung durcheinander. Da stand dann 2x die Description drin. Mit 2022 wurde ein neues Fenster und eine neue Funktion geschaffen. Und die kann nur Haken setzen? Da passt was nicht. Besonders es ist nicht dokumentiert. Und im Beispiel zur Funktion setze ich zuerst die Haken einzeln und dann nochmal? Die sind doch schon gesetzt. Warum hat man im Code die Haken nicht abgeschalten und wieder gesetzt? Ich wollte eh alle Haken haben. Mir ging es nur um, was ist wenn. Das Makro setzt alles auf meinen Standard. Egal woher die Daten kommen. Mir ging es nur um die Unlogik Haken setzen zu können aber nicht mehr wegnehmen zu können. Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1362 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 20. Jun. 2025 11:37 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
|
wybren Mitglied Maschinenbau Techniker

 Beiträge: 37 Registriert: 19.06.2009 Solidworks 2024SP5
|
erstellt am: 24. Jun. 2025 11:15 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
Hallo zusammen, folgender Code setzt die Haken nicht zurück. Code:
Option ExplicitDim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swFeatMgr As SldWorks.FeatureManager Dim result As swSetComponentIdentifierResult_e Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swFeatMgr = swModel.FeatureManager result = swFeatMgr.SetComponentIdentifiers( _ swComponentIdentifier_ComponentName, _ swComponentIdentifier_None, _ swComponentIdentifier_None) Debug.Print result 'Immer 6 (zumindest bei mir am Rechner) End Sub
Mit folgendem Code kann ich das in SWX2024SP5 aber Problemlos umschalten. Code:
Option ExplicitDim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swFeatMgr As SldWorks.FeatureManager Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swFeatMgr = swModel.FeatureManager Debug.Print swFeatMgr.ShowComponentNames Debug.Print swFeatMgr.ShowComponentDescriptions Debug.Print swFeatMgr.ShowComponentConfigurationNames If swFeatMgr.ShowComponentConfigurationNames Then swFeatMgr.ShowComponentConfigurationNames = False Else swFeatMgr.ShowComponentConfigurationNames = True End If Debug.Print swFeatMgr.ShowComponentConfigurationDescriptions If swFeatMgr.ShowComponentConfigurationDescriptions Then swFeatMgr.ShowComponentConfigurationDescriptions = False Else swFeatMgr.ShowComponentConfigurationDescriptions = True End If Debug.Print swFeatMgr.ShowDisplayStateNames If swFeatMgr.ShowDisplayStateNames Then swFeatMgr.ShowDisplayStateNames = False Else swFeatMgr.ShowDisplayStateNames = True End If End Sub
------------------ Freundliche Grüße Bernd Homepage: solidworks.berndhornemann.de YouTube: https://www.youtube.com/@SWMP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Solidwörker Mitglied Konstrukteur

 Beiträge: 10 Registriert: 20.09.2012 SWX 2024 SP5 Win11 64bit SolidWorks PDM HP Z4 Intel Xeon W-2225 32GB RAM Nvidia Quadro RTX4000
|
erstellt am: 26. Jun. 2025 08:46 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
Hallo zusammen, jetzt muss ich hier meine „Erfahrung“ zu diesem Thema teilen. Dazu muss ich sagen, dass ich kein VBA-Profi bin, sondern nur so nebenbei etwas VBA programmiere. Zum Speichern von unseren CAD-Daten benutzen wir ein Makro. Hier werden verschiedenste, vom Benutzer eingegebene, Dokumenteigenschaften auf Plausibilität geprüft. Bei älteren 3D Modell sind unter Strukturanzeige die Sekundäre Komponentenbeschreibung und teritäre Anzeigestatusname aktiviert. Mit dem Speicher-Makro sollen die Häkchen entfernt werden, sodass nur noch der Komponentenname und Sekundär der Konfigurationsname angezeigt wird. Unter SWX 2024 SP4.0 haben folgende Befehle einwandfrei funktioniert. swFeatMgr.ShowComponentDescriptions = False swFeatMgr.ShowDisplayStateNames = False Nach dem Update von auf SWX 2024 SP5.0 funktionierte davon nur noch swFeatMgr.ShowDisplayStateNames = False Die Komponentenbeschreibung wird bei uns mit den folgenden Befehlen in SWX 2024 SP5.0 nicht entfernt. swFeatMgr.ShowComponentDescriptions = False swFeatMgr.SetComponentIdentifiers swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName, swComponentIdentifier_None value = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName, swComponentIdentifier_None) value = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName, 0) Als Rückgabewert value wird „4“ ausgeben, also „swSetComponentIdentifierResult_InvalidTertiary“. Selbst mit dem Befehl aus der API-Hilfe erhalte ich eine 4 als Rückgabewert, die Häkchen werden jedoch richtig gesetzt. https://help.solidworks.com/2024/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IFeatureManager~SetComponentIdentifiers.html?verRedirect=1 value=swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName + swComponentIdentifier_ConfigurationDescription + swComponentIdentifier_ComponentDescription, swComponentIdentifier_DisplayStateName) Hier scheint irgendwo etwas im Argen zu sein. Viele Grüße [Diese Nachricht wurde von Solidwörker am 26. Jun. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
R3vo Mitglied staatl. gepr. Techniker, Konstrukteur
 
 Beiträge: 161 Registriert: 03.11.2021 CAD: SOLIDWORKS 2024 SP5.0 PDM: SpeedyPDM 7.5.7 ------------------------ CPU: Intel Core i7-10700 @ 2.90GHz GPU: NVIDIA Quadro RTX4000 RAM: 64 GB Datenträger: SSD Windows 11 23H2 22631.4460 Windows Feature Experience Pack 1000.22700.1047.0
|
erstellt am: 26. Jun. 2025 08:58 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
|
ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
    
 Beiträge: 1501 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 26. Jun. 2025 09:59 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
Moin, Zitat: Original erstellt von Solidwörker: ...Unter SWX 2025 SP4.0 haben folgende Befehle einwandfrei funktioniert. ... Nach dem Update von auf SWX 2025 SP5.0 funktionierte davon nur noch ... Die Komponentenbeschreibung wird bei uns mit den folgenden Befehlen in SWX 2025 SP5.0 nicht entfernt.
Da bist du deiner Zeit aber weit voraus Ich denke, du bist mit SWX 2024 unterwegs... ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 26. Jun. 2025 10:01 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Hat sich denn irgendeiner mal beim seinem Reseller gemeldet, was sagen die dazu?
Ich habe in der API Hilfe über die Mail Adresse ganz oben SolidWorks kontaktiert. Nur eine automatiche Antwort erhalten. Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Solidwörker Mitglied Konstrukteur

 Beiträge: 10 Registriert: 20.09.2012 SWX 2024 SP5 Win11 64bit SolidWorks PDM HP Z4 Intel Xeon W-2225 32GB RAM Nvidia Quadro RTX4000
|
erstellt am: 26. Jun. 2025 10:45 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
|
Solidwörker Mitglied Konstrukteur

 Beiträge: 10 Registriert: 20.09.2012 SWX 2024 SP5 Win11 64bit SolidWorks PDM HP Z4 Intel Xeon W-2225 32GB RAM Nvidia Quadro RTX4000
|
erstellt am: 27. Jun. 2025 13:22 <-- editieren / zitieren --> Unities abgeben:          Nur für KSAH
Durchzufall habe ich herausgefunden wie in SWX  2024 SP5 unter (Sekundär) die „Komponentenbeschreibung“ deaktiviert werden kann. Das beschriebene Deaktivieren des „Anzeigestatusname“ unter (<Tertiär> ) ist davon unabhängig, aber bei uns erforderlich. Die Bilder zeigen wie man vom Istzustand über den Zwischenschritt zum Sollzustand kommt. Mit folgendem Befehl wird der „Anzeigestatusname“ deaktiviert. swFeatMgr.ShowDisplayStateNames = FalseProblem: folgende Codes zum Deaktivieren der sekundären „Komponentenbeschreibung“ funktionieren mit SWX 2024 SP5 nicht: swFeatMgr.ShowComponentDescriptions = False value =swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, swComponentIdentifier_ConfigurationName, 0) Lösung mit folgendem Code: value = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentDescription, 0, 0) value = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, 0, 0) Mit der ersten Zeile wird die Primäre Ansicht auf "Komponentenbeschreibung" umgestellt. Dabei wird unter (Sekundär) die „Komponentenbeschreibung“ deaktiviert. Mit der zweiten Zeile wird die Primäre Ansicht wieder auf „Komponentenname“ zurückgestellt. Unter (Sekundär) bleibt die „Komponentenbeschreibung“ dann deaktiviert. Grüße und ein schönes Wochenende [Diese Nachricht wurde von Solidwörker am 27. Jun. 2025 editiert.] [Diese Nachricht wurde von Solidwörker am 27. Jun. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KSAH Mitglied Freiberufler
 
 Beiträge: 230 Registriert: 18.06.2015 SolidWorks 2010 bis 2024
|
erstellt am: 03. Jul. 2025 10:12 <-- editieren / zitieren --> Unities abgeben:         
Servus, meine Anfrage wurde inzwischen von SWX geschlossen. Es soll das Problem beseitigt worden sein.
Zitat: BR10000390623 in 2025 SP1.2.
Ich habe SWX2025 nicht auf dem Rechner. ich kann es nicht prüfen Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |