| |
| 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: PSLTSCALE alle Layouts, kein Umschalten (3681 mal gelesen)
|
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 16. Jan. 2009 15:27 <-- editieren / zitieren --> Unities abgeben:
den PSLTSCALE in allen Layouts ändern ohne diese umzuschalten: hier mein Ansatz, nachdem es mich genervt hat, daß die Proggis die ich gefunden habe immer nur nach dem Umschalten ein setvar durchführen dachte ich mir, daß das ja auch anders funktionieren muss. getestet unter AutoCad 2009 (DE) Code: (defun sw*set-psltscale-all (FLAG / LAYENT NEUELISTE) (if (and FLAG (member FLAG '(0 1)) ) (vlax-for LAYOUT (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)) ) (if (= (getvar "CTAB") (vla-get-Name LAYOUT)) (setvar "psltscale" FLAG) (progn (setq LAYENT (entget (vlax-vla-object->ename LAYOUT))) (append! 'NEUELISTE (reverse (member '(100 . "AcDbLayout") (reverse LAYENT))) ) (foreach PAIR (cdr (member '(100 . "AcDbLayout") LAYENT)) (append! 'NEUELISTE (if (= 70 (car PAIR)) (list (cons 70 FLAG)) (list PAIR) ) ) ) (entmod NEUELISTE) (entupd (vlax-vla-object->ename LAYOUT)) (setq NEUELISTE nil LAYENT nil ) ) ) ) ) ) (defun append!(symbol1 liste2 / ) (set symbol1(append(eval symbol1)liste2)) )
lg Wolfgang S Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wuehlmaus Mitglied Landschaftsarchitekt
Beiträge: 350 Registriert: 03.12.2010
|
erstellt am: 08. Jul. 2015 09:47 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
Ich weiß - es ist lange her, aber jetzt hat ein Kollege den "Wunsch" den PSLTSCALE in jedem Layout auf 0 zu setzen ... irgendwie funktioniert aber der Code nicht. Müsste nicht in der ersten Zeile nach defun c: stehen? Oder wie wird die Lisp sonst aufgerufen? Wir arbeiten mit AC2013 ... Wäre über einen Hinweis dankbar chris ------------------ www.Gestalten-mit-AutoCAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 08. Jul. 2015 09:51 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
defun c:irgendwas definiert AutoCAD-Befehl, hier kann man keine Parameter übergeben, daher schlecht in anderem Code verwenden. (sw*set-psltscale-all 0)
Das würde samt Klammer deinem Wunsch entsprechen. mit (defun c:PSLTSCALEall0 nil (sw*set-psltscale-all 0)) Hätte man einen AutoCAD-Befehl der das macht.. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 08. Jul. 2015 09:58 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
Der Code funktuioniert auch in AutoCAD 2016 und muss so aufgerufen werden: Code: (sw*set-psltscale-all 0)
Das ist eine reine LISP Funktion mit Parameter - keine Funktion die als Command (dann mit C: aber ohne Parameter) aufgerufen werden kann. Mann kann aber noch eine Funktion dazuprogrammieren Code: (defun C:SETPSLTSCALE0 () (sw*set-psltscale-all 0) )
aber ob das notwendig ist in diesem Fall? ------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wuehlmaus Mitglied Landschaftsarchitekt
Beiträge: 350 Registriert: 03.12.2010
|
erstellt am: 08. Jul. 2015 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
|
artes-indigo Mitglied
Beiträge: 106 Registriert: 30.08.2008 AutoCAD 2020 Windows 10
|
erstellt am: 13. Mrz. 2020 14:04 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
Hallo! Leider bin ich was LISP angeht ein Vollt... Kann ich diese einfache Funktion auch ohne extra "Datei" oder "Programm" starten? Einfach in der Befehlszeile? Ich hatte mal ein LISP, das komplett in der Befehlszeile zu sehen war, aber bei dieser Zeile (sw*set-psltscale-all 0) sagt AutoCAD nur Fehler: no function definition: SW*SET-PSLTSCALE-ALL Arbeite seit 2 Wochen mit AutoCAD2020 Danke, Iris
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meldin Mitglied
Beiträge: 398 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 14. Mrz. 2020 09:11 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
ohne jetzt geteste zu haben das sollte gehen ! kopiere erst einmal (defun sw*set-psltscale-all (FLAG / LAYENT NEUELISTE) ... ... ) und dann den 2ten Befehl (defun append!(symbol1 liste2 / ) ... ) und dann teste noch einmal mit (sw*set-psltscale-all 0) ------------------ Gruß Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
artes-indigo Mitglied
Beiträge: 106 Registriert: 30.08.2008
|
erstellt am: 05. Jul. 2024 11:22 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Jul. 2024 19:05 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
|
artes-indigo Mitglied
Beiträge: 106 Registriert: 30.08.2008
|
erstellt am: 09. Jul. 2024 09:00 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
Ich dachte, das nil wäre eine Fehlermeldung, tut mir leid! Ich hab später festgestellt, dass es ja funktioniert hat. Vielleicht hilft das ja doch och jemandem, der genauso doof ist wie ich. Ich hatte das noch nie bei den anderen LISPs gesehen, dass er das am Ende schreibt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadwomen Ehrenmitglied V.I.P. h.c. Mädchen für fast alles
Beiträge: 3067 Registriert: 26.08.2002 ACAD R11 - 2018.1.2 (Plant3D) AVIS ACAD LT 2013- 2020 ZWCAD 2015 Versuch "nun ja" [s]History P3D 2012/(13) SP und Hotfix([/s]<P> Windows 10 / 64 Bit Xeon CPU 3.5GHz 16GB Ram NVIDIA Quadro P2000 3x Dell TV100 88P Monitore
|
erstellt am: 09. Jul. 2024 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
zumindest aufgepast, finde die Anmerkung auch nicht schlecht ... Eine Zeile mit ner Ordentlicher "EOF" Meldung wäre sicher nicht verkehrt cw ------------------ Also ich finde Unities gut ... und andere sicher auch ------------------------------------------------ cadwomen™ Plant ist nur die Spitze des Berges der da treibt ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 09. Jul. 2024 19:04 <-- editieren / zitieren --> Unities abgeben: Nur für Wolfgang S
|