| |
| 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 |
Autor
|
Thema: Solidworks VBA - SLDDRW mit Referenz speichern (2283 mal gelesen)
|
Bigles Mitglied Student, Technischer Zeichner
Beiträge: 26 Registriert: 09.03.2012 Solidworks 2012 Windows 7
|
erstellt am: 09. Mrz. 2012 18:52 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Ich habe eine kurze Frage. Ich suche einen Code der eine geöffnet Zeichnung als Kopie unter anderem Namen speichert. Dabei soll das untergeordnete SLDPRT auch mit gleichem Namen mitgespeichert werden (und die Referenz soll angepasst werden). Manuell geht das einfach über speichern, neuer Namen eingeben, speichern drücken. Mit Makrorecoder wird das zwar aufgezeichnet aber sobald ich es laufen lasse geht einfach eine "Speicher-Meldung" auf die man dann bestätigen muss... Wäre sehr dankbar falls mir jemand helfen könnte. Suche schon ziemlich lange und langsam auch verzweifelt eine Methode. Besten Dank und lg Bigles Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GunnarHansen Mitglied Engineer
Beiträge: 752 Registriert: 16.09.2009
|
erstellt am: 09. Mrz. 2012 22:20 <-- editieren / zitieren --> Unities abgeben: Nur für Bigles
Guk mal hier: http://ww3.cad.de/foren/ubb/Forum2/HTML/023744.shtml Da hat Stefan mich geholfen. Dein Problem ist ähnlich? Hab mal hier ein Makro gemacht mit sendkey für dich gemacht: -------------------------------- Sub main() SendKeys "%fa{TAB 3}{ENTER}" Set swApp = Application.SldWorks End Sub --------------------------------- Das ist für englisch solidworks. % = ALT Taste f = File a = save as {tab 3} = 3 mal TAB Taste f und a ist anders in deutsch. Kannst du selber machen
Wenn man das Makro leuft kommt das Bild wie anbei gezeigt.
[Diese Nachricht wurde von GunnarHansen am 09. Mrz. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bigles Mitglied Student, Technischer Zeichner
Beiträge: 26 Registriert: 09.03.2012 Solidworks 2012 Windows 7
|
erstellt am: 10. Mrz. 2012 12:17 <-- editieren / zitieren --> Unities abgeben:
Hey Gunnar Vieelen Dank für die Antwort. Auf das wäre ich selbst niemals gekommen!! Leider hab ich deinen Beitrag erst jetzt gesehen und unterdessen die halbe Nacht damit verbracht eine Lösung zu finden, was irgendwie auch gelang aber ohne dass ich wirklich begriffen habe warum. Meine Lösung ist: statt den vba-file-copy befehl zu nehmen das PackAndGo-Makro (http://help.solidworks.com/2011/English/api/sldworksapi/Pack_and_Go_an_Assembly_Example_VB.htm) zu nehmen um Kopien zu erstellen -> dann stimmen auch gleich die Referenzen und nach dem Öffnen des kopierten files speichere ich mit dem saveas2 Befehl zu verwenden (swModelDoc.SaveAs2(pfad & dokumentnummer ".SLDPRT", swSaveAsCurrentVersion, False, False)) so gings irgendwie... trotzdem vielen Dank, hätte ich es früher gesehen hätte ich mir einige Stunden Arbeit erspart.. lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Winni-two Mitglied Ing. Maschb.
Beiträge: 154 Registriert: 12.03.2010 SW 2021 SP5 Intel Xenon W2135 @3.7GHz Win 10 64 bit Graka: Nvidia Quadro P4000 32 GB Ram
|
erstellt am: 10. Mrz. 2012 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für Bigles
Hallo Bigles Ich habe schnell ein Makro von mir angepasst. Als Grundlage sollte es funktionieren. Speichert die Datei als Kopie, schließt das Original und öffnet die Kopie. Wenn du das Feld Referenz zu neuem Teil anhakst, sollte es ein neues Teil speichern und die Ref der Zeichnung anpassen. Wurde mit 2012 erstellt, also wahrscheinlich noch die Verweise anpassen. Hoffe es klappt Gruß Winni PS: Nicht vergessen die Zeichnung nochmals zu speichern, sonst ist die Ref. zum neune Teil weg. Oder ein (Part.Save2 False) am Ende der Sub SaveAsCopyButton_Click() einfügen. [Diese Nachricht wurde von Winni-two am 10. Mrz. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bigles Mitglied Student, Technischer Zeichner
Beiträge: 26 Registriert: 09.03.2012 Solidworks 2012 Windows 7
|
erstellt am: 10. Mrz. 2012 16:00 <-- editieren / zitieren --> Unities abgeben:
Hey Winni-two Bin nicht ganz sicher ob du mich richtig verstanden hast. Mein Ziel war es von einer Zeichnung alle Konfigurationen einzeln zu speichern. Ich habe das gelöst indem ich nach Anzahl Konfigurationen Kopien vom Original-File erstellt habe und diese dann nacheinander bearbeitet habe. Das ging alles perfekt bis auf das speichern. Denn dort kam eine Meldung "Wollen Sie ..." was man nur manuell beantworten konnte. Plötzlich kam diese Meldung nicht mehr und ich dachte ich habe das ganze behoben, bis das Problem vor kurzem (aus unerfindlichen Gründen) wieder auftrat. Dank deinem Makro aber habe ich gerade den Befehl "SaveAsSilent()" kennengelernt und eingebaut... und jetzt erfolgt das speichern wirklich ohne Meldung!!!!!! =) Darum viiielen Dank!! Abgesehen davon, ganz hübsches Makro. Kann ich sicher irgendwie weiterverwenden!! Danke lg PS: @gunnar: Dein Lösungsvorschlag ging doch nicht. Das Problem ist, dass bei einer Solidworksmeldung das Makro stehen bleibt und auch keine keys gesendet werden können. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Winni-two Mitglied Ing. Maschb.
Beiträge: 154 Registriert: 12.03.2010 SW 2021 SP5 Intel Xenon W2135 @3.7GHz Win 10 64 bit Graka: Nvidia Quadro P4000 32 GB Ram
|
erstellt am: 10. Mrz. 2012 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für Bigles
|
Bigles Mitglied Student, Technischer Zeichner
Beiträge: 26 Registriert: 09.03.2012 Solidworks 2012 Windows 7
|
erstellt am: 10. Mrz. 2012 17:09 <-- editieren / zitieren --> Unities abgeben:
Ja genau, zweiteres. Ein SLDPRT mit verschiedenen Konfigurationen und ein dazu gehörendes SLDDWR das pro Konfiguration 1-2 Blätter hat. Mein Makro sollte über 40'000 CAD-Dateien in einzelne Modelle/Zeichnungen mit neuen Nummern splitten. In jeder Datei müssen dann noch weitere Anpassungen gemacht werden, zb Zeichnungsrahmen auswechseln o.ä. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |