| |
| 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: alle Ansichtsfenster einer Zeichnung sperren / entsperren (12732 mal gelesen)
|
CADJojo Mitglied Techn.Zeichner/Konstrukteur im Ladenbau
Beiträge: 703 Registriert: 16.04.2010 Inventor 2024.3 / Windows 10 Business Intel Xeon CPU Gold 6342 2,8 GHz / 64 GB RAM
|
erstellt am: 28. Nov. 2011 15:52 <-- editieren / zitieren --> Unities abgeben:
|
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 28. Nov. 2011 16:00 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
|
CADJojo Mitglied Techn.Zeichner/Konstrukteur im Ladenbau
Beiträge: 703 Registriert: 16.04.2010 Inventor 2024.3 / Windows 10 Business Intel Xeon CPU Gold 6342 2,8 GHz / 64 GB RAM
|
erstellt am: 28. Nov. 2011 16:08 <-- editieren / zitieren --> Unities abgeben:
Ja, soweit war ich schon, aber dann werden bei mir nur die Fenster im aktuellen Bereich (also im aktuellen Layout) gesperrt: " Befehl: ma MANSFEN Ecke des Ansichtsfensters angeben oder [Ein/Aus/Zbereich/SChattplot/speRren/Objekt/Polygonal/Holen/Layer/2/3/4] <Zbereich>: r Sperrung der Ansicht im Ansichtsfenster [Ein/Aus]:e Objekte wählen: alle 42 gefunden 22 waren keine Ansichtsfenster. 17 befanden sich nicht im aktuellen Bereich. 1 war das Papierbereich-Ansichtsfenster. Objekte wählen: " Ich würd´s aber gerne für ALLE Layouts der Zeichnung haben... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
j-sc Ehrenmitglied
Beiträge: 1838 Registriert: 14.07.2003 W7 64Bit intel core I7 2,8GHz / 4GB ATI FIRE PRO V5800 acad2011 acad2015 acad2018 Athena Expresstools
|
erstellt am: 28. Nov. 2011 16:14 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
High, ich hab da 2 Schnipsel (command "_MVIEW" "_L" "_ON" (ssget "X" '((0 . "VIEWPORT"))) "") (command "_MVIEW" "_L" "_OFF" (ssget "X" '((0 . "VIEWPORT"))) "") ------------------ Ciao J-SC ... geht's vielleicht doch? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 28. Nov. 2011 16:16 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
Objekte über den aktuellen Bereich hinaus kann man nur über das Eigenschaftenfenster oder via Programmierung ändern. Ich denke zu wissen das es im Forum ein Lisp gibt welches alle Fenster sperrt (evtl. auch entsperrt). Über Googlebin ich schnell zur inoffiziellen AutoCAD-Hilfeseite gekommen, das könnte dir schon helfen oder ? KLICK! ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 28. Nov. 2011 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
|
CADJojo Mitglied Techn.Zeichner/Konstrukteur im Ladenbau
Beiträge: 703 Registriert: 16.04.2010 Inventor 2024.3 / Windows 10 Business Intel Xeon CPU Gold 6342 2,8 GHz / 64 GB RAM
|
erstellt am: 28. Nov. 2011 16:26 <-- editieren / zitieren --> Unities abgeben:
Super, das Sperren hat schon mal geklappt. Dann werd ich mal versuchen, das auf´s Entsperren umzuschreiben... Bei der Suche im Forum oder bei Google scheine ich immer die falschen Suchwörter zu nehmen. Oder mir fehlt die Geduld, um bei den Suchergebnissen auch auf den zweistelligen Seiten noch zu lesen... Besten Dank. [Diese Nachricht wurde von CADJojo am 28. Nov. 2011 editiert.] 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 AutoCAD 2.5 - 2025, Civil 3D, MAP 3D, ACADM, ACA Inventor Prof. 2025, AIP 4-2025 Win 11
|
erstellt am: 28. Nov. 2011 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 28. Nov. 2011 16:39 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
|
CADJojo Mitglied Techn.Zeichner/Konstrukteur im Ladenbau
Beiträge: 703 Registriert: 16.04.2010 Inventor 2024.3 / Windows 10 Business Intel Xeon CPU Gold 6342 2,8 GHz / 64 GB RAM
|
erstellt am: 28. Nov. 2011 16:47 <-- editieren / zitieren --> Unities abgeben:
Ähem. Uups. Wie ist das nur möglich? Kann es sein, dass je nach Tageszeit die Suchergebnisse anders sortiert werden ??? Und ich hatte zusätzlich die Worte "alle" und "sperren" im Suchfenster, das hat´s evtl. etwas mehr begrenzt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad4fun Ehrenmitglied
Beiträge: 1846 Registriert: 06.12.2004 privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM ATI FirePro V (FireGL V) Graphics Adapter Treiberversion: 15.201.1151.1008
|
erstellt am: 28. Nov. 2011 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 28. Nov. 2011 17:28 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
|
sammo Mitglied Techn. Zeichner
Beiträge: 9 Registriert: 21.12.2012 xmg a102
|
erstellt am: 11. Sep. 2013 15:27 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
Hallo, ich benutze Autocad 2012. ich habe folgendes in eine Textdatei geschrieben und sie in lsp umbenannt: ;; Sperrt ALLE Ansichtsfenster auf ALLEN Layouts (defun c:AFS( / BLOCK ) (vl-load-com) (vlax-for LAYOUT (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM (setq BLOCK (vla-get-Block LAYOUT)) (if(=(strcase(vla-get-objectname ITEM))"ACDBVIEWPORT") (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-DisplayLocked (list ITEM :vlax-true) ) ) ) ) ) (vla-regen(vla-get-activedocument (vlax-get-acad-object)) acAllViewports) ) EDIT Dann bin ich in Autocad auf "Extras" --> "Anwendungen" gegangen und habe die lsp Datei geladen. Doch passiert ist gar nichts. Was habe ich falsch gemacht? ------------------ http://www.silat-sigepi.de [Diese Nachricht wurde von sammo am 11. Sep. 2013 editiert.] [Diese Nachricht wurde von sammo am 11. Sep. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 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: 11. Sep. 2013 15:37 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
Servus, du must das LSP noch starten in dem Fall mit AFS. defun c: zeigt den aufruf an ------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sammo Mitglied Techn. Zeichner
Beiträge: 9 Registriert: 21.12.2012 xmg a102
|
erstellt am: 12. Sep. 2013 09:59 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
|
Mann Mitglied Graphische Dienstleistungen
Beiträge: 64 Registriert: 16.05.2014 AutoCAD 2010 & LT 2015 Nemetschek Allplan 2008 C4D 10.5 Adobe CC
|
erstellt am: 16. Mrz. 2016 02:18 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
1. Meeegageil, genau das brauche ich grad. 2. Danke für die Hilfe bis hier Kann mir mal jemand vielleicht sogar noch kurz sagen, was hier bei mir passiert? Ich krieg nach meiner Bastelaktion zwar erstmal das Ergebnis, das ich will, aber immer noch massig Fehlermeldungen! Was ich gemacht hab: Laut Anleitung in dem oben verlinkten Thread habe ich, nachdem bei mir natürlich keine Ansichtsfenster gesperrt wruden, irgendwie versucht, den dort von CADchup geposteten "Command" (wtf?) in das Geschehen einzubasteln. "weil Viewports nicht "entmodet" werden können"... Ich hab aber ja keine Ahnung. Da ACAD beim obenstehenden LISP irgendeinen Fehler ausspuckte, habe ich den in der Fehlermeldung auftauchenden String einfach im LISP gesucht und dann mit dem "if-Code" von CADchup ersetzt. Mein Ergebnis sah dann so aus:
Code: ;; Sperrt ALLE Ansichtsfenster auf ALLEN Layouts (defun c:AFS( / BLOCK ) (vl-load-com) (if (and (setq ss (ssget "x" '((0 . "VIEWPORT")))) (> (sslength ss) 1) ) (foreach i (layoutlist) (setvar "CTAB" i) (command "_.mview" "_Lock" "_On" ss "") ) ) (if(=(strcase(vla-get-objectname ITEM))"ACDBVIEWPORT") (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-DisplayLocked (list ITEM :vlax-true) ) ) ) ) ) (vla-regen(vla-get-activedocument (vlax-get-acad-object)) acAllViewports) )
Darauf wurden alle Ansichtsfenster gesperrt (GEIL!) Allerdings folgte das Resultat (Ausgabe ACAD):
Code: Befehl: afs _.mview Ecke des Ansichtsfensters angeben oder [Ein/Aus/Zbereich/SChattplot/speRren/Objekt/Polygonal/Holen/Layer/2/3/4] <Zbereich>: _Lock Sperrung der Ansicht im Ansichtsfenster [Ein/Aus]:_On Objekte wählen: 2 gefunden 1 war das Papierbereich-Ansichtsfenster.Objekte wählen: Befehl: ; Fehler: no function definition: VLA-GET-OBJECTNAME
Zudem kann ich mit meinem coolen AFES-Lisp nun auch alle Ansichtsfenster wieder entsperren:
Code: ;; Entsperrt ALLE Ansichtsfenster auf ALLEN Layouts (defun c:AFES( / BLOCK ) (vl-load-com) (if (and (setq ss (ssget "x" '((0 . "VIEWPORT")))) (> (sslength ss) 1) ) (foreach i (layoutlist) (setvar "CTAB" i) (command "_.mview" "_Lock" "_Off" ss "") ) ) (if(=(strcase(vla-get-objectname ITEM))"ACDBVIEWPORT") (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-DisplayLocked (list ITEM :vlax-false) ) ) ) ) ) (vla-regen(vla-get-activedocument (vlax-get-acad-object)) acAllViewports) )
Passieren tut erstmal also das, was ich will. Kein Gehupe, alles automatisch. Aber derbe Fehlermeldungen: Code: Befehl: afes _.mview Ecke des Ansichtsfensters angeben oder [Ein/Aus/Zbereich/SChattplot/speRren/Objekt/Polygonal/Holen/Layer/2/3/4] <Zbereich>: _Lock Sperrung der Ansicht im Ansichtsfenster [Ein/Aus]:_Off Objekte wählen: 2 gefunden 1 war das Papierbereich-Ansichtsfenster.Objekte wählen: Befehl: ; Fehler: no function definition: VLA-GET-OBJECTNAME
Was passiert da? Was kann ich optimieren? ------------------ Ein Gott ist der Mensch, wenn er träumt, ein Bettler, wenn er nachdenkt. (aus Hölderlins Hyperion) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 16. Mrz. 2016 07:32 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
Du hast den erweiterten Funktionssatz nicht geladen, dies laden viele automatisch mit einem Eintrag in die Acad.lsp, aber es ist natürlich auch im Code passend untergebracht:(vl-load-com) Dieser Eintrag fehlt(e), schreibe es an den Anfang der Lispdatei, fertig. Wenn du (vl-load-com) drin stehen hast, so liegt es an deinem System, nicht am Code. Dazu findet man bereits Posts dazu. Fehlermeldung=Suchbegriff für das Forum145 Schon mal mit frischen Acad-Profil gestartet? ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mann Mitglied Graphische Dienstleistungen
Beiträge: 64 Registriert: 16.05.2014 AutoCAD 2010 & LT 2015 Nemetschek Allplan 2008 C4D 10.5 Adobe CC
|
erstellt am: 16. Mrz. 2016 09:00 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
Mit neuem Profil starten? Was die Fehlersuche angeht, stehe ich nicht minder auf dem Schlauch. Was genau soll ich machen? bei den Ergebnissen sehe ich den Zusammenhang nicht... ------------------ Ein Gott ist der Mensch, wenn er träumt, ein Bettler, wenn er nachdenkt. (aus Hölderlins Hyperion) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 16. Mrz. 2016 09:12 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
Hi, wenn CADmiums Code bei dir nicht funktioniert, stimmt etwas nicht mit deiner Installation oder dem Profil, da gebe ich cadffm Recht. Recherchier' das mal! Habe leider keinen passenden Link zur Hand. Dein zusammenkopierter Code fehlert wegen siehe oben und würde - auch wenn er VLA-GET-OBJECTNAME kennen würde - vor die Wand laufen, weil er das Objekt ITEM verarbeiten soll, das er gar nicht kennen kann. Entweder du suchst den Fehler, warum keine VLA-Funktionen (resp. ActiveX) laufen oder arbeitest komplett ohne VLA. Der Code, den ich damals gepostet hatte, war eigentlich als Lösung für LT-Extender-User gedacht, denen dieser VLA-Funktionssatz nicht zur Verfügung stand. Funktioniert prinzipiell aber auch in regulärem AutoCAD. Zu einer Funktion zusammengeklöppelt und vervollständigt würde dein AFS dann so aussehen:
Code: (defun c:AFS (/ ss) (if (setq ss (ssget "_X" '((0 . "VIEWPORT") (-4 . "<NOT") (69 . 1) (-4 . "NOT>") ) ) ) (foreach i (layoutlist) (setvar "CTAB" i) (command "_.mview" "_Lock" "_On" ss "") ) ) )
Gruß CADchup ------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 16. Mrz. 2016 09:22 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
So, nun sitze ich am Rechner und kann ggf. besser helfen. Als erstes sollte wir bis 10 zählen lernen: ;; Sperrt ALLE Ansichtsfenster auf ALLEN Layouts Start 0-Klammern-offen (1defun c:AFS(2 / BLOCK )1 (2vl-load-com)1 (2if (3and (4setq ss (5ssget "x" '(6(70 . "VIEWPORT")6)5)4)3 (4> (5sslength ss)4 1)3 )2 (3foreach i (4layoutlist)3 (4setvar "CTAB" i)3 (4command "_.mview" "_Lock" "_On" ss "")3 )2 )1 (2if(3=(4strcase(5vla-get-objectname ITEM)4)3"ACDBVIEWPORT")2 (3vl-catch-all-error-p (4vl-catch-all-apply 'vla-put-DisplayLocked (5list ITEM :vlax-true)4 )3 )2 )1 )0-Klammern-offen )-1 (0vla-regen(1vla-get-activedocument (2vlax-get-acad-object)1)0 acAllViewports)-1 )-2 Ende - Es wurden 2 Klammern geschlossen welche nicht geöffnet wurde??
Aber interessant wäre die Frage warum du überhaupt an den Codes gebastelt hast (abgesehen von der zweiten Variante "Entsperren"? Jetzt hast du zwei Codes, welche für das gleiche bestimmt waren, versucht zusammenzuschreiben. Würde der Code für das Tür zu knallen da sein, so würdest du nun jede Tür zweimal zuhauen? Der Link von oben: http://ww3.cad.de/foren/ubb/Forum145/HTML/000854.shtml Nimm von dort den Code, befasse dich damit - Kaffee in die Hand, dann klappt das auch. (defun c:FUNKTIONSNAME ~ mit vorangestelltem "c:" ist diese als AutoCAD-Befehl aufrufbar Und nun kommt es drauf an welchen der beiden Codes du nimmst, bei dem einen mußt du für das entsperren :vlax-false anstantt 'vla-put-DisplayLocked (list ITEM :vlax-true) eingeben. Und der andere Code bedient ja nur die Befehlszeile, das kannst du dir also einfach selbst erarbeiten was Acad wann für eine Eingabe haben möchte, einfach _.mview eingeben und der Befehlszeile und Hilfe folgen. (Wobei du in diesem Fall besser das von CADmium nehmen solltest) ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 16. Mrz. 2016 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für CADJojo
Hallo Mann, irgendwie hast Du "wild irgendwelchen Code zusammenkopiert" Probier mal folgendes Code:
(defun c:AFES( / ) (vl-load-com) (if (and (setq ss (ssget "x" '((0 . "VIEWPORT")))) (> (sslength ss) 1) ) (foreach i (layoutlist) (setvar "CTAB" i) (command "_.mview" "_Lock" "_Off" ss "") ) ) ) (defun c:AFS( / ) (if (and (setq ss (ssget "x" '((0 . "VIEWPORT")))) (> (sslength ss) 1) ) (foreach i (layoutlist) (setvar "CTAB" i) (command "_.mview" "_Lock" "_On" ss "") ) ) )
HTH Gruß Thomas [edit] Zu spät, man sollte halt nicht telefonieren, wenn man beim Antworten ist [/edit] [Diese Nachricht wurde von spider_dd am 16. Mrz. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |