Poważny błąd w 2012 Plus+


2P

Recommended Posts

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=

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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