Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  DIESEL und Makros - allgemeine (Anfänger) Fragen

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
  
PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
Autor Thema:  DIESEL und Makros - allgemeine (Anfänger) Fragen (7965 mal gelesen)
THE_ONE
Mitglied
Student, Alter:23


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

Beiträge: 299
Registriert: 27.04.2005

AMD XP 2000, 512MB-RAM, WIN XP Pro
Readon 9600Pro
VIZ 2005, Autocad 2009

erstellt am: 17. Jun. 2009 10:29    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!

-- Wenn man in ACAD von Makros spricht spricht man dann von DIESEL?? Wie hängen diese Begriffe zusammen?

-- Hab etwas in der Hilfe und auch auf Seiten wie: http://www.crlf.de/Dokumente/Diesel /Diesel.html
herumgesucht. Wollte auch Befehle ausprobieren nur leider bekomme ich immer unkown command als Fehler zurück, auch wenn ich Befehle direkt aus der Hilfe verwende. Daher habe ich mir gedacht schaust du dir mal funktionierende Befehle an.
Dazu habe ich mir mal z.b. den Befehl move im CUI angeschaut.
Dort steht Makro:$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_move,^C^C_move)
Wenn ich diesen Befehl in die COMMANDO Zeile kopiere, bekomme ich aber leider ebenso unkown command zurück. Was mache ich nur falsch.

-- in der Hilfe steht:
The format is:
$M=expression
ein paar Zeilen drunter:
^C^C$M=$(if,$(=,$(getvar,tilemode),0),$S=mview _mspace )^Z
Also gar nicht mehr das Format das oben angepriesen wird. Warum fängt der Befehl plötzlich mit ^C^C an, muss ja einen Grund haben. Weil bei der Suche hier im Forum fangen die meisten Befehle mit ^C^C an. Was bedeuten diese ^Cs?

Irgendwie stehe ich glaube ich auf dem Schlauch . Wäre nett wenn jemand Licht ins Dunkel bringen könnte.
LG THE_ONE

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13527
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 17. Jun. 2009 10:40    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 THE_ONE 10 Unities + Antwort hilfreich

Makros sind zusammengefßte Befehle, die einem Schaltelement -> Buttonmakro zugewiesen werden können
diese Makros können DIESEL Befehle enthalten .. um diese Dieselstrings in der Commandozeile zu testen gibt es die Lispfunktion MENUCMD --> z.B. (menucmd "M=$(edtime,$(getvar,date),DDDD\",\" D MONTH YYYY)")


^^C simmuliert im Buttonmakro die ESC-Taste, also den Abrruch des evtl. noch ktiven vorherigen Befehls
/ .. ist = warten auf Benutzereingabe
; oder  Leerzeich ist = ENTER
usw.

steht aber alles auch in der Hilfe
------------------
      - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

THE_ONE
Mitglied
Student, Alter:23


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

Beiträge: 299
Registriert: 27.04.2005

AMD XP 2000, 512MB-RAM, WIN XP Pro
Readon 9600Pro
VIZ 2005, Autocad 2009

erstellt am: 17. Jun. 2009 12:08    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 das erklärt einiges!

Was mal klar ist ist dass Makros und DIESEL eng verzahnt sind (man kann aber auch LSIP Befehle anstatt DIESEL verwenden).

Habe mich schon gefragt warum das Makro vom Move Befehl nicht funktioniert:

Code:
(menucmd "M=$(IF,$(EQ,$(SUBSTR,$(GETVAR,CMDNAMES),1,4),GRIP),_MOVE,^C^C_MOVE)")

Da bekomme ich nämlich nur ^C^C_MOVE zurück.
Zitat:
Makros sind zusammengefasste Befehle, die einem Schaltelement -> Buttonmakro zugewiesen werden können

D.h. Makrobefehle lassen sich nur per Button ausführen?? also nicht per Kommandozeile und daher funktioniert mein Befehl oben auch nicht, korrekt?

Außerdem schreibst du:

Zitat:
/ .. ist = warten auf Benutzereingabe

in der Hilfe steht aber (hab jetzt endlich diese Seite gefunden):

Dass \ für eine Benutzereingabe steht.

gibt es irgendwo ein vernünftiges Tutorial zu Makros (ohne Diesel)? oder eine Beginnersguide? Denn in der Hilfe wird immer abgeschweift auf DIESEL, die Hilfe scheint dazu etwas dürftig zu sein.

Da ich oft etwas verschiebe denke ich schon seit geraumer Zeit darüber nach mir einen Spezial Schiebebefehl zu basteln. Der bei der der Auswahl der Zielposition immer m2p (Mittelpunkt zwischen 2 Punkten) ausführt
Wie schaft man es z.b. nach der zweiten Benutzereingabe m2p automatisch einzugeben. Sollte ja eingentlich das hier sein:

Code:
^C^C_move \ \  m2p;

Leider bekomme ich dann immer m2p unkown command

oder das selbe bei rotate. Ich muss oft um 90 grad drehen.

Code:
^C^C_rotate \ \ 90;

-> macht auch nicht das was es soll.
Einmal wenn ich genau ein Objekt auswähle dann verschwindet das Objekt und der Befehl wird neu gestarted.
Wenn ich per Kreuzenfenster wähle, dann verschwindet zwar das Objekt nicht aber der Winkel wird nicht automatisch eingegeben. Als wie wenn das 90; nicht da wäre.

Gibt sicher noch mehr einfache Beispiele, würde mich ja wundern wenn es dazu nichts geben würde im Internet. Leider bin ich beim googln gerade etwas ungeschickt bei der Begriffswahl

Lg THE_ONE

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


Ex-Mitglied

erstellt am: 17. Jun. 2009 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

schon richtig, ein Leerschritt in Deinem Befehl ist gleichbedeutend mit <Enter>; ABER:

Wenn Du schon durch '\' den Anwender zur Eingabe aufforderst, dann wartet AutoCAD, bis der Anwender <Enter> drückt, durch den nachfolgenden Leerschritt schiebst Du dann nochmals ein zusätzliches <Enter> nach. 

Also sollte z.B. so aussehen (ich mach immer ';' statt Leerschritte, denn dann kann ich leichter <Enter> zählen):

^C^C_rotate;\\90;

- alfred -

------------------
www.hollaus.at

runkelruebe
Moderator
Straßen- / Tiefbau




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

Beiträge: 8086
Registriert: 09.03.2006

Kinder, kauft Kämme!
Es kommen lausige Zeiten.

erstellt am: 17. Jun. 2009 12: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 THE_ONE 10 Unities + Antwort hilfreich

Zitat:
Da ich oft etwas verschiebe denke ich schon seit geraumer Zeit darüber nach mir einen Spezial Schiebebefehl zu basteln. Der bei der der Auswahl der Zielposition immer m2p (Mittelpunkt zwischen 2 Punkten) ausführt
Wie schaft man es z.b. nach der zweiten Benutzereingabe m2p automatisch einzugeben. Sollte ja eingentlich das hier sein:

    Code:^C^C_move \ \  m2p;


Leider bekomme ich dann immer m2p unkown command


m2p würd ich mal mit _m2p versuchen, wie eigentlich alles bei ACAD: immer international.

desweiteren: was mach \ \ für einen Sinn?
Ich würde es mal mit

Code:
_move;\;_m2p;\_m2p;\
versuchen.
Oft schon vorgeschlagen für Herangehensweise an Makros:
Geh es in der Befehlszeile Schrit für Schritt durch und notier Dir jeden Klick/Eingabe.
Also in diesem Fall:
Befehl _move
Objekt wählen
Basispunkt wählen über _m2p
Zielpunkt wählen über _m2p

Ich hoffe, ich hab's richtig verstanden.
Den FAQ-Beitrag zu Makros kennst Du schon?

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

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

THE_ONE
Mitglied
Student, Alter:23


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

Beiträge: 299
Registriert: 27.04.2005

AMD XP 2000, 512MB-RAM, WIN XP Pro
Readon 9600Pro
VIZ 2005, Autocad 2009

erstellt am: 17. Jun. 2009 12:31    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

Zitat:
Original erstellt von a.n.:

^C^C_rotate;\\90;


Danke für den Versuch. Funktioniert aber leider auch nicht!
Einmal wenn ich das Objekt direkt wähle rotiert er mir automatisch um den 0 Punkt (0,0), und wenn ich über Kreuzenfenster wähle.  Dann schreibt er mir das 90 dort rein wo ich eigentlich den Basispunkt fürs rotieren wählen müsste. -> hartnäckiges Problem *grrr*, das ganze scheint nicht wirklich trivial und einfach zu sein.

LG THE_ONE

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13527
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 17. Jun. 2009 12: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 Nur für THE_ONE 10 Unities + Antwort hilfreich

(command "_rotate"(ssget)""(getpoint "\nDrehpunkt wählen:")90)

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

THE_ONE
Mitglied
Student, Alter:23


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

Beiträge: 299
Registriert: 27.04.2005

AMD XP 2000, 512MB-RAM, WIN XP Pro
Readon 9600Pro
VIZ 2005, Autocad 2009

erstellt am: 17. Jun. 2009 12:50    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

Zitat:

Ich würde es mal mit
Code:
_move;\;_m2p;\_m2p;\
versuchen.


Also, funktioniert auch nicht.
Code:
_move;\;\_m2p;\
-> Das funktioniert (wenn man exakt ein Element auswählt), solange man nicht über Kreuzenfenster wählt. Weil dann geht es auch wieder nicht.
Das heißt man müsste wahrscheinlich einen DIESEL (LISP) Befehl einbauen der abfragt wie die Objekte gewählt wurden.
Zitat:

Den FAQ-Beitrag zu Makros kennst Du schon?
[/B]

Ja kannte ich schon.

Zitat:

Original erstellt von CADmium:
(command "_rotate"(ssget)""(getpoint "\Drehpunkt wählen:")90)

Danke für deine Hilfe, aber das es in Lisp geht war mir eh klar.
Ich wollte das aber mit Makros lösen.

Dieser Thread soll nicht dazu da sein mir ein konkretes Beispiel zu lösen, obwohl ich dir dafür sehr dankbar bin, sondern Leuten helfen sich mit Makros auszukennen.

\ bedeutet ja dass ich auf eine Benutzereingabe warte, muss ich diese mit; bzw Leerzeichen abschließen?
Scheint ja auch nicht wirklich Konsens darüber zu herrschen, da wie man sieht es jeder anderes macht, und es auch was anderes bewirkt, obwohl alle das selbe wollen.

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13527
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 17. Jun. 2009 14:31    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 THE_ONE 10 Unities + Antwort hilfreich

Beim Makro mußt du bei den Parametern auch immer PICKFIRST, Elemente schon gewählt oder erst noch zu wählen , ect. berücksichtigen und entsprechend tatsächlich benötigter Parameter verzweigen .... evtl. also noch mit _select arbeiten .... dadurch verkompliziert sich aber alles, so daß ich die eine command-Zeile vorziehe.

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

System: F1
und Google

erstellt am: 17. Jun. 2009 23:46    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 THE_ONE 10 Unities + Antwort hilfreich

Wenn du den FAQ-Beitrag kennst, warum nimmst du dann die Sachen nicht einfach mal an die darin stehen !? 
Als allererstes Semikolon statts Leerzeichen für ein <Enter>
Zum testen von Makros in der Befehlszeile nimmst du das dort gepostete Lisp, Befehlsaufruf ist dann "Diesel"
und danach einfach deinen Dieselstring eingeben.
<kommt Zeit kommt auch die Erweiterung dieses FAQ-Artikels..>

\ bedeutet ja dass ich auf eine Benutzereingabe warte, muss ich diese mit; bzw Leerzeichen abschließen?

Warum testest du es nicht einfach ? (Das ist erstens der schnellste und zweitens der beste Weg zu lernen)
Schau dir auch einfach mal die tausend anderen Makros hier im Forum an.


Scheint ja auch nicht wirklich Konsens darüber zu herrschen, da wie man sieht es jeder anderes
macht, und es auch was anderes bewirkt, obwohl alle das selbe wollen.

Das stimmt nicht so ganz, erstens kann es ja mehrere Wege geben, zweitens ist auch nicht jeder gleich gut
im erstellen von Makros und daher weichen auch die Wege/Lösungen ab.
Ungetestete Makros sind natürlich sowieso immer "wackelig" auf den Beinen.

Schau dir das mal an:
^C^C_select;\_.move;_p;;\_m2p
^C^C_.select;\_.rotate;_p;;\90
usw.
Weil der Befehl WAHL (_select) Alle Objektwahlmöglichkeiten für ein Makro bereithält
nimmt man diesen am besten vor dem Befehl und bei der Objektwahl des Befehles sagt
man einfach nur VorherigerAuswahlsatz (V oder _P) - so kann ein oder mehrere Objekte
gewählt werden.

usw.
Kannst ja uch mal über die alte Suchmaschine oder Google nach meine Posts suchen
in denen es um Makros geht, da gibt es mitlerweile viele.

------------------
die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk)

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