| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
Autor
|
Thema: neues Makro - configPropChange-2 (3104 mal gelesen)
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2544 Registriert: 02.10.2006 Firma: SW 2021-5.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2021-5.1 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 21. Jan. 2018 16:59 <-- editieren / zitieren --> Unities abgeben:         
Hallo, einige von euch kennen sicherlich dieses Makro von Thomas Weith und Dieter Loistl aus der Makro-Tauschbörse von Stefan. siehe hier: http://ww3.cad.de/foren/ubb/Forum2/HTML/002266.shtml http://solidworks.cad.de/mm_boerse.htm Ich wollte dieses Makro letzte Woche mal wieder einsetzen und bin ebenfalls darüber gestolpert, dass die Einträge bei Beschreibung: gelöscht werden. Auch auf diverse andere Probleme bin ich gestoßen, und da Thomas keine Zeit mehr hat sich darum zu kümmern, habe ich dieses Makro jetzt deutlich überarbeitet. Die meisten Probleme dürften behoben sein, hoffentlich. Da sich der Code um einiges geändert hat, habe ich für dieses Makro einen eigenen Beitrag eröffnet, um auch gezielt hier Fragen beantworten zu können. Ich weise hier ausdrücklich auf die Urheberschaft von Thomas und Dieter hin. Ich möchte mich nicht mit fremden Federn schmücken, helfe hier aber gerne weiter, wenn ich kann. Auf ein Problem bin ich gestoßen, welches schon beim alten Makro bestand. Die Funktion Neue Komponenten ausblenden im Anzeigestatus lässt sich zwar setzen, aber nicht mehr zurücksetzen. Ich vermute da einen Bug in der API. Kann das jemand bestätigen oder mir einen Hinweis geben, wie das evtl. funktionieren könnte? Falls das tatsächlich ein Bug ist, würde ich den an meine Hotline melden. So, nun testet mal wie immer und gebt mir entsprechende Rückmeldungen. Ich habe das mit SW2017 und SW2018 getestet. Grüße, und einen schönen Wochenanfang euch allen, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2770 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 22. Jan. 2018 08:54 <-- editieren / zitieren --> Unities abgeben:          Nur für Andi Beck
Hallo Andi, ich bekomme hier nur das Feedback von SWX , dass die Funktion des Ausblendens von Komponenten wohl nicht mehr in den Konfigurationseinstellungen ist, daher habe ich hier keine Auswirkungen egal ob ich den Haken setze oder nicht. Habe aber jetzt auch noch an keiner anderen Position eine Einstellung dazu gefunden.
Ich könnte mir vorstellen das mit der Meldung gemeint ist, dass der Haken jetzt bei dem Anzeigestatus zu setzen ist, aber wie mann da über die API hinkommt habe ich noch nicht rausgefunden. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  [Diese Nachricht wurde von bk.sc am 22. Jan. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eman1 Mitglied Maschinenbau Ingenieur

 Beiträge: 33 Registriert: 22.02.2007 SW 2016 SP4, WIN 7 X64, NVIDIA K2000D, INVENTOR 2010, PAC4SW, TOTAL COMMANDER 8.51
|
erstellt am: 22. Jan. 2018 11:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Andi Beck
Vielleicht hilft das For option swConfigOption_SuppressByDefault you use call Configuration.SuppressNewFeatures to find out what it is set at. For option swConfigOption_HideByDefault you use call Configuration.HideNewComponentModels to find out what it is set at. Mit SW API Help 2017 '----------------------------------------------------------- ' Preconditions: ' 1. Open a part that contains one or more configurations. ' 2. Open the Immediate window. ' ' Postconditions: ' 1. Changes the source for the part number and displays XXXX ' as the part number in each configuration's Bill of Materials. ' 2. Examine the Immediate window. '------------------------------------------------------------ Option Explicit Dim swApp As SldWorks.SldWorks Dim Part As SldWorks.PartDoc Dim Doc As SldWorks.ModelDoc2 Dim SelMgr As SldWorks.SelectionMgr Function BOMPartNumber(config As SldWorks.Configuration, document As SldWorks.ModelDoc2) As String Select Case config.BOMPartNoSource Case SwConst.swBOMPartNumberSource_e.swBOMPartNumber_ConfigurationName BOMPartNumber = config.Name Case SwConst.swBOMPartNumberSource_e.swBOMPartNumber_DocumentName BOMPartNumber = document.GetTitle Case SwConst.swBOMPartNumberSource_e.swBOMPartNumber_UserSpecified BOMPartNumber = config.AlternateName Case SwConst.swBOMPartNumberSource_e.swBOMPartNumber_ParentName Dim parentConfig As SldWorks.Configuration Set parentConfig = config.GetParent If parentConfig.BOMPartNoSource = SwConst.swBOMPartNumberSource_e.swBOMPartNumber_ParentName Then BOMPartNumber = BOMPartNumber(parentConfig, document) Else BOMPartNumber = parentConfig.Name End If End Select End Function Function InspectConfigurations(Doc As SldWorks.ModelDoc2) Dim params As Variant params = Doc.GetConfigurationNames Dim vName As Variant Dim Name As String Dim thisConfig As Configuration For Each vName In params Name = vName Set thisConfig = Doc.GetConfigurationByName(Name) Debug.Print "Name ", thisConfig.Name ' Work out what the BOM part number is based on any derived configurations Debug.Print "BOMPartNumber ", BOMPartNumber(thisConfig, Doc) Debug.Print "AlternateName ", thisConfig.AlternateName Debug.Print "Comment ", thisConfig.Comment Debug.Print "Description ", thisConfig.Description Debug.Print "HideNewComponentModels ", thisConfig.HideNewComponentModels Debug.Print "Lock ", thisConfig.Lock Debug.Print "ShowChildComponentsInBOM ", thisConfig.ShowChildComponentsInBOM Debug.Print "UseAlternateNameInBOM ", thisConfig.UseAlternateNameInBOM Debug.Print "SuppressNewComponentModels", thisConfig.SuppressNewComponentModels Debug.Print "SuppressNewFeatures ", thisConfig.SuppressNewFeatures Debug.Print "------------------------------------------------------------------" Next vName End Function Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set Doc = Part Set SelMgr = Doc.SelectionManager Call InspectConfigurations(Doc) Dim params As Variant params = Doc.GetConfigurationNames Dim vName As Variant Dim Name As String Dim thisConfig As Configuration Debug.Print "Modifying the configurations..." For Each vName In params Name = vName Set thisConfig = Doc.GetConfigurationByName(Name) Debug.Print "Name ", thisConfig.Name thisConfig.BOMPartNoSource = swBOMPartNumber_UserSpecified thisConfig.AlternateName = "XXXX" thisConfig.UseAlternateNameInBOM = True thisConfig.AlternateName = "XXXX" Next vName Debug.Print "------------------------------------------------------------------" Call InspectConfigurations(Doc) End Sub Vielleicht so
Option Explicit 02.Sub main() 03. Dim swApp As SldWorks.SldWorks 04. Dim swModel As SldWorks.ModelDoc2 05. Dim vConfNameArr As Variant 06. Dim sConfigName As String 07. Dim i As Long 08. 09. Set swApp = Application.SldWorks 10. Set swModel = swApp.ActiveDoc 11. 12. vConfNameArr = swModel.GetConfigurationNames 13. For i = 0 To UBound(vConfNameArr) 14. sConfigName = vConfNameArr(i) 15. swModel.ShowConfiguration2 sConfigName 16. swModel.EditConfiguration3 sConfigName, sConfigName, "", "", swConfigurationOptions2_e.swConfigOption_HideByDefault 17. Next i 18. End Sub [Diese Nachricht wurde von Eman1 am 22. Jan. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ahop Mitglied Konstrukteur

 Beiträge: 10 Registriert: 10.10.2017
|
erstellt am: 22. Jan. 2018 12:18 <-- editieren / zitieren --> Unities abgeben:          Nur für Andi Beck
Hallo Andy Bei läuft es einwandfrei, allerdings werden die Einstellungen für die Verwendung in der Stückliste immer auf "Dokumentenname" geändert. Ich benötige aber zum 90% "Konfigurationsname". Kann es im Makro korrigiert, oder wie die "Erweiterte Optionen" wählbar gemacht werden? ------------------ Andrej Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2544 Registriert: 02.10.2006 Firma: SW 2021-5.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2021-5.1 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 22. Jan. 2018 21:21 <-- editieren / zitieren --> Unities abgeben:         
@Andrej danke für die Rückmeldung und ich konnte dieses Verhalten nachvollziehen. habe das jetzt korrigiert und das müsste jetzt so bleiben, wie es vorher eingestellt war. Nimm das neue Makro vom 22.01.2018 Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2544 Registriert: 02.10.2006 Firma: SW 2021-5.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2021-5.1 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 22. Jan. 2018 21:46 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Eman1:
16. swModel.EditConfiguration3 sConfigName, sConfigName, "", "", swConfigurationOptions2_e.swConfigOption_HideByDefault '
@Eman, danke für deine Ausführungen. Wenn du meinen Code genauer angeschaut hättest, dann wäre dir aufgefallen, dass ich bereits den Befehl swModel.EditConfiguration3 verwende. Für die Einstellung swConfigurationOptions2_e.swConfigOption_HideByDefault wird ein Wert von 8 bzw. 0 verwendet. Siehe beiliegendes Bild. Du hast schon recht, diese Position steuert die von mir reklamierte Einstellung "Neue Komponenten ausblenden". Setze ich die 8, wird auch brav das Häkchen bei den Anzeigestatus gesetzt. Möchte ich den Haken wieder zurücksetzen, müsste die gesetzte 0 das tun, macht es aber nicht. Und das ist hier die Frage, warum nicht? Bei den anderen beiden Einstellungen (4 bzw. 0 und 16 bzw. 0) funktioniert das hin und her Problemlos. Im nächsten Beitrag ergänze ich noch etwas die Problematik und schildere meine momentanen Änderungen. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2544 Registriert: 02.10.2006 Firma: SW 2021-5.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2021-5.1 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 22. Jan. 2018 22:12 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von bk.sc:
Ich könnte mir vorstellen das mit der Meldung gemeint ist, dass der Haken jetzt bei dem Anzeigestatus zu setzen ist, aber wie mann da über die API hinkommt habe ich noch nicht rausgefunden.
Hallo Bernd, ich habe auch etwas Suchen müssen, wo da die Veränderung stattfindet, und ja, bei den Eigenschaften der Anzeigestatus findest du den Haken. Und wie ich einen Beitrag weiter oben beschrieben habe, weiß ich auch, wie der gesetzt wird. (siehe oben) Aber er wird nicht zurückgesetzt und man muss das momentan von Hand machen. Im alten Makro wurde noch der alte Befehl swModel.EditConfiguration verwendet. Da der Obsolete gesetzt wurde, habe ich ihn durch swModel.EditConfiguration3 ersetzt. Das Problem bei diesem Befehl ist, dass man alle 9 Optionen bedienen sollte, wenn man verhindern möchte, dass einzelne Optionen auf Standard zurückgesetzt werden. Siehe den Beitrag von Andrej. Ich habe diesen Befehl entfernt und spreche die einzelnen Optionen jetzt direkt an. Für das Problemkind gilt jetzt folgendes: Code: If CheckBox3.value = True Then thisConfig.HideNewComponentModels = True Else thisConfig.HideNewComponentModels = False End If
Und auch hier wiederholt sich die Problematik. Mit True kann ich das Häkchen setzen, aber es lässt sich mit False nicht zurücksetzen. Bei den anderen Optionen funktioniert das Wunderbar. Und da wiederhole ich meine Frage, ist das ein Bug? Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2544 Registriert: 02.10.2006 Firma: SW 2021-5.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2021-5.1 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 06. Feb. 2018 20:47 <-- editieren / zitieren --> Unities abgeben:         
Hallo, das Geheimnis ist gelüftet. Nach dem sich hier keine Lösung abzeichnete, habe ich mich an das API-Forum von SolidWorks gewandt. Dort hat sich dann der Vorhang geöffnet. Meine Vermutung, dass es sich um eine Option bei den Anzeigestatus handelt, hat sich nicht bestätigt. Das dortig gesetzte Häkchen ist eher ein Ableger von dem eigentlichen. Schaut euch die beiden Bilder an, und ihr werdet sehen, dass die gesuchte Option Neue Komponenten ausblenden im ersten Bild nicht vorhanden ist. Dieses war bei mir immer verborgen und man muss es mit einem Trick sichtbar machen. Wie das geht, könnt ihr hier im Beitrag von Artem sehen. https://forum.solidworks.com/thread/216152 Nachdem diese Option sichtbar wurde, konnte ich die ordentliche Funktion des Makros feststellen. Das Häkchen lässt sich setzten und auch wieder zurücksetzen, wie gewünscht. Dieses Ausblenden dieser Option habe ich unserer Hotline gemeldet, die erst sehr überrascht war, dann aber das bestehende SPR854728 dazu fand. Ich habe mich da jetzt drangehängt und wer dies ebenfalls für nötig befindet, darf dies gerne auch tun. Dann kann ich mich jetzt beruhigt an weitere Änderungen des Makros ran wagen. Ich habe da noch eine Idee. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2544 Registriert: 02.10.2006 Firma: SW 2021-5.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2021-5.1 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 23. Aug. 2019 08:08 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Andi Beck:
Ich habe da noch eine Idee.
Hallo, hat jetzt doch eine Weile gedauert, aber hier ist eine neue Version. ' Änderungsindex: '- - - - - - - - - - - - - ' ConfigPropChange_2.1.0 - 22.08.2019 ' Option "Markierung für Neuaufbau bei Speicherung" hinzugefügt ' Alle Optionen können nun individuell aktiviert bzw. deaktiviert werden ' Button "Ende" mit "Unload Me" hinzugefügt '- - - - - - - - - - - - - Die Version habe ich mit SW2018 und SW2019 getestet. Schaut es euch an und gebt mir evtl. eine Rückmeldung. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2544 Registriert: 02.10.2006 Firma: SW 2021-5.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2021-5.1 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 14. Feb. 2023 15:28 <-- editieren / zitieren --> Unities abgeben:         
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist!
Zitat: Original erstellt von Andi Beck:
Dieses Ausblenden dieser Option habe ich unserer Hotline gemeldet, die erst sehr überrascht war, dann aber das bestehende SPR854728 dazu fand. Ich habe mich da jetzt drangehängt und wer dies ebenfalls für nötig befindet, darf dies gerne auch tun.
Hallo, von SolidWorks habe ich die Mitteilung erhalten, dass dieses SPR854728 mit SolidWorks 2023 behoben sein soll. Getestet habe ich es noch nicht. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |