| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | Technikerschüler der staatlichen Feintechnikschule Schwenningen zu Besuch bei SolidCAM GmbH in Schramberg, eine Pressemitteilung
|
Autor
|
Thema: Dateieigenschaften aus Vorlage überbügeln (4240 mal gelesen)
|
nullpeilung Mitglied Techn. Zeichner
Beiträge: 1 Registriert: 10.06.2011 HP Z400, Nvidia FX2000, 8GB-RAM, WIN7 64-bit / SolidWorks2010, Unigraphics NX4, ProE WildFire4, AutoCAD2007, MegaCAD2009
|
erstellt am: 10. Jun. 2011 14:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, ich bin auf der Suche nach einer Möglichkeit in SolidWorks2010 Dateieigenschaftsfelder (also nicht die Werte wie "10.06.2011" sondern die Eigenschaft "Datum") aus einer vorhandenen Vorlage (sagen wir mal es wären 10 Merkmale) über ein altes Modell (hat sagen wir mal nur 5 Merkmale) drüberzubügeln, ohne jedes Merkmal im alten Modell händisch anzulegen? Warum das Ganze: Ich habe alte Datensätze (Modell und Zeichnung). Dort sind verschiedene Dateieigenschaften sowohl im Modell als auch in der Zeichnung hinterlegt. Ich Schriftfeld wird per Hyperlink die Eigenschaft XY von der Zeichnung verwendet, die Eigenschaft YZ aus dem dazugehörigen Modell,... Wirrwar ohne Ende. Aus dem Grund habe ich die Zeichnungsvorlagen gecleant, alle Eigenschaften in die Modellvorlage gebracht und im Schriftfeld auf diese verlinkt. Klappt alles, soweit so gut. Öffne ich nun aber eine alte Zeichnung, ziehe die neue Zeichnungsvorlage drüber, funktionieren die Hyperlinks logischerweise nicht, da die Modelleigenschaften entweder nicht existieren oder anders heißen. Gibts ne Möglichkeit zu sagen "alle Eigenschaft aus Modelldatei [Vorlagedatei für Modell] übernehmen"? Klar, die variablen Werte müsste ich wieder neu eintragen, aber damit kann ich leben. Danke vorab. 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: 10. Jun. 2011 14:52 <-- editieren / zitieren --> Unities abgeben: Nur für nullpeilung
Hallo nullpeilung (was für ein netter Name, hoffentlich ist das nicht Programm), und herzlich willkommen im SolidWorks Brett auf CAD.de Wenn es immer dieselben Dateieigenschaften sind kannst du das am einfachsten per Makro machen, ein Beispiel dafür findest du in der MakroMania auf der Seite http://solidworks.cad.de/mm_35.htm - Dateieigenschaften erzeugen Wenn du die wirklich aus einemanderen Dokument übernehmen willst ist es nicht ganz so einfach, dann müsstest du erst die Vorlage aufrufen, die Dateieigenschaften auslesen, dann wechseln und auf deinem Dokument diese Dateieigenschaften wieder schreiben. Das dürfte aber eigentlich nur bei variablen Dateieigenschaften nötig sein. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mafab Mitglied
Beiträge: 6 Registriert: 09.09.2013
|
erstellt am: 11. Sep. 2013 14:48 <-- editieren / zitieren --> Unities abgeben: Nur für nullpeilung
Hallo, ich habe einen Macro-Code, der mir neue Dateieigenschaften erzeugt und dann mit folgedem Code die neu angelegte Eigenschaft mit einem Wert ausfüllt.... Meine Frage: Wenn die Dateieigenschaft schon vor Ausführung des Macros vorhanden ist, kann diese leider nicht befüllt werden. Kann mir jemand sagen, wie ich den Code ändern muss, so dass die Dateieigenschaft auf jeden Fall den von mir gewollten Wert erhält, also diese falls nötig überschreibt? Code:
PropNames.Add "beispieleigenschaft" ' alle Dateieigenschaften aus der Konfiguration holen ConfigCount = ModelDoc.GetConfigurationCount ConfigNames = ModelDoc.GetConfigurationNames
' dann die Collection vorbereiten mit den Namen der Konfigs bzw. "" wenn auf Datei If AllConfigs = 0 Then PropConfigs.Add "" Else For i = 0 To ConfigCount - 1 PropConfigs.Add ConfigNames(i) Next i End If ' Dateieigenschaft Wert zuweisen For Each Config In PropConfigs For Each Prop In PropNames If Prop = "beispieleigenschaft" Then Debug.Print ModelDoc.AddCustomInfo3(Config, Prop, swCustomInfoText, "beispielwert") End If Next Next
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: 5499 Registriert: 03.07.2002 SOLIDWORKS 2001 - 2024SP3.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: 11. Sep. 2013 15:06 <-- editieren / zitieren --> Unities abgeben: Nur für nullpeilung
Hallo, finde ich alles zu kompliziert. Mein Vorschlag: Du musst ja diese Felder eh ausfüllen; Das macht man ganz gerne, weil bequem, mit der Eigenschaften-Registerkarte. Diese legt die darin definierten Felder auch gleich an, falls nicht vorhanden. Felder anzulegen ist also bei dieser Methode kein einziger zusätzlicher Mausklick! Wenn du ein Makro drüber laufen lässt, um die Felder anzulegen, kommst du ja doch nicht umhin, diese hinterher noch auszufüllen, oder sehe ich das falsch?! Ein Makro hätte m.E.n. dann Sinn, wenn die alten Felder bekannt sind, und dann von diesen gleichzeitig die Inhalte umgetragen werden. Gruß, Heiko ------------------ Einen schönen Gruß von Heiko 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: 11. Sep. 2013 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für nullpeilung
Hallo mafab, Zitat: Original erstellt von mafab: Wenn die Dateieigenschaft schon vor Ausführung des Macros vorhanden ist, kann diese leider nicht befüllt werden. Kann mir jemand sagen, wie ich den Code ändern muss, so dass die Dateieigenschaft auf jeden Fall den von mir gewollten Wert erhält, also diese falls nötig überschreibt?
Du kannst entweder vorher checjen, ob die Dateieigenschaft da ist und die dann ggf. per ModelDoc::CustomInfo2 mit deinem Wert aktualisieren, oder einfach "blind" vorher die mit ModelDoc:: DeleteCustomInfo2 löschen, dann klappt es auch mit dem AddCustomInfo3 wieder. In meinem Schriftfeldmakro auf http://solidworks.cad.de/mm_09.htm ist auch Codebeispiel drin. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wirthuose Mitglied Student
Beiträge: 1 Registriert: 27.04.2015
|
erstellt am: 06. Mai. 2015 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für nullpeilung
Guten Morgen liebe Community! In den letzten Tagen habe ich mich mit einem ähnlichen Makro beschäftigt und konnte mir aus verschiedenen Quelltexten (u.A. dem Makro zum Erweitern von Dateieigenschaften von Stefan Berlitz aus 2006 - vielen Dank dafür !) eins zusammenbasteln, das fast komplett meinen Anforderungen entspricht. Das Makro soll - wegen kürzlichem Vorlagenwechsel - die konfigurationsspezifischen Eigenschaften mehrerer Bauteile eines Ordners mithilfe des SWTaskplaners um die Eigenschaften "Artikelnummer", "Gewicht", "Material" erweitern bzw. anpassen. Ich habe jetzt das Problem, dass die Attribute in manchen Bauteilen schon bestehen und ich den bestehenden Wert nich überschreiben kann. Ich habe auch versucht vorher die Eigenschaten zu löschen und über verschiedene Abfragen die bestehenden Werte zu überschreiben. Irgendwie komm ich wohl mit der Einbindung der Befehle "ModelDoc::CustomInfo2" und "ModelDoc:: DeleteCustomInfo2" nicht parat. Ich arbeite momentan mit SW14, falls das von Belang sein sollte. Es würde mich sehr freuen, wenn mir jemand weiter helfen könnte! Dafür schon mal vielen Dank! Hier ist mal ein Auszug aus meinem Code:
Code:
' die gewünschten Properties mal sammeln, ggf. einfach erweitern PropNames.Add "Artikelnummer" PropNames.Add "Gewicht" PropNames.Add "Material" 'alle Dateieigenschaften aus der Konfiguration holen ConfigCount = ModelDoc.GetConfigurationCount ConfigNames = ModelDoc.GetConfigurationNames ' dann die Collection vorbereiten mit den Namen der Konfigs bzw. "" wenn auf Datei If AllConfigs = 0 Then PropConfigs.Add "" Else For i = 0 To ConfigCount - 1 PropConfigs.Add ConfigNames(i) Next i End If For Each Config In PropConfigs ' Dateieigenschaften generieren; Debug.Print ModelDoc.AddCustomInfo3(Config, "Artikelnummer", swCustomInfoText, "$PRP:" & Chr$(34) & "SW-Dateiname(File Name)" & Chr$(34)) Debug.Print ModelDoc.AddCustomInfo3(Config, "Gewicht", swCustomInfoText, """SW-Mass"" g") Debug.Print ModelDoc.AddCustomInfo3(Config, "Material", swCustomInfoText, """SW-Material""") Next
[Diese Nachricht wurde von Wirthuose am 06. Mai. 2015 editiert.] [Diese Nachricht wurde von Wirthuose am 06. Mai. 2015 editiert.] 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: 06. Mai. 2015 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für nullpeilung
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|