2P Posted April 5, 2013 Report Posted April 5, 2013 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= Quote
dmatusz3 Posted April 5, 2013 Report Posted April 5, 2013 Dziękuję za informacje.Zaraz to sprawdzimy. Quote
pawmal Posted April 5, 2013 Report Posted April 5, 2013 Witam Z jakiej wersji językowej Pan korzysta? Proszę o przykładową linijkę kodu lispa. Pozdrawiam Quote
2P Posted April 5, 2013 Author Report Posted April 5, 2013 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) "......")) ) Quote
pawmal Posted April 5, 2013 Report Posted April 5, 2013 Witam Informacja została przekazana do Producenta. W tym wypadku wystarczy otworzyć okno właściwości warstw, wyłączyć wyświetlanie warstwy i włączyć ją ponownie. Pozdrawiam Quote
2P Posted April 5, 2013 Author Report Posted April 5, 2013 Dziękuję. Jest to jakieś rozwiązanie. Obecnie czekałem na autosave po którym warstwa się pojawiała. Pozdr. =2P= Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.