2P

Użytkownik forum
  • Postów

    268
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    6

Odpowiedzi opublikowane przez 2P

  1. Mam taki LISP który zmienia kolor tła ekranu z białego na czarny i czarnego na biały. Taki przełącznik. Dodatkowo zmienia kolor wybranych warstw.

    LISP działał na wcześniejszych wersjach ZWcada, a na 2017 wskazuje błąd. Może ktoś wie dlaczego??

     

    (defun ZYXAK_MT_BandWBackground (/ PREF COL)						
    	(ZYXAK_Start)
    	(setq PREF (vla-get-display (vla-get-preferences (vlax-get-acad-Object))))
    	(setq COL  (vlax-variant-value (vlax-variant-change-type (vla-get-GraphicsWinModelBackgrndColor PREF) vlax-Vblong)))
     
    	(if (zerop COL)
    		(progn
    			(vla-put-GraphicsWinModelBackgrndColor PREF (vlax-Make-Variant 16777215 vlax-Vblong))
    			(vla-Put-ModelCrosshairColor           PREF (vlax-Make-Variant 0 vlax-Vblong))
    			(command "_-layer" "_C" "T" "255,255,255" (strcat "*" "_WIPEOUT") "")
    		)
    	;else
    		(progn
    			(vla-Put-GraphicsWinModelBackgrndColor PREF (vlax-Make-Variant 0 vlax-Vblong))
    			(vla-Put-ModelCrosshairColor PREF (vlax-Make-Variant 16777215 vlax-Vblong))
    			(command "_-layer" "_C" "T" "0,0,0" (strcat "*" "_WIPEOUT") "")
    		)
    	)
    	(vlax-Release-Object PREF)
    	(ZYXAK_OK)
    )

     

  2. Podobnie jak przy poprzednich wersjach ZWcada widzę, że wszyscy w ZWsoft pracują na czarnym ekranie roboczym i nie wychwytują błędów widocznych przy pracy na białym ekranie roboczym. A mianowicie. Gdy edytujemy blok to pozostałe elementy rysunku są jakby wyszarzane. Na czarnym ekranie jest wszystko OK, ale gdy mamy ustawiony biały ekran to zamiast rozjaśnić elementy rysunku nie należące do bloku, to ZWcad totalnie zmienia ich kolor. np. z zielonego na fioletowy.... 

    Da się z tym żyć, ale poprawienie tego nie będzie chyba trudne... Podobnie było kiedyś w innych wersjach

    vernum = "2017.01.23(13656)_x64"

  3. w LISPIE sporo poprawek widzę. jest lepiej, dużo lepiej. Kilka błedów jeszcze jest ale muszę dokładniej przyjrzeć się jak to wygląda w kodzie.

     

    p.s. prawego przycisku myszy jako ENTER nadal nie naprawili :-(

    Prawy jako ENTER działa, tylko wtedy gdy wyłączysz "Menu skrótów w obszarze rysunku". Oczywiście jest to niepełna implementacja, ale mnie przynajmniej umożliwiła pracę testową na programie. Bez ENTERA trafiał mnie szlag ;)

    natomiast LISPy w moim przypadku właściwie przestały działać... większość. Więc nawet nie zagłębiam się jakie elementy kodu nie obsługuje 2017

  4. testuję VERNUM = "2016.09.30(10203)_x64" PL

    Nie ma bardzo potrzebnego polecenia ATRSYN  ani _ATRSYN. Czemu? :(

     

    =2P= 


    testuję VERNUM = "2016.09.30(10203)_x64" PL

    Nowa wersja ZWcada podobnie jak poprzednie źle obsługuje czcionki. Proszę zrobić następujący test:
    Piszemy w tekście wielowierszowym kilka linijek tekstu np:

     

    Szafka szatniowa 150x50 (5x2)
    Szafka szatniowa 150x50 (5x2)
    Szafka szatniowa 150x50 (5x2)
    Szafka szatniowa 150x50 (5x2)

    Odległości między wierszami są jednakowe - tak powinno być. A teraz proponuję dopisać w którymś wierszu "wysoki znak" np. Ó, albo Ń. 

    Zmienia się odległość między linijkami tekstu. Polskie znaki z kreską rozpychają tekst - tak nie powinno być.


    Z okazji wydania wersji 2017 proponuję zmienić nieco pewne tłumaczenia na polski. Chodzi mi o okno Opcje, zakładka Plik. Mamy tam

    "Ścieżka dostępu do plików pomocy" (w sensie support files)
    "Plik pomocy" (w sensie Help file)

     

    Uważam, że takie tłumaczenie jest lekko mylące. Wg mnie lepszym tłumaczeniem byłoby: "Ścieżka dostępu do plików aplikacji ZWcad" lub lepiej  "Ścieżka dostępu do plików systemowych ZWcad"

    Inne tłumaczenia w tym miejscu są wg mnie również trochę pomieszane. Raz jest "Ścieżka dostępu ....", raz "Ścieżka dostępu DO...", raz "Zapisz ścieżkę dostępu...", raz " Ścieżka dostępu DLA...", a raz "Lokalizacja pliku..." (a jeśli już powinno być "plików" w liczbie mnogiej). A przecież zawsze chodzi o to samo. Właściwie można usunąć wszędzie zwrot "ścieżka dostępu" wystarczy: "Pliki tymczasowe", Pliki szablonów rysunków"... itd...

    Pozdrawiam


    **
    I jeszcze jeden błąd wersji BETA. (ten błąd był również kiedyś we wczesnych wersjach "plusów")

    Pracując na białym ekranie obiekty na warstwach zamkniętych powinny się rozjaśniać, a nie przyciemniać, jak to ma miejsce przy pracy na czarnym. Podobnie w edycji bloków - reszta obiektów poza edytowanym blokiem powinna się rozjaśniać, a nie przyciemniać...
    Pozdr.


    **
    Kolejny błąd. Kopiowanie obiektów. Robimy pierwszą kopię, wciskamy Ctrl+Z (Undo) cofnięcie wstawienia. Teraz cad nie wyświetla już wektora wstawiania (nie można np. wymusić kopiowania względem osi x lub y). Po wykonaniu jeszcze jednej kopi wektor ponownie jest rysowany....

  5. W oczekiwaniu na wersję beta nowego ZWcada obejrzałem sobie Viewer i zrodziły się różne pytania:

    1. Czy ZWcad 2017 będzie miał interfejs klasyczny, czy tylko wstążkę?
    2. Czy wyświetlanie linii będzie zrealizowane z wykorzystaniem opcji antyaliasingu?
    3. Czy będzie można wyłączyć to denerwujące podświetlanie obiektów po najechaniu na nie kursorem? To zupełnie się nie sprawdza przy pracy z dużymi blokami.
    4. Czy w Viewerze można zmienić grubość wyświetlania linii grubych?

    Mam nadzieję, że odpowiedź NIE na pierwsze 3 pytania dotyczy tylko Viewera, a nie wersji pełniej.

    Z utęsknieniem czekam na wersję beta, żeby ją sobie sprawdzić.....

    Pozdr.
     

    =2P=

  6. Pytałem, bo są problemy czasami z kolejnością obiektów jak drukuje się z Layouta.

    Proszę spróbować wydrukować do PDFów i sprawdzić czy też jest źle.

     

    Spotkałem też pewien błąd który obawiał się w kolejności elementów w bloku. Zdarzyło mi się, że blok tak jakby się zepsuł i w jego edycji nie było możliwości manipulacji kolejnością. Po rozbiciu i ponownej definicji bloku wszystko wracało do normy. 

  7. Dziękuję za szybką odpowiedź. Z wersją 2015 miałem dość krótko do czynienia i nie natknąłem się na tą funkcję. Jeśli w wersji 2017 nic się nie zmieni w tej kwestii to jest to dla mnie duży argument za zmianą systemu.

    Ale ta opcja jest w 2015! Na obrazku zaznaczyłem strzałką gdzie się to włącza/wyłącza. Proszę włączyć, kliknąć kursorem w obszar roboczy i zacząć pisać. Pojawi się okienko autouzupełniania.

     

    post-15-0-69132400-1455095254_thumb.png

  8. Błąd który chcę przedstawić wiąże się częściowo z innym moim wątkiem o wyborze elementów w Lispie.

     

    Na czym polega błąd:
    Mam w rysunku linię oraz blok. Wchodzimy do edycji bloku i  _matchprop (pędzelk kopiowania parametrów).
    Wybieramy element źródłowy i klikamy na linię znajdującą się poza blokiem. Linia otrzymuje parametry obiektu z bloku.
    Wg mnie jest to błąd, bo będąc w trybie edycji bloku powinniśmy móc mieć wpływ tylko i wyłącznie na elementy bloku, a nie na te które są poza nim.

    Co ciekawe jeśli po tej operacji wyjdziemy z edycji bloku bez zapisywania w nim zmian, to linia z rysunku nie powróci do swoich pierwotnych parametrów...

    Błąd występuje w ZWCAD+ 2014 i 2015
    vernum = "2015.08.15(27483)"
    VERNUM = "2014.06.25(24082)"

    Co ciekawe w wersji ZWCAD Classic - błąd nie występuje.
    _VERNUM = "2015.11.10(17516)"

    Pozdrawiam

     

  9. Nie mogę na AutoCAD-zie sprawdzić ani jednego rozwiązania... z prostej przyczyny - AutoCAD działa poprawnie i w trybie edycji lokalnej bloku (REFEDIT), po prostu nie jest możliwy wybór innych obiektów niźli tych z zestawu roboczego. Czyli generalnie jest to przypadłość ZwCAD-a, może po prostu mogliby to poprawić? A wtedy żadna protetyka nie będzie potrzebna.

    Właśnie chodziło mi o sprawdzenie, czy to jest błąd ZWcada, czy tak to (wybieranie) działa w AutoCADzie i w ZW zrobili też tak dla zachowania kompatybilności, mimo że to nie logiczne.

    Teraz już wiem. Dziękuje.

    Dziękuję również za przedstawienie w sumie 4 rozwiązań w tym w zasadzie gotowego kodu. Najbardziej odpowiada (na podstawie idei, bo jeszcze nie testowałem w praktyce) rozwiązanie nr 1 i 4. Zapewne któreś wykorzystam. Dziękuję rozmówcom.

    I tak już właściwie poza tematem wątku napiszę o moim indywidualnym podejściu opisanym w rozwiązaniu 2, a mianowicie "kulturalnym" definiowaniu bloków. Wiem, że to będzie bluźnierstwo dla ortodoksyjnych ekspertów cada (sam miałem kiedyś taki ortodoksyjny pogląd), ale dziś uważam, że definicje bloków wcale nie powinny być robione tylko na warstwie "0". Zdanie zmieniłem analizując potrzeby dostosowania sposobu pracy do lepszego, wygodniejszego i bardziej intuicyjnego tworzenia rysunku (mówię tu akurat o 2D). Odejście od przykazania lokowania wszystkiego w bloku na warstwie "0" otwiera olbrzymie nowe możliwości budowania strukturalnego rysunku w zwykłym prostym CADzie bez skomplikowanych nakładek. Połączenie zagnieżdżania bloków, systemowego nazewnictwa warstw i pozbycie się ograniczeń związanych z rysowaniem na "0" pozwala całkowicie zmienić podejście do rysunku i tworzyć go (ja to nazywam) bardziej obiektowo. Struktura rysunku odpowiada strukturze (w moim przypadku) projektowanego budynku. Dzieje się to za pomocą współdziałania razem idei warstw i bloków. Ciężko tą idee opisać słowami i to nie miejsce na taki wątek, ale kiedy po jej opracowaniu spojrzałem w dawne czasy swoich pierwszych rysunków robionych ponad 20 lat temu, to zaskoczyło mnie, ile można jeszcze wyciągnąć nowego z właściwie niezmienionego w swoim głównym działaniu CADa dodając jedynie pewną własną myśl intelektualną wykorzystującą te same narzędzia, ale w inny trochę sposób i z innym podejściem

    Pozdrawiam. 

     

  10. Niezrozumienie problemu wynika może z błędu działania ZWcada (nie wiem jak skrypt zachowałby się na AC), więc może jeszcze raz wyjaśnię:

    Klikacz rysuje rysunek. Ma w rysunku powstawiane jakieś bloki A oraz blok B który składa się z bloków C (bloki zagnieżdzone. Jeśli teraz klikacz wejdzie w edycję bloku B i będzie chciał zastosować moją funkcję na blokach C to może je wskazać np. oknem. jeśli w obszarze okna znajdzie się również blok A to mimo, że jest on poza blokiem B to zostanie zaznaczony i dodany do ssget. (Wg mnie tak nie powinno być - nie wiem jak jest w AC). Podobnie jeśli klikacz wskazuje klikając poszczególne bloki to może w tym momencie (w trakcie edycji bloku B) zaznaczyć blok A (dla mnie to nie logiczne).

    I teraz jeśli na takim zbiorze wyboru działała moja funkcja to w przypadku wykonywania operacji za pomocą (command MIRROR.... nic się z blokami A nie działo. Były zaznaczone ale nie podlegały modyfikacji. Więc OK. A teraz (command zastąpiłem  Metodą VL Mirror, co spowodowało, że lustro zadziałało nie tylko na blokach C, ale również na bloku A (wybranym przypadkowo). 

    Już nie wspomnę o tym, że Metoda Mirror robi kopię bloku co jest niewygodne, bo ta kopia ląduje w rysunku, a nie w definicji bloku B.

    Nie wiem czy teraz jest już jasna sprawa.

    Ogólnie dochodzę do wniosku, że wrócę znów chyba do (command MIRROR bo to wygodniejsze....

  11. Taki algorytm (porównanie z listą obiektów tworzących blok) jest możliwe, ale jak uzyskać nazwę bloku, którą użytkownik właśnie edytuje (jeśli edytuje)?

    Ale tu chodzi o to żeby użytkownik wybrał elementy do edycji (a przecież możne to zrobić będą np. w edycji innego bloku). Więc nie chodzi tu o robienie czegoś "po cichu".

    repeat? - a jakoś takie przyzwyczajenie.... ;)

    Pozdr.

  12. Zasada działania jest prościutka. Funkcja na wskazanych blokach wykonuje MIRROR względem osi Y bloku. Poniżej tylko ta część dotycząca wyboru elementów.
    W głównej funkcji kiedyś wykonywałem (command ..... Mirror i wtedy wszystko działało dobrze również przy edycji bloku (tzn polecenie mirror nie było wykonywane). Ale postanowiłem zmodernizować kod i przejść na operacje na obiektach zamiast (command....  

    (defun C:ZYXAK_MT_MirrorY ( / OBJECT f ss)
    	(ZYXAK_Start)
    	(setq ss *ZYXAK_Selected*)
    	(if (= ss nil)
    		(progn 
    			(setq ss (ssget
    				(list 
    					(cons 0 "INSERT")
    				)
    			))
    			(if (= ss nil) (exit))
    		)
    	)
    	(setq f 0)
    	(repeat (sslength ss)
    		(setq OBJECT (vlax-ename->vla-object (ssname ss f)))
    		(ZYXAK_MT_MirrorY OBJECT)
    		(setq f (1+ f))
    	)
    )