| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| SolidCAM Professor Videos | Tipps & Tricks (SolidCAM) |
Autor
|
Thema: API Zusatzanwendungen in SWX starten (4425 mal gelesen)
|
JM Mitglied
Beiträge: 223 Registriert: 02.11.2000 SW2006 SP5.0 Produktiv SW2009 SP4.1 Tesr
|
erstellt am: 14. Aug. 2001 17:09 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich programmiere per API Modelle in SWX, welche ich mit Zusatzanwendungen (z.B. E-Drawings, Surfcam) weiterbearbeiten bzw. speichern möchte. Wenn ich SWX mit Set swApp = CreateObject("SldWorks.Application") starte, habe ich zwar SWX aber keine der Zusatzanwendung, obwohl diese im Menü unter Extras ausgewählt sind. Ich hoffe jemand kann mir einen Tip geben. Danke JM Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberparleiter Mitglied Konstrukteur
Beiträge: 706 Registriert: 06.06.2000
|
erstellt am: 15. Aug. 2001 07:15 <-- editieren / zitieren --> Unities abgeben: Nur für JM
Hallo JM Ich habe da ein kleines Macro geschrieben. Das Macro Startet den Spaceball in SWX und/oder prüft ob dieser schon geladen ist. Es ist jederzeit auch auf andere Applicationen anwendbar. Ich hoffe du kannst was damit anfangen. ------------------ Tschue Oberparleiter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Axel Mitglied
Beiträge: 169 Registriert: 05.09.2000
|
erstellt am: 15. Aug. 2001 11:05 <-- editieren / zitieren --> Unities abgeben: Nur für JM
Hallöle! Wenn du SWX mit CreateObject startest, werden immer keine Zusatzanwendungen gestartet, egal was unter Extras... angehakt ist. Einzige Möglichkeiten: SolidWorks vorher normal starten und dann mit deinem Programm drauf zugreifen oder SolidWorks vom Programm starten lassen und die notwendigen Zusatzprogramme dazuladen, wie Oberparleiter das macht. Axel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JM Mitglied
Beiträge: 223 Registriert: 02.11.2000 SW2006 SP5.0 Produktiv SW2009 SP4.1 Tesr
|
erstellt am: 15. Aug. 2001 11:26 <-- editieren / zitieren --> Unities abgeben:
|
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: 16. Aug. 2001 07:25 <-- editieren / zitieren --> Unities abgeben: Nur für JM
Hallo JM, es gibt auch noch eine andere Möglichkeit, bei der du die Pfade zu den installierten und angehakten Add-Ins nicht brauchst: Win32-API Funktion ShellExecute. Das könnte dann so aussehen:
Code:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) _ As LongSub StartSWX() Const SW_SHOWNORMAL = 1 ' Solidworks per ShellExecute aufrufen hat den Vorteil, ' dass Add-Ins mit geladen werden. Aber man muss den Pfad ' kennen oder z.B. mit FindExecutable selbst suchen (3.Parameter) ' ' die folgende Zeile kann in einem Stück geschrieben werden, ' der erste Parameter Form1.hwnd ist irgendein Fensterhandle ' z.B. aus dem eigenen Programm ShellExecute Form1.hwnd, vbNullString, "p:\sw2001\sldworks.exe", _ vbNullString, "C:\", SW_SHOWNORMAL End Sub
Auf diese Weise wierden auch alle angehakten Add-Ins mitgeladen. Ciao, Stefan ------------------ -- Inoffizielle Solidworks Hilfeseite http://solidworks.cad.de EMail: Stefan.Berlitz@solidworks.cad.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wing-at-work Mitglied Student
Beiträge: 2 Registriert: 05.12.2006
|
erstellt am: 06. Dez. 2006 00:10 <-- editieren / zitieren --> Unities abgeben: Nur für JM
Der Beitrag ist immer noch GOLD wert!!! Ein hoch auf den Autor. Erklärung: 5 Jahre nach dem Posting. Ich habe mir eine serielle Spacemouse ersteigert. Und eine Studentenversion von SWX, sogenantes SDK. Nur verweigert das die Zusammenarbeit die Zusammenarbeit mit dem Spaceball treiber. Besser gesagt bietet es sie gar nicht erst an. Durch das Makro - und eine kleine Modifikation läßt sich die API für den Spaceball trotzdem ausführen!!! Nur die DLL, die heißt jetzt "mglsw20u.dll" und den Pfad anpassen. Und läuft! Nochmals besten Dank. Gruß Uwe 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: 06. Dez. 2006 08:42 <-- editieren / zitieren --> Unities abgeben: Nur für JM
|
Wing-at-work Mitglied Student
Beiträge: 2 Registriert: 05.12.2006
|
erstellt am: 19. Dez. 2006 15:16 <-- editieren / zitieren --> Unities abgeben: Nur für JM
mh. ergibt sich dadurch eigentlich irgendein vorteil bzw. ein nachteil wenn man es nicht macht? Bei mir ging beides ohne Probleme gleich. Und mein SDK ist eh ohne gedächtnis was die API angeht. Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Mechanikdesign-Ingenieur für die Vielstrahl-Elektronenmikroskopie (m/w/x) | Sich etwas Neues trauen, über sich hinauswachsen und dabei die Grenzen des Machbaren neu de?nieren. Genau das ist es, was unsere Mitarbeiter täglich leben dürfen und sollen. Um mit unseren Innovationen das Tempo vorzugeben und Großartiges zu ermöglichen. Denn hinter jedem erfolgreichen Unternehmen stehen eine ganze Menge faszinierender Menschen. Die Mitarbeiter von ZEISS arbeiten in einem offenen und modernen Umfeld mit zahlreichen Entwicklungs- und Weiterbildungsmöglichkeiten.... | Anzeige ansehen | Produktdesign, Industriedesign |
|
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: 19. Dez. 2006 15:32 <-- editieren / zitieren --> Unities abgeben: Nur für JM
Hallo Uwe, es funktionieren klar beide Methoden. Aber zwischen Get und CreateObject gibt es schon einige wichtige Unterschiede. Mit CreateObject öffnet man evtl. eine ungewünschte SolidWorks Version, in welcher die Zusatzanwendungen nicht geladen sind. Mit GetObject erhält man immer nur einen Verweis auf eine bestehende SolidWorks Sitzung. Schlag einfach mal in der VB-Hilfe nach, ich weis jetzt nicht in was für eine Umgebung du programmierst, aber die beiden Methoden sind in vb6, vba und vb.net gleichermaßen gut erklärt. ------------------ Mfg Daniel Brauchen Sie Hilfe, sind Sie in Not? Wir retten Sie mit unserem Code! ---------------------------------------------- SolidWorks API-Programmierung | Es gibt neue Freeware Tools und Addins
SolidWorks API Programmierung; Schuler Design Automation GmbH | kontakt@schuler-da.de [Diese Nachricht wurde von tbd am 19. Dez. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |