| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Lösen anspruchsvoller Kontaktsimulationen mit der 3DEXPERIENCE® Plattform |
Autor
|
Thema: Konfigurationsspezifische Eigenschaften aktualisieren (4135 mal gelesen)
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 21. Dez. 2012 09:33 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wir stellen derzeit auf SWX um und führen ein PDM System mit ERP-Kopplung ein. Ich habe nun schon viele Standardteile mit Konfigurationen in SWX erstellt, diese haben konfigurationsspezifische Eigenschaften die sich auf Maße beziehen, nun habe ich das Problem, dass die Eigenschaftswerte nicht aktualisiert sind wenn die einzelnen Konfigurationen nicht aktiviert und aktualisiert worden sind. Diese aktualisierten Werte werden aber benötigt, dass unsere Dokumente/Teilestämme im PDM und ERP richtig angelegt werden, da die Informationen aus den konfigurationsspezifischen Eigenschaften ausgelesen und entsprechenden Feldern zugeordnet sind. Nun habe ich schon den Taskplaner versucht mit den Einstellungen siehe Bild 1, dannach haben die Eigenschaften aber immernoch Sternchen in den Evaluierten Werten stehen, dass heißt die Eigenschaften wurden nicht aktualisiert. Nun den habe ich mir gedacht schnippsel ich mir mal ein Makro zusammen das jede Konfiguration aufruft und neuaufbaut. Code:
' Alle Konfigurationen aktuallisierenConst swDocNONE = 0 Const swDocPART = 1 Const swDocASSEMBLY = 2 Const swDocDRAWING = 3 Const swSaveAsOptions_Silent = 1 Const swSaveAsOptions_Copy = 2 Const swSaveAsOptions_SaveReferenced = 4 Const swSaveAsOptions_AvoidRebuildOnSave = 8 Const swSaveAsOptions_UpdateInactiveViews = 16 Const swSaveAsOptions_OverrideSaveEmodel = 32 Const swSaveAsOptions_SaveEmodelData = 64 Const swSaveAsOptions_DetachedDrawing = 128 Const swOpenDocOptions_Silent = 1 Const swOpenDocOptions_ReadOnly = 2 Const swOpenDocOptions_ViewOnly = 4 Const swOpenDocOptions_RapidDraft = 8 Const swOpenDocOptions_LoadModel = 16 Const swOpenDocOptions_AutoMissingConfig = 32 Const swSaveAsCurrentVersion = 0 Sub main() Dim swApp As Object Dim ModelDoc As Object Dim ConfigCount As Long Dim ConfigNames As Variant Dim openconfig As String Dim errors As Long Dim warnings As Long Dim i As Long Dim idel As Long ' an SolidWorks anklinken und aktives Assembly holen Set swApp = CreateObject("SldWorks.Application") Set ModelDoc = swApp.ActiveDoc If ModelDoc Is Nothing Then ' dann war gar kein Dokument geöffnet, wie soll da was funktionieren MsgBox "Kein Dokument aktiv" Exit Sub End If If (ModelDoc.GetType = swDocDRAWING) Then ' wenn keine Modell aktiv ist wird das Makro wieder beendet MsgBox "Nur für Modelle geeignet" Exit Sub End If ' dann alle Konfigurationen auslesen ConfigCount = ModelDoc.GetConfigurationCount ConfigNames = ModelDoc.GetConfigurationNames ' dann für alle Konfigurationen For i = 0 To ConfigCount - 1 ' Call ModelDoc.ShowConfiguration2(ConfigNames(i)) ModelDoc.ShowConfiguration2 (ConfigNames(i)) boolstatus = ModelDoc.ForceRebuild3(True) Next i ' boolstatus = swPart.Save3(8, longerrors, longwarnings) End Sub
Nun soweit so gut, das Makro scheint auch seinen Zweck zu erfüllen aber nur bis zu einer bestimmten Maximalanzahl von Konfigurationen oder vielleicht anderen mir unbekannten Gründen. Erste Teil nur 50 konfigurationen kein Problem alle Werte wurden erfolgreich aktualisiert. Zweites Teil 250 konfigurationen Makro läuft durch aktiviert jede Konfig doch am Ende sind immer noch die Werte nicht aktualisiert. Hat wer eine Idee woran das liegen kann? Weil ich habe Teile mit über 3.000 Konfigurationen und die würde ich ungern manuell aktivieren und aktualisieren wollen. Gruß Bernd
------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olaf Wolfram Ehrenmitglied V.I.P. h.c. CAD-Mutti und Konstrukteur CSWP CSWI
Beiträge: 2431 Registriert: 30.06.2008 I7-3770 CPU 3,40 Ghz 32 Gb RAM 64 bit WIN 10 SWX 2019 SP5 NVIDIA Quadro K2000<P> Lenovo ThinkStation
|
erstellt am: 21. Dez. 2012 10:04 <-- editieren / zitieren --> Unities abgeben: Nur für bk.sc
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 21. Dez. 2012 10:20 <-- editieren / zitieren --> Unities abgeben:
Hi Olaf, danke für die Antwort aber leider bleibt das Endergebnis das selbe. Aber weiß nun, dass es wohl Konfigurationsanzahl unabhängig ist, da ich nun ein Teil mit nur 19 Konfigurationen habe bei dem die Eigenschaftswerte nachher wie vorher auch noch die gleichen sind. Daher muß das Problem wohl irgendwo anderst liegen, weil SWX bei diesem Teil auch nicht stört wenn ich die Konfigurationen manuell aktiviere und neuaufbaue (Ampel oder STRG+Q), die Werte bleiben gleich. Wenn ich natürlich die Konfiguration aktiviere und in die Eigenschaften gehe sind die Werte aktualisiert. [Edit] Aber nur bis ich wieder eine andere konfiguration akiviere dann sind die Sternchen wieder da. [/Edit] Anbei nun auch eine betroffene Datei, weil vielleicht liegt es ja an irgendwelchen Einstellungen bei mir. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 21. Dez. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 21. Dez. 2012 11:12 <-- editieren / zitieren --> Unities abgeben:
Wieder einen Schritt weiter, bei den Werten die SWX garnicht evaluiert sprich noch etwas wie "D6@Skizze@...." im Evaluierten Wert steht handelt es sich um gesteuerte Bemassungen und wenn ein Sternchen davor ist heißt es nicht gleich das die Werte nicht schon aktualisiert wurden, weil ein Feld in dem z.B. *9,55 steht wird auch der korrekte Wert in das PDM übertragen. Nur wie bekomme ich jetzt die Felder von den gesteuerten Bemassungen richtig übertragen? Ohne alle Konfigurationen einzeln einzuchecken versteht sich ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olaf Wolfram Ehrenmitglied V.I.P. h.c. CAD-Mutti und Konstrukteur CSWP CSWI
Beiträge: 2431 Registriert: 30.06.2008 I7-3770 CPU 3,40 Ghz 32 Gb RAM 64 bit WIN 10 SWX 2019 SP5 NVIDIA Quadro K2000<P> Lenovo ThinkStation
|
erstellt am: 21. Dez. 2012 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für bk.sc
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 21. Dez. 2012 11:47 <-- editieren / zitieren --> Unities abgeben:
Zitat: Nun habe ich schon den Taskplaner versucht mit den Einstellungen siehe Bild 1, dannach haben die Eigenschaften aber immernoch Sternchen in den Evaluierten Werten stehen, dass heißt die Eigenschaften wurden nicht aktualisiert.
Nun hab ich mir gedacht das ich in einfachen Fällen die Werte der gesteuerten Bemassungen ja in Excell berrechnen könnte, nun ist hier das Problem das die Werte dann mit dem Seperator "." und nicht "," in die konfigurationsspezifischen Eigenschaften geschrieben werden und da steigt am Ende unser PDM beim anlegen aus da Seperator "," fest eingestellt und eine Plausibilitätsprüfung von Wert = Zahl und wenn er dann dank des "." einen String statt einer Zahl erkennt lässt er das Feld einfach Leer. Gibt es eine Möglichkeit vielleicht eine Einstellung wie ich denn Wert mit dem vom SWX eingestellten Seperator sprich "," in die Eigenschaften geschrieben bekomme? ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko Soehnholz Ehrenmitglied V.I.P. h.c. Dipl.-Ing. (FH) Maschinenbau
Beiträge: 5463 Registriert: 03.07.2002 SOLIDWORKS 2001 - 2024SP0.1 Elite AE Award 2023 SOLIDWORKS Premium, Simu, Flow, Plastics, Composer, MBD, Inspection, PDMP, Visualize, TopsWorks, DPS Tools, JobBox, MacroSheet, etc. Passungstabelle von Heinz WIN10x64 22H2 | HP ZBook 17 Fury G8
|
erstellt am: 21. Dez. 2012 20:58 <-- editieren / zitieren --> Unities abgeben: Nur für bk.sc
Hallo, das Problem liegt in dem Rebuild, der ausgelöst wird / werden muß; davon gibt es wohl verschiedene... Die Lösung ist "der Trick von Nick", einem englischen Entwickler/Supporter von SolidWorks: - Gehe im FeatureManger auf ein Feature, mit der rechten Maustaste. - Gehe auf "Feature konfigurieren". - In der Dialogbox auf links unten "Alle Konfigurationen neu aufbauen". - Kurz / Lange warten... - Fertig. Diese Aktion löst lt. SolidWorks einen tiefergehenden Rebuild aus, als Strg Q - und führt zum gewünschten Ergebnis. Und nun ist Feierabend, sagt Heiko P.S.: Diese Vorgehensweise ist empfohlen, wenn man Bibliotheksteile erstellen möchte, die dann mit einem Schreibschutz versehen werden, und immer REDUZIERT geladen werden sollen (so dass sich keine Notwendigkeit der Berechnung und des Speicherns ergeben soll)! ------------------ Einen schönen Gruß von Heiko [Diese Nachricht wurde von Heiko Soehnholz am 21. Dez. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lenzcad Ehrenmitglied Selbständiger Handwerker
Beiträge: 1539 Registriert: 21.10.2003 CPU i7-9700K RAM 64GB Quadro P2200 SW 2022 SW Simulation 2022
|
erstellt am: 22. Dez. 2012 15:17 <-- editieren / zitieren --> Unities abgeben: Nur für bk.sc
Hallo Bernd, vielleicht hilft dir dieses Makro weiter. Hierbei kannst Du den Rebuild steuern. ' diese folgenden Werte können editiert werden ' ' RebuildFlag steuert, ob die Konfiguration neu durchgerechnet werden ' 0 = KEIN Rebuild ' 1 = normales Rebuild ' 2 = Fullrebuild Const RebuildFlag = 1 ' Definitions of typenames are consistent as in swconst.bas Option Explicit Const swDocPART = 1 Const swDocASSEMBLY = 2 Const swDocDRAWING = 3 Sub Main() Dim swApp As Object Dim ModelDoc As Object Dim ConfigNames As Variant Dim vConfigName As Variant Dim swConfig As Object Dim OldConfig As Object Dim OldConfigName As String Set swApp = CreateObject("SldWorks.Application") Set ModelDoc = swApp.ActiveDoc If ModelDoc Is Nothing Then ' Call MsgBox("Keine Datei geöffnet", vbOKOnly, "Information") Exit Sub End If ' ' alle Dateieigenschaften aus der Konfiguration holen ConfigNames = ModelDoc.GetConfigurationNames Set OldConfig = ModelDoc.GetActiveConfiguration OldConfigName = OldConfig.Name ' alle Konfigurationen durchlaufen For Each vConfigName In ConfigNames Call ModelDoc.ShowConfiguration2(vConfigName) ' Rebuild Select Case RebuildFlag Case 1 Call ModelDoc.EditRebuild3 Case 2 Call ModelDoc.ForceRebuild3(True) End Select Next ' und original Konfig wieder aktivieren Call ModelDoc.ShowConfiguration2(OldConfigName) End Sub Noch ein Gedanke (weiß nicht ob dir das was hilft) zu deinem Seperator Problem. Wenn du deine konfigurationsspezifischen Eigenschaften in der Excel- Konfigurationstabelle erzeugst, kannst du doch mit der Excel-Funktion "Ersetzen" "Suchen" den Punkt mit einem Komma ersetzen. schöne Weihnachten allseits, Gruß Lenz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 23. Dez. 2012 01:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Lenz, das mit den verschiedenen Rebuild Möglichkeiten hatte ich auch schon versucht, sind ja auch in dem von Olaf verlinkten Makros verfügbar. Und das mit dem ersetzten geht wohl nicht, weil in Excel sind ja die Werte schon mit Komma, und da denkt sich SWX halt ist eine Zahl und evaluiert den Wert mit Punkt in die Eigenschaften. Aber wenn ich den Wert mit einem Hochkomma manuell in eine Zelle eintrage überträgt er es richtig aber das würde leider heißen bis zu 3000+ mal die Werte manuell einzutragen (ohne tippfehler natürlich). Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lenzcad Ehrenmitglied Selbständiger Handwerker
Beiträge: 1539 Registriert: 21.10.2003 CPU i7-9700K RAM 64GB Quadro P2200 SW 2022 SW Simulation 2022
|
erstellt am: 23. Dez. 2012 09:30 <-- editieren / zitieren --> Unities abgeben: Nur für bk.sc
Hallo Bernd, ich habe mir dein Stempel Beispiel angeschaut und ein paar Ungereimtheiten in der Modellierungsreihenfolge entdeckt. Anschließend habe ich dein Modell nachmodelliert und festgestellt dass die konfigurationsspezifischen Eigenschaften problemlos aktuallisiert werden. Gruß Lenz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 23. Dez. 2012 11:06 <-- editieren / zitieren --> Unities abgeben: Nur für bk.sc
Hallo Lenzcad, Zitat: Original erstellt von Lenzcad: vielleicht hilft dir dieses Makro weiter. Hierbei kannst Du den Rebuild steuern. [snip Makro]
Das ist genau mein oben schon angelinktes Makro von http://solidworks.cad.de/mm_39.htm , nur um den Header gekürzt, in dem z.B. der Urheber drin steht. Ist wirklich schade, dass solche Sachen immer auf diese Art "weitergegeben" werden, und macht deswegen nicht nur mir immer weniger Spaß fertige Makros oder andere Dinge zur Verfügung zu stellen. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lenzcad Ehrenmitglied Selbständiger Handwerker
Beiträge: 1539 Registriert: 21.10.2003 CPU i7-9700K RAM 64GB Quadro P2200 SW 2022 SW Simulation 2022
|
erstellt am: 23. Dez. 2012 14:11 <-- editieren / zitieren --> Unities abgeben: Nur für bk.sc
Hallo Stefan, es war wirklich nicht meine Absicht, mich mit fremden Federn zu schmücken. Tut mir leid wenn der Eindruck enstanden ist, das war Zufall und nicht meine Absicht. Den oberen link habe ich leider übersehen. Ich danke dir sehr für die viele Mühe die du dir machst, um dein Wissen und Können anderen zur Verfügung zu stellen. Ich werde das nächste mal besser aufpassen. schönen Gruß, Lenz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 02. Jan. 2013 13:49 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, erstmal allen einen guten Start ins neue Jahr. Danke für eure Hilfe. Super vielen Dank Heiko genau das was ich gebraucht habe . Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |