Makro again / AutoCAD Mechanical
Tom60 25. Jul. 2019, 09:42

Hallo,

mal ne kurze kleine Frage.

Ich arbeite mich gerade in das Thema Makros ein.
Soweit läuft alles gut.
Hab die FAQ hier dazu auch schon etwas gelesen.

Kann mir trotzdem jemand auf die schnelle nen Tip geben,
wie ich mit Makros umgehe wenn sich Fenster öffnen bei denen ich was auswählen muss?

Beispiel

Befehl

AMSETUPDWG

Das erste was kommt ist ein Fenster bei dem ich 2 Button zur aAuswahl habe.
Was kommt in das Makro um so einen Button auszuwählen?

Und wenn ich mir eben bei diesem Befehl Einstellungen aus einer Vorlagedatei holen will, was kommt in das Makro wenn sich das Fenster öffnet "Vorlage auswählen"?

Wäre Top wenn mir da jemand helfen könnte.

cadffm 25. Jul. 2019, 13:06

Eigentlich (ich) nicht, dennoch möchte ich darauf verweisen das genau dieser Punkt in der genannten FAQ

1. Es gibt keine EINE /allgemeine Antwort
  (Daher ist ein konkretes Beispiel wie du es lieferst mit AMSETUP DWG sehr gut- du hast nur vergesseh zu erwähnen was du dort machen willst, wird hier aber nicht interessant werden)

2. Entweder es gibt eine Befehlszeilenversion von dem Befehl(anderer Befehl ohne Dialog, aber häufig denselben Möglichkeiten) - siehe FAQ

3. Einige Ausnahmen gibt es, Dateiwahldialog = FILEDIA und für einige andere Befehle: CMDDIA

4. Wenn es keine Befehlszeilversion gibt oder der Dialog weder über Filedia noch CMDdia gesteuert wird, bleibt nur einen andere Weg zu suchen.

_

Ausgerechnet dein Beispiel ist Top, denn AutoCAD startet automatisch die Befehlszeilenversion soweit vorhanden, wenn der befehl in einer Automatisierung aufgerufen wird.
(zumindest für gewöhnlich, aber nicht in jedem Fall)
Also wenn man den Befehl mit Makro, Script oder (send)cmmand ausführt, dann siehst du überhaupt keinen Dialog wenn die Befehlsfolge "vollständig" ist.
Zum testen in der Befehlszeile (und ich schriebe es dann im Makro auch so) mußt du also selbst den Befehl ausfrufen.
Wie in der FAQ beschrieben ist, für gewöhnlich selber Befehlsname mit vorangestelltem Bindestrich.

-AMSETUPDWG;B sollte das gleiche erfolgreiche Ergebnis bringen wie
AMSETUPDWG;B


Tom60 25. Jul. 2019, 13:44

Danke für die Antwort.

Ja, in der FAQ hab ich das gelesen mit FILEDIA usw. ,
haut bei anderen Sachen auch gut hin.

Hier in diesem Fall bringt es nichts.
Auch -AMSETUPDWG bringt nichts da das erste Abfragefenster trotzdem bzw. immer kommt. Der Rest kommt dann in der Befehlszeile.

Da komme ich auch drüber (über den Rest).
Hängen bleibe ich bei der ersten Auswahl.

Mein Makro aktuell

^C^C-amsetupdwg;z;d;vorlagexy;

Ich habe auch probiert, dass ich nach dem ersten Semikolon, dass nach dem AMSETUP Befehl kommt, gleich nochmal eines Setze.
Es kommt ja bei diesem Befehl das erste Fenster mit der Auswahl  "Einstellungen überschreiben" oder "Abbrechen".

Wenn ich die Geschichte normal durchlaufe, also ohne Makro, komme ich über dieses Fenster mit einer einfachen Eingabetaste hinweg.

Es sollte sich also auf das gleiche raus kommen wenn ich in das Makro ein Semikolon hinein schreibe...
Das klappt aber nicht.

Letztes Problem ist dann die "Wahl" der Datei im Makro.
Es soll immer die Vorlagedatei "vorlagexy" ausgewählt werden.
Da weiß ich auch nicht wie ich da weiter komme.

Da mich das Thema brennend interessiert werde ich mir wohl mal ein Buch dazu kaufen.

Es muss doch möglich sein diese Sache sowie andere Sachen zu automatisieren.

Z.B

In diesem Fall:

AMSETUPDWG -> Einstellungen überschreiben -> Zeichnungsvorlage -> Vorlage

oder auch das Sortieren von Teilelisten:

AMPOWEREDIT -> Nach Posnr. absteigend sortieren.

Solche Sachen muss ich auf ein Menümakro bringen können.
Spart auf Dauer mächtig viel Zeit.

cadffm 25. Jul. 2019, 14:12

EDITERT


Den Warndialog habe ich mit EXPERT unterdrückt, hatte ich leider vergessen.

-AMSETUPDWG gibt es überhaupt nicht, mein Fehler - MECH war so lieb und hat es selbstständig korrigiert gehabt, das blieb mir verborgen  )


Und dann zu deinem Makro amsetupdwg;z;d;vorlagexy;

liest sich wenig sinnvoll, das "d" startet doch den Dateiwahldialog, aber du willst ja offenbar eine fixe/bekannte Vorlage angeben!?
wäre es dann nicht so richtig? ^C^CEXPERT;5;amsetupdwg;z;vorlagexy;EXPERT;0

[Diese Nachricht wurde von cadffm am 25. Jul. 2019 editiert.]

Tom60 25. Jul. 2019, 14:59

Jetzt kommen wir der Sache näher 

Wo finde ech z.B. so ne Sammlung mit eben diesen "Befehlsteilen" wie das "Expert"?

Das "d" startet den Dateiwahldialog. Das stimmt.
Anders geht es irgendwie nicht.

Die Vorlage soll vom Netzlaufwerk gewählt werden,
daher müsste ich da anstelle des "" einen Dateipfad angeben.

Das geht aber nicht, da "." ":" im Makro "Reaktionen" auslösen.
Ich hoffe du weißt was ich meine.

Wenn im Makro das "d" mit drin ist startet die Vorlagensuche schon im richtigen Vorlageordner. Daher wäre es noch ein kleiner Schritt nun einfach die richtige Datei zu wählen.

Also quasi jetzt müsste das vorlagexy.dwt kommen
aber das passt ihm nicht da ein "." enthalten ist.
Ohne "." findet er keine Datei.

^C^CEXPERT;5;amsetupdwg;z;d;vorlagexy.dwt;EXPERT;0

lol
zum Haare raufen ist das...
und ich hab eh schon so wenig 


Ich merk schon,
das ist nicht einfach...

Wo hast du das alles gelernt?
Die Hilfe auswendig gelernt oder wie?


cadffm 25. Jul. 2019, 15:33

Jetzt kommen wir der Sache näher  
Freut mich

Wo finde ech z.B. so ne Sammlung mit eben diesen "Befehlsteilen" wie das "Expert"?
In der Hilfe - [F1], oder anderen Fachbüchern zu AutoCAD (In dem Fall AutoCAD weil es nicht Mechanical spezifisch ist) oder Foren oder oder

Das "d" startet den Dateiwahldialog. Das stimmt.
Aber du willst do eine bestimmte Datei angeben und nicht den Benutzer wählen lassen, oder sehe ich das falsch?

Anders geht es irgendwie nicht.
"Irgendwie" versteht nur der Mensch, dem Copmputer ist "irgendwie" völlig fremd. Damit kann ich und der Rechner irgendwie wenig anfangen   

Die Vorlage soll vom Netzlaufwerk gewählt werden,
genommen oder (vom User) gewählt?

daher müsste ich da anstelle des "" einen Dateipfad angeben.
ähm. Wo haben wir derzeit denn ein "" 

Das geht aber nicht, da "." ":" im Makro "Reaktionen" auslösen. Ich hoffe du weißt was ich meine.
Weder "." (als Trennung von Dateiname zu Dateierweiterung)  noch ":" machen Probleme, bei Pfaden stolpert man höchstens über BACKSLASHS,
das sind in Makros steuerzeichen für "Benutzereingabe"


Wenn im Makro das "d" mit drin ist startet die Vorlagensuche schon im richtigen Vorlageordner.
Daher wäre es noch ein kleiner Schritt nun einfach die richtige Datei zu wählen.
Wenn die bekannt ist, dann wäre bereits der erste Fehler die Option "Durchsuchen" mit "d" aufzurufen!
Wenn der Befehl startet steht da doch bereits:
DATEIPFAD VORLAGE oder [Durchsuchen] EINGEBEN <Durchsuchen>:

Also quasi jetzt müsste das vorlagexy.dwt kommen
aber das passt ihm nicht da ein "." enthalten ist.
Ohne "." findet er keine Datei.
Wüßte nicht wo das Problem bei . oder : liegt, aber ich nehme an du nutzt keine SLASH anstatt BACKSLASHs

Sollte funktionieren, nur bei UNC Pfaden könnte er stolpern (nicht getestet)
^C^CEXPERT;5;amsetupdwg;z;"N:/MEIN PFAD/MEINE VORLAGE.DWG";EXPERT;0
und bei mir würde es so aussehen:
^C^C_.EXPERT;5;_.AMSETUPDWG;_template;"N:/MEIN PFAD/MEINE VORLAGE.DWG";_.EXPERT;0
Internationale original-Befehle, kann SO also auch zB. der Franzose nutzen dessen Applikation den Befehl AMSETUPDWG eigentlich umprogrammiert hat.

Wo hast du das alles gelernt?
Da wo ich gelesen habe und da wo ich es getestet habe - also überall
Die Hilfe auswendig gelernt oder wie?
Auswendig sicher nicht, aber komplett durchgearbeitet habe ich diese sicher einmal (das ist aber auch schon lange her)
Was Makros angeht: Es gibt zwar nette Kunstgriffe die man erlernen kann, aber bis auf 15 Sonderzeichen und DIESEL geht es einfach
nur um die Aneinanderreihung von ganz normalen Befehlen und Variablen

Tom60 26. Jul. 2019, 21:34

Sorry für die späte Antwort.

Also ich werd mir jetzt mal alles oder bzw. einiges über Makros aus der Hilfe ausdrucken und mir da was zusammen stellen.
Gestern Abend habe ich noch etwas gestöbert, hab aber nicht wirklich was passendes in Sachen Fachlektüre gefunden. Das einzige war ein uraltes Buch über VBA und Autocad. Preis über 100 flocken...

So nun zu deiner Antwort.

Ja, es soll eine bestimmte Datei gewählt werden.
Nein der Benutzer soll keine Wahl treffen können.

Die Vorlage soll vom Netzlaufwerk genommen werden. (Nicht gewählt  )

Bei dem "" habe ich den vorher verwendeten Dateinamen vergessen.
Sollte heißen "vorlagexy".

....
jetzt hab ich gerade wieder ne Stunde damit verbracht das Ding zum laufen zu bekommen.
Hab deine Antwort nicht ganz verstanden in Sachen Slash oder Backslash.

Nun hab ich es geschnallt und alles funktioniert 

Der Fehler:
Ich hab den Pfad aus dem Windows-Explorer kopiert.

Somit eben mit Backslash.

Das macht Probleme.

Umschreiben mit Slash und alles klappt.
Achja, und den Pfad in "" zu setzen war natürlich auch noch notwendig.

Perfekt!!

Vielen vielen Dank.

Nun werd ich mir noch anschauen wie ich das mit der Sortierung der Stücklistenpositionierung hin bekomme.
Das will ich auch über ein Makro gebacken bekommen.
Und danach mit Sicherheit mehr 

Nochmals vielen Dank für die Hilfe und entschuldige das ich dir schon wiedermal etwas Zeit geraubt habe.

cadffm 27. Jul. 2019, 12:16

Anführungszeichen kann nötig sein wenn Leerzeichen in einer Zeichenkette
vorhanden ist, abhängig von dem Befehl den man aktuell füttert.
Daumenregel für mich: Pfade/Dateinamen einfach immer in "" schreiben, macht keine Probleme und oft ist es notwendig.

Makros mit den vorhandenen Befehlen ist ein guter Einstieg, wer dann noch die Expresstools installiert hat für SSX der kommt schon oft sehr weit damit.

Danach kommen dann Programmiersprachen mit "allen" Möglichkeiten.


Wegen Makros:

1. Suche nicht das große unbekannte, es sind bis auf wenige Ausnahmen wirklich nur die normalen Befehle und Variablen.
Die muß man lernen und danach pfiffig kombinieren.

2. 100€ brauchst du nicht investieren und VBA ist die ganz falsche Richtung/Schwerpunkt.
Wenn du in Acad kein Anfänger bist, dann einfach alte Bücher für 2,3 Euro kaufen, ich warf die teilweise auch weg weil der Verkaufsaufwand zu hoch gegenüber möglicher Erlöse war, selbst für 1€ will die Bücher kaum noch jemand.

(Warum ich es keinem Anfänger empfehle: Man muss eine wenig einschätzen können ob es überhaupt relevant für aktuelle Versionen ist)

In jedem Buch lernt man was neues oder wird an Vergessenes erinnert, ich zumindedt habe noch nie den Kauf eines alten Buches bereut, auch wenn es für eine 30Jahre alte Version war.
Mein Tip bei dem Thema:  Bücher zu Versionen vor 2004, gerne zu R14