Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Befehl zum Öffnen des Dialogs Datei öffnen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
SolidWorks Kurs mit IHK-Zertifzierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
Autor Thema:  API: Befehl zum Öffnen des Dialogs Datei öffnen (3964 mal gelesen)
cap88
Mitglied


Sehen Sie sich das Profil von cap88 an!   Senden Sie eine Private Message an cap88  Schreiben Sie einen Gästebucheintrag für cap88

Beiträge: 3
Registriert: 02.11.2009

erstellt am: 02. Nov. 2009 18:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen,

ich habe eine Frage bezüglich API in Solidworks.

Ich möchte von Excel aus auf SolidWorks zugreifen und
dort den Befehl zum Öffnen des Dialogs "Datei öffnen" veranlassen.
Nach langer Sucherei nach den passenden Befehl bin ich nun hier
gelandet 

Ich habe es mit dem Run Command-Befehl:

Public Enum swCommand_e
swCommands_open = 3
End Enum
...
SwModel.Extension.RunCommand swCommands_open
hwnd = FindWindow("#32770", "Öffnen")

Bin ich da auf den richtigen Weg?


Desweiteren wollte ich es mir einfach machen:

AppActivate "SolidWorks 200X"
sendkeys "^+O"

Zwar hat er SolidWorks eingeblendet aber nicht den Sendkeys-Befehl ausgeführt.
Desweiteren ist es ja SolidWorksabhängig ob jemand diesen Befehl so eingetragen hat.


Letzter Versuch ging hierzu:

Set swModel = swApp.OpenDoc6(PartDatei,swDocPART, swOpenDocOptions_ReadOnly, "")

Geht das auch oder ist das nur für Dateien gedacht, wo man den Pfad kennt?


Ich hoffe jemand kann meinen Problem ein Ende machen! Danke im Voraus.


Gruß, cap88

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

G. Dawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

Beiträge: 2622
Registriert: 12.07.2004

SolidWorks_2o2o SP3.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o19_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

erstellt am: 03. Nov. 2009 08:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cap88 10 Unities + Antwort hilfreich

Hallo cap88

Du kannst doch von Excel aus den "Datei öffnen" Dialog öffnen. Dann bekommst Du den Pfad der Datei (Du musst diese ja nicht in Excel öffnen wollen  ) direkt in Excel und kannst dann in SolidWorks mit

Code:
Set swModel = swApp.OpenDoc(FileName, IsTemp, PromptToSave, ReadOnly, CommandString)

Deine Datei öffnen.

Wäre das nicht einfacher?

------------------
 
http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jens_oliver
Mitglied
Softwareentwickler


Sehen Sie sich das Profil von jens_oliver an!   Senden Sie eine Private Message an jens_oliver  Schreiben Sie einen Gästebucheintrag für jens_oliver

Beiträge: 114
Registriert: 28.06.2005

erstellt am: 03. Nov. 2009 08:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cap88 10 Unities + Antwort hilfreich

hi,

wie sieht es denn hiermit aus.

fileName = SldWorks.GetOpenFileName ( dialogTitle, initialFileName, fileFilter, openOptions, configName, displayName)

gruß oliver

------------------
Software nach Maß für Ihr CAD-System
www.ib-knepper.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cap88
Mitglied


Sehen Sie sich das Profil von cap88 an!   Senden Sie eine Private Message an cap88  Schreiben Sie einen Gästebucheintrag für cap88

Beiträge: 3
Registriert: 02.11.2009

erstellt am: 03. Nov. 2009 11:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Jens,

dein Befehl war genau das was ich gesucht habe. Dankeschön.

Eine Kleinigkeit fehlt mir da noch.
Der Dialog öffnet sich, aber wenn ich eine Datei auswähle und auf öffnen klicke, öffnet er mir nicht die Datei.
Muss ich da noch einen openOptions Befehl ausführen?

Gruß cap88

[Diese Nachricht wurde von cap88 am 03. Nov. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

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: 03. Nov. 2009 12:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cap88 10 Unities + Antwort hilfreich

Hallo cap88,

und noch ein herzliches Willkommen im SolidWorks Brett auf CAD.de  

Laut der Beschreibung in der API Hilfe (die du eigentlich immer offen haben solltest, wenn du was in SolidWorks programmieren möchtest) werden die openoptions nicht genutzt. Du solltest einfach den zurückbekommenen Filename dazu nutzen das File dann selbst mit OpenDoc6 zu öffnen.

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

jens_oliver
Mitglied
Softwareentwickler


Sehen Sie sich das Profil von jens_oliver an!   Senden Sie eine Private Message an jens_oliver  Schreiben Sie einen Gästebucheintrag für jens_oliver

Beiträge: 114
Registriert: 28.06.2005

erstellt am: 03. Nov. 2009 12:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cap88 10 Unities + Antwort hilfreich

edit: (war zu langsam    )

der befehl liefert dir ja nur einen dateinamen und den pfad, er öffnet keine datei.
(es müssen auch keine SW-Dateien sein   )

eine SW-Datei kannst du dann mit openDoc in SW öffnen.

gruß oliver

------------------
Software nach Maß für Ihr CAD-System
www.ib-knepper.de

[Diese Nachricht wurde von jens_oliver am 03. Nov. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Mitglied
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

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: 03. Nov. 2009 12:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cap88 10 Unities + Antwort hilfreich

Hallo Zusammen,

für diese Aufgabe könte man auch die Methode SldWorks.RunCommand verwenden.
Mit der richtigen Konstanten als Parameter wird der "Öffnen" Befehl von SolidWorks simuliert:

Code:
SldWorks.RunCommand( _
    SwCommands.swCommands_e.swCommands_Open, "")

Mehr Infos dazu findest du auch hier.

------------------
Mfg Daniel

www.MySldWorks.de - SolidWorks API Snippets

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cap88
Mitglied


Sehen Sie sich das Profil von cap88 an!   Senden Sie eine Private Message an cap88  Schreiben Sie einen Gästebucheintrag für cap88

Beiträge: 3
Registriert: 02.11.2009

erstellt am: 03. Nov. 2009 13:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Stefan,

bin deinem Rat gefolgt und habe folgendes programmiert:

Set SwModel = SwApp.OpenDoc6(Filename, ModelDocType, 0, openconfig, errors, warnings)

mit folgenden Varialben:

Dim SwApp As Object
Dim SwModel As Object
Dim Filename
Dim openconfig As String
Dim errors As Long
Dim warnings As Long
Dim ModelDocType As Long

Nun erkennt er die Datei, aber öffnet sie nicht. 
Wo ist der Haken?


Gruß, cap88

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

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: 03. Nov. 2009 13:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cap88 10 Unities + Antwort hilfreich

Hallo cap88,

hab gerade meine Glaskugel verlegt, mit der ich deinen Code sonst zuverlässig fernlesen kann, aber ich vermute du hast die ModelDocType nicht richtig gesetzt und der Wert steht noch auf 0, was im Zusammenhang mit OpenDoc6 swDocNONE entspricht. Schau doch bitte in die API Hilfe in der Beschreibung zu OpenDoc6, welche Werte es für den Parameter type gibt, wenn du die symbolischen Konstanten wie swDocPart, swDocAssembly oder so nutzen willst musst du die entweder selbst deklarieren oder durch einen Verweis auf dir Konstantenbibliothek einbinden. Eine (sehr) kurze Beschreibung dazu findest du z.B. auf eminen Seiten zu SolidWorks MakroMania - SW2009 Konstanten als Modul

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz