Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  benutzerdefinierte Befehle mit Parametern aufrufen

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 Autodesk Produkte
Autor Thema:  benutzerdefinierte Befehle mit Parametern aufrufen (2294 mal gelesen)
AndreasM2000
Mitglied
CAD-Projektleiter, Zeichner, Programmierer


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

Beiträge: 21
Registriert: 24.11.2013

https://autocaddotnetsamples.wordpress.com/

erstellt am: 17. Mai. 2015 09:15    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,
weiß jemand, ob es möglich ist, mit .Net/C# einen benutzerdefinierten Befehl zu programmieren, den man beim Aufruf in AutoCAD auch noch Parameter übergeben kann.
Ich habe solche Beispiele im Internet nicht gefunden. Man kann immer nur den benutzerdefinierten Befehl ohne Parameter aufrufen und nur innerhalb der Abarbeitung auf Nutzereingaben reagieren. Ich möchte aber verschiedene Werte gleich beim Aufruf mitgeben.

Gruss Andreas

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

Ingenieur Studio HOLLAUS
Mitglied
CAD / CAFM / GIS Beratung-Programmierung-Schulung


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

Beiträge: 1049
Registriert: 06.11.2008

Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks)
RKV .... CAFM+mehr
HMap ... Vermessung und Verkehr
OoC .... Raumplanung
CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)

erstellt am: 17. Mai. 2015 14:59    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 AndreasM2000 10 Unities + Antwort hilfreich

Wie/von wo aus möchtest Du einen solchen Befehl aufrufen?
Einen Aufruf mit echten Parametern gibt es eigentlich nur in Programmiersprachen ... und Du kannst ja in C# eine function bauen, die Parameter entgegennimmt (damit programmintern Parameter=JA) und dann einen AutoCAD Befehl erstellen, der Werte vom Benutzer abfragt, und diese obige Funktion dann mit den eingegebenen Werten als Parameter übergibt.

In AutoCAD gibt es bei Befehlen keine Parameter, nur Optionen, die nach dem Start von einem Befehl (situationsabhängig) abgefragt werden, das kannst Du aber auch mit diversen Editor.getXXXX-Funktionen.

Sollte ich was falsch verstehen, dann nenne uns ein Beispiel, das Du umsetzen möchtest; beschreibe auch, wie der Anwender einen Befehl mit Parametern eingeben sollte.

Noch eine Alternative wäre LISP, hier kannst Du einen Programmaufruf (nicht wirklich AutoCAD-Befehl) aus der Befehlszeile heraus starten, dem kannst Du Parameter übergeben. Und last-but-not-least, mit C# kannst Du auch LISP-functions erzeugen, vielleicht wäre das etwas näher Deinen Wünschen?

------------------


www.cars4fun.at

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 21. Mai. 2015 12:23    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 AndreasM2000 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von AndreasM2000:
Hi,
weiß jemand, ob es möglich ist, mit .Net/C# einen benutzerdefinierten Befehl zu programmieren, den man beim Aufruf in AutoCAD auch noch Parameter übergeben kann.
Ich habe solche Beispiele im Internet nicht gefunden. Man kann immer nur den benutzerdefinierten Befehl ohne Parameter aufrufen und nur innerhalb der Abarbeitung auf Nutzereingaben reagieren. Ich möchte aber verschiedene Werte gleich beim Aufruf mitgeben.

Gruss Andreas


Dass das in AutoCAD nicht möglich ist, ergibt sich aus der Funktionsweise von AutoCAD selbst. In der Befehlseingabe wird ein Leerzeichen grundsätzlich als <RETURN> abgearbeitet. Damit wird die Ausführung eines Befehls bzw einer Funktion also schon gestartet, bevor Du Parameter übergeben könntest.

Oder anders betrachtet: Der AutoCAD Befehlsprompt ist immer noch die Eingabezeile eines Lisp Interpreters. Der zeichnet sich gegenüber einem normalen Lisp Interpreter nur dadurch aus, dass er auch Eingaben, die nicht eindeutig als Lisp Funktionen erkennbar sind, als AutoCAD Befehle interpretiert. AutoCAD Befehle sind Funktionen, die ohne Parameter aufgerufen werden, und die eventuell nötige Parameterwerte während des Programmablaufs interaktiv als Nutzereingabe anfordern.

Dein Ziel ist also prinzipiell nicht erreichbar. Du kannst aber natürlich Lisp Funktionen aufrufen, die Du nicht nur mit Lisp, sondern mit allen möglichen Programmiersprachen (also auch C#) definieren kannst, und die, wenn sie nicht in Lisp definiert sind, auch direkt auf das .Net Framework zugreifen können. Dabei kannst Du Deinen Funktionen beliebige Parameter übergeben.

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

AndreasM2000
Mitglied
CAD-Projektleiter, Zeichner, Programmierer


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

Beiträge: 21
Registriert: 24.11.2013

https://autocaddotnetsamples.wordpress.com/

erstellt am: 21. Mai. 2015 16:17    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

Hello,
vielen Dank für die Antworten.
Ich habe inzwischen noch einen Hinweis von einem Kollegen bekommen. Man kann die z.B. in C# programmierten Funktionen inkl. der Parameter als dll-Datei im VBA-Bereich unter Verweise der Programmierumgebung bekannt machen, dann eben aufrufen und weiterverarbeiten mit VBA-Möglichkeiten. Das muss ich jetzt nur noch mal ausprobieren. Sollte aber klappen.
Leider habe ich aber über diesen Weg auch nur die paar Steuerelemente von VBA zur Verfügung. Lassen sich die (vielen) WinForms-Steuerelemente, die ich in bei Visual Studio sehe, wenn ich Windows-Applikationen z.B. entwickele, nicht doch auch irgendwie nutzen?

Gruß Andreas

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 21. Mai. 2015 16:30    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 AndreasM2000 10 Unities + Antwort hilfreich

... warum der Schwenk auf VBA, wenn doch bereits irgendetwas in c#.Net vorliegt?

Dann bleibt doch bei c#.Net Da gibt's dann nicht nur WinForms sondern alle Möglichkeiten XAML/WPF.

Ich habe das Gefühl, dass du etwas mit viel Aufwand realisieren möchtest, was vom Konzept her nicht richtig durchdacht ist. Dein letzter Post passt nicht zu der ursprünglichen Frage. Vielleicht beschreibst du mal, was du konkret vor hast.


Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 22. Mai. 2015 04: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 Nur für AndreasM2000 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von AndreasM2000:
...Leider habe ich aber über diesen Weg auch nur die paar Steuerelemente von VBA zur Verfügung. Lassen sich die (vielen) WinForms-Steuerelemente, die ich in bei Visual Studio sehe, wenn ich Windows-Applikationen z.B. entwickele, nicht doch auch irgendwie nutzen?

Grundsätzlich bleibe ich zwar bei meiner Meinung, dass es schon sehr triftige Gründe geben muss, weshalb man .Net-Dll'S in VBA einbindet, dennoch der Hinweis:
Wenn du im .Net die Funktionen baust, die du von VBA aus aufrufst, dann können diese Funktionen natürlich auch Steuerelemente/Dialoge aus der kompletten .Net-Welt beinhalten und anzeigen.
Ich habe mir über diesen Weg ein paar nette Dialoge gebastelt, die ich von Lisp auf aufrufe -- da ist die Dialogerstellung noch sehr viel beschränkter als in VBA.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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



Konstrukteur (m/w/d)

  • Auslegung und Konstruktion von mobilen Arbeitsräumen und Infrastrukturen
  • Konstruktion von Baugruppen in Leichtbauweise, sowie Schweißbaugruppen aus Stahl und Aluminium
  • Prüfung und Bewertung von Kundenanforderungen (m/w/d) in Zusammenarbeit mit Vertrieb, Projektmanagement und Fertigung
  • Erarbeitung von Vorgaben und Richtlinien zur Standardisierung ...
Anzeige ansehenKonstruktion, Visualisierung
AndreasM2000
Mitglied
CAD-Projektleiter, Zeichner, Programmierer


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

Beiträge: 21
Registriert: 24.11.2013

https://autocaddotnetsamples.wordpress.com/

erstellt am: 24. Mai. 2015 16:04    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 Holger,
Du hast natürlich Recht. Ich habe mich hier ein wenig verrannt. Sowohl der Versuch Parameter bei der Eingabe von AutoCAD-Befehlen mitzugeben als auch C#.net-Funktionalitäten mit vba-Steuerelementen zu verbinden, können nicht der richtige Weg sein, wenn man die .net-Funktionen mit der Windows-Forms-Elementen verbinden kann, deren Ergebnis dann mittels netload im AutoCAD aktiviert werden kann. Und das geht...ich hatte das nicht sehen, da beim Starten eines neuen Visual Studio Projektes mit Hilfe der AutoCAD-Plagin-Vorlage erstmal keine Steuerelemente zu sehen sind. Sie werden aber beim einfachen Hinzufügen einer Forms zugänglich. Dann habe ich auch das was ich wollte. Die kompletten Möglichkeiten einer (modernen) Programmiersprache im Zusammenspiel mit AutoCAD. Dann ist auch die Parameterübergabe zwischen dem User mittels Formularelementen und der erweiterten AutoCAD-Funktionalität in gewohnter Weise machbar.
P.S. ich hatte das ganze Thema schon vor mehr als einem Jahr für mich gelöst, aber dann wieder vergessen, wie es geht. Ich mache es halt nicht jeden Tag....

Gruß Andreas 

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)2023 CAD.de | Impressum | Datenschutz