| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | |  | Visiativ Blog | Tipps & Tricks rund um SOLIDWORKS und 3DEXPERIENCE. , ein Kurs
|
Autor
|
Thema: Verknüpfungsmakro (1098 mal gelesen)
|
atchris Mitglied Student
 Beiträge: 5 Registriert: 10.08.2009 SWX 2008 SP5.0
|
erstellt am: 01. Sep. 2009 14:31 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Ich will über ein Makro zwei Teile in eine Baugruppe einfügen und dann miteinander verknüpfen. * es befinden sich keine weiteren Teile in der Baugruppe. * die beiden Bauteile sollten über die vorher im "Partdesign" erstellten Koordinatensysteme miteinander verknüpft werden. Leider funktionierte meine Makroaufzeichnung dieses Vorgangs anschließend nicht. Ich wäre euch sehr hilfreich wenn Ihr mir dabei helfen könntet. mfg Chris
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HaPe Mitglied Dipl. Ing Maschinenbau, Konstrukteur, CAD-Admin
   
 Beiträge: 1096 Registriert: 27.11.2001 i7 CPU 960@3.20GHz 8GB Ram Quadro 2000 4GB 70GB Raid 0 WIN7 prof. SP1 64 bit SWX 2010 SP5.0 SWX 2012 SP5.0 SWX 2013 SP5.0
|
erstellt am: 01. Sep. 2009 15:25 <-- editieren / zitieren --> Unities abgeben:          Nur für atchris
|
atchris Mitglied Student
 Beiträge: 5 Registriert: 10.08.2009 SWX 2008 SP5.0
|
erstellt am: 01. Sep. 2009 15:33 <-- editieren / zitieren --> Unities abgeben:         
|
atchris Mitglied Student
 Beiträge: 5 Registriert: 10.08.2009 SWX 2008 SP5.0
|
erstellt am: 01. Sep. 2009 15:43 <-- editieren / zitieren --> Unities abgeben:         
Okay, etwas präziser. Ich will eine Komponenten-Verknüpfung mittels eines Makros durchführen. Verknüpft werden sollen zwei Koordinatensysteme die vorher in den Komponenten definiert worden sind. Danke, chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirk Wollborn Mitglied Entwicklungskonstrukteur
 
 Beiträge: 379 Registriert: 31.07.2001
|
erstellt am: 01. Sep. 2009 16:15 <-- editieren / zitieren --> Unities abgeben:          Nur für atchris
|
HaPe Mitglied Dipl. Ing Maschinenbau, Konstrukteur, CAD-Admin
   
 Beiträge: 1096 Registriert: 27.11.2001 i7 CPU 960@3.20GHz 8GB Ram Quadro 2000 4GB 70GB Raid 0 WIN7 prof. SP1 64 bit SWX 2010 SP5.0 SWX 2012 SP5.0 SWX 2013 SP5.0
|
erstellt am: 01. Sep. 2009 16:16 <-- editieren / zitieren --> Unities abgeben:          Nur für atchris
Ok, dann auch etwas präziser: Welche Version von SWX benutzt Du (es gibt Unterschiede bei den Makrobefehlen), was genau funktioniert bei der Makroaufzeichnung nicht, poste bitte die Fehlermeldung, bzw. das entsprechende Makro. Bitte sei noch so nett und fülle Dein Profil aus. Schau einmal links neben diesen Beitrag, dort siehst Du was ich meine, es erleichtert denjenigen, die Dir helfen möchten die Arbeit, wenn sie wissen welche Hard- und Software Du benutzt. Gruß HaPe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
atchris Mitglied Student
 Beiträge: 5 Registriert: 10.08.2009 SWX 2008 SP5.0
|
erstellt am: 01. Sep. 2009 16:28 <-- editieren / zitieren --> Unities abgeben:         
Wenn ich ein Makro aufzeichne und dann durchführe, funktioniert es nicht und es kommt folgende Fehlermeldung. Type mismatch (*in Fett markierter Zeile) Des Weiteren habe ich in der API Hilfe schon nachgeschaut.
Code:
Dim swApp As ObjectDim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Part.FileReload boolstatus = Part.AddComponent("C:\...\greifer.SLDPRT", -0.01029505274673, -0.08333216248491, 0.1139940545173) boolstatus = Part.SetUserPreferenceToggle(swUserPreferenceToggle_e.swDisplayCoordSystems, True) boolstatus = Part.Extension.SelectByID2("GP1@Kurbelwelle_test0109-1@Baugruppe1", "COORDSYS", 0, 0, 0, True, 1, Nothing, 0) boolstatus = Part.Extension.SelectByID2("GP1@greifer-1@Baugruppe1", "COORDSYS", 0, 0, 0, True, 1, Nothing, 0) Dim myMate As Object Set myMate = Part.AddMate2(20, -1, False, 0.2223620412305, 0, 0, 0.001, 0.001, 0.001, 0.5235987755983, 0.5235987755983, 0.5235987755983, longstatus, 0, 0, 0, 0, 0, 1, False, False, False, True) Part.ClearSelection2 True End Sub
Wo könnte hier das Problem liegen? Danke,chris 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: 02. Sep. 2009 10:15 <-- editieren / zitieren --> Unities abgeben:          Nur für atchris
Hallo Chris, das Problem liegt an dem Makrorecorder, der, in positivster Weise ausgedrückt, bestenfalls Anhaltspunkte liefern kann. Auch in diesem Fall hat er es nicht ganz geschafft die Befehle richtig einzutragen, was er sonst weglässt hat er in diesem Fall zu viel geschrieben. Der API Befehl AssemblyDoc::AddMate2 hat 12 Parameter und einen Rückgabewert, der Makrorecorder zeichnet laut deinem Beispiel aber 23 Parameter auf. Das kann nicht passen und du erhälst korrekterweise eine Warnung. Um das richtig zu stellen schaust du dir am Besten immer die Befehle in der API Hilfe an, da steht z.B. auch das mittlerweile die AddMate3 benutzt werden sollte. Wie gesagt, der Makrorecorder ist manchmal ganz hilfreich, um eine Idee zu bekommen, wonach man anschließend in der API Hilfe suchen kann. 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 |

| |
atchris Mitglied Student
 Beiträge: 5 Registriert: 10.08.2009 SWX 2008 SP5.0
|
erstellt am: 02. Sep. 2009 10:43 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |