Recommended Posts

Posted

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=

Posted

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) "......"))
)

Posted

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...