| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| ZOLLER SMART FACTORY - CAM to Part mit HAINBUCH und SolidCAM |
Autor
|
Thema: Makro für Dateieigenschaften (6928 mal gelesen)
|
Mr.Jenka Mitglied
Beiträge: 3 Registriert: 02.09.2011 Solidworks 2011 x64 Premium Windows 7 Professional 64bit Intel Xeon X3430, 8GB RAM Nvidia Quadro FX 1800
|
erstellt am: 02. Sep. 2011 11:01 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich bin grade auf euer Forum gestoßen und habe mich einmal umgeschaut, ob es für mein Problem eventuell schon eine Lösung gibt, wurde jedoch noch nicht fündig. Hier also mein Problem: Ich möchte gerne mittels Makro in meine Dateieigenschaften des Teils folgende Eigenschaften eintragen: Abmaße Masse Material Ich habe es einfach versucht indem ich das manuelle Eintragen dieser Eigenschaften "aufnehme". Leider öffnet sich beim Ausführen des Makros nur das Dateieigenschaftsfenster, ohne die Eigenschaften einzutragen. Ich muss dazu sagen, dass ich absolut null Ahnung von Programierung habe, so dass ich auch nicht in der Lage bin, ein Makro für mich zu ändern (bspw. das Makro "mm35"). Ich hoffe, mir kann jemand helfen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 02. Sep. 2011 11:12 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
Hallo und herzlich willkommen auf CAD.de im SolidWorks Brett, was soll denn Dein Makro machen bestimmte Eigenschaften mit Werten befüllen oder nur die Eigenschaft selbst anlegen? Es gibt in der Makromania ein Beispiel Makro, Schriftfeld ausfüllen von Stefan Berlitz hier der link dorthin(Makro Nr. 9). Das kannst Du als Beispiel verwenden und spickeln. Je nachdem was Du genau willst kannst Du Dich aber mit der Eigenschaften Registerkarte (in der Hilfe suchen) mal auseinander setzen und schauen ob das etwas für Dich ist. Eine Bitte, fülle bitte Dein Profil aus mit SWX Version (32 od. 64bit) Windows Version Grfikkarte usw. da viele Antworten eben auch davon abhängen. gruß Heiko ------------------ CAD.de Treffen Stuttgart nicht nur Pro/E!!!! 64bit sind kein Thema mehr ;-) [Diese Nachricht wurde von Press play on tape am 02. Sep. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mr.Jenka Mitglied
Beiträge: 3 Registriert: 02.09.2011 Solidworks 2011 x64 Premium Windows 7 Professional 64bit Intel Xeon X3430, 8GB RAM Nvidia Quadro FX 1800
|
erstellt am: 02. Sep. 2011 11:55 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für den Tipp mit den Systeminformationen. Im Anhang ist ein Bild, das die gewünschten Informationen zeit, die ich eintragen möchte. Diese hab ich manuell eingetragen, hätte jedoch gerne ein Makro, das dies automatisiert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 02. Sep. 2011 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
Hallo Mr.Jenka das mit der Masse und dem Material sollte, meiner Meinung nach, nicht das große Problem sein. Siehe dazu auch in der API-Hilfe unter "ICustomPropertyManager Interface Members" und den Werten "SW-Material@PartName.SLDPRT" für Material und "SW-Mass@PartName.SLDPRT" für Masse Aber Abmaße das wird wohl schieriger werden, willst Du den Wert manuell eingeben oder soll er von einer Bemaßung kommen? Was geschieht wenn sich die Maße ändern? Wenn der Wert von einer Bemaßung kommt was passiert, wenn das Maß gelöscht wird oder ein anderes Maß die Abmessung vorgibt? Bei Drehteilen werden 2 Werte genügen max. Ø und Länge, bei anderen Teilen wirst Du wohl 3 Werte benötigen. Und noch was, soll das auch mit Konfigurationen funktionieren? Du siehst also, leider ist das doch nicht so einfach. Man sollte vorher überlegen was gewünscht wird. ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3592 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 02. Sep. 2011 12:14 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
such mal nach proberty tab builder der nimmt dir dann schon 80% der arbeit ab und dort kannst du auch bequem andere eigenschaften eintragen beschreibung material ... du kannst auch festlegen, wo ers hin schreibt konfig spezifisch oder für alle konfigurationen gleich (benutzerdefiniert) 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 |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 02. Sep. 2011 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
Hallo nochmals nur mal ein "Schnellschuss" ohne viel Schnick-Schnack Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim value As CustomPropertyManager Dim wert As String Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc
Set instance = swModel.Extension Set value = instance.CustomPropertyManager("") value.Add2 "Masse", swCustomInfoText, Chr(34) & "SW-Material@" & swModel.GetTitle & Chr(34) value.Add2 "Material", swCustomInfoText, Chr(34) & "SW-Mass@" & swModel.GetTitle & Chr(34) wert = InputBox("Abmaße eingeben", "Eingabe", "") If wert = "" Then MsgBox "Es wurde kein Wert eingegeben", vbOKOnly, "Meldung" Else ' Abmessungen dazu ok = value.Add2("Abmessungen", swCustomInfoText, wert) ' Falls es dieses Feld schon gibt If ok = 0 Then ' Feld löschen value.Delete "Abmessungen" ' Abmessungen dazu value.Add2 "Abmessungen", swCustomInfoText, wert End If End If Set swModel = Nothing Set swApp = Nothing End Sub
------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lueghi Mitglied Admin für alle Systeme ....
Beiträge: 416 Registriert: 01.07.2005 CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO PDM...: PRO.FILE 8.6 ERP...: proAlpha 6.2e / 7.1 BS....: Win10, HP ZBook G5
|
erstellt am: 02. Sep. 2011 12:53 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
Wenn die Abmaße einfach nur die maximalen Dimensionen in den 3 Hauptachsen sein sollen, dann kann man das auch über ein Makro lösen. Habe da mal vor einiger Zeit mal was auf irgendeiner Seite gefunden und auf uns angepaßt. War ursprünglich als Makrofeature ausgeführt, damit hatten wir aber Probleme. Habe dann den Featureteil einfach gelöscht und das wird jetzt als Makro ausgeführt. Es werden die 3 Hauptabmessungen und der Abmessungsstring erzeugt und in den Dateieigenschaften abgelegt. Wenn Bedarf besteht melden. ------------------ Gruß Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Joshua63 Mitglied Maschinenbautechniker
Beiträge: 371 Registriert: 08.11.2006 W10 SP1 Intel i7 8700K Quatro P4000 32GB RAM SW 2021 SP4.1 SWX PDM Professional 2021
|
erstellt am: 02. Sep. 2011 12:54 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
Hi, einfacher ist es natürlich die Eingenschaften für Masse und Material schon in den Vorlagen einzutragen. grüßle ------------------ Viele Wege führen zum Ziel .......... und ich will alle wissen ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3592 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 02. Sep. 2011 13:01 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
die vorlagen würde ich nur mehr neutral halten und alles nur mehr über den property tab builder machen ist viel angenehmer und super einfach zu bedienen 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 |
Mr.Jenka Mitglied
Beiträge: 3 Registriert: 02.09.2011 Solidworks 2011 x64 Premium Windows 7 Professional 64bit Intel Xeon X3430, 8GB RAM Nvidia Quadro FX 1800
|
erstellt am: 05. Sep. 2011 11:17 <-- editieren / zitieren --> Unities abgeben:
Hallo und vielen Dank für die zahlreichen Vorschläge. Das Problem mit Masse und Material war tatsächlich über den Eintrag in die Vorlagen-Eigenschaft zu lösen. Ich habe vorsichtshalber eine zweite Vorlage erstellt, um die ursprüngliche neutrale Vorlage zu behalten. Aber diese Vorgehensweise ist für mich die praktikabelste, da ich so schon automatisch Masse und Material in den Eigenschaften hinterlegt habe, ohne etwas machen zu müssen. Das Problem der Abmaße: Ich benötige lediglich die Abmaße in die 3 Hauptrichtungen. Dazu habe ich bereits ein Makro gefunden. Hierbei handelt es sich jedoch um ein Feature-Makro, wie bereits Lueghi schrieb. Dieses schreibt praktisch die 3 Abmaße in die Dateieigenschaften, wenn sich diese jedoch ändern, wird es nicht aktualisiert, manchmal erfolgt dann auch eine Fehlermeldung, oder die Abmaße bleiben einfach in der ursprünglichen Version in der Dateieigenschaft stehen. Vielleicht hat das überarbeitete Makro von Lueghi diese Fehler nicht mehr?
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: 05. Sep. 2011 13:11 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
Das was du da vorhast, erfordert ein bissl mehr Arbeit als es scheint. Du sollest dir eine Vorlage erstellen, in der du globale Variablen verwendest. Länge / Breite / Höhe Und diese Globalen Variablen läßt du dir dann in den Eigenschaften anzeigen. Diese kannst du dir nacheinander in einer Eigenschaft anzeigen lassen. ------------------ CSWST/CSWI/CSWP/ 3DVia
DPS-Software GmbH...strebe niemals nach den Dingen, die auch dümmeren gelingen..... [Diese Nachricht wurde von Olaf Wolfram am 05. Sep. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SteffenB Mitglied Geprüfter Konstrukteur (IHK) / Key-User
Beiträge: 268 Registriert: 10.08.2005 Intel Xeon 3,6Ghz 32GB RAM NVIDIA Quadro 2000 Windows 7 Pro / 64bit SWX 2015 SP2.1
|
erstellt am: 06. Sep. 2011 08:04 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
Zitat: Original erstellt von Olaf Wolfram: Das was du da vorhast, erfordert ein bissl mehr Arbeit als es scheint. Du sollest dir eine Vorlage erstellen, in der du [b]globale Variablen verwendest. Länge / Breite / HöheUnd diese Globalen Variablen läßt du dir dann in den Eigenschaften anzeigen. Diese kannst du dir nacheinander in einer Eigenschaft anzeigen lassen. [/B]
Hallo Olaf, und wie genau funktioniert das mit den globalen Variablen? Die Hilfe ist da leider etwas dürftig? Das würde ich mich auch interessieren - wäre ein Makro weniger. Gruß Steffen ------------------ Wer Rechtschreibfehler findet darf sie gerne behalten! :-) www.egoproducts.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 06. Sep. 2011 08:14 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
|
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: 06. Sep. 2011 09:55 <-- editieren / zitieren --> Unities abgeben: Nur für Mr.Jenka
Hallo zusammen, ich bin mir nicht sicher, ob hier nicht was durcheinander geht. Wenn ich es richtig verstanden habe geht es um die Aufgabe, die Hauptabmessungen eines Teils zu ermitteln und diese dann assoziativ und zuverlässig in Dateieigenschaften einzutragen. Ich vermute was Olaf meint, sich globale Variable zu erstellen, was ja nichts anderes sind als Gleichungen in der Form von "Laenge = 140", diese von Hand auszufüllen und in den Dateieigenschaften zu übernehmen. Ich wüsste keine Möglichkeit, die es mir in SolidWorks mit Bordmitteln gestattet die Hauptabmessungen zu ermitteln. Das ist auch gar nicht so einfach, wie man sich das so vorstellt. Es gibt die Möglichkeit per API die sogenannte BoundingBox zu bekommen, da gibt es verschiedenste Calls, je nachdem, was man möchte (z.B. GetBox, GetBodyBox, GetPartBox). Alle haben den Nachteil, dass sie den Hauptachsen des Modells folgen und nicht den Abmessungen oder gar der Geometrie. Unabhängig davon muss man die eben per API call abgreifen; wenn man es also automatisiert und assoziativ irgendwo eintragen will kommt man um ein Makrofeature eigentlich nicht drumherum. Aber ich bin auch gerne bereit etwas dazuzulernen, falls es doch irgendeinen Weg gibt, dass ohne Umweg über ein Makrofeature zu machen 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 |