Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  CUI Befehlsaufrufe

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:  CUI Befehlsaufrufe (430 / mal gelesen)
otm
Mitglied
Bauingenieur


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

Beiträge: 184
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023.2.1 Update
VBA Enabler 2019
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 22. Feb. 2022 11:38    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 versuche nun schon länger in die CUI eine Befehlsfolge zu implementieren, die sich auf Rechtsklick wiederholt.
Alle Forenbeiträge, die ich gefunden habe, passen nicht genau und auch sehr langes Ausprobieren, wie es den heißen könnte, hat nicht geklappt.

Ich möchte den folgenden Befehl so in die Cui schreiben, dass ein Rechtsklick nach Abschluss des Befehls den Befehl "-vbarun MySub;" bzw. die ganze Zeile wiederholt.
^c^c(setvar "USERS1" "Beispiel") -vbarun MySub;
Das Sub benötigt USERS1 als Eingangsvariable.

Bei Rechtsklick bietet er mir immer VBARUN an ohne MySub mit anzugeben.
Klammersetzen wie bei setvar hat auch nicht geholfen. "" halfen auch nicht.
Wie muss man das schreiben?

Noch eine Frage: Kann man die Variable direkt an das Sub übergeben ohne den Umweg über USERS1?

------------------
Grüße aus München
Christian

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

mathias fey
Mitglied
Verm.-Ing.


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

Beiträge: 14
Registriert: 20.11.2020

erstellt am: 22. Feb. 2022 11: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 otm 10 Unities + Antwort hilfreich

Moin,

für die Rechtsklick-Anpassung:
probiere mal in den Optionen,->Benutzereinstellungen,->Rechtsklick-Anpassung

------------------
viele Grüße

Mathias

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

cadffm
Moderator
良い精神




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

Beiträge: 22171
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 22. Feb. 2022 12:28    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 otm 10 Unities + Antwort hilfreich

Der Rechtsklick (hoffentlich der Zeitabhängige, sonst verzichtest du ja auf Kontextmenüs?)
wiederholt den letzten Befehl, nicht das letzte Menümakro - das solltest du bei der Recherche
öfters gelesen haben.

Wenn ich dich recht verstehe, dann versuchst du diese Limitierung wie folgt zu umgehen:
Eine oder diverse VBA-Funktionen schauen nach dem Aufruf nach was in USERS1 steht
und agieren entsprechend dem dort hinterlegten wert.
Richtig?
Eigentlich eine ganz nette Idee, klingt ein wenig nach LT-USer, die müssen sich ja auch immer wieder "irgendwie" behelfen :-)

Also: Befehl-Wiederholung, selbst wenn der Wert in USERS nicht benötigt werden würde,
funktioniert ja bereits hier nicht: -vbarun MySub;
also geht die ganze Lösung SO nicht.

Also muss man entweder einen Befehl erstellen (in Lisp eine Zeile)
(defun C:MYCMD1 nil (command "_-vbarun" "D:/Test/Befehle.dvb!Testmodul1.Layer1")(princ))

oder
ein *.acm (ActionRecorder Makro) - was wohl nicht so dein Fall sein wird.
- Der Makroname wird als AutoCAD Befehl zur Verfügung gestellt

Alternativ  könnte man auch noch einen Lispausdruck direkt auf den Button legen,
dieser gilt als EIN Ausdruck und wird dann auch komplett wiederholt,
man verzichtet dann auf einen neuen Befehl den man auch eintippen könnte..
^C^C^C(command "_-vbarun" "D:/Test/Befehle.dvb!Testmodul1.Layer1")


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

otm
Mitglied
Bauingenieur


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

Beiträge: 184
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023.2.1 Update
VBA Enabler 2019
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 22. Feb. 2022 18:48    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

Danke für die Antwort.

Der Rechtsklick ist natürlich zeitabhängig    .

Mit der Programmzeile in der CUI setze ich nach dem Anklicken eines Icons die globale Variable USERS1 und führe dann ein Sub aus.
Das Sub holt sich die Variable und legt los.

Das funktioniert auch mit der Befehlszeile, wie beschrieben einwandfrei.
Nur die Wiederholung geht nicht, da er sich als letzten Befehl "vbarun" merkt

Jetzt würde ich diese Befehlskette gerne so schlank in der CUI und nur in der CUI schreiben dass sie sich auf kurzen Rechtsklick wiederholen lässt.

Das mit dem lisp-Befehl habe ich schon im Einsatz.
Nur habe ich so eine große Menge vba-Befehle, die ich so verdoppeln muss.
Über eine Autoload-Lsp-datei lade ich die Befehle beim Laden der CUI.

Ich hatte gehofft, dass es inzwischen etwas gibt, das ich direkt in die CUI schreiben kann.
Z.B. die richtige Klammersetzung, damit AC zumindest den Teil  (-vbarun MySub   als einen, den letzten, Befehl interpretiert und wiederholt.
Gibt es so eine kurze Syntax (kürzer als mit Lisp)?

Wenn ich die gesamte Befehlskette in Lisp schriebe, wäre das dann folgende?
(command "^c^c^c(setvar "USERS1" "Beispiel") "-vbarun" "MySub")


------------------
Grüße aus München
Christian

[Diese Nachricht wurde von otm am 22. Feb. 2022 editiert.]

[Diese Nachricht wurde von otm am 22. Feb. 2022 editiert.]

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

cadffm
Moderator
良い精神




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

Beiträge: 22171
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 22. Feb. 2022 22: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 otm 10 Unities + Antwort hilfreich

^C^C^C(command "USERS1" "Beispiel" "_-vbarun" "D:/MyPath/MyFile.dvb!MyModul.MySub")

Wo und wie du die Routine angibst hängt davon ab wie/wo Acad die finden kann,
wenn du also sagst ^c^c(setvar "USERS1" "Beispiel") -vbarun MySub; funktioniert
dann funktioniert vermutlich auch
^C^C^C(command "USERS1" "Beispiel" "_-vbarun" "MySub")

(command ..) ist ja (im Grunde) nichts anderes wie dein sendcommand, man füttert also die Befehlszeile..
nur ein Unterschied besteht: ACAD erkennt und versteht Lisp-Eingaben automatisch (öffnende Klammer..),
VBA-Ausdrücke aber nicht! Damit VBA-Ausdrücke als solche erkannt und verarbeitet werden muss man den
Befehl VBMST verwenden.

^C^C^C_.USERS1;Beispiel;_.VBASTMT;thisdrawing.MySub;
Aber das gleiche Problem, der letzte Befehl ist VBASTMT (falls du keinen weiteren in deinem VBA aufrufst)
Ich wollte es nur der Vollständigkeit halber erwähnt haben.

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



Konstrukteur Schwerpunkt Systemkonstruktion (m/w/d)

  • In Ihrer Position entwickeln Sie elektromechanische Systeme und übernehmen die fachliche Führung eines Entwicklungsteams im elektromechanischen Systemkontext
  • Sie sind verantwortlich für die Planung, Steuerung und Überwachung der Entwicklung, die Dokumentation, Beschaffung, Integration und Inbetriebnahme des Systems
  • Ebenso haben Sie die Verantwortung ...
Anzeige ansehenKonstruktion, Visualisierung
cadffm
Moderator
良い精神




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

Beiträge: 22171
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 22. Feb. 2022 22:38    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 otm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von otm:
Noch eine Frage: Kann man die Variable direkt an das Sub übergeben ohne den Umweg über USERS1?

Direkt nicht, aber ohne Umweg schon - du kannst ja "vom Benutzer" einfach die Eingabe einfordern.
Also eine "Puplic" Variable als String deklarieren, dann vom User abfragen (mit GetString?)
und dann schickst du nach dem vbaausdr oder vbarun, gefolgt vom SubNamen, dein "Beispiel".
Schon hast du es im Programm zur Verfügung und kannst damit machen was du willst.

Hoffe ich mal, mit VBA habe ich nämlich nicht wirklich was am Hut

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