Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Befehlsmakro und DIESEL mit mehreren Befehlen

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:  Befehlsmakro und DIESEL mit mehreren Befehlen (749 / mal gelesen)
M4T
Mitglied
Konstrukteur


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

Beiträge: 35
Registriert: 26.03.2020

Inventor 2019 (Techn.Zeichner von 1997-2004; AutoCAD 70%, Inventor 30%; seit 2020 wieder aktiv am konstruieren)

erstellt am: 23. Sep. 2021 15:05    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,

vor 20 Jahren war ich richtig gut in acad Befehlsmakros mit DIESEL Befehlen, Lisp etc. Aber das ist alles komplett weg. Habe fast 20 Jahre nichts mit Autocad gemacht...

Um im Modellbereich mit verschiedenen Skalierungen zu arbeiten, wollte ich eine Befehlskette machen, um ruck zuck dimscale, ltfaktor, textgröße und führungslinientextgröße anzupassen.

Wenn ich folgende drei Befehle hintereinander ausführe, klappt es:
^C^C_dimscale \textsize 'kal 2.5*$M=$(getvar,dimscale);
^C^Cltfaktor 'kal 0.025*$M=$(getvar,dimscale);
^C^Cmleaderscale 'kal 0.625*$M=$(getvar,dimscale);

ABER ich kann nicht die drei Befehle zusammenpacken wie z.B.

^C^C_dimscale \textsize 'kal 2.5*$M=$(getvar,dimscale);ltfaktor 'kal 0.025*$M=$(getvar,dimscale);

Ich habe gestern die halbe Nacht versucht es hinzubekommen, aber erfolglos :-(

Und vielleicht nochwas nebenher; Ich verstehe es so, dass ich der variable $M den Wert von dimscale zugewiesen habe. Kann ich nicht später einfach $M verwenden ohne es erneut zuzuweisen? Dimscale ändert sich ja nicht...

Freue mich von euch zu hören,
Pete

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: 23. Sep. 2021 15:35    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 M4T 10 Unities + Antwort hilfreich

Servus,


>>"Ich verstehe es so,"
Nein, du fütterst da keine Variable, daher kannst du es so auch nicht verwenden.
für Variablen kannst du dir gerne mal USERR1-5 USERI1-5 USERS1-5 ansehen

>>"Ich habe gestern die halbe Nacht versucht es hinzubekommen, aber erfolglos"
Zeige uns was du probiert hast, wenn es das original Makro ist, dann fehlt uns dazu dein Protokoll
um zu sehen was bei dir schief läuft (denn eigentlich sieht das gut aus und sollte funktionieren).
Also: Datei öffnen, das Makro ausführen und ganz am Ende dann [F2], Rechtsklick, Protokoll kopieren
und uns zur Verfügung stellen.


>>"vor 20 Jahren war ich richtig gut in acad Befehlsmakros mit DIESEL Befehlen, Lisp etc."
TIP: Nutze in deinen Makros für ein ENTER das SEMIKOLON wie es sich gehört, das lässt sich besser lesen
(siehst du den Unterschied zwischen 1 und 2 oder 2 und drei Leerzeichen? ICH NICHT!)
und somit unnötige Probleme zu verhindern.

Allgemeines FAQ: Menü-MAKROs und SKRIPTe
http://ww3.cad.de/foren/ubb/Forum54/HTML/021110.shtml

>>"Um im Modellbereich mit verschiedenen Skalierungen zu arbeiten, wollte ich eine Befehlskette machen, um ruck zuck dimscale, ltfaktor, textgröße und führungslinientextgröße anzupassen."
AutoCAD, oder MECHanical?
Mechanical hatte ja bereits eine automatische Verwaltung für diese Dinge (AMSCALE & Co)

und im AutoCAD verwendet man heute diese dämliche Variante eigentlich nicht mehr,
da würden man 1:1 konstruieren/zeichnen und die Beschriftungsfunktion nutzen für Text und Bemassung.
FAQ: Beschriftungsskalierung (Annotation Scaling)
http://ww3.cad.de/foren/ubb/Forum54/HTML/022131.shtml

Will dich nicht bekehren - nir sicherstellen dass dir diese Dinge bekannt sind.

Also: Deine Makro sollte funktionieren, du mußt uns nur deine wirkliches Makro zeigen
bzw. du mußt selbst auch das hier gezeigte verwenden. Wenn das fehl-schlägt dann zeige
uns die Protokolldatei (neue DWG öffnen, Makro ausführen, Protokoll zeigen..)
und falls es in neuen Dateien funktioniert, nicht aber in Bestanddateien, dannn..
Je, da kommst du drauf - auch da würden Protokolle wie auch CAD-Dateien bei der Klärung helfen.

 

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: 23. Sep. 2021 15: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 M4T 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadffm:
Deine Makro sollte funktionieren

Da hatte ich wohl nicht aufgepasst! Ich schaue es mir an und melde mich wieder.
Frage: "Wo" hast du das Makro eingebaut, Menü, MuFu,WerkzeugPalette, Menü...?

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: 23. Sep. 2021 16:14    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 M4T 10 Unities + Antwort hilfreich

So Pete,

mir sitzt der Urlaub im Zeitplan, keine Zeit mich da reinzudenken (und es zu erklären),
daher hier einfach eine saubere Alternative:

Code:
^C^C^C_dimscale;\_textsize;$M=$(*,2.5,$(getvar,dimscale));_ltscale;$M=$(*,0.025,$(getvar,dimscale));

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

M4T
Mitglied
Konstrukteur


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

Beiträge: 35
Registriert: 26.03.2020

Inventor 2019 (Techn.Zeichner von 1997-2004; AutoCAD 70%, Inventor 30%; seit 2020 wieder aktiv am konstruieren)

erstellt am: 23. Sep. 2021 16:45    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


ac1.png

 
Danke für deine ausführliche Antwort. Und danke für den link zu Menü Makros und Skripte.

Leider funktioniert das bei mir mit den *.scr files nicht wie von dir vorgeschlagen. Diese scripte erlauben keine DIESEL Argumente. Womit ich arbeite, bzw. wo ich meine oben genannten Befehle verwende, sind eigens abgeänderte Befehle im Ribbon Menü.

Und hier nochmal mit "Protokoll":
Die Befehle
^C^C_dimscale;\textsize;'kal;2.5*$M=$(getvar,dimscale);
und
^C^Cmleaderscale;'kal;0.625*$M=$(getvar,dimscale);
hintereinander funktionieren.
Aber NICHT aneinandergereiht wie hier:
^C^C_dimscale;\textsize;'kal;2.5*$M=$(getvar,dimscale);ltfaktor;'kal;0.025*$M=$(getvar,dimscale);

Dies sagt das Protokoll:

Zitat:
Befehl: _dimscale
Neuen Wert für DIMSCALE eingeben <1.0000>: 1000
Befehl: textsize
Neuen Wert für TEXTSIZE eingeben <2.5000>: 'kal
>>>> Ausdruck: 2.5*1000
Nehme SETVAR-Befehl wieder auf.
Neuen Wert für TEXTSIZE eingeben <2.5000>: ltfaktor
Erfordert numerischen Abstand oder zwei Punkte.
Neuen Wert für TEXTSIZE eingeben <2.5000>: 2500

Wie man sieht, kommt er nicht durch bis ltfaktor. er bleibt bei textsize stehen.

Woran könnte es liegen?

Und noch zu den anderen Punkten:

# Das mit den Variablen USERR-1-5 ergoogle ich mir später mal. Danke

# Semikolon vs Leerzeichen: Ja, kann dich gut verstehen. Aber ich glaube, das Semikolon ersetzt nicht immer das Leerzeichen. Leerzeichen steht für drücken der Leertaste in einem Befehl, und Semikolon steht für ein Enter. Bei den meisten Befehlen macht es wohl keinen Unterschied, aber bei manchen glaube schon. Ich meine, bei meinem stundenlangen experimentieren trial&error hatte ich das auch irgendwo, dass ich nicht leerzeichen mit semikolon ersetzen konnte. Aber bin mir nicht sicher...

# Ich nutze AutoCAD, nicht Mechanical. Aber auch eher für grobe Skizzen als richtige Zeichnungen mit Schriftfeld etc. Die eigetnlichen Konstruktionen mach in Inventor.

# Danke für den Hinweis auf "FAQ: Beschriftungsskalierung (Annotation Scaling)". Das kannte ich garnicht. Wie gesagt, zwischen 2004 und 2020 hab ich AutoCAD kein einziges mal angepackt. Muss nach 2004 gekommen sein... Aber so ganz kapiere ich das nicht. Ich habe von 1:20 auf 1:1000 geändert, aber die Bemaßungen (alte und neue) haben immernoch die gleiche Größe. Sollte die Größe dann nicht anders sein?!?

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

M4T
Mitglied
Konstrukteur


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

Beiträge: 35
Registriert: 26.03.2020

Inventor 2019 (Techn.Zeichner von 1997-2004; AutoCAD 70%, Inventor 30%; seit 2020 wieder aktiv am konstruieren)

erstellt am: 23. Sep. 2021 16:52    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

Wow, keine Erklärungen nötig. Macht alles Sinn so. VIELEN DANK!

^C^C^C_dimscale;\_textsize;$M=$(*,2.5,$(getvar,dimscale));_ltscale;$M=$(*,0.025,$(getvar,dimscale));_mleaderscale;$M=$(*,0.625,$(getvar,dimscale));

Is ja interessant, dass ich den Wert so direkt mit dem operator multiplizieren kann. Perfekt!

Dir einen klaren Kopf für alle Aufgaben bevor es in den Urlaub geht.
LG, Pete

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: 23. Sep. 2021 17:22    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 M4T 10 Unities + Antwort hilfreich

>>"Leider funktioniert das bei mir mit den *.scr files nicht wie von dir vorgeschlagen."
Ich habe kein Script vorgeschlagen, ees würde auch nicht gehen da Scripte keine Benutzerabfrage
und kein Diesel unterstützen (zumindest nicht ohne Lisp zu verwenden).

>>"Diese scripte erlauben keine DIESEL Argumente."
Genau, DIESEL FUNKTIONEN sind für die Programmoberfläche, nicht für die Befehlszeile (Script=Befehlszeile).

>>"Die Befehle.."
....
>>"Woran könnte es liegen?"

Zitat:
Original erstellt von cadffm:
mir sitzt der Urlaub im Zeitplan, keine Zeit mich da reinzudenken (und es zu erklären)


>>"Aber ich glaube, das Semikolon ersetzt nicht immer das Leerzeichen."
Genau falsch herum gedacht. Das Semikolon ist das Enter und nicht das Leerzeichen.

>>"Leerzeichen steht für drücken der Leertaste in einem Befehl,"
Oder auch wenn kein Befehl aktiv ist, genau.

>>"und Semikolon steht für ein Enter."
Nein, bzw. AutoCAD ist so nett und lässt die Leertaste als Bestätigungstaste zu,
wenn in der jeweiligen Situation keine Leerzeichen als gültige Eingabe akzeptiert werden.

>>"Bei den meisten Befehlen macht es wohl keinen Unterschied, aber bei manchen glaube schon."
Wenn ACAD einen Wert abfragt bei den eine Leerzeichen eine gültige Eingabe darstellt,
dann wird das Leerzeichen auch als solches verarbeitet, in allen anderen Fällen wird
dann netterweise der Leerschlag als Bestätigung einer Eingabe (also Enter) interpretiert.

>>"Ich meine, bei meinem stundenlangen experimentieren trial&error hatte ich das auch irgendwo,"
>>"dass ich nicht leerzeichen mit semikolon ersetzen konnte. Aber bin mir nicht sicher..."
Bei nativen Befehlen war das ziemlich sicher nicht der Fall, allerdings wird umgedreht ein Schuh draus.

>>"# Ich nutze AutoCAD, nicht Mechanical. Aber auch eher für grobe Skizzen als richtige Zeichnungen mit Schriftfeld etc. Die eigetnlichen Konstruktionen mach in Inventor."
Okay, dann ist es einfach nur sehr oldschool (und ich möchte die Daten nach Möglichkeit nicht erhalten).

>>"# Danke für den Hinweis auf "FAQ [Frequently asked questions (Häufig gestellte Fragen)] : Beschriftungsskalierung (Annotation Scaling)".
Das kannte ich garnicht. Wie gesagt, zwischen 2004 und 2020 hab ich AutoCAD kein einziges mal angepackt. Muss nach 2004 gekommen sein..."
Ja, Version 2008

>>"Aber so ganz kapiere ich das nicht. Ich habe von 1:20 auf 1:1000 geändert, aber die Bemaßungen (alte und neue) haben immernoch die gleiche Größe."
Dann waren es wohl keine Beschriftungsobjekte, oder es ist einer oder beide Maßstäbe nicht zugeordnet worden.
Das tolle ist nämlich: Beschriftungsobjekte sind nur in den Maßstäben sichtbar, welche auch vom Objekt unterstützt werden: OBJEKTMASS

>>"Sollte die Größe dann nicht anders sein?!?"
Wenn du vom MODELL sprichst: JA
Wenn du vom Layout sprichst (und dem Beschriftungsmassstab des Ansichtsfensters): NEIN, da willst du ja die gleiche Größe, massstabsunabhängig, beibehalten.

-

>>"Is ja interessant, dass ich den Wert so direkt mit dem operator multiplizieren kann. Perfekt!"
Du könntest auch die Variablen direkt mit DIESEL füttern, denn neben GETVAR gibt es ja auch SETVAR und man muss keinen Befehl starten zum Variablen setzen.

Ciao

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: 23. Sep. 2021 17:33    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 M4T 10 Unities + Antwort hilfreich

Wenn aber ";" auch akzeptierte Zeichen sind, dann wird es eng.
Bei Zeichenfolgen arbeitet man dann mit  Anführungszeichen um den "TEXT TE IL" mitzuteilen
und im Makro kann man dann auch noch den Steuercode für Enter (^M) statt ";" und " " einsetzen.

Auch wenn es bereits im Artikel des USer:FAQ verlinkt ist, siehe hier: Steuercodes in Menümakros [F1]


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