| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| FMB |
Autor
|
Thema: API Programmierbeispiele in C# (3104 mal gelesen)
|
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 11. Jun. 2004 09:34 <-- editieren / zitieren --> Unities abgeben:
|
waldi Mitglied Softwerker
Beiträge: 272 Registriert: 07.08.2001 SW 2006 SP4
|
erstellt am: 11. Jun. 2004 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
In der API Doku ist beschrieben, wie du ein C# Addin erstellst, mit Beispielen sieht es schlecht aus. Da musst du schon mit VB oder C++ Beispielen vorlieb nehmen, so gross sind die API Unterschiede nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 11. Jun. 2004 09:57 <-- editieren / zitieren --> Unities abgeben:
Hallo waldi, mein bisheriges Vorgehen sah so aus, dass ich VB-Beispiele von der API-SupportSite heruntergeladen habe. Danach diese Beispiele in VisualStudio.NET lauffähig gemacht habe und anschliessen noch auf C# übersetzte. Das ist aber ziemliche Knochenarbeit. Deshalb wäre ich froh darüber wenn es Leute gäbe, welche ebenfall schon Beispiele bereits in C# haben. Die Beispiele welche ich in C# programmiert habe könnte ich selbverständlich ebenfalls an interessierte zur Verfügung stellen. gruss tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CPlusAPI Mitglied Dipl.-Ing.
Beiträge: 10 Registriert: 06.12.2003
|
erstellt am: 14. Jun. 2004 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
Ich habe auch angefangen mit C# SW API zu programmieren! Wäre toll wenn ihr mir auch euere Bsp schicken könntet: spring_feeling@web.de wenn ich entsprechendes finden sollte dann schicke ich euch diese selbstverständlich auch zu. Weiß jemand ab welcher version mit c# auf SW API programmiert werden kann? danke für die hilfe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 14. Jun. 2004 22:01 <-- editieren / zitieren --> Unities abgeben:
Hallo CPlusAPI, Ich habe Dir auf deine Mailadresse ein paar gezippte C#-Beispiele gesendet. Die Datei wurde fast 2MB gross deshalb habe ich sie nicht an diesen Beitrag gehängt. Wenn jemand anderes noch interesse daran hat, dann soll er sich doch bitte bei mir melden. Die SW-Referenzen habe ich der grösse wegen aus den Projekten weitgegend entfernt. Die musst Du halt wieder hinzufügen. Ich habe die Projekte nicht weiter Dokumentiert. Die Beispiele sind von VB umgeschriebene Beispiele, welche von der SupportSite von SolidWorks heruntergeladen werden können. Viel Spass tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JR Mitglied Konstrukteur
Beiträge: 106 Registriert: 21.10.2003 Alibre Design Expert V26 Keyshot 11.2
|
erstellt am: 02. Jul. 2004 11:12 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
Auch ich fange gerade an die SWX API mit C# zu programmieren. Das funktioniert bis jetzt auch ziemlich gut. Nur mit den Addins und PropertyManagerPages habe ich so meine Schwierigkeiten. Da ich kein MS Visual Studio .NET habe, kann ich leider auch nichts mit dem in der API -Hilfe erwähnten SolidWorks C# Addin Wizard anfangen. Weiß jemand wie ein C# Addin aufgebaut sein muß ? Gruß Jörn
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 06. Jul. 2004 10:35 <-- editieren / zitieren --> Unities abgeben:
@Jörn, Habe leider mit den Add-Ins noch keine Erfahrung gesammelt. Habe gerade einen Versuch unter VisualStudio.Net unternommen. Hat aber auch nicht funktioniert. Ich bekomme beiliegende Meldung. Hab mich bis jetzt nicht mehr darum gekümmert. Wenn aber jemand Rat weiss, bin ich natürlich dafür dankbar. gruss tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PASCAM Mitglied Diplom Informatiker
Beiträge: 67 Registriert: 25.11.2002
|
erstellt am: 06. Jul. 2004 11:06 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
Hallo tom, welche Version von Visual Studio verwendest Du? Hast Du das AddIn korrekt installiert? ------------------ PASCAM Ralph Müller Softwareentwicklung [Diese Nachricht wurde von PASCAM am 06. Jul. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JR Mitglied Konstrukteur
Beiträge: 106 Registriert: 21.10.2003 Alibre Design Expert V26 Keyshot 11.2
|
erstellt am: 06. Jul. 2004 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
@tom Schade das es nicht funktioniert hat. Trotzdem vielen Dank für die Bemühungen. Vielleicht findet sich ja noch jemand der ein C#-Addin mit dem Wizard auslösen und zur Verfügung stellen kann. Gruß Jörn
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 06. Jul. 2004 12:17 <-- editieren / zitieren --> Unities abgeben:
@Ralph Ich benutze VisualStudio.Net 2003 mit .NET Framework 1.1 Habe nichts besonderes installiert einfach die API -Sdk. Muss ich was besonderes unternehmen. (Bin leider für den rest des Tages abwesend) grusst tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 08. Jul. 2004 19:50 <-- editieren / zitieren --> Unities abgeben:
Hallo an alle Interessierten. Ich kann nun über das VisualStudio den Add-In Wizzard für C# benutzen. Man muss den Inhalt der Datei "SwCSharpAddinWizard.vsz" abändern. Die Zeile: Wizard=VsWizard.VsWizardEngine Muss abgeändert werden auf die Zeile: Wizard=VsWizard.VsWizardEngine.7.1 Dann werden die Dateien wenigstens mal ohne Fehlermeldung erstellt. Weiter hab ich die Sache noch nicht betrachtet. Ich habe die Generierten Dateien diesem Beitrag beigelegt. gruss tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JR Mitglied Konstrukteur
Beiträge: 106 Registriert: 21.10.2003 Alibre Design Expert V26 Keyshot 11.2
|
erstellt am: 09. Jul. 2004 06:33 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
|
Carlhainz Mitglied Student
Beiträge: 12 Registriert: 18.07.2004
|
erstellt am: 21. Jul. 2004 17:00 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
Hallo @alle, ich suche schon eine längere Zeit nach erfahrenen .Net Programmieren. Mein Problem sieht folgendermaßen aus: Ich habe ein Add-In für SW mit VB 6.0 geschrieben. Das hat auch ausreichend funktioniert. Jetzt soll ich aber das Add-In mit .Net lauffährig machen, aber ich schaffe nicht ein absolut simples Add-In mit SW zu laufen zu bringen. Mein Beispielprogramm das ich verwende ist das SwVB_Colourisier-Projekt, dass man auf der SW-Site herunterladen kann und soweit ich weiß das einzige Projekt ist, dass mit VB .Net geschrieben wurde. Ich hoffe es kann mir einer weiter helfen. Grüße, Benni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 21. Jul. 2004 22:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Benni, Wenn Du das MicrosoftVisualStudio.NET benutzt um zu programmieren, dann ist es einfach ein AddIn zu erstellen. Du musst nur erst MicrosoftVisualStudio installieren und danach die API-Sdk. Im VisualStudio befinden sich unter NewProject Wizzards zur erstellung von SW-AddIns unter C++ , C# und VB. Drei Beiträge weiter oben habe ich eine Änderung beschrieben, welche Du noch vornehmen musst. Im gleichen Beitrag habe ich auch die Dateien unter AddInTest.zip beigefügt welche ich für C# mit dem Wizzard erzeugt habe. Wenn Du keinen Erfolg hast dann lass es mich wissen, ich kann Dir sonst die Dateien für VB generieren und zukommen lassen. gruss tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
_InvasoR_ Mitglied student
Beiträge: 55 Registriert: 17.03.2005
|
erstellt am: 19. Jul. 2005 11:55 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
Hi an Alle! Ist zwar schon eine Weile her, dass dieser Beitrag erstellt wurde. Aber ich stehe vor genau dem gleichen Problem. Ich habe ein Addin mit dem Wizard erstellt. Nur wie kann ich jetzt die Methoden von diesem Addin in meiner Anwendung nutzen ? Habe die dll vom Addin in als Verweis zu meinem Projekt hinzu gefügt, aber wenn ich zum Beispiel die AddMenu-Methode aufrufe kommt es zu nem Laufzeitfehler. Weiss eventuell jemand Rat ? LG Robin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 19. Jul. 2005 12:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Robin Also die AddMenus-Methode musst Du selber nicht noch mal aufrufen. Diese Methode wird im Konstruktor des Addin's aufgerufen. In dieser Methode definierst Du die Menus wie sie in der Applikation erscheinen sollen. Bei der Definition werden die Methoden angegeben, welche bei Betätigung eines Befehls aufgerufen werden sollen. Diese Methoden musst Du dann auch definieren. Wenn ich Dich nicht richtig verstanden habe, dann stell doch mal deine Applikation rein. Vielleicht erkenne ich dann das Problem. gruss tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
_InvasoR_ Mitglied student
Beiträge: 55 Registriert: 17.03.2005
|
erstellt am: 19. Jul. 2005 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
Hi und danke für die schnelle Antwort. Kann ich also nicht die Methode AddMenue explizit aufrufen? Muss also über den Konstruktor des Addins laufen. Gibt es noch eine andere möglichkeit die dll zu laden ausser sie in das Solidworksfenster zu ziehen ? Ich habe Folgendes vor: Ich habe Eine Anwendung programmiert über die man Solidworks starten kann und irgendwelche Teile hin und her bewegen kann. Nun möchte ich Menüs zu Solidworks hinzufügen. was anscheinend nur über diesen wizard geht. Kann man diese Dll zu meinem derzeitigem Projekt hinzufügen und die Eigenschaften davon benutzen ? Gruß Robin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 19. Jul. 2005 12:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Robin, Wenn Du den Wizzard für das AddIn benutzt hast, dann erstellt dieser Wizzard ein Grundgerüst mit einem Beispielhaften Menu, und einer Funktionalität, anhand Du die Mechanik verstehen solltest. Du kannst dann die Implementation zu deinen Gunsten abändern. Die dll des AddIn's brauchst Du nur einmalig in das SW-Fenster zu ziehen, dieses wird dann von SW registriert. Später brauchst Du das AddIn in SW unter Extras->Zusatzanwendungen nur zu aktivieren. Diese Aktivierung bleibt dann für das Runtime-AddIn erhalten. Beachte bitte, dass Du im AddIn definieren kannst wann das Menu erscheinen soll. Also bei welchem Dokumenttyp(Part, Assembly, etc.) Ich hoffe ich habe Dich richtig verstanden. gruss tom
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
_InvasoR_ Mitglied student
Beiträge: 55 Registriert: 17.03.2005
|
erstellt am: 19. Jul. 2005 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für stucki
Hi Tom! Danke es hat echt super geklappt. das Addin läuft. Man muss die dll auch nicht unbedingt ins SolidWorks rein ziehen sondern man kann sie auch über den Befehl swApp.LoadAddIn( "Pfad" ) ins SolidWorks laden. Nur was ich noch nicht ganz verstehe ist, wenn ich das Addin, so wie es der Wizard erstellt, ins SolidWorks lade und dann den Eintrag "Create Cube" aufrufe wird der Würfel erstellt. Wenn ich aber die Callback-Funktion abänder und in ihr eine von meinen selbst geschriebenen Methoden aufrufe passiert garnichts. Laut Debugger geht er garnicht in die Callback Methode rein. in dieser Zeile sag ich doch welche Callback-Funktion ausgeführt werden soll. oder ? Code: iSwApp.AddMenuItem2(docType, addinID, "Create Cube@SwCSharpAddin1", -1, "MenuCallback", "MenuEnable", "Starts the notepad application");
Vielleicht weisst Du ja Rat ! Vielein vielen Dank !
Gruss Robin [Diese Nachricht wurde von _InvasoR_ am 19. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stucki Mitglied Ingenieur
Beiträge: 73 Registriert: 30.04.2004
|
erstellt am: 19. Jul. 2005 17:06 <-- editieren / zitieren --> Unities abgeben:
Nach deinen Befehlszeilen müsstest Du nun in SolidWorks einen Menupunkt in der Hauptmenueleiste haben mit der Bezeichnung "SwCSharpAddin1" unter diesem Menupunkt wird sich der Befehl "Create Cube" befinden. Wenn Du diesen Befehl wählst wird die Methode MenuCallback() aufgerufen. Was In dieser Methode gemacht wird ist deine Sache. Setze einen Breakpoint in der Methode. gruss tom
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |