Poważny błąd w 2012 Plus+


2P

Rekomendowane odpowiedzi

vernum = "2012.12.14(8707)"

Problem dotyczy przełączania ustawień dla warstw. Oto on:

Na warstwie Layer1 rysujemy np. kilka linii. Następnie tą warstwę Mrozimy (freez), wyłączamy (OFF), Blokujemy (lock) - oczywiście jako aktywną warstwę wcześniej ustawiamy np 0.

Spodziewany efekt: linie znikają z ekranu. Jest wszystko OK. Następnie za pomocą listy rozwijanej z toolbara lub poleceń z klawiatury lub lispa zmieniamy parametry dla warstwy Layer1 w następujący sposób: Unfreez, Unlock. Nadal efekt jest do przewidzenia, nadal linie nie są wyświetlane. Spróbujmy więc w ten sam sposób jeszcze włączyć warstwę (ON). I tu zaskoczenie linie się nie pojawią, a warstwa wygląda jak ukryta! Regen nie pomaga mimo, że warstwa ewidentnie powinna być już widoczna.

Co ciekawe w tym momencie przez programik w Lispie, jednej linii na takiej warstwie zmieniłem kolor i się wtedy pojawiła na ekranie, ale tylko ona! Mogłem sobie zoomować i dalej pracować, a wyświetlana była tylko ta linia - reszty brak. Dopiero po jakimś czasie przez manipulację warstwami i autosave pojawiły się brakujące linie. Wciąż były na Layer1.

Co ciekawe nie ma tego problemu jeśli zastosuje się moją procedurę z wykorzystaniem okna ustawień warstw. Błąd dotyczy tylko listy na toolbarze, polecenia -layer i to niezależnie czy w linii poleceń czy w Lispie.

Błąd jest dość poważny bo może doprowadzić do zawału jak ktoś pomyśli, że mu część rysunku zniknęła ;) Na szczęście po ponownym wczytaniu zasejwowanego rysunku jest znów wszystko ok.

Pzdr.

=2P=

Odnośnik do komentarza
Udostępnij na innych stronach

Korzystam z wersji angielskiej.

Z lispem to o tyle trudno, że te operacje na warstwach są elementem większego programu - ciężko mi obecnie wyselekcjonować kawałek działającego kodu..

Ale ten błąd występuje u mnie również bez lispa, operując na czystym pliku tylko ustawieniami warstw na toolbarze....

=2P=

PS.

Fragment samodzielnie niedziałającego (!!) Lispa w którym przełączam ustawienia warstw.

(defun ZYXAK_GL_SetCurrentLevel (levelSymbol / levelPattern levelPatternXREF levelAllPattern levelAllPatternXREF Levels Level)
(setq levelPattern (strcat "." levelSymbol "_*"))
(setq levelPatternXREF (strcat "*|" levelPattern))
(setq levelAllPattern ".*_*")
(setq levelAllPatternXREF "*|.*_*")

(command "_-layer" "M" "0" "") ; Current layer 0
(command "_-layer"
"F" levelAllPattern	 "LO" levelAllPattern	 ; Freez & lock all GhostLevel layers
"F" levelAllPatternXREF "LO" levelAllPatternXREF ; Freez & lock all GhostLevel layers into XREF
"T" levelPattern	 "U" levelPattern	 ; Unfreez & unlock current level layers
"T" levelPatternXREF "U" levelPatternXREF ; Unfreez & unlock current level layers into XREF
"T" ".._*"			 "U" ".._*"			 ; Unfreez & unlock specjal level layers
"")
(ZYXAK_GL_SetVisibleAllToOFF)
(ZYXAK_GL_SetVisible levelSymbol 1)
(if (= (ZYXAK_GL_IsGhost levelSymbol) 1)
(progn
(ZYXAK_SetColor (ssget "X" (list (cons 8 levelPattern))) 256)
(ZYXAK_GL_SetGhost levelSymbol 0)
)
)
(vlax-ldata-put "ZYXAK" "GL_CurrentLevelSymbol" levelSymbol)
(setq Levels (ZYXAK_GL_GetLevels))
(setq Level (ZYXAK_TableLGet Levels levelSymbol))
(command "MODEMACRO" (strcat "ZyxakCAD > Aktualna kondygnacja: ......" (nth 1 Level) "......"))
)

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie