| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Dassault Systèmes auf der Hannover Messe 2024 (kostenlose Tickets verfügbar) |
Autor
|
Thema: API: Zugriff auf Dateien im Konstruktionsordner (1410 mal gelesen)
|
MartinKirchmayer Mitglied
Beiträge: 79 Registriert: 14.05.2002
|
erstellt am: 26. Okt. 2009 15:46 <-- editieren / zitieren --> Unities abgeben:
|
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: 26. Okt. 2009 16:09 <-- editieren / zitieren --> Unities abgeben: Nur für MartinKirchmayer
Hallo Martin, wie ist deine Frage geneimt? Ist Konstruktionsordner für dich die Konstruktionsbibliothek? Willst du wissen welches Verzeichnis hinter der Konstruktionsbibliothek steckt? Die kanst du mit Hilfe der SolidWorks Systemoption swUserPreferenceStringValue_e.swFileLocationsDesignLibrary und der API-Methode SldWorks.GetUserPreferenceStringValue ermitteln. Mehr Informationen findest du in der API Hilfe unter dem Stichwort UserPreferenceStringValue oder hier. ------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MartinKirchmayer Mitglied
Beiträge: 79 Registriert: 14.05.2002
|
erstellt am: 26. Okt. 2009 16:32 <-- editieren / zitieren --> Unities abgeben:
|
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: 26. Okt. 2009 16:36 <-- editieren / zitieren --> Unities abgeben: Nur für MartinKirchmayer
Hallo Martin, da habe ich wohl die komplett falsche Richtung vermutet. Leider kann ich dir da nicht weiter helfen. Der Konstruktionsordner wird bei uns nicht verwendet, deshalb hatte ich an diesen auch nicht gedacht. Die Funktionalität des Konstruktionsordners ist mir manuell und somit auch über die API nicht bekannt. ------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets 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: 27. Okt. 2009 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für MartinKirchmayer
Hallo Martin, da gibt es ein paar API in der ModelDocExtension für: ModelDocExtension.InsertAttachment - anhängen ind en Konstruktionsordner ModelDocExtension.DeleteAttachment - wieder aus dem Konstruktionsordner löschen ModelDocExtension.GetAttachmentCount - Anzahl Dokumente (Anhänge) im Konstruktionsordner ModelDocExtension.GetAttachments - Arrays mit dem angehängten Dokumenten Dummerweise zeichnet der Makrorekorder nichts dazu auf, in der AP Hilfe steht nichts zum Stichwort "Design binder", und auf "Attachments" muss man erst mal kommen 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 |
MartinKirchmayer Mitglied
Beiträge: 79 Registriert: 14.05.2002
|
erstellt am: 27. Okt. 2009 10:02 <-- editieren / zitieren --> Unities abgeben:
Danke schon mal Stefan. Nun noch eine Frage: ModelDocExtension::GetAttachments liefert (in der OLE Automation) ein "VARIANT of type SafeArray of the attachments for this document" zurück. Was steht denn genau in dem Array drin? Kann ich denn damit dann noch weitere Operationen auf diesen Dateien machen? Also z.B. öffnen, separat rausspeichern... Gruß, Martin 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: 27. Okt. 2009 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für MartinKirchmayer
Hallo MArtin, Zitat: Original erstellt von MartinKirchmayer: Was steht denn genau in dem Array drin? Kann ich denn damit dann noch weitere Operationen auf diesen Dateien machen? Also z.B. öffnen, separat rausspeichern...
Probieren geht über studieren ;) Code: Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As ModelDoc2 Dim swExt As ModelDocExtension Dim bRes As Boolean Dim AttachmentsCount As Long Dim AttachmentsLinked As Variant Dim AttachmentsList As Variant Dim i As Long ' an SolidWorks anhängen Set swApp = Application.SldWorks ' aktives ModelDoc holen Set swModel = swApp.ActiveDoc ' die ModelDocExtension greifen Set swExt = swModel.Extension ' BEISPIEL: vorhandenes File in den Konstruktionsordner einhöngen bRes = swExt.InsertAttachment("I:\test.txt", False) ' BEISPIEL: Anzahl Anhänge holen AttachmentsCount = swExt.GetAttachmentCount ' BEISPIEL: vorhandene Anhänge (Attachments) auflisten If AttachmentsCount > 0 Then AttachmentsList = swExt.GetAttachments(AttachmentsLinked) For i = 0 To AttachmentsCount - 1 Debug.Print AttachmentsList(i), AttachmentsLinked(i) Next i End If End Sub
In dem Array bekommst du eine Liste mit den (wohl ursprünglichen) Dateinamen inkl. Pfad, von wo aus es eingefügt wurde. Wie man die Dateien weiter nutzen kann hab ich noch nie nach gesucht, von der Interaktion aus würde ich vermuten das hinter der Funktion "Öffnen" ein ShellExecute steckt, aber versucht hab ich es nicht. Irgendwie müssen die internen Daten ja auch erst mal dem anderen Programm übergeben werden ... Speichern oder so geht vermutlich nicht, da auch interaktiv nicht möglich. Vielleicht fragst du mal einfach beim API Support nach, wie man denn so ein internes Attachment ansprechen, z.B. öffnen kann. Es wäre nett, wenn du deine Ergebnisse dann hier eben posten würdest. 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 |