| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Auszubildende der HERMLE AG bei SolidCAM, eine Pressemitteilung
|
Autor
|
Thema: Revisionsindexe in Baugruppenstücklisten (5566 mal gelesen)
|
Ernieundbert Mitglied Konstrukteur
Beiträge: 99 Registriert: 25.10.2011 Solid Works 2013 SP5 PDM Workgroup Win 7 64bit Fujitsu Celsius M460 Quadro FX 3800 Intel Core2Quad CPU 9330 2,5GHz 8GB RAM
|
erstellt am: 26. Okt. 2011 11:03 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich bin auf der Suche nach Tipps zur Revisionsindexverwendung in Baugruppenstücklisten. Da wir viele ähnliche Teile für Serienprodukte herstellen, verwende ich bei der Teile- und Baugruppenerstellung Konfigurationen. Wenn ich nun einzelne Konfigurationen ändere, wird der dazugehörige Zeichnugsindex erhöht. Andere Konfigurationszeichnungen, die nicht von der Änderung betroffen sind behalten den alten Index. D.h. ich bekomme von einem Part durch die Konfigurationen sehr schnell Zeichnungen mit unterschiedlichen Revisionsindexen. Nun möchte ich in den jeweiligen Baugruppenzeichnungen die entsprechenden Stücklisten erstellen und dazu die jeweiligen Revisionsindexe der Konfigurations-Zeichnungen laden. Ich bekomme aber ja nur den Revisonsindex des Parts geladen. Gibt es eine Möglichkeit auch die wirklichen Zeichnungsindexe in die Stückliste zu laden? Wie handhabt ihr die Indexverwaltung? Wir arbeiten mit SolidWorks Professional 2011 SP5 und der entsprechenden PDM Workgroup. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3627 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 26. Okt. 2011 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
index bestandteil der teilekonfiguration und wird nur auf der zeichnung ausgelesen, dadurch auch in der stückliste dargestellt lg martin sorry bin gerade in eile ------------------ Bin jetzt auch unter Skype erreichbar , einfach nach Martin Doppler in Wien suchen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hico Mitglied Konstrukteur
Beiträge: 259 Registriert: 03.03.2005
|
erstellt am: 26. Okt. 2011 13:24 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Wir bleiben mit unseren Indizes auf der Part-Ebene ohne Konfigurationen. Dies macht die Sache überschaubarer und offen für eine einfache Indexverwaltung. Der Baugruppenindex erhöht sich genau wie bei euch bei A) hinzufügen eines neuen bzw. ändern eines bereits verbauten Parts oder B) bei Änderung eines "Baugruppenfeatures", z.B. Bohrungen oder Schnitte in der Baugruppe Die Indexverwaltung innerhalb von Konfigurationen birgt Gefahren, schenll übersieht man mal eine falsch eingestellte Konfiguration und schwupps steht der falsche Index in der Zeichnung. Natürlich nur meine Meinung ------------------ Gruß Hilmar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ernieundbert Mitglied Konstrukteur
Beiträge: 99 Registriert: 25.10.2011 Solid Works 2013 SP5 PDM Workgroup Win 7 64bit Fujitsu Celsius M460 Quadro FX 3800 Intel Core2Quad CPU 9330 2,5GHz 8GB RAM
|
erstellt am: 26. Okt. 2011 14:58 <-- editieren / zitieren --> Unities abgeben:
Die Arbeit mit den Konfigurationen der Parts war für mich (Anfangs) eigentlich einer der Vorteile von SolidWorks, da wir viele baugleiche Teile in ähnlichen Größen verwenden. Bringt für mich den Vorteil das ich in einer Baugruppe in verschiedenen Konfigurationen ein Teil nur einmal einfügen muss. Wenn ich für jede Konfiguration ein eigenes Teil angelegt hätte, muss ich halt auch bei einer Änderung die alle Teile betrifft u.U. 10 Dateien ändern. @dopplerm Zitat: index bestandteil der teilekonfiguration und wird nur auf der zeichnung ausgelesen, dadurch auch in der stückliste dargestellt
Der Index wird ja beim Einpflegen ins PDM automatisch als Revisionsindex für das gesamte Part vergeben. Diesen kann ich ja auch in der Baugruppenstückliste auslesen, ich brauche aber ja den Revisionsindex aus der jeweiligen Zeichnungsdatei. Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3627 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 26. Okt. 2011 19:46 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
@Thomas dann solltest ihr einen Index für das Teil machen und einen für die Zeichnungen in den Konfigurationen LG Martin ------------------ Bin jetzt auch unter Skype erreichbar , einfach nach Martin Doppler in Wien suchen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3627 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 26. Okt. 2011 19:49 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Zitat: Original erstellt von hico:
Die Indexverwaltung innerhalb von Konfigurationen birgt Gefahren, schenll übersieht man mal eine falsch eingestellte Konfiguration und schwupps steht der falsche Index in der Zeichnung. Natürlich nur meine Meinung
du übersiehst, das es hier umTeile geht mit mehreren Konfigurationen und zugehörigen Zeichnungen, nach deinem Weg, würde bei jeder Änderung, ca 5-6 Zeichnungen mit einem neuen Index versehen werden. LG Martin ------------------ Bin jetzt auch unter Skype erreichbar , einfach nach Martin Doppler in Wien suchen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 27. Okt. 2011 06:28 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Hallo Ihr beiden, Ernie und Bert Willkommen hier im WbF (weltbesten Forum). Die Sachlage ist nicht ganz so trivial wie von dir vorgestellt. Du must dich erst mal mit dir einigen, wo du den Versionsindex deiner Revison führen willst. (Die Version beschreibt einen Zustand, die Revision eine Tätigkeit) Im Modell oder in der Zeichnung?. Dann solltest du feststellen, wo PDM Workgroup die Versionnsnummer schreibt. Für deinen Fall würde ich die Versionsnummer in den jeweiligen Teilen führen und dort eine Variable "Versionsstand" unter konfigurationsspezifischen Eigenschaften eintragen oder von PDM eintragen lassen. Diese Variable kannst du dann sowohl in der Zeichnung als auch in einer zusätzlichcen Spalte der Stückliste der Baugruppe abrufen Gruß ThoMay ------------------ Hast du Fragen? Brauchst du Schaut mal nach im Bereich Alle Foren => Wissenstransfer. oder Konstrukteure Online hier bei CAD.de Richtig fragen - Nettiquette - Konstruktionshilfen - Systeminfo - Unities - CAD Freeware - Forenübersicht - 3D Modelle - SolidWorks Videos Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ernieundbert Mitglied Konstrukteur
Beiträge: 99 Registriert: 25.10.2011 Solid Works 2013 SP5 PDM Workgroup Win 7 64bit Fujitsu Celsius M460 Quadro FX 3800 Intel Core2Quad CPU 9330 2,5GHz 8GB RAM
|
erstellt am: 27. Okt. 2011 09:38 <-- editieren / zitieren --> Unities abgeben:
Moin zusammen, Zitat: Original erstellt von dopplerm: @Thomasdann solltest ihr einen Index für das Teil machen und einen für die Zeichnungen in den Konfigurationen LG Martin
Geht sicherlich, würde ja aber bedeuten das ich die "Zeichnungsindexe" in den Konfigurationen manuell pflegen muss. Eigentlich hatte ich mir überlegt (oder vielmehr gewünscht) die PDM Workgroup Variable "Revision" (daher meine Wortwahl "Revisionsindex") die beim Einchecken ins PDM automatisch für die Zeichnung in den Eigenschaften hochgezählt wird, für die Stückliste zu verwenden. Ich finde aber keinen Weg diese in die Konfiguration des Parts zu importieren und sie damit für die Baugruppenstückliste zugänglich zu machen. Schönen Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ernieundbert Mitglied Konstrukteur
Beiträge: 99 Registriert: 25.10.2011 Solid Works 2013 SP5 PDM Workgroup Win 7 64bit Fujitsu Celsius M460 Quadro FX 3800 Intel Core2Quad CPU 9330 2,5GHz 8GB RAM
|
erstellt am: 03. Nov. 2011 09:10 <-- editieren / zitieren --> Unities abgeben:
So, ich habe mich jetzt erstmals ein wenig mit Makros auseinandergesetzt, um die PDM-Variable "Revision" automatisch aus der Zeichnung in die entsprechende Konfiguration des Parts zu schreiben. Nach einigen nicht funktionierenden Versuchen, habe ich hier im WBF dieses schöne Makro gefunden und für meine Variable "Revision" angepasst: ------------------------ Option Explicit Dim swApp As Object Dim DrawingDoc As Object Dim ModelDoc As Object Dim ZeichnungDoc As Object Dim View As Object Dim Modelname As String Dim ZeichnungName As String Dim errors As Long Dim Attrib As String Sub main() Set swApp = CreateObject("SldWorks.Application") Set DrawingDoc = swApp.ActiveDoc Set View = DrawingDoc.GetFirstView Set View = View.GetNextView Modelname = View.GetReferencedModelName ZeichnungName = DrawingDoc.GetPathName() Set ModelDoc = swApp.ActivateDoc2(Modelname, True, errors) ModelDoc.Visible = True Set ZeichnungDoc = swApp.ActivateDoc2(ZeichnungName, True, errors) Attrib = "Revision" If Not ModelDoc.AddCustomInfo(Attrib, "Text", ZeichnungDoc.CustomInfo(Attrib)) Then MsgBox "Das Übertragen der '" & Attrib & "' hat nicht funktioniert" End If End Sub -------------------- Nun habe ich versucht die Variable nicht in die benutzerdefinierten Eigenschaften sondern in die in der Zeichnung verwendete Konfiguration zu schreiben, bin aber immer gescheitert. Kann mir einer einen Tipp geben? ------------------ Schönen Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
Beiträge: 1087 Registriert: 06.05.2002 SWX Premium 2023-Sp5
|
erstellt am: 03. Nov. 2011 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Code: Set swCompModel = swApp.ActivateDoc2(swComp.GetPathName, True, nRetval) Set swModel = swApp.ActiveDoc Set swConfigMgr = swModel.ConfigurationManager Set swCustPropMgr = swModel.Extension.CustomPropertyManager("Name der Konfig")'Ab hier Infos eintragen ..... swModel.SetSaveFlag swApp.CloseDoc swModel.GetTitle
Gruß, Klaus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ernieundbert Mitglied Konstrukteur
Beiträge: 99 Registriert: 25.10.2011 Solid Works 2013 SP5 PDM Workgroup Win 7 64bit Fujitsu Celsius M460 Quadro FX 3800 Intel Core2Quad CPU 9330 2,5GHz 8GB RAM
|
erstellt am: 03. Nov. 2011 12:23 <-- editieren / zitieren --> Unities abgeben:
Ich seh schon, da muss ich mich erstmal mit meinem Grundlagenwissen auseinandersetzen. Ich habe im Augenblick keine Ahnung wie ich das so einbinden soll, das es funktioniert... ------------------ Schönen Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ernieundbert Mitglied Konstrukteur
Beiträge: 99 Registriert: 25.10.2011 Solid Works 2013 SP5 PDM Workgroup Win 7 64bit Fujitsu Celsius M460 Quadro FX 3800 Intel Core2Quad CPU 9330 2,5GHz 8GB RAM
|
erstellt am: 07. Nov. 2011 13:30 <-- editieren / zitieren --> Unities abgeben:
Sooo, ich habe mal ein bischen in der Makrowelt geforscht und tatsächlich etwas funktionierendes hinbekommen. Beim Ausführen des Makros wird der Revisionsindex einer geöffneten Zeichnung in die Konfiguration des dazugehörigen Modells geschrieben. Damit kann ich diesen in den Baugruppenstücklisten verwenden und der Index des Modells ist somit nicht mehr relevant. Ist wahrscheinlich programmiertechnisch nicht das non plus ultra, aber es funktioniert. Schönen Dank an alle Tippgeber! Einziger Haken ist, das man das Makro manuell ausführen muss. Kann man Makros auch so steuern das diese beim Schliessen einer Datei ausführen kann? Noch besser wäre es natürlich, wenn dies beim Einchecken ins SWX PDM passieren würde. Weiss von euch jemand ob man so ein Makro automatisieren kann? ------------------ Schönen Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ernieundbert Mitglied Konstrukteur
Beiträge: 99 Registriert: 25.10.2011 Solid Works 2013 SP5 PDM Workgroup Win 7 64bit Fujitsu Celsius M460 Quadro FX 3800 Intel Core2Quad CPU 9330 2,5GHz 8GB RAM
|
erstellt am: 10. Nov. 2011 11:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe bei meinem Makro festgestellt, das man es immer zweimal durchlaufen lassen muss damit es funktioniert. Hat jemand einen Tipp was man noch ändern muss damit es sofort klappt? Das um einige Abfragen ergänzte Makro habe ich angefügt. ------------------ Einen schönen Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schwab1 Mitglied mechanische Entwicklung
Beiträge: 18 Registriert: 21.06.2013
|
erstellt am: 13. Dez. 2013 15:01 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Hallo an Alle, also ich muss diesen Threat jetzt aus der Versenkung holen. Das Makro beschreibt genau den Anwendungsfall den ich mir wünsche, oder genauer mit unseren Variablen ausgedrückt: Ich will die benutzerdefinierte Variable "Version" aus der Zeichnung in die konfigurationsdefinierte Variable "Attrib" im Part schreiben lassen. Testweise habe ich mal im Makro die "Revision" in "Version" geändert,aber ohne den gewünschten Erfolg. ==================== ' Revisionsindex der Zeichnung in die aktive Konfiguration schreiben Set swConfigMgr = ModelDoc.ConfigurationManager Set swConfig = swConfigMgr.ActiveConfiguration Set swCustPropMgr = swConfig.CustomPropertyManager Attrib = "Version" retval = swCustPropMgr.Delete(Attrib) If Not retval = swCustPropMgr.Add2(Attrib, swCustomInfoText, ZeichnungDoc.CustomInfo(Attrib)) Then MsgBox "Das Übertragen der '" & Attrib & "' hat nicht funktioniert" End If ==================== Wir benutzen allerdings kein PDM-System und verwenden SolidWorks2009 SP3. Habe auch das Macro bei geöffneter Zeichnung wiederholt ausgeführt, aber in den Eigenschaften des Parts hat sich nichts verändert. Leider bin ich bei uns der Einzige der unser workaround weiter verbessern möchte und die Zeit ist knapp..... Ich wäre dankbar falls jemand Hilfestellung leisten könnte. Martin [Diese Nachricht wurde von schwab1 am 13. Dez. 2013 editiert.]
[Diese Nachricht wurde von schwab1 am 13. Dez. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ernieundbert Mitglied Konstrukteur
Beiträge: 99 Registriert: 25.10.2011 Solid Works 2013 SP5 PDM Workgroup Win 7 64bit Fujitsu Celsius M460 Quadro FX 3800 Intel Core2Quad CPU 9330 2,5GHz 8GB RAM
|
erstellt am: 16. Dez. 2013 08:03 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich denke du musst da ein paar Anführungszeichen reinsetzen. Da du "Attrib" einmal als Variable im VBA verwendest und einmal als Eigenschaft für Solidworks sinds eigentlich unterschiedliche Bezeichnungen. Ich würds mal so probieren: ' Revisionsindex der Zeichnung in die aktive Konfiguration schreiben Set swConfigMgr = ModelDoc.ConfigurationManager Set swConfig = swConfigMgr.ActiveConfiguration Set swCustPropMgr = swConfig.CustomPropertyManager Attrib = "Version" retval = swCustPropMgr.Delete("Attrib") If Not retval = swCustPropMgr.Add2("Attrib", swCustomInfoText, ZeichnungDoc.CustomInfo(Attrib)) Then MsgBox "Das Übertragen der '" & Attrib & "' hat nicht funktioniert" End If ------------------ Einen schönen Gruß, Thomas 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: 16. Dez. 2013 08:35 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Hallo Martin, das liegt daran, dass du unterschiedliche Eigenschaftsnamen für Quelle (benutzerdefinierte Eigenschaft der Zeichnung) und Ziel (konfigurationsspezifische Dateieigenschaft des Modells) hast, das Makro setzt voraus, dass die gleich sind. Aber wie HenryV geschrieben hat, ist ja bald Weihnachten Code:
Set swConfig = swConfigMgr.ActiveConfiguration Set swCustPropMgr = swConfig.CustomPropertyManagerDim Quellattribut As String Dim Zielattribut As String Quellattribut = ZeichnungDoc.CustomInfo("NameDesQuellattributs") Zielattribut = "NameDesZielattributs" retval = swCustPropMgr.Delete(Zielattribut) If Not retval = swCustPropMgr.Add2(Zielattribut, swCustomInfoText, Quellattribut) Then MsgBox "Das Übertragen der '" & Zielattribut & "' hat nicht funktioniert" End If 'Modell speichern und schliessen ModelDoc.Save swApp.CloseDoc ModelDoc.GetTitle
Das fett hervorgehobene hab ich geändert, dass Quellattribute und Zielattribut unterschiedliche Namen haben können. Ciao, Stefan PS: falls ihr dadurch euren Prozess verbessern könnt und sich das bis nächstes Weihnachten auf eine Stunde Ersparnis summiert denkt bitte darüber nach, ob ihr davon nicht einen Teil z.B. mit eurer örtliche Tafel teilen könnt. ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schwab1 Mitglied mechanische Entwicklung
Beiträge: 18 Registriert: 21.06.2013
|
erstellt am: 16. Dez. 2013 10:37 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Danke schon mal für die Weihnachtliche Hilfe, aber leider bekomme ich das Makro nicht zum laufen. Ich habe den geänderten Abschnitt von ErnieundBert, bzw. Stefan an passender Stelle eingefügt und bei der Übergabe Quellattribut = ZeichnungDoc.CustomInfo("NameDesQuellattributs") Zielattribut = "NameDesZielattributs" in folgendes geändert: Quellattribut = ZeichnungDoc.CustomInfo("Version") Zielattribut = "Attrib" Bei den Eigenschaften der Zeichnung ist ein evaluierter Wert Version "A" vorhanden wobei ich als erste Zeichenansicht eine Konfiguration "123" eingefügt habe. Im Part ist bei der Konfiguration "123" durch die .prtprp die konfigurationsspez. Eigenschaft Attrib ebenfalls vorhanden, aber leer. Das Makro habe ich mehrmals in der Zeichenansicht gestartet - aber leider ohne Erfolg. Es gab auch keine Fehlermeldung in der Art von "Das Übertragen der Version hat nicht funtioniert". Die Eigenschaft "Version" lasse ich im übrigen über die Versionstabelle von SolidWorks eintragen, aber dies sollte wohl kein Problem darstellen Zu der Spende.... Es werden die Tafeln, oder was bei Oxfam http://unverpackt.oxfam.de/geschenk-ziegenpaerchen Gerne nehme ich weitere Hilfe in Anspruch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ernieundbert Mitglied Konstrukteur
Beiträge: 99 Registriert: 25.10.2011 Solid Works 2013 SP5 PDM Workgroup Win 7 64bit Fujitsu Celsius M460 Quadro FX 3800 Intel Core2Quad CPU 9330 2,5GHz 8GB RAM
|
erstellt am: 16. Dez. 2013 11:16 <-- editieren / zitieren --> Unities abgeben:
In einem meiner älteren Beiträge hatte ich schonmal erwähnt, das ich die If-Abfrage zweimal durchlaufen lassen muss damits sicher klappt. Warum weiss ich nicht, aber vielleicht versuchst du mal die Verschachtelung in dieser Art: If Not retvalue = swCustPropMgr.Add2("RevisionZeichnung", swCustomInfoText, DrawingDoc.CustomInfo(Attrib)) Then If Not retvalue = swCustPropMgr.Add2("RevisionZeichnung", swCustomInfoText, DrawingDoc.CustomInfo(Attrib)) Then Call MsgBox("Das Übertragen der '" & Attrib & "' hat nicht funktioniert", vbOKOnly, "Fehler") End If ------------------ Einen schönen Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schwab1 Mitglied mechanische Entwicklung
Beiträge: 18 Registriert: 21.06.2013
|
erstellt am: 16. Dez. 2013 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Scheint auch nicht zu funtionieren.... leider (rein zur Vollständigkeit) Oben bei den Deklarationen hatte ich ja schon beim letzen Versuch folgendes eingefügt. Dim Quellattribut As String Dim Zielattribut As String und am Ende steht jetzt folgdes:
' Revisionsindex der Zeichnung in die aktive Konfiguration schreiben Set swConfigMgr = ModelDoc.ConfigurationManager Set swConfig = swConfigMgr.ActiveConfiguration Set swCustPropMgr = swConfig.CustomPropertyManager Quellattribut = ZeichnungDoc.CustomInfo("Version") Zielattribut = "Attrib" retval = swCustPropMgr.Delete(Zielattribut) If Not retval = swCustPropMgr.Add2(Zielattribut, swCustomInfoText, Quellattribut) Then If Not retval = swCustPropMgr.Add2(Zielattribut, swCustomInfoText, Quellattribut) Then MsgBox "Das Übertragen der '" & Zielattribut & "' hat nicht funktioniert" End If 'Modell speichern und schliessen ModelDoc.Save swApp.CloseDoc ModelDoc.GetTitle End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schwab1 Mitglied mechanische Entwicklung
Beiträge: 18 Registriert: 21.06.2013 SolidWorks Professional 2015 SP5 Win 7 64-bit
|
erstellt am: 16. Dez. 2013 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Zitat: Original erstellt von schwab1: Scheint auch nicht zu funtionieren.... leider(rein zur Vollständigkeit) Oben bei den Deklarationen hatte ich ja schon beim letzen Versuch folgendes eingefügt. Dim Quellattribut As String Dim Zielattribut As String und am Ende steht jetzt folgdes:
' Revisionsindex der Zeichnung in die aktive Konfiguration schreiben Set swConfigMgr = ModelDoc.ConfigurationManager Set swConfig = swConfigMgr.ActiveConfiguration Set swCustPropMgr = swConfig.CustomPropertyManager Quellattribut = ZeichnungDoc.CustomInfo([b]"Version") Zielattribut = "Attrib" retval = swCustPropMgr.Delete(Zielattribut) If Not retval = swCustPropMgr.Add2(Zielattribut, swCustomInfoText, Quellattribut) Then If Not retval = swCustPropMgr.Add2(Zielattribut, swCustomInfoText, Quellattribut) Then MsgBox "Das Übertragen der '" & Zielattribut & "' hat nicht funktioniert" End If 'Modell speichern und schliessen ModelDoc.Save swApp.CloseDoc ModelDoc.GetTitle End Sub [/B]
ps.: das Model wird übrigends auch nicht geschlossen !
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: 16. Dez. 2013 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Hallo schwab1, Zitat: Original erstellt von schwab1: Bei den Eigenschaften der Zeichnung ist ein evaluierter Wert Version "A" vorhanden wobei ich als erste Zeichenansicht eine Konfiguration "123" eingefügt habe. Im Part ist bei der Konfiguration "123" durch die .prtprp die konfigurationsspez. Eigenschaft Attrib ebenfalls vorhanden, aber leer.
Hm, das kann eigentlich nur bedeuten, dass ein leerer String von der Quelle (Zeichnungsdateieigenschaft "Version") gelesen wird oder das Schreiben auf Ziel (Modell konfigurationsspezifische Eigenschaft "Attrib") nicht klappt oder das Modell nicht gesichert wird. Das ließe sich alles einfach überprüfen, wenn du dich ein wenig mit der VBA-Umgebung auskennst. Sagt dir Haltepunkt was? Einzelschritt? Ich hab auch kein SolidWorks 2009 mehr hier, ist also auch nicht auszuschließen, dass es an der alten Version liegt. Kannst du vielleicht mal ein Beispiel, Zeichnung und Modell, machen und zum Testen anhängen? Zitat: Original erstellt von schwab1: Die Eigenschaft "Version" lasse ich im übrigen über die Versionstabelle von SolidWorks eintragen, aber dies sollte wohl kein Problem darstellen
Hm, wer weiß. Wie gesagt, am Besten ein Beispiel von dir, das bei dir reproduzierbar die Dateieigenschaften nicht ordentlich einträgt wäre hilfreich. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schwab1 Mitglied mechanische Entwicklung
Beiträge: 18 Registriert: 21.06.2013
|
erstellt am: 16. Dez. 2013 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
[/B][/QUOTE] Also, ein großer Fortschritt.... Ich musste noch ein weiteres End If einfügen und dann läuft das Makro zumindest ab. Es erfolgt eine Übergabe, aber leider nicht ganz korrekt. Folgendes: Das Part hat die Konfiguration "Standart" und die abgeleitete Konfiguration "123". Ich füge auf dem Zeichenblatt die Konfig. "123" ein und der evaluierte Wert "A" ist in den Eigenschaften bei benutzerdefinierte Eigenschaft vorhanden. Das Makro schreibt jetzt den Wert "A" in die konfig.Eigenschaft von "Standart" und nicht in die konf.Eigenschaft bei "123" ein. Fast am Ziel würde ich sagen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schwab1 Mitglied mechanische Entwicklung
Beiträge: 18 Registriert: 21.06.2013 SolidWorks Professional 2015 SP5 Win 7 64-bit
|
erstellt am: 16. Dez. 2013 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Zitat: Original erstellt von schwab1: [/B]
Also, ein großer Fortschritt.... Ich musste noch ein weiteres End If einfügen und dann läuft das Makro zumindest ab. Es erfolgt eine Übergabe, aber leider nicht ganz korrekt. Folgendes: Das Part hat die Konfiguration "Standart" und die abgeleitete Konfiguration "123". Ich füge auf dem Zeichenblatt die Konfig. "123" ein und der evaluierte Wert "A" ist in den Eigenschaften bei benutzerdefinierte Eigenschaft vorhanden. Das Makro schreibt jetzt den Wert "A" in die konfig.Eigenschaft von "Standart" und nicht in die konf.Eigenschaft bei "123" ein. Fast am Ziel würde ich sagen [/QUOTE] noch eine Erkenntnis. Wenn ich zuletzt das Part unter "Standart" gespeichert habe kommt der Wert in "Standart" und wenn ich unter "123" gespeichert habe, kommt der Wert richtig bei "123" an.
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: 16. Dez. 2013 13:03 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Ja, das liegt daran, das in dem Makro die aktuelle konfiguration des Modells angezogen wird, um die Eigenschaften zu schreiben. Was du möchtest ist die Konfiguration, die in deiner Zeichnungsansicht referenziert wird. Müsste ungefähr so gehen:
Code:
[...] ' Name von darin referenziertem Modell Dim ModelConfigName As String ModelConfigName = View.ReferencedConfiguration Modelname = View.GetReferencedModelName ZeichnungName = DrawingDoc.GetPathName()Set ZeichnungDoc = swApp.ActivateDoc2(ZeichnungName, True, errors) ' das passende Modell zur Zeichnung Set ModelDoc = swApp.ActivateDoc2(Modelname, True, errors) ModelDoc.Visible = True
' Revisionsindex der Zeichnung in die aktive Konfiguration schreiben retval = ModelDoc.ShowConfiguration2(ModelConfigName) Set swConfigMgr = ModelDoc.ConfigurationManager Set swConfig = swConfigMgr.ActiveConfiguration Set swCustPropMgr = swConfig.CustomPropertyManager [...]
Ein Beispiel von dir wäre hilfreich, im Moment muss ich mir alles selber basteln und weiß trotzdem nicht, ob es so ist wie bei dir ... Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schwab1 Mitglied mechanische Entwicklung
Beiträge: 18 Registriert: 21.06.2013
|
erstellt am: 16. Dez. 2013 14:32 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
Hallo Stefan, es funktioniert scheinbar. Ich teste es jetzt die Tage mal ausgiebig aus und lade dann die Datei ins Forum. Diese Woche werde ich dann auch noch die Spende in Auftrag geben, bzw. ich laufe ständig bei diesem Oxfamladen vorbei und dann werden die Zieglein verschifft. Großen Dank an euch und gelernt habe ich auch wieder was.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schwab1 Mitglied mechanische Entwicklung
Beiträge: 18 Registriert: 21.06.2013 SolidWorks Professional 2015 SP5 Win 7 64-bit
|
erstellt am: 08. Jan. 2014 15:27 <-- editieren / zitieren --> Unities abgeben: Nur für Ernieundbert
So, denke das Ganze funktioniert, bzw. bisher ist mir noch nichts negatives aufgefallen. Ein Monat Trinkwasser habe ich auch noch vor Weihnachten an Oxfarm gespendet und somit sind alle glücklich. Schönen Dank !
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |