kruszynski

Moderatorzy
  • Postów

    1480
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    94

Aktywność reputacji

  1. Upvote
    kruszynski przyznał(a) reputację dla pawmal w AutoCad Tworzenie napisu do wypalenia   
    Nie ma nic skomplikowanego. Potrzeba napisać tekst i go rozbić funkcję TXTEXP po jego zaznaczeniu.

  2. Like
    kruszynski otrzymał(a) reputację od Crea00 w Oznakowanie jezdni dwukierunkowej dwupasmowej na łuku poziomym o niedostatecznej widoczności   
    Pracujemy nad bardzo dużym tematem w nakładce ZWGeo, ale zbieramy pomysły i uwagi do ZWTraffic, nad którym będziemy pracować w następnej kolejności
  3. Like
    kruszynski otrzymał(a) reputację od Crea00 w ZWTraffic 2025 SP1 - błędy i pomysły   
    Dzień dobry, dziękuję za zgłoszenie, dodamy.
  4. Upvote
    kruszynski przyznał(a) reputację dla RobS w Zapisane Stany Warstw   
    Dzień dobry,
    Ad 1. Zmiana kolorów True Color na kolory indeksowane nie występuje w wersji 2024. W ramach licencji 2025 zabezpieczonej kodem programowym ma Pan prawo do korzystania z wersji 2024 (link do wersji 2024 SP 1.5). Działanie wersji 2025 został zgłoszony do producenta.
    Ad 2. Warstwy w edycji stanu warstw sortują się domyślnie tak samo jak w Menadżerze Warstw. Najpierw wyświetlają się warstwy załączników zgodnie z kolejnością alfabetyczną, warstwy w XRef'ach również sortują się alfabetycznie, jako ostatnie wyświetlają się warstwy rysunku na którym obecnie pracujemy.

    Ad 3. Stan warstw zapisuje wszystkie warstwy w rysunku, włącznie z rozładowanymi XRefami. Po przejrzeniu ustawień nie znalazłem sposobu, żeby to zmienić.
    Ad 4. Pliki LAS to warstwy opisane kodami DXF. Należało by tutaj przekonwertować wartości kodów lub odpowiednio zdefiniować tworzenie tabeli na podstawie kodu.
    Kod DXF zastosowany w pliku LAS.
    1 - Nazwa stanu warstw
    8 - Nazwa warstwy
    62 - Kolor
    6 - Rodzaj linii
    370 - Grubość linii ("-3" - domyślna, "18" - 0.18mm, "200" - 2.00mm itd.)
    2 - Styl wydruku
    90 - Stan warstwy (zapisany w systemie dwójkowym), warstwa włączona, niezamrożona, niezablokowana ma wartość 8
  5. Like
    kruszynski otrzymał(a) reputację od Crea00 w ZWTraffic 2025 SP1 - błędy i pomysły   
    Dziękuję za zgłoszenie, potwierdzam problem i przygotuję poprawkę najszybciej jak się da.
  6. Like
    kruszynski otrzymał(a) reputację od Crea00 w ZWTraffic 2025 SP1 - błędy i pomysły   
    Dziękuję za zgłoszenie, sprawdziłem i potwierdzam problem. Przygotujemy aktualizację i udostępnimy najszybciej jak się uda.
    W obecnej wersji jest już taka możliwość, Nazwę należy wpisac w nawiasach kwadratowych np 
    [Centrum] Jak na załączonym obrazku.


  7. Upvote
    kruszynski otrzymał(a) reputację od RobS w ZWTraffic 2025 SP1 - błędy i pomysły   
    Dziękuję za zgłoszenie, sprawdziłem i potwierdzam problem. Przygotujemy aktualizację i udostępnimy najszybciej jak się uda.
    W obecnej wersji jest już taka możliwość, Nazwę należy wpisac w nawiasach kwadratowych np 
    [Centrum] Jak na załączonym obrazku.


  8. Upvote
    kruszynski otrzymał(a) reputację od RobS w znaki istniejące a projektowane   
    Na tej poprawce już zapamiętuje stan.
    https://cad.szansa.net.pl/ZWTraffic_2025_Beta/ZWTraffic_2025__PL.exe
  9. Like
    kruszynski otrzymał(a) reputację od Crea00 w Aktualizacja ZWTraffic 2025 SP1   
    W najnowszej poprawce ten problem został rozwiązany.
    Link bez zmian
    https://cad.szansa.net.pl/ZWTraffic_2025_Beta/ZWTraffic_2025__PL.exe
  10. Upvote
    kruszynski przyznał(a) reputację dla Crea00 w Aktualizacja ZWTraffic 2025 SP1   
    Szybkie testy i potwierdzam, że u mnie wszystko działa jak należy 
  11. Upvote
    kruszynski przyznał(a) reputację dla perlon w Kopiowanie wraz z obracaniem   
    Komenda MOCORO z dawnego Expressa ale to było w jakimś vlx-ie. Zamiennik znaleziony na autodeskowym forum. Nie wiem czy przejdzie link.
    Żeby skrócić działanie można to to sobie owrapować commandem jeżeli zależy ci na jakiejś konkretnej kolejności operacji.
  12. Upvote
    kruszynski otrzymał(a) reputację od Macbux w Lisp do ucinania   
    Otrzymaliśmy odpowiedź od producenta ZWCADa. Jest to znany problem. ID zgłoszenia pod którym można w przyszłości monitorować ten temat to SUP-75558. Niestety nie mamy deklaracji o przewidywanym czasie rozwiązania tego tematu.
  13. Upvote
    kruszynski otrzymał(a) reputację od RobS w Lisp do ucinania   
    Otrzymaliśmy odpowiedź od producenta ZWCADa. Jest to znany problem. ID zgłoszenia pod którym można w przyszłości monitorować ten temat to SUP-75558. Niestety nie mamy deklaracji o przewidywanym czasie rozwiązania tego tematu.
  14. Upvote
    kruszynski otrzymał(a) reputację od Macbux w Lisp do ucinania   
    To nie takie proste. Może być tak, że polecenie extrim nie powstało w LISP, więc nigdy nie było extrim.lsp .
    Ale pytanie jakie mi się nasuwa: czy
    (defun c:do_trim () (command "_.TRIM" "T" "R") ; ) to już wszystko? Czy tylko wstęp do czegoś większego?
    Pytanie jest o tyle zasadne, że podobny efekt możemy uzyskać prosto bez użycia LISP.
    Możemy przygotować skrót - ikonkę , który będzie miał przypisane makro
    ^C^C_TRIM;_T;_R;  

  15. Upvote
    kruszynski przyznał(a) reputację dla kojacek w Prostokąt obejmujący MTEXT i transformacje układów współrzędnych   
    Potrzebujesz:
    1) (załadowanego) CADPL-Pack'a (wiadomo)
    2) funkcji z Express Tools: acet-geom-mtxtbox (oprócz AutoCAD-a jest w BricsCAD-zie i GStar'ze. Nie wiem jak jest w ZwCAD-ie)
    3) Poniższego kawałka kodu:
     
    ;;;  ramka MTEXTu (2024 by kojacek) (defun C:MTEST (/ %e %d %p %o %z)   (if     (and       (setq %e (car (entsel "\Wybierz MTEXT:")))       (= "MTEXT" (cdr (assoc 0 (setq %d (entget %e)))))     )     (progn       (setq %p (acet-geom-mtxtbox %d 0.0)             %z (cdr (assoc 210 %d))             %p (mapcar                  '(lambda (%)                     (trans % 1 %z)                  ) %p                )       )       (setq %o (cd:ACX_AddLWPolyline (cd:ACX_ASpace) %p t))       (vla-TransformBy %o (cd:CON_TransMatrix 0))     )     (princ "\nZły wybór.")   ) ) Z tego co na szybko przetestowałem, maluje prostokąt dla wskazanego MTEXT-u, niezależnie od aktywnego układu współrzednych. Funkcja acet-geom-mtxtbox, zwraca współrzędne prostokata opisującego rzeczywisty obszar MTEXT-u (porównaj z ramką MTEXT-u). Swego czasu poruszałem to tu: https://kojacek.wordpress.com/2017/10/08/wielkosc-obszaru-mtext-u/. Drugi argument funkcji (tutaj 0.0), to odsunięcie prostokąta. Pozwala to na rysowanie większego obramowania. 
  16. Upvote
    kruszynski przyznał(a) reputację dla RobS w Zamykanie obiektów w bloku   
    Dodałem kilka linijek do twojego programu które tworzą blok.
    Można podejść do sprawy na kilka sposobów, ja wybrałem dość podstawowy.
    Współrzędne lewego dolnego rogu zapisałem w zmiennej PU0.
    Po stworzeniu konstrukcji w zmiennej BlkName zostaje zapisana nazwa nowo utworzonego bloku według twojego opisu. Tutaj warto dodać jakieś wyróżnienie, w przypadku duplikatu program jest przerwany komunikatem.
    Później blok zostaje stworzony ze zbioru wybranego funkcją ssget. "_W" zaznacza obiekty w oknie opisanym podobniej jak prostokąt, lewy dolny róg PU0 i prawy górny róg PU2.
    Po utworzeniu blok jest wstawiony poleceniem _insert, ponieważ znika on z rysunku.
    Kod programu poniżej 
    (DEFUN C:KONS (/ W H K O L R PU H_NEW X0 Y0 X_START Y_START PU0 PU2 BlkName) (SETQ W (GETREAL "\nPodaj szerokosc modulu: ")) (SETQ H (GETREAL "\nPodaj wysokosc modulu: ")) (SETQ K (GETREAL "\nPodaj kat nachylenia konstrukcji (w stopniach): ")) (SETQ O (GETREAL "\nPodaj odstep miedzy modulami: ")) (SETQ L (fix (GETREAL "\nPodaj ilosc modulow w poziomie: "))) ; Konwersja na typ całkowity (SETQ R (fix (GETREAL "\nPodaj ilosc modulow w pionie: "))) ; Konwersja na typ całkowity (SETQ PU (GETPOINT "\nPodaj naroznik konstrukcji PV: ")) ;; Obliczenie nowej wysokości (SETQ H_NEW (* H (COS (* K (/ PI 180.0))))) ; Konwersja kąta na radiany ;; WYZNACZENIE PRZECIWLEGŁEGO NAROŻNIKA MODUŁU (SETQ X0 (CAR PU)) (SETQ Y0 (CADR PU)) (SETQ X_START X0) ; Zapisanie początkowego X (SETQ Y_START Y0) ; Zapisanie początkowego Y (SETQ PU0 (list X_START Y_START )) ;Zapisanie współrzędnych lewego dolnego rogu konstrukcji w zmiannej PU0 ;; RYSOWANIE MODUŁÓW (repeat L (progn (repeat R (progn (SETQ PU2 (list (+ X0 W) (+ Y0 H_NEW))) ;; RYSOWANIE PROSTOKĄTA (COMMAND "_RECTANG" PU PU2) ;; Przesunięcie w dół o wysokość i odstępu modułu (SETQ Y0 (+ Y0 H_NEW O)) ; Y0 zwiększamy o nową wysokość i odstęp (SETQ PU (list X0 Y0)) ; Nowy punkt startowy ) ) ;; Przesunięcie w prawo o szerokość modułu i zadany odstęp (SETQ X0 (+ X0 W O)) ; X0 zwiększamy o szerokość i odstęp (SETQ Y0 Y_START) ; Resetowanie Y0 do początkowej wartości (SETQ PU (list X0 Y0)) ; Nowy punkt startowy ) ) (setq BlkName (strcat "Konstrukcja " (itoa L) " x " (itoa R))) ;Stworzenie nazwy nowego bloku i zapisanie jej w zmiennej BlkName (command "_Block" BlkName PU0 (ssget "_W" PU0 PU2) "") ;Stworzenie Bloku nazwanego BlkName z punktem bazowym w lewym dolnym rogu konstrukcji (command "_Insert" BlkName PU0 "" "" "") ;Wstawienie bloku który znika po utworzeniu )  
  17. Upvote
    kruszynski przyznał(a) reputację dla RobS w wyświetlanie punktów (koniec) na linii lub polilinii [Rozwiązany]   
    Hej,
    Napisałem skrypt PunktyNaKoncach.lsp według pomysłu @dmatusz3
    Plik należy wczytać poleceniem AP.
    Instrukcja użycia wyświetla się w pasku poleceń. Wystarczy tylko wpisać polecenie PunktyNaKoncach, zaznaczyć obiekty i kliknąć Enter.
    Pomarańczowe punkty zostaną wstawione na warstwie Punkty na końcach, jeśli takiej warstwy nie ma to skrypt automatycznie ją utworzy.
    Wszystko działa jak na nagraniu 😏

  18. Upvote
    kruszynski przyznał(a) reputację dla dmatusz3 w Zaznaczanie obiektów wewnątrz polilinii   
    Opracowaliśmy skrypt w LISP, który zaznacza obiekty wewnątrz zamkniętej polilinii.
    Wystarczy wskazać polilini, a program zaznaczy znajdujące się wewnątrz.
    Po wczytaniu skryptu będą dostępne 2 nowe polecenia w ZWCAD:
    POLYINSIDE - zaznacza obiekty znajdujące się w całości wewnątrz polilinii, POLYCROSSING - zaznacza obiekty wewnątrz i przecinające się z polilinią. Pobierz teraz skrypt do zaznaczania obiektów wewnątrz polilinii Poly_Select.zel
     
    Rysunek początkowy - żółtą strzałką zaznaczyliśmy wskazywaną polilinię.

     
    Obiekty zaznaczone wewnątrz

     
    Obiekty wewnątrz i przecinające się

     
    Sposób działania pokazaliśmy również na filmie poniżej.

  19. Upvote
    kruszynski przyznał(a) reputację dla kojacek w Program do podmiany wartości atrybutów w tym w liście bloków   
    Można się pokusić o (w istocie drobną) przeróbkę tego kodu, aby pracował w trybie "wsadowym". Kod wygląda teraz tak:
    ; --------------------------------------------------------------------------  ; ; C:ATR-ZMIANA by kojacek 2024 (http://kojacek.wordpress.com)                 ; ; --------------------------------------------------------------------------  ; (defun C:ATR-ZMIANA ()(jk:140824_GetBklMask)(princ)) ; --------------------------------------------------------------------------  ; (defun jk:140824_GetBklMask ( / %m %s %l %a %b %r %e %i %o :t)   (defun :t (i)     (getstring       (strcat         "\nPodaj "         (nth i (list "pierwszy" "drugi"))         " tag atrybutu do zamiany: "       )     )   )   (if     (setq %m       (if         (not *ATT-LIST*)         (getstring "\nPodaj początkowy fragment nazwy bloku: ")         (car *ATT-LIST*)       )     )     (if       (member %m (list "" " "))       (princ "\nBłąd - zła nazwa.")       (if         (setq %s           (ssget "_x"             (list               (cons 0 "INSERT")               (cons 410 (getvar "CTAB"))               (cons 2 (strcase (strcat %m "*")))             )           )         )         (progn           (setq %l (cd:SSX_Convert %s 0))           (if             (and               (setq %a (if                          (not *ATT-LIST*)                          (strcase (:t 0))                          (cadr *ATT-LIST*)                        )               )               (setq %b (if                          (not *ATT-LIST*)                          (strcase (:t 1))                          (caddr *ATT-LIST*)                        )               )             )             (progn               (setq %r                 (mapcar                  '(lambda (% / %1 %2 %3)                     (if                       (setq %1 (cd:BLK_GetAtts %))                       (if                         (and                           (setq %2 (cdr (assoc %a %1)))                           (setq %3 (cdr (assoc %b %1)))                         )                         (list % %2 %3) 1                       ) 1                     )                   ) %l                 )                     %e (vl-remove-if-not 'numberp %r)                     %r (mapcar 'car (vl-remove-if 'numberp %r))               )               (if %r                 (progn                   (cd:SYS_UndoBegin)                   (foreach % %r                     (setq %i (cd:BLK_GetAtts %)                           %o (vlax-ename->vla-object %)                     )                     (cd:BLK_SetAttValueVLA                       %o %a (cdr (assoc %b %i))                     )                     (cd:BLK_SetAttValueVLA                       %o %b (cdr (assoc %a %i))                     )                   )                   (princ                     (strcat                       "\nZmieniono atrybuty w "                       (itoa (length %r)) " blokach."                       (if %e                         (strcat                           " Odrzucono " (itoa (length %e))                           " bloków."                         ) ""                       )                     )                   )                   (cd:SYS_UndoEnd)                 )                 (princ                   (strcat "\n"                     (itoa (length %l))                     " bloków nie spełnia wymagań do zmiany atrybutów."                   )                 )               )             )             (princ "\nBłąd. Wymagane nazwy atrybutów.")           )               )         (princ "\nNie znaleziono odpowienich bloków.")       )     )     (princ "\nBłąd. Brak nazwy")   ) ) ; --------------------------------------------------------------------------  ; (princ) Przed wywołaniem polecenia wystarczy teraz zadeklarować zmienną globalną o nazwie *ATT-LIST*. Jest to trzyelementowa lista gdzie pierwszy element to maska (początkowy fragment) nazwy bloku, a dwa kolejne to tagi atrybutów do zamiany. Deklaracja zmiennej:
    (setq *ATT-LIST* (list "NAME" "SYMBOL" "LPS")) Następnie wywołania polecenia ATR-ZMIANA skutkują jak na animacji poniżej.
    Gdy zmienna nie jest zadeklarowana polecenie działa jak w poprzednim poście. Nie trzeba tłumaczyć że wartości zmiennej można modyfikować w zależności od potrzeb.

  20. Upvote
    kruszynski przyznał(a) reputację dla kojacek w Program do podmiany wartości atrybutów w tym w liście bloków   
    Potrzebujesz wykonać następujące czynności:
    1) załadować CADPL-Pack'a. Znajdziesz go tutaj: https://kojacek.wordpress.com/2015/11/04/cadpl-pack/
    2) oraz poniższy kod definiujący polecenie ATR-ZMIANA:
    ; --------------------------------------------------------------------------  ; ; C:ATR-ZMIANA by kojacek 2024 (http://kojacek.wordpress.com)                 ; ; --------------------------------------------------------------------------  ; (defun C:ATR-ZMIANA ()(jk:140824_GetBklMask)(princ)) ; --------------------------------------------------------------------------  ; (defun jk:140824_GetBklMask ( / %m %s %l %a %b %r %e %i %o :t)   (defun :t (i)     (getstring       (strcat         "\nPodaj "         (nth i (list "pierwszy" "drugi"))         " tag atrybutu do zamiany: "       )     )   )   (if     (setq %m       (getstring "\nPodaj początkowy fragment nazwy bloku: ")     )     (if       (member %m (list "" " "))       (princ "\nBłąd - zła nazwa.")       (if         (setq %s           (ssget "_x"             (list               (cons 0 "INSERT")               (cons 410 (getvar "CTAB"))               (cons 2 (strcase (strcat %m "*")))             )           )         )         (progn           (setq %l (cd:SSX_Convert %s 0))           (if             (and               (setq %a (strcase (:t 0)))               (setq %b (strcase (:t 1)))             )             (progn               (setq %r                 (mapcar                  '(lambda (% / %1 %2 %3)                     (if                       (setq %1 (cd:BLK_GetAtts %))                       (if                         (and                           (setq %2 (cdr (assoc %a %1)))                           (setq %3 (cdr (assoc %b %1)))                         )                         (list % %2 %3) 1                       ) 1                     )                   ) %l                 )                     %e (vl-remove-if-not 'numberp %r)                     %r (mapcar 'car (vl-remove-if 'numberp %r))               )               (if %r                 (progn                   (cd:SYS_UndoBegin)                   (foreach % %r                     (setq %i (cd:BLK_GetAtts %)                           %o (vlax-ename->vla-object %)                     )                     (cd:BLK_SetAttValueVLA                       %o %a (cdr (assoc %b %i))                     )                     (cd:BLK_SetAttValueVLA                       %o %b (cdr (assoc %a %i))                     )                   )                   (princ                     (strcat                       "\nZmieniono atrybuty w "                       (itoa (length %r)) " blokach."                       (if %e                         (strcat                           " Odrzucono " (itoa (length %e))                           " bloków."                         ) ""                       )                     )                   )                   (cd:SYS_UndoEnd)                 )                 (princ                   (strcat "\n"                     (itoa (length %l))                     " bloków nie spełnia wymagań do zmiany atrybutów."                   )                 )               )             )             (princ "\nBłąd. Wymagane nazwy atrybutów.")           )               )         (princ "\nNie znaleziono odpowienich bloków.")       )     )     (princ "\nBłąd. Brak nazwy")   ) ) ; --------------------------------------------------------------------------  ; (princ) 3) wywołujesz polecenie ATR-ZMIANA, jak na poniższym ruchomym obrazie:
     

  21. Upvote
    kruszynski otrzymał(a) reputację od Marek-M w Błąd 'Failed to load resource'   
    Myślę że udało mi się ustalić przyczynę i wyeliminować problem. Proszę sprawdzić na tej wersji
    https://cad.szansa.net.pl/ZWTraffic_2024_SP1/ZWTraffic_x64_v2024.1.01__PL.exe
  22. Upvote
    kruszynski otrzymał(a) reputację od RobS w Błąd 'Failed to load resource'   
    Myślę że udało mi się ustalić przyczynę i wyeliminować problem. Proszę sprawdzić na tej wersji
    https://cad.szansa.net.pl/ZWTraffic_2024_SP1/ZWTraffic_x64_v2024.1.01__PL.exe
  23. Upvote
    kruszynski przyznał(a) reputację dla dmatusz3 w Sizedrive - dopasowanie geometrii do wymiaru   
    W ZWCAD 2025 zostało dodane nowe polecenie sizedrive
    Pozwala ona na dopasowanie geometrii do wymiaru.
    Działa w 3 krokach:
    Wskazujemy wymiar, który chcemy zmienić. Wpisujemy nową wartość wymiaru. Zaznaczamy oknem, które elementy mają być przesunięte lub rozciągnięte.  
    Działanie pokazaliśmy na filmie poniżej.

     
  24. Like
    kruszynski otrzymał(a) reputację od swazy w [LISP] Dostęp do elementów w szyku   
    @kojacek wytłumaczył tutaj:
    https://kojacek.wordpress.com/2016/12/01/visual-dumpallproperties/
    Niestety na chwilę obecną w ZWCAD to nie jest jeszcze obsługiwane mamy do dyspozycji vlax-dump-object
  25. Like
    kruszynski przyznał(a) reputację dla pawmal w Tabliczka T-0 i znaki D-44 [Rozwiązany]   
    Witam,
    Jeśli chodzi o tabliczkę T-0 Piesi, to podczas wstawiania można dodać inny opis. Jeśli chodzi o inne tabliczki T-0, to jest do tego funkcja D_INFOTAB, gdzie można dodać własny opis.
    Jeśli chodzi o znak D-44, to występuje on w różnych konfiguracjach. Jeśli jest potrzebny inny opis, to po wstawieniu normalnie można edytować blok przez prawy przycisk myszy Edytuj blok lub Edytor bloków i usunąć zbędną cześć. Może być jeszcze potrzebna synchronizacja ATRSYN (_ATTSYNC).
    W razie potrzeby można znak z innym opisem dodać do biblioteki na stałe.