| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Mit SAP ERP/PLM den Anlagenbau perfekt organisiert - NEUMAN & ESSER GROUP (CIDEON, SAP, ERP, PLM, CAD), ein Anwenderbericht |
Autor
|
Thema: bestimmter Layerfilter für Layout (4025 mal gelesen)
|
susi79 Mitglied Verm.techn. / Bauzeichner
Beiträge: 359 Registriert: 15.09.2009 HP Notebook: Vista HP*Intel Core 2 duo*4GB RAM*NVIDIA GeForce 9600M GT*AutoCAD (Architecture) 2010 / 2011
|
erstellt am: 28. Mai. 2010 10:30 <-- editieren / zitieren --> Unities abgeben:
Hallöchen mal wieder, ich hab mir überlegt, daß es gar nicht so schlecht wäre, wenn sich beim Wechsel vom Modell zum Layout der eingestellte Layerfilter ändert. Also so, daß im Layout nur bestimmte Layer "zur Auswahl stehen". Der ursprüngliche Layerfilter aus dem Modellbereich sollte dann natürlich bei Wechsel zurück zum Modell wiederhergestellt werden. Jetzt meine Frage: Wie könnte man das realisieren? Meine Programmierkenntnisse halten sich leider immer noch extrem in Grenzen, daher wär ich für ein paar Ansätze und Vorschläge dankbar. Auch Bedenken sind natürlich willkommen, kann ja sein, daß meine super Idee gar nicht so super ist in der Praxis. LG und schon mal vielen Dank im Voraus Susi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingo Struck Mitglied Holztechniker
Beiträge: 459 Registriert: 08.01.2010 Intel Core i7-3770 16 GB RAM AMD FirePro V3900 (FireGL V) Windows 7 Pro SP1 AutoCAD 2017 SP1 - deutsch
|
erstellt am: 28. Mai. 2010 10:42 <-- editieren / zitieren --> Unities abgeben: Nur für susi79
Die Layouts sind doch eigentlich dazu gedacht, Plotansichten zu erstellen. Vielleicht reicht es ja schon, einzelne Layer zum plotten zu sperren. Bei mir ist das zum Beispiel der Layer "Fenster", auf welchem nur Ansichtsfenster liegen. Das Ansichtsfenster ist dann zwar im Layout sichtbar, wird aber trotzdem nicht mitgedruckt. mfg, Ingo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StokeX Mitglied Schreiner
Beiträge: 267 Registriert: 07.07.2009 AutoCAD 2011 DELL Precision M4500 Windows 7 64bit www.nacer.de
|
erstellt am: 28. Mai. 2010 10:59 <-- editieren / zitieren --> Unities abgeben: Nur für susi79
Hallo Susi79 Hab ich das richtig verstanden? Wenn du im Modellbereich bist möchtest du in der Auswahl nur die Layer sehen welche du im Modell brauchst. Im Umkehrschluss die Layer die du im Layout benutzt sollen im Modellbereich nicht auswählbar sein! und wenn du ins Layout wechselst dann sollen die Layer die ausschließlich ins Modell gehören nicht Sichtbar sein und umgekehrt. Geht es die um eine kleinere Layerliste oder um die Sichtbarkeit der Objekte? Mfg StokeX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1451 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 28. Mai. 2010 11:05 <-- editieren / zitieren --> Unities abgeben: Nur für susi79
Hallo Susi, könnte mit einem Reactor gehen. Probier doch mal folgende "Grundkonstruktion" aus: (defun check_sysvar (a b) (if (= (car b) "TILEMODE") (setq ctab? (getvar "ctab")) ;;; hier die Layerfilter-Umschaltung hineinbasteln unter Berücksichtigung der Variablen CTAB ) ) (vlr-sysvar-reactor nil '((:vlr-sysvarchanged . check_sysvar)) ) ------------------ Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
susi79 Mitglied Verm.techn. / Bauzeichner
Beiträge: 359 Registriert: 15.09.2009 HP Notebook: Vista HP*Intel Core 2 duo*4GB RAM*NVIDIA GeForce 9600M GT*AutoCAD (Architecture) 2010 / 2011
|
erstellt am: 28. Mai. 2010 12:03 <-- editieren / zitieren --> Unities abgeben:
Danke schön Andreas, wie ich ja schon geschrieben hatte, sind meine Programmierkenntnis nicht gerade gut , daher nehm ich´s für mich jetzt mal auseinander: fettgeschrieben ist meine Frage dazu (defun check_sysvar (a b) : definiert Funktion check_sysvar mit Liste (a b) (if(=(car b) "Tilemode") : je nachdem welchen Wert Tilmode hat (0 oder 1) (setq ctab? (getvar "ctab")) : speichere den Namen der Variable ctab? (warum das Fragezeichen und warum soll ctab gespeichert werden? Eigentlich müsste doch eher der Name des vorm Tabwechsel aktuellen Layerfilters gespeichert werden oder?) ;;;Layerfilterumschaltung : ist klar, das wenn braucht natürlich auch ein dann ) ) (vlr-sysvar-reactor...) : sobald sich die sysvar ändert führe Funktion check_sysvar aus (werden durch den Reactor nur "tilemode" und "ctab" berücksichtigt?) Ich hoffe ich hab es so weit richtig "übersetzt" und werd dann mal schauen, inwiefern ich mit der Layerfilterumschaltung klar komme. LG Susi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 28. Mai. 2010 12:34 <-- editieren / zitieren --> Unities abgeben: Nur für susi79
Hi, (defun check_sysvar (a b);Funktionsdef. mit Übergabewerten a und b vom Reaktor (if (= (car b) "TILEMODE");nur wenn b die Sysvar tilemode enthält mache was (setq ctab? (getvar "ctab"));ihmo noch ein progn einbauen oder cond oder... gibt Namen der aktuellen Registerkarte zurück --> ggf spezielle Filter bzw Unterscheidung Modell <->Layout, wird in ctab? gespeichert ;;; hier die Layerfilter-Umschaltung hineinbasteln unter Berücksichtigung der Variablen CTAB ) ) (vlr-sysvar-reactor nil '((:vlr-sysvarchanged . check_sysvar));alle Änderungen an Systenvariblen lösen den Reaktor aus --> starten check_sysvar ) ------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
susi79 Mitglied Verm.techn. / Bauzeichner
Beiträge: 359 Registriert: 15.09.2009 HP Notebook: Vista HP*Intel Core 2 duo*4GB RAM*NVIDIA GeForce 9600M GT*AutoCAD (Architecture) 2010 / 2011
|
erstellt am: 28. Mai. 2010 13:03 <-- editieren / zitieren --> Unities abgeben:
Danke Dorfy, für die Korrektur meiner "Übersetzung", hab´s dann jetzt glaub ich verstanden. Hört sich erstmal gut an, allerdings hab ich bisher noch nichts dazu gefunden, wie man an die Layerfilter überhaupt rankommt. Die müssen doch aber auch irgendwie in der Zeichnung gespeichert sein oder? Also ich merk schon, das wird doch komplizierter... LG Susi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1451 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 28. Mai. 2010 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für susi79
Hallo Susi, Zitat: warum das Fragezeichen und warum soll ctab gespeichert werden?
das ist eine Variable die die Anwort auf eine Frage enthält, natürlich kannst du die Variable nennen wie du willst oder die Umschaltung ohne Variable also direkt mit (getvar "ctab") gestalten. Zitat: - Eigentlich müsste doch eher der Name des vorm Tabwechsel aktuellen Layerfilters gespeichert werden oder?
den Layerfilter brauchst duan dieser Stele noch nicht zu speichern, da hat sich ja noch nichts verändert. Den Layerfilter solltest du direkt vor der Aktivierung eines anderen speichern. Ich platziere solche Sachen die zusammen gehören im Programm gerne an eine Stelle, dann findet mans bei Änderungen leichter wieder als wenn das gaaaaanz woanders steht. Zitat: werden durch den Reactor nur "tilemode" und "ctab" berücksichtigt?
Nein, das ist ein Reactor der auf Änderung einer Systemvariablen reagiert. Welche das ist frage ich erst in check_sysvar ab. Ich hab festgestellt daß CTAB komischerweise beim Layoutwechsel gar nicht behandelt wird aber TILEMODE auch wenn ich zwischen Papierbereichslayouts wechsele. Deshalb checke ich TILEMODE (is ja auch egal) um einen Layoutwechsel festzustellen. ------------------ Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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. Mai. 2010 13:19 <-- editieren / zitieren --> Unities abgeben: Nur für susi79
|
susi79 Mitglied Verm.techn. / Bauzeichner
Beiträge: 359 Registriert: 15.09.2009 HP Notebook: Vista HP*Intel Core 2 duo*4GB RAM*NVIDIA GeForce 9600M GT*AutoCAD (Architecture) 2010 / 2011
|
erstellt am: 28. Mai. 2010 13:35 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CADmium: Layerfilter liegen im Extensiondictionirie der Layertabelle ... aber ich denke, mit deinen Kenntnissen ist das und das mit dem Reactor - nichts für ungut - ein etwas sehr ergeiziges Projekt.Mach die "Layersteuerung" doch über das Frieren im Ansichtsfenster.
huhu, passt schon. Denk mittlerweile auch, daß es (mal wieder) ein wenig zu kompliziert wird. Die Ideen sind da, nur an der Umsetzung mangelt´s. Andererseits, wer nichts versucht kann auch nichts neues lernen... Wie auch immer, es geht nicht darum irgendwas zu frieren im Ansichtsfenster oder so... Wie kommst darauf? Ich will eigentlich nur erreichen, daß mir in der Layersteuerung (also das "Layer-Dropdown-Feld" im Layerwerkzeugkasten) sobald ich vom Modell in den Papierbereich wechsele nur die für den Papiertab zu verwendenen Layer angezeigt werden. Andersrum sollen diese "Papierlayer" im Modelltab natürlich nicht mit angeszeigt werden. Hoffe so ist´s verständlicher... LG Susi PS: Im Modelltab wären es dann allerdings mehrere mögliche Gruppenfilter (je nachdem welches Bauteil bearbeitet wird). [Diese Nachricht wurde von susi79 am 28. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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. Mai. 2010 13:57 <-- editieren / zitieren --> Unities abgeben: Nur für susi79
|
susi79 Mitglied Verm.techn. / Bauzeichner
Beiträge: 359 Registriert: 15.09.2009 HP Notebook: Vista HP*Intel Core 2 duo*4GB RAM*NVIDIA GeForce 9600M GT*AutoCAD (Architecture) 2010 / 2011
|
erstellt am: 28. Mai. 2010 14:21 <-- editieren / zitieren --> Unities abgeben:
ok, hab´s aus´m Gedächnis gestrichen... Wo kann man denn dieses Extensiondictionary überhaupt einsehen, um dann vielleicht irgendwann mal zu verstehen, wie man damit umgehen muss? Im Auto-lisp Handbuch und Kochbuch hab ich jetzt nichts dazu gefunden (vielleicht hab ich auch nur falsch gesucht). F1 hat mich jetzt auch nicht auf Anhieb weitergebracht... LG Susi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 28. Mai. 2010 14:34 <-- editieren / zitieren --> Unities abgeben: Nur für susi79
(setq LayExtDict (vla-GetExtensionDictionary (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)) );_ end of vla-get-Layers );_ end of vla-GetExtensionDictionary ) Da sollten dann "ACAD_LAYERFILTERS" und "AcLyDictionary" drin definiert sein. Aber ich gehe da jetzt nicht weiter darauf ein, danke. ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
susi79 Mitglied Verm.techn. / Bauzeichner
Beiträge: 359 Registriert: 15.09.2009 HP Notebook: Vista HP*Intel Core 2 duo*4GB RAM*NVIDIA GeForce 9600M GT*AutoCAD (Architecture) 2010 / 2011
|
erstellt am: 29. Mai. 2010 10:39 <-- editieren / zitieren --> Unities abgeben:
Moinsen, also eigentlich meinte ich so was wie eine Übersicht, aber egal... Danke schön an alle Helfer, werd das Projekt zunächst erst mal in die Liste der unerledigten Ideen aufnehmen, die momentan an meinem mangelnden Wissen scheitern. LG und schönes Wochenende Susi PS: Großes Lob und DANKESCHÖN mal im Allgemeinen noch an alle Programmierspezialisten, die sich hier und anderswo große Mühe geben allen Unwissenden (wie mir) weiterzuhelfen und geduldig teilweise sehr grundlegende Fragen beantworten. [Diese Nachricht wurde von susi79 am 29. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |