2P Opublikowano 5 Kwietnia 2013 Zgłoś Opublikowano 5 Kwietnia 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= Cytuj
dmatusz3 Opublikowano 5 Kwietnia 2013 Zgłoś Opublikowano 5 Kwietnia 2013 Dziękuję za informacje.Zaraz to sprawdzimy. Cytuj
pawmal Opublikowano 5 Kwietnia 2013 Zgłoś Opublikowano 5 Kwietnia 2013 Witam Z jakiej wersji językowej Pan korzysta? Proszę o przykładową linijkę kodu lispa. Pozdrawiam Cytuj
2P Opublikowano 5 Kwietnia 2013 Autor Zgłoś Opublikowano 5 Kwietnia 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) "......")) ) Cytuj
pawmal Opublikowano 5 Kwietnia 2013 Zgłoś Opublikowano 5 Kwietnia 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 Cytuj
2P Opublikowano 5 Kwietnia 2013 Autor Zgłoś Opublikowano 5 Kwietnia 2013 Dziękuję. Jest to jakieś rozwiązanie. Obecnie czekałem na autosave po którym warstwa się pojawiała. Pozdr. =2P= Cytuj
Rekomendowane odpowiedzi
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ą.