| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Zerspanungstreff mit SolidCAM bei der Hoffmann GmbH in Achim/Bremen |
Autor
|
Thema: [API] OpenDoc6 macht Probleme (1401 mal gelesen)
|
gegy3 Mitglied
Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Nov. 2008 16:34 <-- editieren / zitieren --> Unities abgeben:
Hallo! Wenn ich ein Document mit OpenDoc6 in Solidworks laden will funktioniert das nicht. Der Pointer für die geladene Komponente belibt immer leer. Wenn ich mir den Errorcode anzeigen lasse, bekomme ich immer diese Nummer: 65536 Was heißt diese Error Nummer? Wo bekomme ich die information was die Errorcodes heißen? So sieht mein Befehl für das öffnen der Komponente: Code: screws = swApp.OpenDoc6("I:\Konstruktion\Identnummernteile\SCE0xxZ_Scheibe-DIN125-TZN.SLDPRT",_ swDocumentTypes_e.swDocPART, swOpenDocOptions_e.swOpenDocOptions_Silent, _ "", Errors, Warnings)
!Achtung ich programmiere in vb.net, deswegen keine "SET" anweisung. **Edit** Könnte die Fehlernummer vielleicht heißen: Zu wenig Speicher [Diese Nachricht wurde von gegy3 am 14. Nov. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gegy3 Mitglied
Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Nov. 2008 17:00 <-- editieren / zitieren --> Unities abgeben:
Ok, was 65536 heißt, habe ich nun hier raußgefunden: Klick mich! Also wenn die Komponente bereits geöffnet ist, müsst sie doch mit AddComponent4 einfügen können, das funktioniert aber nicht.
[Diese Nachricht wurde von gegy3 am 14. Nov. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 14. Nov. 2008 17:21 <-- editieren / zitieren --> Unities abgeben: Nur für gegy3
Hallo gegy3, bei der Rückgabe handelt es sich um ein Enumerator welcher als Bitfeld, d. h. als Gruppe von Flags behandelt wird. Der Grund ist, das es ja mehrere Ursachen haben kann, warum du dein Dokument nicht öffnen kannst. Es gibt zwei Möglichkeiten dieses Bitfeld aufzuschlüsseln. Abfrage eines direkten Inhalts:
Code: 'Am Beispiel von swFileLoadWarning_AlreadyOpen If(Errors And SwConst.swFileLoadWarning_e.swFileLoadWarning_AlreadyOpen) > 0 Then 'Hinweis ... End If
Oder wenn SolidWorks die Attribute richtig gesetzt hat (was ich allerdings nicht weis und auch jetzt nicht testen kann!):
Code: For i as integer = 0 to 65536 Console.WriteLine( "{0,3} - {1}", _ i, CType(i , SwConst.swFileLoadWarning_e).ToString()) Next
Mehr Informationen gibt es hier
------------------ Mfg Daniel www.MySldWorks.de - SolidWorks Api Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gegy3 Mitglied
Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 14. Nov. 2008 17:35 <-- editieren / zitieren --> Unities abgeben:
|
gegy3 Mitglied
Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 17. Nov. 2008 20:17 <-- editieren / zitieren --> Unities abgeben:
So, nun habe ich denke ich rausgefunden, dass ich eine Komponente wenn sie bereist in solidworks geladen ist (in einer Baugruppe verbaut, wlche geöffnet ist) nicht mit AddComponent4 in eine baugruppe einfügen kann. Wenn ich z.b. diesen Code habe: Code: swComponent = swAssembly.AddComponent4("C:\Solidworks_Modele\screws\SCE0xxZ_Scheibe-DIN125-TZN_VBA.SLDPRT", _ "SCE013Z", swCurveData(0), swCurveData(1), swCurveData(2))
dann bleibt die Variable swComponent immer leer, obwohl der Pfad stimmt. Was mache ich da falsch?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkkk Mitglied
Beiträge: 105 Registriert: 04.03.2005
|
erstellt am: 18. Nov. 2008 13:44 <-- editieren / zitieren --> Unities abgeben: Nur für gegy3
|
mkkk Mitglied
Beiträge: 105 Registriert: 04.03.2005
|
erstellt am: 18. Nov. 2008 13:45 <-- editieren / zitieren --> Unities abgeben: Nur für gegy3
|
gegy3 Mitglied
Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 18. Nov. 2008 14:42 <-- editieren / zitieren --> Unities abgeben:
Ich hab inzwischen sogar schon SP5. Ich müsste nur irgendwie die Komponente einfügen. Kann es sein, dass ich sie nicht einfügen/öffnen kann, wenn sie zwar gleich heißt, aber nicht an dem Ort liegt, von dem sie mit dem Model geöffnet worden ist. Beispiel: Baugruppe A hat Teil B aus Ordner c:\teile verbaut. Nun will ich in Baugruppe A Teil B aus dem Ordner c:\andereteile einbauen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkkk Mitglied
Beiträge: 105 Registriert: 04.03.2005
|
erstellt am: 19. Nov. 2008 08:39 <-- editieren / zitieren --> Unities abgeben: Nur für gegy3
Nein das geht nicht. SWX klammert sich nur am Dateinamen. Ist der gleich, aber kommt aus einem anderen Ordner, so funktioniert das nicht bzw. SWX nimmt dann das schon verbaute Teil aus dem ersten Ordner. Will heißen: Ein Dokument mit selbem Namen aus verschiedenen Ordnern in eine Baugruppe einfügen - das geht in SWX nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gegy3 Mitglied
Beiträge: 300 Registriert: 26.04.2006 SolidWorks 2012 SP 5.0
|
erstellt am: 19. Nov. 2008 08:58 <-- editieren / zitieren --> Unities abgeben:
Wie kann ich dann ein so bereits geöffnetes Teil in eine Baugruppe einfügen? Für AddComponent4 geht das ja nur mit dem vollem DateiPfad, ich weiß aber ja nicht aus welchem Ordner das Teil geöffnet wurde. Kann ich das bereits geöffnete Teil nicht einfügen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |