| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Layoutwechsel per Script (973 / mal gelesen)
|
Plotter Mitglied
Beiträge: 267 Registriert: 11.02.2004 Windows 10 64-bit AutoCAD 2021 DDS-CAD Adobe Acrobat Pro DC
|
erstellt am: 01. Apr. 2021 09:23 <-- editieren / zitieren --> Unities abgeben:
Ich habe mich an meinem ersten Script versucht und komme irgentwie nicht weiter. Wer kann mir auf die Sprünge helfen? Aufgabe: In einer Datei soll auf allen Layouts (nicht im Modell) alle Elemente in einem bestimmten Bereich gelöscht werden (da dies ggf. in mehreren Dateien genutzt werden soll, wollte ich es als Script anlegen und bei Bedarf einfach in die DAtei ziehen). Die Layouts haben immer unterschiedliche Namen. Ansatz:
Code: _ZOOM _w -50,-50 650,400 _ERASE _w 470,25 570,290_ZOOM g
Nun habe ich keine Ahnung, wie ich eine Schleife hinbekomme, welche alle Layouts einmal behandelt? ------------------ - Plotter - ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 01. Apr. 2021 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für Plotter
Servus, geht ALLE Layouts durch und tut was. Code: (foreach n (layoutlist) (setvar "ctab" n) (command "_zoom" "g"))
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Schöne Grüsse aus der Steiermark Bernd P. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Plotter Mitglied
Beiträge: 267 Registriert: 11.02.2004 Windows 10 64-bit AutoCAD 2021 DDS-CAD Adobe Acrobat Pro DC
|
erstellt am: 01. Apr. 2021 10:33 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 01. Apr. 2021 10:51 <-- editieren / zitieren --> Unities abgeben: Nur für Plotter
Zitat: Original erstellt von Plotter: Wie bekomme ich das denn nun in Scriptform?
AutoCAD versteht Lisp, du brauchst also nichts ändern, lediglich den Teil welcher "in einem Layout" ausgeführt werden soll, den musst du nun Lisp-konform ändern in Bernds Zeilen. (Es gibt keinen AutoCAD-Befehl für "lauf mir durch alle Layouts", daher muss man diese Lisplösung nutzen) Dieser Teil hier: (command "" "" "") ist der gesuchte, Command sendet alles nachfolgende an die Befehlszeile - wie du es auch von deinen Scripten her kennst. Script: CLAYER 0 sieht im Command so aus: (command "CLAYER" "0") Versuche es mal händisch - einfach in der Befehlszeile [F2] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 01. Apr. 2021 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für Plotter
eigentlich recht einfach.... Am Anfang ein Command dann der Befehl und alles unter Anführungszeichen setzen. _ZOOM _w -50,-50 650,400 wird zu (command "_zoom" "_W" "-50,-50" "650,400") und du kannst den Rest auch anhängen _ERASE _w 470,25 570,290 _ZOOM g (command "_zoom" "_W" "-50,-50" "650,400" "_ERASE" "_w" usw.)
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Schöne Grüsse aus der Steiermark Bernd P. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Plotter Mitglied
Beiträge: 267 Registriert: 11.02.2004 Windows 10 64-bit AutoCAD 2021 DDS-CAD Adobe Acrobat Pro DC
|
erstellt am: 01. Apr. 2021 11:05 <-- editieren / zitieren --> Unities abgeben:
Danke für die Erläuterungen! So ähnlich hatte ich mir es auch schon fast gedacht. Allerdings bricht die Frunktion immer ab. Sieht für mich nach dem letzten ZOOM Befehl aus. In der Befehlszeile klappt es mit G und mit ALLE, in dem Lisp nicht!? Sieht im F2 Textfenster so aus:
Code: Befehl: (foreach n (layoutlist) (setvar "ctab" n) (command "_zoom" "_W" "-50,-50" "650,400" "_ERASE" "_W" "470,25" "570,290" "_ZOOM" "ALLE")) _zoom Fensterecke angeben, Skalierfaktor eingeben (nX oder nXP) oder [Alles/Mitte/Dynamisch/Grenzen/Vorher/FAktor/FEnster/Objekt] <Echtzeit>: _W Erste Ecke angeben: -50,-50 Entgegengesetzte Ecke angeben: 650,400 Befehl: _ERASE Objekte wählen: _W Erste Ecke angeben: 470,25 Entgegengesetzte Ecke angeben: 570,290 0 gefundenObjekte wählen: _ZOOM *Ungültige Auswahl* Erwartet einen Punkt oder Fenster/Letztes/Kreuzen/QUADER/ALLE/ZAun/FPolygon/KPolygon/Gruppe/Hinzufügen/Entfernen/Mehrere/Vorher/ZUrück/AUto/EInzeln/Unterobjekt/Objekt ; Fehler: Funktion abgebrochen
------------------ - Plotter - ------------------ 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: 01. Apr. 2021 11:13 <-- editieren / zitieren --> Unities abgeben: Nur für Plotter
Schau mal genau in den Ablauf: Erste Ecke angeben: 470,25 Entgegengesetzte Ecke angeben: 570,290 0 gefunden
Objekte wählen: _ZOOM 1. wird in deiner Ansicht bei den gegebenen Koordinaten per Fensterwahl nichts gefunden 2. unabhängig davon beendest du die Objektwahl auch nicht. Das mit dem "nicht gefunden" ist das eine, der Punkt2 zeigt aber eindeuitg: Du machst es per Hand anders Denn du machst das per Hand wie folgt: Löschen aufrufen, dann Fensterpunkt1 dann Fensterpunkt2 und dann beendest du die Objektwahl durch eine Leereingabe. Im Script ist das ein Zeilenumbruch, auf der Tastatur ein Enter, im Makro ein ; und mit der Maus ein Rechtsklick, für den Command ist es eben genau das gleiche: "NurEnter" senden, also "" Warum er zunächst nichts gefunden hat, dafür müßte man wissen ob du den Objektfang berücksichtigt hast und wie denn überhaupt die Testdatei aussieht.. sonst kann man nur raten.
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: 01. Apr. 2021 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für Plotter
Zitat: Original erstellt von Plotter: (bin allerdings Anfänger im Thema Lisp und Script)
Dann solltest du in der Hilfe nachlesen was es mit OSNAPCOORD auf sich hat und in deinen Scripten am Anfang OSNAPCOORD auf 1 setzen. Diese Einstellung darf gern die Standardeinstellung in deinem Programm sein, wenn man es aber ins Script einbindet, dann ist es SICHER auf 1 gestellt. Osnapcoord auf 2 (Voreinstellung) berücksichtigt die fortlaufenden Objektfänge (falls eingeschaltet), damit rechnet der Anfänger nicht. Mit diesem Tip kannst du dir nun Stunden, Tage, Wochen - bis hin zu deinem Job sichern* *Härtefall, aber theoretisch möglich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischer Produktdesigner / Zeichner (m/w/d) | Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Mitarbeitende:n für einen unserer Kunden. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und übernehmen Verantwortung für komplexe Entwicklungsprojekte.... | Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
Plotter Mitglied
Beiträge: 267 Registriert: 11.02.2004 Windows 10 64-bit AutoCAD 2021 DDS-CAD Adobe Acrobat Pro DC
|
erstellt am: 01. Apr. 2021 11:24 <-- editieren / zitieren --> Unities abgeben:
Das er nichts findet ist OK, da es vorkam, dass in einigen Layouts schon mal jemand von Hand den Bereich gelöscht hatte. Mit dem "Enterbefehl" klappt es nun! DANKE! (wieder etwas gelernt )
------------------ - Plotter - ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |