alf

Użytkownik forum
  • Postów

    534
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    13

Aktywność reputacji

  1. Like
    alf przyznał(a) reputację dla dmatusz3 w lisp, generowanie kierunków/grotów strzałek na zadanej polilinii   
    Postaram się przerobić lispa, aby można było wybierać wiele obiektów jednocześnie.
  2. Upvote
    alf przyznał(a) reputację dla s1016 w Siatka NMT-przerzedzanie punktów   
    są tez darmowe cadtools, https://www.glamsen.se/CadTools.htm
  3. Upvote
    alf przyznał(a) reputację dla Adam Klaczek w Edycja polilinii z CTRL   
    W ZWCAD 2022 po zaznaczeniu punktu lokalizacji, można zmieniać tryby edycji naciskając klawisz CTRL:
     

  4. Upvote
    alf przyznał(a) reputację dla dmatusz3 w Automatyczne przesunięcie punktów do siatki   
    Napisaliśmy mała aplikację, która dopasowuje końce linii do siatki poprzez zaokrąglenie współrzędnych końca linii do wartości całkowitych.
    Na przykład linia o takich współrzędnych

     
    zostanie zamieniona na taką

     
    Możemy zaznaczyć również więcej linii w jednej operacji.
    Po wczytaniu programu snapdwg.zel (wystarczy przeciągnąć na obszar rysunku) będzie dostępne nowe polecenie snapdwg
     
    Jeszcze mały film ilustrujący działanie.

  5. Like
    alf przyznał(a) reputację dla dmatusz3 w Linki oraz listy zmian. ZWCAD 2017÷ZWCAD 2025   
    Opublikowaliśmy ZWCAD 2022 SP1
    (vernum = "22.10_2021.09.23(8f1be26e226)_x64" (tylko do odczytu)
     
    Listę zmian oraz linki do pobrania zamieściliśmy tutaj https://www.zwcad.pl/zwcad-2022/zwcad-2022-sp1.html
    Jedną z nowości jest moduł ArcGIS (dostępny w wersji Professional) pozwalający na konwersję układów współrzędnych geodezyjnych oraz wstawianie map.

     

  6. Upvote
    alf przyznał(a) reputację dla BKW w Obrys konturu polilinii z szerokością   
    Niestety w formacie *.fas więc "nie porozbijamy" polilinii 😉
  7. Like
    alf przyznał(a) reputację dla Adam Klaczek w ZWCAD 2022 - Blok z atrybutem dostosowującym pozycję podczas obrotu   
    Blok z atrybutem dostosowującym pozycję podczas obrotu można przygotować tak:
    - tworzymy opisowy Styl tekstu, gdzie zaznaczymy "Dopasuj orientację tekstu..."

    - tworzymy atrybut z tym stylem tekstu

    Atrybut wraz z narysowanymi obiektami definiujemy jako blok - i mamy:

  8. Like
    alf otrzymał(a) reputację od BKW w 2022_lista uwag   
    potwierdzam zjawisko..
  9. Upvote
    alf przyznał(a) reputację dla kruszynski w Wstawianie map WMS z serwerów gov.pl   
    Mam świeżynkę.
    można wpisać link do własnego serwera. jeśli nie uda się wstawić mapy i wyświetli komunikat mówiący że nieprawidłowa szerokość i wysokość, można wpisać mniejszą niż ta, którą serwer obiecuje, najczęściej pomaga. odptaszkowywanie już działa,
     
    ZWMS.zip
  10. Upvote
    alf przyznał(a) reputację dla Adam Klaczek w 2022_lista uwag   
    Zgłosiłem do producenta
  11. Upvote
    alf przyznał(a) reputację dla kojacek w lisp, generowanie kierunków/grotów strzałek na zadanej polilinii   
    😉 takie coś można wydziobać albo wydrapać... blok dynamiczny sterowany dynamicznie z okna dialogowego:
  12. Like
    alf przyznał(a) reputację dla kojacek w lisp, generowanie kierunków/grotów strzałek na zadanej polilinii   
    Zadanie z tych banalnych raczej... Można rozwiązać tak:
    ; ---------------------------------------------------------------------------- ; (defun c:testuj ()(InsBlkInPolySeg (car (entsel)) "arrow1" 20.0 15.0)(princ)) ; ---------------------------------------------------------------------------- ; ; funkcja zwraca liste segmentow LWPOLY typu: ((p1 bulge1 p2)(p2 bulge2 p3)...); ; ---------------------------------------------------------------------------- ; (defun jk:LWP_GetSegments (e / p d r)   (setq d (entget e)         p (if              (= 1 (logand (cdr (assoc 70 d)) 1))              (cdr (assoc 10 d))            )         d (mapcar 'cdr             (vl-remove-if-not               '(lambda (%)(member (car %) '(10 42)))               d             )           )   )   (if p     (setq d (append d (list p)))   )   (while     (> (length d) 2)     (setq r (cons                 (list                   (car d)                   (cadr d)                   (caddr d)                 ) r               )           d (cddr d)     )   )   (reverse r) ) ; ---------------------------------------------------------------------------- ; (defun InsBlkInPolySeg (Poly Block Scale MinLength / d b n a p)   (if     (not (tblobjname "BLOCK" Block))     (princ       (strcat         "\nBłąd: w rysunku nie ma bloku "         (strcase Block) "."       )     )     (if       (not         (setq d (jk:LWP_GetSegments Poly))       )       (princ "\nBłąd - niepoprawna Polilinia.")       (if         (not           (setq d             (vl-remove-if-not '(lambda (%)(zerop (cadr %))) d)           )         )         (princ "\nBłąd - polilinia składa sie z samych łuków.")         (if           (not             (setq d               (vl-remove-if                 '(lambda (%)                    (< (distance (car %)(caddr %)) MinLength)                 ) d               )             )           )           (princ "\nBłąd - segmenty polilinii są za krótkie.")           (progn             (cd:SYS_UndoBegin)             (foreach % d               (setq a (angle (car %)(caddr %))                     p (polar (car %) a (/ (distance (car %)(caddr %)) 2.0))               )               (cd:BLK_InsertBlock p Block (list Scale Scale Scale) a nil)             )             (cd:SYS_UndoEnd)           )         )       )     )   ) ) ; ---------------------------------------------------------------------------- ; Polecenie TESTUJ, wywołuje funkcję InsBlkInPolySeg, dla której jednak kluczem jest funkcja jk:LWP_GetSegments. Dla całości trzeba CADPL-Pack-a który opisywałem kiedyś tutaj: https://kojacek.wordpress.com/2015/11/04/cadpl-pack/ . W uproszczeniu - groty strzałek w postaci bloku (argument Block) wstawiane są na liniowych segmentach wskazanej polilinii (argument Block - tutaj trzeba wstawić jeszcze jakieś testowanie wyboru), których długość jest większa niż argument MinLength.

  13. Upvote
    alf otrzymał(a) reputację od dmatusz3 w Wstawianie map WMS z serwerów gov.pl   
    z tym nie wczytywaniem wms-a (nie "zaciąga" tylko się kisi godzinę, albo od razu wywala błąd) to odwieczny problem serwera geoportalu. Ja używam wmsów, oprócz rzeczy oczywistych jak locus w terenie, to bentleya i Qgis-a i Geox-y.
    Qgis zasadniczo jest odporny na niedoskonałość geoportalu, gdzie najwiecej wms-ów jest gromadzonych, ale tez mu się zdarzają zacięcia. Dawniej nawet w qgisie bywało tak, żeby coś załadować, trzeba było podpiąc pod polskiego wms-a się w nocy gdy wszyscy grzecznie śpią..
    Nawet oprogramowanie bentleya w tym względzie szwankuje (odpalam mikrostację - kicha,  odpalam następnie qgisa - ładnie się ładuje
    Dlatego nie "osądzam" tej funkcjonalności dlaczego w zw wms się nie ładuje, bo to wykraczająca poza moje kompetencje sprawa.. 
    ale najważniejsze by wms-owe współrzędne transformować jakoś na układy map geodezyjnych, na których się pracuje, to chyba podstawowy problem...
  14. Upvote
    alf otrzymał(a) reputację od dmatusz3 w lisp, generowanie kierunków/grotów strzałek na zadanej polilinii   
    tak na szybko:
    divide i measure - nie.. tzn tak, ale "ładny" tj prosty i czytelny schemat z tego nie będzie..  dlatego bloki na środku odcinka z pomijaniem odcinków zbyt krótkich. i nie pomysl np z wstawianiem trójkąta z polilinii z wycięciem tego co w środku, bo wtedy demoluje się polilinię (kiedyś taki lisp widziałam).. jak chce się "wyciąć" linię to można przykryć to hatchem lub wipeoutem - może to nie jest piękne ale Polilinia cała..
    oczywiście lista bloków różnych "arrow" to jedno a co w tych blokach siedzi (można to przecież podmieniać) to drugie. Zresztą lista bloków może być długa jak ktoś potrzebuje może do listy dorobić następne bloki dwg dla innych bardziej fikuśnych strzałek
    ważne żeby pomijać odcinki na których dany typ kierunku się po prostu nie mieści. O tyle lepiej bloki a nie np jakiś wymiar, tak przynajmniej mi się wydaje, że z wymiarami różnie bywa, a blok to stabilny obiekt jeśli chodzi o "wędrówki" między różnymi programami
    i ważne żeby blok wstawiać na aktualnej warstwie. Warstwy w bloku  powinny też być "unikatowe", żeby nie było nakładania na ist warstwy w rysunkach. w zał pliku nazwy elementów w bloku są niby unikatowe ale nie  do końca.. , to można zmienić  na coś bardziej nietypowego
    wielkość strzałek - rzecz gustu, tu są dość małe, bo dużo polilinii leci blisko siebie, ale jak schemat był by bardziej ogólny, można strzałki dac większe, to kwestia współczynnika skali..
    Drawing1111.dwg
  15. Like
    alf przyznał(a) reputację dla perlon w LISP dla wszystkich otwartych, LTSCALE   
    Podpierając się lispem LeeMac'a można wybrać kartotekę z plikami dwg i w czambuł polecieć wszystkie wygenerowanym skryptem.
    (defun C:LTSALLDWG ( / count dir filename files scriptname) (setq dir (LM:DirectoryDialog "Select directory" "" 1)) (if dir (setq files (vl-directory-files dir "*.dwg" 1)) ) (if files (progn (setq scriptname (open "e:\\temp\\batch.scr" "w") count 0 ) (while (setq filename (nth count files)) (setq filename (strcat dir "\\" filename)) (write-line (strcat "_open \"" filename "\"") scriptname) (write-line (strcat "(vl-cmdf \"" "setvar\"" " " "\"" "ltscale\"" " " "\"1\"" " " "\"" "\"" ")") scriptname) (write-line "_qsave" scriptname) (write-line "_close" scriptname) (setq count (1+ count)) ) (close scriptname) ) ) (princ) ) ;;-------------------=={ Directory Dialog }==-----------------;; ;; ;; ;; Displays a dialog prompting the user to select a folder ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; msg - message to display at top of dialog ;; ;; dir - root directory (or nil) ;; ;; flag - bit coded flag specifying dialog display settings ;; ;;------------------------------------------------------------;; ;; Returns: Selected folder filepath, else nil ;; ;;------------------------------------------------------------;; (defun LM:DirectoryDialog ( msg dir flag / Shell Fold Self Path ) (vl-catch-all-apply (function (lambda ( / ac HWND ) (if (setq Shell (vla-getInterfaceObject (setq ac (vlax-get-acad-object)) "Shell.Application") HWND (vl-catch-all-apply 'vla-get-HWND (list ac)) Fold (vlax-invoke-method Shell 'BrowseForFolder (if (vl-catch-all-error-p HWND) 0 HWND) msg flag dir) ) (setq Self (vlax-get-property Fold 'Self) Path (vlax-get-property Self 'Path) Path (vl-string-right-trim "\\" (vl-string-translate "/" "\\" Path)) ) ) ) ) ) (if Self (vlax-release-object Self)) (if Fold (vlax-release-object Fold)) (if Shell (vlax-release-object Shell)) Path ) ;Symbol Type Description ;msg String Message to display to the top of the dialog (may be an empty string) ;dir String (Optional) Root Directory, user cannot navigate above this level ;flag Integer Bit flags controlling the behaviour of the dialog interface (detailed below) ;Returns: Selected Directory, else nil if user presses Cancel ;Flag Bit Values ;Bit Result ;0 Standard behaviour (Default) ;1 Only file system folders can be selected. If this bit is set, the OK button is disabled if the user selects a folder that doesn't belong to the file system. ;2 The user is prohibited from browsing below the domain within a network ;4 Room for status text is provided under the dialog box ;8 Returns file system ancestors only. An ancestor is a subfolder that is beneath the root folder. If the user selects an ancestor of the root folder that is not part of the file system, the OK button is grayed. ;16 Shows an edit box in the dialog box for the user to type the name of an item. ;32 Validate the name typed in the edit box. ;64 Enable drag-and-drop capability within the dialog box, reordering, shortcut menus, new folders, delete, and other shortcut menu commands. ;128 The browse dialog box can display URLs. ;256 When combined with flag 64, adds a usage hint to the dialog box, in place of the edit box. ;512 Suppresses display of the 'New Folder' button ;1024 When the selected item is a shortcut, return the PIDL of the shortcut itself rather than its target. ;4096 Enables the user to browse the network branch for computer names. If the user selects anything other than a computer, the OK button is grayed. ;8192 Enables the user to browse the network branch for printer names. If the user selects anything other than a printer, the OK button is grayed. ;16384 Allows browsing for everything: the browse dialog box displays files as well as folders. ;32768 If combined with flag 64, the browse dialog box can display shareable resources on remote systems. ;65536 Windows7 & later: Allow folder junctions such as a library or a compressed file with a .zip file name extension to be browsed.  
  16. Upvote
    alf przyznał(a) reputację dla dmatusz3 w Wstawianie map WMS z serwerów gov.pl   
    Pracujemy obecnie nad dodaniem do naszych nakładek (np. ZWGeo, ZWTraffic) możliwości wstawiania map z zasobów z portali gov.pl.
    Funkcjonalność jest w bardzo początkowej fazie, ale postanowiliśmy ją udostępnić. 
    Możemy wybrać różne serwery z danymi i sprawdzić jakie udostępnia dane (warstwy). Następnie definiujemy obszar w który ma być wstawiona mapa. Wygląda to tak jak na animacji poniżej.

     
    Biblioteki do pobrania ZWMS.zip
    Pobrany plik zip należy rozpakować do katalogu i poleceniem netload (tylko wersja ZWCAD Pro) wczytać plik ZWMS.dll

    Wtedy pojawi się dodatkowy panel. W pliku zip znajduje się również plik Plik_testowy.dwg, który został użyty podczas kręcenia filmu.
     
     
  17. Upvote
    alf przyznał(a) reputację dla Adam_x w Progam do odczytywania rzędnej wysokościowej punktu ?   
    Witam
    np: do stworzenia profilu ścieżki podejścia lądowania samolotów czy helikopterów
    czy też sprawdzenia na jakiej głębokości umieścić studnię kablową itd.
    architektom, konstruktorom też by się przydało
    oczywiście dla dokładnych pomiarów trzeba wynająć geodetę, ale do wstępnych wyliczeń może się taka funkcja przydać.
    jak miałbym każdy punkt teraz wpisywać do strony internetowej czy w jakimś innym programie robić i importować do ZWCADA to bym się chyba powiesił
    ps. perlon, kruszynski, dmateusz3 dziękuje za pomoc.
    pozdrawiam
     
     
  18. Upvote
    alf przyznał(a) reputację dla dmatusz3 w ZWCAD 2022 - beta   
    Opis jak wstawić swój skrypt pod klawisz skrótu wstawiliśmy tutaj 
     
  19. Upvote
    alf przyznał(a) reputację dla dmatusz3 w Dodanie klawisza skrótu do funkcji w LISP   
    Pokażę jak przypisać własny skrót klawiaturowy w ZWCAD do funkcji w LISP.
    Zrobimy to na przykładzie programu LISP, który zmienia stan ustawień punktów charakterystycznych z końca, środka i centrum na wszystkie (czyli zmiennej OSMODE z wartości 7 na 13311).
    (defun c:przelaczsnapy nil (wszystko)) (defun wszystko nil (print "Teraz aktywne sa tylko wybrane snapy") (setvar "OSMODE" 7) (defun c:przelaczsnapy nil (malo)) (princ) ) (defun malo nil (print "Teraz aktywne sa wszystkie snapy") (setvar "OSMODE" 13311) (defun c:przelaczsnapy nil (wszystko)) (princ) ) Skrypt można pobrać również tutaj snapy.lsp
    W celu jego uruchomienia wystarczy przeciągnąć go na ekran rysunku, wtedy zostanie dodane nowe polecenie przelaczsnapy
     
    W celu dodania własnego skrótu na początku wywołujemy polecenie CUI

     
    W oknie konfiguracji jaki się otworzy rozwijamy pozycje "Skróty klawiaturowe"

     
    Następnie wybieramy dowolny skrót i klikamy na nim prawym klawiszem myszy.
    Z menu wybieramy "Klonuj"

     
    Edytujemy kopie polecenia. Klikając w pozycje 1 przypisujemy skrót klawiaturowy. W pozycji 2 wpisujemy jakie polecenie powinno się wykonać (^C^C_ przed poleceniem zostawiamy).

     
    Zatwierdzamy.
    Teraz wciśnięcie klawisza F4 spowoduje wywołanie programu LISP i zmianę ustawień punktów charakterystycznych.

     
     
  20. Upvote
    alf przyznał(a) reputację dla kruszynski w Automatyczny podział rysunku wykonanego w modelu na arkusze   
    Przygotowałem skrypt, który pomoże dzielić model na arkusze:
    Funkcja do uruchomienia:
    ww Działanie przedstawiłem na filmiku:

    Arkusze.zelx
  21. Like
    alf przyznał(a) reputację dla Martin_S w ZWCAD 2022 - beta   
    tłuste linie w pdf ..to ciągnie sie o ile pamiętam od 2013r. ja były wersje +, architecture 2012..ale przyzwyczaja się człowiek 😉
  22. Like
    alf przyznał(a) reputację dla dmatusz3 w Linki oraz listy zmian. ZWCAD 2017÷ZWCAD 2025   
    Opublikowaliśmy ZWCAD 2022 beta.
    Można go pobrać z tego adresu https://jakicad.pl/zwcad?product=129&os=0&v=0&l=all
    Wybrane zmiany:
    wydruk z przeźroczystością, ulepszony import plików IFC, który powiązać z ekstrakcją danych, możliwość zmiany kolejności kolumn w oknie warstw, możliwość wyświetlania wstążki i klasycznego menu w tym samym czasie. Poniżej zrzut ekranu z modelu oraz z wydruku.

     
  23. Upvote
    alf przyznał(a) reputację dla perlon w zw2021 - wdrożenie bloków dynamicznych - plany   
    Tak, ale te "bloki" to jest to co sobie wymyślił autor nakładki a nie to co potrzebuje w konkretnym przypadku użytkownik. Dylemat wędki i ryby i raczej rozmawiamy o pewnej funkcjonalności uniwersalnej a nie konkretnym rysowaniu kresek na krzyż 😉 Trzeba się jednak pogodzić, ze bloków dynamicznych przez następnyhc kilka lat w ZwCAD'zie nie uświadczymy.
  24. Upvote
    alf przyznał(a) reputację dla Chris w zw2021 - wdrożenie bloków dynamicznych - plany   
    Jak jest w końcu z tym terminem wygaśnięcia patentu, bo pojawiają się sprzeczne informacje?
    Znalazłem gdzieś w sieci wzmiankę o roku 2027.
    Czy tak długo trzeba będzie czekać na bloki dynamiczne w ZWCADZIE?
  25. Upvote
    alf przyznał(a) reputację dla Adam Klaczek w ZWCAD 2021 - scalanie warstw   
    W ZWCAD 2021 można scalić warstwy, zaznaczając je w oknie menadżera.
    Jeżeli na warstwach znajdują się obiekty, można je przenieść na inną, wskazaną warstwę.