| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Makro mit Zwischenablage erstellen (728 mal gelesen)
|
B3nnoB87 Mitglied Konstrukteur
Beiträge: 45 Registriert: 14.04.2015 Intel Xeon CPU E5-1620 16GB Ram NVIDIA Quadro K4200 - AutoCAD 2014 Inventor 2014
|
erstellt am: 26. Apr. 2017 15:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich möchte ein Makro erstellen das mir etwas um den wert "x,y" via -pan versetzt. Dafür brauche ich aber immer wieder neue Werte. Jetzt ist meine frage, kann ich ein Makro erstellen das sich diese Werte aus dem Zwischenspeicher holt? z.Z. 0,500 -> mit strg+c in den Zwischenspeicher laden Makro: c^c^-pan;0,0;<Zwischenspeicher>; Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Bricscad V11-V21 pro Plateia, Canalis Visual Basic
|
erstellt am: 26. Apr. 2017 16:00 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
Hallo, Dein Makro sieht etwas komisch aus, da ist Dir wohl ein Tipfehler unterlaufen. Theoretisch sollte es so gehen: ^C^C_pan;0,0;\ Durch den \ wird eine Eingabe erwartet. Wenn Du den Wert mit Strg+C in den Zwischenspeicher geholt hast, könntest Du jetzt mit Strg-V den Wert in die Befehlszeile eintragen lassen Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
B3nnoB87 Mitglied Konstrukteur
Beiträge: 45 Registriert: 14.04.2015 Intel Xeon CPU E5-1620 16GB Ram NVIDIA Quadro K4200 - AutoCAD 2014 Inventor 2014
|
erstellt am: 26. Apr. 2017 16:03 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von KlaK: Hallo, Dein Makro sieht etwas komisch aus, da ist Dir wohl ein Tipfehler unterlaufen.Theoretisch sollte es so gehen: ^C^C_pan;0,0;\ Durch den \ wird eine Eingabe erwartet. Wenn Du den Wert mit Strg+C in den Zwischenspeicher geholt hast, könntest Du jetzt mit Strg-V den Wert in die Befehlszeile eintragen lassen Grüße Klaus
Die Befehlszeile wollte ich eben nicht benutzen, sondern mit dem Zwischenspeicher auslesen den vorgang automatisieren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Apr. 2017 16:04 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
Hört sich verrückt an. Bitte erkläre doch was deine Zeichnung darstellt und warum/woher die Daten in der Excelliste kommen? Interessant.. Einfügen in den Zeichnungsbereich geht einfach: _PASTECLIP, Aber man kann im Makro nicht angeben "einfügen in die Befehlszeile", das geht nicht m.M.nach. Wenn du Excel hast, dann lasse dir doch lieber von Excel das komplette Makro erstellen (mit Formel "Verketten") in dem Fall geht jedoch kein Makro, sondern nur die SCRIPT-Schreibweise =VERKETTEN("'-PAN 0,0 ";C6) entspricht '-PAN 0,0 20,0 siehe auch User FAQ ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Apr. 2017 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
Nach den zwischenzeitlichen Antworten hier noch eine Ergänzung, zur Sicherheit. In Excel markierst du dann die Zelle mit der Formel welche die Scriptfolge darstellt, dann Strg+C und in Acad Strg+V IN DIE BEFEHLSZEILE ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Prisoner Mitglied Bauingenieur
Beiträge: 101 Registriert: 28.08.2007 Windows 7 Pro 64bit, HP Workstation Z420, AMD Firepro V4900, AutoCAD 2017
|
erstellt am: 26. Apr. 2017 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
Die Library DOSLIB (siehe Link) enthält u.a. Copy/Paste-Funktionen: Also: ^C^C_pan;0,0;(dos_clipboard) Sollte funktionieren. PS: die Copy-Funktion wäre in Deinem Fall: (dos_clipboard "0.5") Kann man auch in ein Makro einbauen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Bricscad V11-V21 pro Plateia, Canalis Visual Basic
|
erstellt am: 26. Apr. 2017 16:39 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
Excel? davon war doch nie die Rede ?? Denke es geht B3nnoB87 nur darum die Ansicht um eine definierte Schrittweite zu verschieben (pan) Wäre es hier nicht sinnvoll einfach die Seitenbalken einzublenden und dort zu scrollen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Apr. 2017 17:22 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
Zitat: Original erstellt von KlaK: Excel? davon war doch nie die Rede ?? SORRY, hast ja recht. Keine Ahnung wie ich auf dieses schmale Brett kam, naja - zumindest FAST nicht. Denke es geht B3nnoB87 nur darum die Ansicht um eine definierte Schrittweite zu verschieben (pan) Da er den Verschiebewert aber in der Zwischenablage hat(?) muß der Wert ja irgendwo herkommen und da ist Excel recht naheliegend, daher wohl meine ANNAHME. Das ganze macht auch nur wirklich Sinn wenn man immer unterschiedliche Werte (in der Zwischenablage) hat.
Nur mir fällt spontan kein realistisches Szenario ein wann und warum man diese Anforderung haben könnte, dies interessiert mich sehr.
------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
B3nnoB87 Mitglied Konstrukteur
Beiträge: 45 Registriert: 14.04.2015 Intel Xeon CPU E5-1620 16GB Ram NVIDIA Quadro K4200 - AutoCAD 2014 Inventor 2014
|
erstellt am: 27. Apr. 2017 07:20 <-- editieren / zitieren --> Unities abgeben:
Mein Ziel war es ein Layout zu kopieren mit dem Zeichnungskopf, dem Rahmen und allen Ansichtsfenster und dann in der Kopie alle Inhalte in den Ansichtsfenster um x,y zu versetzten (pan). Mach ich das jetzt händisch stimmen Schnitte nicht mehr überein. Mach ich das über die Befehlszeile kann ich gleich neue Fenster setzen weil die eingabe zu viele Schritte benötigt. Bis jetzt sieht der ABlauf so aus: - Klick ins fenster - Entsperren - Makro: ^c^c-pan;0,0; - strg+c in Befehlszeile - Ansichtsfenster wieder schließen Das sind einfach zu viele Schritte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 27. Apr. 2017 08:50 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
Ahhhhh. Ja an die Situation hatte ich gestern nicht gedacht. "Klick ins fenster - Entsperren - Makro: ^c^c-pan;0,0; - strg+c in Befehlszeile - Ansichtsfenster wieder schließen" Also wenn du cleverer Weise das Fenster entsperrst und erst hinterher alle auf einmal wieder sperrst, dann fallen schon mal zwei Schritte weg(das wieder-sperren hast du vermutlich nur vergessen zu schreiben, oder?) Wenn ich dann deine Beschreibung weiter betrachte ist es genau EIN KLICK um ALLE Layouts auf einmal zu erstellen - komplett als Script wie oben dargestellt. Für alle diese Schritte gibt es doch Autocadbefehle, schau mal in das Textfenster wenn du einem Ablauf durchgeführt hast. Oder direkt beim arbeiten, einfach eine ordentliche Anzahl an Zeilen für die Befehlszeile wählen(4). ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 27. Apr. 2017 09:00 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
Falls mehrere Ansichtsfenster eines Layouts neu eingestellt werden müssen, dann geht das nicht mehr ohne Programmierung. Alleine mit Acadbefehlen würde man nur Eines pro Layout automatisch einstellen könne. Die Sache ging noch nicht ganz eindeutig aus der Beschreibung hervor. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Prisoner Mitglied Bauingenieur
Beiträge: 101 Registriert: 28.08.2007 Windows 7 Pro 64bit, HP Workstation Z420, AMD Firepro V4900, AutoCAD 2017
|
erstellt am: 27. Apr. 2017 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
Zitat: - Klick ins fenster - Entsperren - Makro: ^c^c-pan;0,0; - strg+c in Befehlszeile - Ansichtsfenster wieder schließen
Das ist mir auch noch nicht ganz klar_ - Woher holst Du den Wert im Zwischenspeicher? - Anstelle "strg+c" müsste doch in Deinem Ablauf eigentlich "strg+v" stehen, da der Wert zu diesem Zeitpunkt schon im Zwischenspeicher sein sollte? Abgesehen davon: In meinem obigen Beitrag funktioniert übrigens wenigstens der Teil mit dem pan-Makro und dem automatischen Auslesen des Zwischenspeichers sehr gut (getestet). Versuchs mal: -doslibxxx.arx laden -dann (Button- oder Hotkey-)Makro ausführen, um einen Wert aus dem (vorhandenen!) Zwischenspeicher im Makro zu benutzen (in deinem Fall z.Z. "0,500"): ^c^c-pan;0,0;(dos_clipboard) Um den Ansatz von cadffm aufzunehmen und viele Ansichtsfenster auf einmal zu entsperren, und dann nacheinander um einen Zwischenspeicher-Wert zu verschieben und wieder zu sperren, wäre folgendes denkbar: Beispiel: Es sind 3 gesperrte Afenster vorhanden und folgende Makros auf jew. Hotkeys gelegt: Strg+1= -afenster;r;a;v;; Strg+2= -afenster;r;e;v;; Strg+3= -pan;0,0;(dos_clipboard) 1. Ohne Befehl alle 3 Afenster selektieren und Strg+1 (=alle gewählten Entsperren) 2. Doppelklick in irgendein Afenster und folgendes ausführen: Strg+3, Strg+r, Strg+3, Strg+r, Strg+3 3. Afenster durch Doppelklick außerhalb deaktivieren, um in den Papierbereich zurückzukehren 4. wie Schritt 1 aber Strg+2 (=alle wieder Sperren). Also mehrere Afenster auf einmal entsperrt, verschoben und wieder gesperrt mit gefühlten 5 Maus - und Tastenanschlägen. Ist das ein erster Ansatz für einen gangbaren Weg ohne Programmierung? Grüße Anselm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 27. Apr. 2017 12:50 <-- editieren / zitieren --> Unities abgeben: Nur für B3nnoB87
@Prisoner Das Sperren/Entsperren kann man doch komplett weglassen, vorher entsperren, dann die Layout vervielfältigt und hinterher wieder sperren, einmal für alle AF der Datei. @All Kleine Änderung meiner Aussage: Auch die Ansicht von mehreren AF geht mit einem Makro/ohne Programmierung Das Steuerzeichen ^V wechselt zwischen den Fenstern.
@TO Überlegst du, brauchst du Hilfestellung oder hast es mittlerweile per Hand gelöst? Ich hänge später mal ein Beispiel an falls keine Antwort mehr kommt. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |