Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD LT
  Modemacro-Befehl ins CUI

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:  Modemacro-Befehl ins CUI (1301 mal gelesen)
Th-Schultz
Mitglied



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

Beiträge: 18
Registriert: 11.07.2012

AutoCAD 2008
AutoCAD Lt 2009

erstellt am: 24. Okt. 2012 12: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

Ich möchte gerne den Modemacro Befehl nutzen, um einige Systemvariable anzuzeigen
Wenn ich folgendes über die Befehlszeile eintrage, funktioniert das einwandfrei
(Aufgrund der Länge nur bis zur 3 Zeile)

$(if,$(=,$(getvar,useri1),31),$(eval,"""A4H  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),32),$(eval,"""A3H  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),33),$(eval,"""A3Q  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),34),$(eval,"""A4QH  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),31),$(eval,"""A4H  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),32),$(eval,"""A3H  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),33),$(eval,"""A3Q  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),34),$(eval,"""A4QH  Layer: $(getvar,cLayer)"""))

Nun möchte ich dies aber nicht dauernd von Hand eintragen sondern über
einen Menüeintrag in der CUI einrichten.

Dort habe ich testweise mal eine abgespeckte Funktion erfolgreich eintragen können:

^C^Csetvar;modemacro;$M=$(eval,"UserI1: $(getvar,UserI1)  akt.Layer: $(getvar,cLayer)");

Wenn ich nun aber die IF-Abfragen mit ins Spiel bringe funktioniert es nicht mehr.
Ich suche mich schon dusselig... seht ihr einen Fehler?

^C^Csetvar;modemacro;$M=$(eval,"$(if,$(=,$(getvar,useri1),31),$(eval,"""A4H  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),32),$(eval,"""A3H  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),33),$(eval,"""A3Q  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),34),$(eval,"""A4QH  Layer: $(getvar,cLayer)"""))");

Danke schon mal vorab

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: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 24. Okt. 2012 14:03    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 Th-Schultz 10 Unities + Antwort hilfreich

Normalerweise frage ich an dieser Stelle nach dem Sinn (um zu verstehen & die Aufgabe ggf. anders lösen zu können)
In diesem Fall gehe ich aber einfach mal auf EINE Modemacro Zuweisung samt if ein:

^C^Csetvar;modemacro;$M=$(if, $(=,$(getvar,useri1),31),$(eval,"""A4H  Layer: $(getvar,cLayer)"""));

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

Th-Schultz
Mitglied



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

Beiträge: 18
Registriert: 11.07.2012

AutoCAD 2008
AutoCAD Lt 2009

erstellt am: 24. Okt. 2012 17:34    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, ist aber leider nicht das was ich gesucht habe 

Soweit war ich auch schon. Das Problem ist nur, das sich dabei nicht der Eintrag ändert, wenn sich der UserI1 Wert in der Zeichnung ändert.

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: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 25. Okt. 2012 10:00    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 Th-Schultz 10 Unities + Antwort hilfreich

Ich hatte mir nur deinen Versuch angeschaut (der natürlich nur einen dummen Text in modemacro schreibt)
und ein if herumgetippt. Weil das soo sinnig ist habe ich auch lieber mal nicht nachgehakt was das soll     ,
aber jetzt habe ich verstanden was deine umfassende Beschreibung aussagen sollte.
"Wenn ich nun aber die IF-Abfragen mit ins Spiel bringe funktioniert es nicht mehr."


Wenn man die Geschichte bei null anfangen würde und man sich diesel- und makrotechnisch bis zum letzten durchgearbeitet
hat (wie das Makro aussehen müßte damit es funktioniert), stößt man leider an den Punkt wo man erfahren muß das in
einem Menümakro das $ als Steuerzeichen "Einleitung Dieselstring" gewertet wird, IMMER.
Acad versucht dann den vermeintlichen Dieselstring auszuwerten, du mußt jedoch das Zeichen als Textzeichen nach Modemakro bringen !
Fazit: Geht in LT nicht ! (In der Vollversion könnte man auf Lisp zurückgreifen)

Lösung: Du setzt den Modemacrowert über ein Script !  (Textdatei mit .scr Endung)

;****Beispielscript****
setvar
modemacro
$(if,$(=,$(getvar,useri1),31),$(eval,"""A4H  Layer: $(getvar,cLayer)"""))$(if,$(=,$(getvar,useri1),32),$(eval,"""A3H  Layer: $(getvar,cLayer)"""))
;****Scriptende****

Wenn du den Modemacrowert nicht ständig änderst während einer Sitzung, dann kannst du das Script auch über eine
Desktopverknüpfung gleich mitstarten mit Acad LT.
AutoCADhilfethema: "Anpassen des Startvorgangs" / "To run a script at startup"

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

Th-Schultz
Mitglied



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

Beiträge: 18
Registriert: 11.07.2012

AutoCAD 2008
AutoCAD Lt 2009

erstellt am: 25. Okt. 2012 10:18    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

Vielen Dank für die ausführliche Beschreibung und die
Begründung für das Nichtfunktionieren meiner Bemühungen.

Ich habe es mir in dieser Art schon fast gedacht, hatte aber mehr
das " als das $ im Verdacht.

Inzwischen habe ich eine Scriptlösung eingerichtet.
Allerdings rufen unsere Leute die Zeichnungen via Explorer auf
und nicht erst AutoCAD über Icon. Von daher ist das StartUp.SCR
auch wieder nicht so prickelnd.

Ich hab jetzt erst einmal einen Menüpunkt eingerichtet über den
die Script ausgeführt wird. Schade ist ja das es bei Lt auch keine
auto.lsp gibt :-)

Aber trotzdem ersteinmal vielen Dank für die Hilfestellung.

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: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 25. Okt. 2012 11:55    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 Th-Schultz 10 Unities + Antwort hilfreich

Wenn es nicht am $ scheitern würde, so hätte das kurze Beispielmakro so lauten müssen:

^C^Csetvar;modemacro;"UserI1: $(getvar,UserI1)  akt.Layer: $(getvar,cLayer)";

Weil Modemakro einen STRING erwartet.

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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