| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| | |
 | Eco Design mit CATIA: Der Schlüssel zu Sustainable Product Development, ein Fachartikel
|
|
Autor
|
Thema: Makro funktioniert nicht - Verweise fehlen? (418 mal gelesen)
|
Piet Mitglied Konstruktionsleiter & Konstrukteur
  
 Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 04. Nov. 2005 15:44 <-- editieren / zitieren --> Unities abgeben:         
Ich hab ein paar Makros geschrieben, die ich viel nutze. Bei meinen Kollegen funktionieren sie teilweise aber nicht. Der Debugger deutet darauf hin, das Modelle oder SWX  nicht erkannt werden, teilweise auch Excel. Um dem auf die Spur zu kommen, wollte ich bei Kollegen nachsehen, ob die Verweise richtig angehakt sind. Und siehe da: Ich komm an die Verweise gar nicht ran! Der Menüpunkt ist ausgegraut und kann nicht geöffnet werden. Warum das so ist, ist mir ein Rätsel. Hat jemand eine Idee, wie ich auf diesen Rechnern die Verweise aktivieren kann? Oder muss ich dafür in meinen Makros noch irgendwas einstellen? Piet
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rapti Mitglied Dipl. Ing. HTL Maschinenbau
  
 Beiträge: 691 Registriert: 13.02.2003 SolidWorks 2019 Premium
|
erstellt am: 04. Nov. 2005 17:13 <-- editieren / zitieren --> Unities abgeben:          Nur für Piet
|
Piet Mitglied Konstruktionsleiter & Konstrukteur
  
 Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 09. Nov. 2005 11:30 <-- editieren / zitieren --> Unities abgeben:         
Da hast du natürlich Recht. Solange der VB-Editor im Debug-Modus hängt, läuft das Makro noch, und solange kann man die Verweise nicht sehen. Tatsächlich sind alle Verweise da. Was aber ist die Ursache? Warum laufen die Makros auf meinem Rechner, aber bei den anderen nicht? Hat irgend jemand eine Idee? Piet [Diese Nachricht wurde von Piet am 09. Nov. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter

 Beiträge: 3864 Registriert: 29.09.2004 SOLIDWORKS 2024 SP3.1 SOLIDWORKS 2023 SP5.0 SOLIDWORKS 2022 SP5.0 SOLIDWORKS 2021 SP5.1
|
erstellt am: 09. Nov. 2005 11:56 <-- editieren / zitieren --> Unities abgeben:          Nur für Piet
Hab jetzt nicht alles durchgelesen. Hab die Erfahrung gemacht, das bei mir ein Makro für einen automatischen TIFF Export funktioniert hat und bei den Kollegen dann nicht. Grund dafür dürft sein, dass auf meinem Rechner neben SWX  2005 SP2 auch noch SWX  2006 SP1 installiert ist. Es scheint so, dass 2005 durch 2006 beeinflusst worden ist (positiv). Kann mir nicht vorstellen wieso, aber tatsache ist, dass die Auswirkung dies zeigt. ------------------ OM Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller Mitglied Masch. Ing. HTL / Betriebsing. STV
   
 Beiträge: 1151 Registriert: 11.04.2001
|
erstellt am: 09. Nov. 2005 12:00 <-- editieren / zitieren --> Unities abgeben:          Nur für Piet
Hallo Piet. Ich mache das (fast) immer so: Zum Programmieren verwende ich die entsprechenden Verweise z.B. "SldWork 2006 Type Library". Da sieht eine Deklaration folgendermassen aus: Code: Dim Part As SldWorks.ModelDoc2
Das ist beim Programmieren echt nützlich, da der VBA-Editor dann weiss, was für Methoden und Prop's das Objekt hat. Der Nachteil ist, wenn das Makro auf einer Maschine mit z.B. SWX 2005 läuft, hat sie diese Verweise natürlich nicht! Hier existiert nur die "SldWork 2005 Type Library". Resultat: das Makro läuft nicht! Gilt natürlich auch für andere Anwendungen (Excel, ...). Daher Deklariere ich Objekte für mehrere User so: Code: Dim Part As Object
Dann kann VBA das Objekt in allen Anwendungen und deren Versionen erstellen, die ein solchen Objekt kennen. Z.B. in SWX 2001, 2003, ..., 2005. Dazu werden natürlich dann auch die nicht benötigten Verweise aus dem Makro genommen. In diesem Fall könnte die "SldWork 2006 Type Library" entfernt werden, da VBA selber nach einem Typ sucht. Das Ganze nennt sich "early binding" (mit Verweis) resp. "late binding" (ohne Verweis).
------------------ Gruss Andreas A+E Müller AG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Piet Mitglied Konstruktionsleiter & Konstrukteur
  
 Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 09. Nov. 2005 12:00 <-- editieren / zitieren --> Unities abgeben:         
Wir haben alle die gleiche SWX  -Version drauf, und keine anderen. Ich hab als einziger VB.Net installiert, aber da ich die Makros mit VBA erstellt hab, dürfte das eigentlich nichts ausmachen. Piet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Piet Mitglied Konstruktionsleiter & Konstrukteur
  
 Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 09. Nov. 2005 12:03 <-- editieren / zitieren --> Unities abgeben:         
|
Piet Mitglied Konstruktionsleiter & Konstrukteur
  
 Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 16. Nov. 2005 10:30 <-- editieren / zitieren --> Unities abgeben:         
Andreas' Tipp war der Richtige. Nachdem ich das Makro auf late Binding umgeschrieben hab, funktioniert es überall. Offenbar lag es nicht an SWX , sondern an verschiedenen Excel-Versionen, die rumgeistern. Vielen Dank noch mal! Piet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |