Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD LT
  _laymch, -layer

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:  _laymch, -layer (1917 mal gelesen)
Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 04. Feb. 2010 09:02    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,


zur Zeit versuche ich einen Button zu erstellen, der die Befehle "_-layer" und "_laymch" kombiniert.

Fall 1: Wenn keine Befehle aktiv und keine Objekte markiert sind, soll der Knopf einen bestmmten Layer (z.B. "Bemaßung") aktuell setzten.
Das Makro hierzu lautet: "^C^C_-layer;se;bemaßung;;"

Fall 2: Wenn Objekte markiert sind, sollen diese direkt auf den Layer Bemaßung wechseln.
Das Makro hierzu lautet: "_-laymch;n;bemaßung;"

Beide Einzelbefehle funktionieren, aber die Kombination in einem einzigen Button macht Schwierigkeiten.
Hierzu habe ich mir folgendes Makro ausgedacht: "$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_-laymch;n;bemaßung,_-layer;se;bemaßung ;"


Im ersten Fall kommt folgende Rückmeldung:

Befehl: *Abbruch*
Befehl:
$M=  Eingabe:
"$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_-laymch^Jn^Jbemaßung,_-layer^
Jse^Jbemaßung^J)^J"
$M= Ausgabe: "_-layer^Jse^Jbemaßung^J^J"
_-layer
Aktueller Layer:  "Bemaßung"
Option eingeben
[?/Machen/SEtzen/Neu/Umbenennen/EIn/AUs/FArbe/Ltyp/LStärke/MATerial/Plot/FRieren
/Tauen/SPerren/ENtsperren/STatus/Beschreibung/ABstimmen]: se
Namen des zu aktivierenden Layers eingeben oder <Objekt wählen>: bemaßung
Option eingeben
[?/Machen/SEtzen/Neu/Umbenennen/EIn/AUs/FArbe/Ltyp/LStärke/MATerial/Plot/FRieren
/Tauen/SPerren/ENtsperren/STatus/Beschreibung/ABstimmen]:

Dieser Zweig läuft also. Im zweiten Fall passiert jedoch folgendes:

Befehl: *Abbruch*
Befehl: Entgegengesetzte Ecke angeben:
Befehl:
$M=  Eingabe:
"$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_-laymch^Jn^Jbemaßung,_-layer^
Jse^Jbemaßung^J)^J"
$M= Ausgabe: "_-layer^Jse^Jbemaßung^J^J"
_-layer
Aktueller Layer:  "Bemaßung"
Option eingeben
[?/Machen/SEtzen/Neu/Umbenennen/EIn/AUs/FArbe/Ltyp/LStärke/MATerial/Plot/FRieren
/Tauen/SPerren/ENtsperren/STatus/Beschreibung/ABstimmen]: se
Namen des zu aktivierenden Layers eingeben oder <Objekt wählen>: bemaßung
Option eingeben
[?/Machen/SEtzen/Neu/Umbenennen/EIn/AUs/FArbe/Ltyp/LStärke/MATerial/Plot/FRieren
/Tauen/SPerren/ENtsperren/STatus/Beschreibung/ABstimmen]:

Hier waren vor Betätigung des Buttons 2 Objekte markiert, welche auf dem Layer "Rahmen" liegen. Warum wird trotz vorheriger Auswahl der Objekte über das "Kreuzen-Fenster" der zweite Weg eingeschlagen?

Gruß, Ingo

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 20. Jul. 2010 08:19    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,

Da sich diese Frage bisher nicht gelöst hat, möchte ich sie noch einmal neu stellen. Mir ist leider nicht klar, unter welchen Vorraussetzungen der Befehlsstreifen <$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP)> funktioniert. Vielleicht weiß einer von den DIESEL-Könnern genaueres.

mfg, Ingo

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: 20. Jul. 2010 09:51    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 Ingo Struck 10 Unities + Antwort hilfreich

Dann will ich doch mal Antworten, die Verwendung meiner ganz persönlichen Interpretation erfolgt jedoch auf eigene Gefahr  

CMDNAMES = Zeigt EIGENTLICH den Namen der aktiven und transparenten Befehle an.

Jedoch geht es auch darüber hinaus, in diesem Fall wohl recht unkommentiert "GRIPS",
dieses "Grips" wird jedoch nur in bestimmten Fällen weiter gegeben:

und nochmal vorab: das ist eine nette Umschreibung mit der man es evtl. verstehen kann,
technisch ist es jedoch erfunden und hätte eher per Zufall mit der Realität Gemeinsamkeiten

1. Der Status "Grips" wird erst von bestimmten Funktionen ausgelöst, nämlich von den
     Funktionen die wirklich markierte Objekte berücksichtigen.

2. Es müssen Objekte markiert sein (logisch)

Wenn man also einen Menüeintrag mit einem Makro a´la $(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_copy... startet,
dann geht es zunächst einmal um den Befehl "_copy" - dieser verwertet markierte Objekte und
löst den Status "Grips" aus wenn Objekte markiert sind.


:: Wenn kein Befehl aktiv ist, aber Objekte markiert sind und man startet den Befehl _Copy
:: dann nimmt sich der Befehl die aktuell markierten Objekte als zu bearbeitenden Auswahlsatz.

Der Befehl _Line macht das zB. nicht, daher wird auch kein "Grips" gesendet und somit funktioniert ein Makro a´la $(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_Line... nicht.

[EDIT] Ich füge hier wegen einer PM nochmal ausdrücklich hinzu: Nein, die Beschreibung zeigt keine
technische Logik auf. "getvar" kann sich von der normalen Abarbeitsfolge her nicht auf das
then oder else von der if-Anweisung beziehen - wie gesagt: keine technische Logik für mich erkennbar -
aber in der Praxis ist das nunmal von den Befehlen bei then&else der if-Anweisung abhängig.

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

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 20. Jul. 2010 11: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

Hallo cadffm,

Zitat:
1. Der Status "Grips" wird erst von bestimmten Funktionen ausgelöst, nämlich von den
    Funktionen die wirklich markierte Objekte berücksichtigen.

Gehört der Befehl <_-laymch> nicht auch zu dieser Gruppe?
Zitat:
2. Es müssen Objekte markiert sein (logisch)

Das ist klar.

Der Befehl _copy ist interessant, den muss ich jedoch erst noch ausprobieren.

Danke erstmal, Ingo

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: 20. Jul. 2010 11:07    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 Ingo Struck 10 Unities + Antwort hilfreich

Ich habe derzeit nur 2006 - somit auch nur laymch aus den ETools und diese
sind mit dem 2009er-ACAD-laymch nicht identisch, somit kann ich nicht testen.

Aber andersherum: Wenn es nicht geht, dann gehört der nicht dazu 
Alles was nachträglich kommt wird "gefrickelt" - Befehlszeilenversionen
und die Möglichkeit zu Scripten und Makro vernachlässigt - mich
würde es also auch in diesem Fall nicht wundern wenn es anders umgesetzt
wurde wie die anderen Bearbeitungswerkzeuge (mode copy pedit etc.)

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

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 20. Jul. 2010 14:42    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 cadffm,

das Originalmakro des Befehls <_copy> <$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_copy,^C^C_copy) > habe ich auf einen Testschalter gelegt. Im Original funktioniert es. Den "sonst-Zweig" <^C^C_copy> habe ich dann gegen <-layer;se;bemaßung;;> ausgetauscht. Dies hat zur Folge, dass immer der "sonst-Zweig" ausgegeben wird, egal, ob vorher Objekte markiert waren oder nicht. Genauso verhält es sich mit dem Befehl <_rotate>. Auch den Befehl _change habe ich erfolglos ausprobiert. Es liegt also nicht am Befehl <_laymch>. (<pickfirst> steht auf 1.) Bei allen Originalmakros ist mir noch aufgefallen, das sowohl im "dann-Zweig" als auch im "sonst-Zweig" immer der gleiche Befehl steht. Im "sonst-Zweig" befindet sich vor dem eigentlichen Befehl nur noch <^C^C> zusätzlich. Leider werde ich aus der ganzen Sache noch nicht schlau, aber vielleicht fällt der Groschen ja noch.

Gruß, Ingo

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: 20. Jul. 2010 14:57    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 Ingo Struck 10 Unities + Antwort hilfreich

Da gibt es keinen Groschen, du mußt anfangen es zu akzeptieren !
Alle (zumindest alle alten) Änderungsbefehle welche auf markierte
Objekte anspringen - damit funktioniert das [wie von Geisterhand].
Alles andere nicht, basta.
Gerne füge ich noch hinzu: Befehl hinter then&else muß gleich sein. ;9

Ist einfach so, mienes Wissens nicht dokumentiert, fertig.

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

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 03. Aug. 2010 08:43    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

@cadffm: Die Antwort ist zwar nicht befriedigend, aber trotzdem Danke für die Hilfe! 

@Autodesk: 

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