| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
|
Autor
|
Thema: layerstate-save (2284 mal gelesen)
|
manndaten Mitglied
 
 Beiträge: 103 Registriert: 14.03.2001
|
erstellt am: 12. Jan. 2014 13:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo Forum, ich möchte mit (layerstate-save...) den Layerstatus eines Ansichtsfenster sichern, einschließlich der aflayer. Die Hilfe sagt: (layerstate-save layerstatename mask viewport) z.B. (layerstate-save "xy" 16 ename_viewport) Wenn ich also als viewport den ename des Ansichtsfensters übergebe, bekomme ich eine Fehlermeldung. Was mache ich falsch? Danke schon mal für jede Antwort. Status: AutoCAD 2014
------------------ Grüßle aus Karlsruhe Armin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archtools Mitglied
  
 Beiträge: 991 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 12. Jan. 2014 13:19 <-- editieren / zitieren --> Unities abgeben:          Nur für manndaten
Zitat: Original erstellt von manndaten: Hallo Forum,ich möchte mit (layerstate-save...) den Layerstatus eines Ansichtsfenster sichern, einschließlich der aflayer. Die Hilfe sagt: (layerstate-save layerstatename mask viewport) z.B. (layerstate-save "xy" 16 ename_viewport) Wenn ich also als viewport den ename des Ansichtsfensters übergebe, bekomme ich eine Fehlermeldung. Was mache ich falsch?
Woher sollen wir das wissen? Wie lautet denn die Fehlermeldung? Was geschieht, wenn Du den Befehl _LAYERSTATESAVE verwendest? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
manndaten Mitglied
 
 Beiträge: 103 Registriert: 14.03.2001
|
erstellt am: 12. Jan. 2014 13:31 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ename Viewport: (setq ename_viewport(car(entsel))) Objekt wählen: <Objektname: 7fffe8d7ee0> Die Fehlermeldung lautet dann: Befehl: (layerstate-save "xy" 16 ename_viewport) Abbruch:Fehler bei ADS-Anforderung ------------------ Grüßle aus Karlsruhe Armin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22497 Registriert: 03.06.2002 Alles
|
erstellt am: 12. Jan. 2014 13:31 <-- editieren / zitieren --> Unities abgeben:          Nur für manndaten
Zitat: EDIT / Da zeitgleich: Abbruch:Fehler bei ADS-Anforderung
Acad schon mal neu gestartet für einen erneuten Test ? "ich möchte mit (layerstate-save...) den Layerstatus eines Ansichtsfenster sichern, einschließlich der aflayer."
An der Stelle geht hervor das dir die Arbeitsweise der Layerfilter(Was wird gespeichert=Alles) und was wird wann/wie wieder hergestellt) noch nicht ganz bewußt ist, du solltest also mal die (AutoCAD-)Hilfe durchlesen zum Thema Layerfilter ! "Die Hilfe sagt: (layerstate-save layerstatename mask viewport) z.B. (layerstate-save "xy" 16 ename_viewport)"
Und das stimmt auch. "Wenn ich also als viewport den ename des Ansichtsfensters übergebe, bekomme ich eine Fehlermeldung." Was mache ich falsch?
Das erste ist: Du nennst uns die Fehlermeldung nicht, diese wird nämlich schon recht genau aussagen an welcher Stelle es hakt ! Nur beispielhaft: (layerstate-save "xy" 16 ename_viewport)= 1 Funktion 1 String 1 Integer 1 ename Du kannst den Funktionsnamen falsch geschrieben haben Du kannst einen ungültigen String als Name übergeben haben (Sonderzeichen oder einen bereits vorhandenen Layerfilter-Namen) Du kannst einen unzulässigen Integerwert übergeben haben (progn (if (member (strcase (setq LSTname (getstring "LSTname: "))) (mapcar 'strcase (layerstate-getnames))) (layerstate-delete LSTname) ) (if (layerstate-save LSTname 16 (ssname (ssget "_:S" '((0 . "VIEWPORT"))) 0)) (alert "well done") ) ) ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD [Diese Nachricht wurde von cadffm am 12. Jan. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
manndaten Mitglied
 
 Beiträge: 103 Registriert: 14.03.2001
|
erstellt am: 12. Jan. 2014 13:40 <-- editieren / zitieren --> Unities abgeben:         
Ich habe den Fehler: Der Viewport ist mit einer umgewandelten Polylinie erzeugt worden, dann scheint es nicht zu funktionieren. Mit dem Typ VIEWPORT funzt es. Danke für Eure Unterstützung am Sonntag! ------------------ Grüßle aus Karlsruhe Armin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22497 Registriert: 03.06.2002 Alles
|
erstellt am: 12. Jan. 2014 13:49 <-- editieren / zitieren --> Unities abgeben:          Nur für manndaten
"Mit dem Typ VIEWPORT funzt es." NUR mit dem Typ Viewport. Offensichtlich hast du den ename eines anderen Objektes übergeben (vermutlich das zuschneidende Objekte - Polylinie oder Kreis etc.) Das ein Viewport nur in Teilen angezeigt wird ist bei deinem Vorhaben nämlich unerheblich. teste noch mal: (alert(cdr(assoc 0 (entget (car(entsel)))))) ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
[Diese Nachricht wurde von cadffm am 12. Jan. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
manndaten Mitglied
 
 Beiträge: 103 Registriert: 14.03.2001
|
erstellt am: 12. Jan. 2014 16:21 <-- editieren / zitieren --> Unities abgeben:         
Stimmt, super!!! 10U for you und noch mal vielen Dank! Für alle zum Nachvollziehen für einen Viewport im aktuelle Layout: (setq filter (list (cons 0 "VIEWPORT")(cons 410 (getvar"ctab")))) (setq auswahl(ssget"x" filter)) (setq ename_viewport(ssname auswahl 0)) (layerstate-save "xy" 16 ename_viewport)
------------------ Grüßle aus Karlsruhe Armin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
manndaten Mitglied
 
 Beiträge: 103 Registriert: 14.03.2001
|
erstellt am: 12. Jan. 2014 21:17 <-- editieren / zitieren --> Unities abgeben:         
Hallo, hier noch eine Ergänzung, die ich jetzt nach langen Suchen rausgefunden habe: Ich will beim Speichern die Option "Sichtbarkeit im aktuellen AF" setzen: (setq filter (list (cons 0 "VIEWPORT")(cons 410 (getvar"ctab")))) (setq auswahl(ssget"x" filter)) (setq ename_viewport(ssname auswahl 0)) (layerstate-save "xy" mask_wert ename_viewport) Die Werte aus der Hilfe geben für den mask_wert folgende Möglichkeiten: 1- Restore the saved On or Off value 2- Restore the saved Frozen or Thawed value 4- Restore the saved Lock value 8- Restore the saved Plot or No Plot value 16- Restore the saved VPVSDFLT value 32- Restore the saved Color 64- Restore the saved LineType 128- Restore the saved LineWeight Egal was man aber setzt, die Option für die Sichtbarkeit wird nicht aktiviert. Aus Verzweiflung habe ich dann einfach mal die Binärwerte 254 und 508 gesetzt, und tatsächlich aktiviert sich die Option, wenn BEIDE Werte gesetzt werden. Vielleicht erspart das dem einen oder anderen das Suchen. ------------------ Grüßle aus Karlsruhe Armin [Diese Nachricht wurde von manndaten am 12. Jan. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22497 Registriert: 03.06.2002 Alles
|
erstellt am: 13. Jan. 2014 00:06 <-- editieren / zitieren --> Unities abgeben:          Nur für manndaten
Zitat: Original erstellt von manndaten: ..Ich will beim Speichern die Option "Sichtbarkeit im aktuellen AF" setzen:Die Werte aus der Hilfe geben für den mask_wert folgende Möglichkeiten: 1- Restore the saved On or Off value 2- Restore the saved Frozen or Thawed value 4- Restore the saved Lock value 8- Restore the saved Plot or No Plot value 16- Restore the saved VPVSDFLT value 32- Restore the saved Color 64- Restore the saved LineType 128- Restore the saved LineWeight einfach mal die Binärwerte 254 und 508 gesetzt, und tatsächlich aktiviert sich die Option, wenn BEIDE Werte gesetzt werden.
Also 254 und 508 ausprobiert ? Wie kommt man denn darauf Und dann noch kombiniert... somit zufällig über 511 gekommen und das gewünschte aktiviert die Liste sollte so weiter gehen: 256- Restore the saved Plotstyle 512- Restore the saved visible in active VP 1024 - Restore the transparency -> Aber erst nachdem die Funktion erweitert wurde, aktuell wird 1024 nicht ausgewertet. 1023 wäre somit alles außer Transparenz ALLES, kann man einfach aktivieren durch übergabe von nil . ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |