kruszynski

Moderatorzy
  • Zawartość

    1004
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    30

Ostatnia wygrana kruszynski w Rankingu w dniu 30 Maj

kruszynski posiadał najczęściej polubioną zawartość!

4 obserwujących

O kruszynski

  • Tytuł
    Ekspert

Profile Information

  • Gender
    Not Telling

Ostatnie wizyty

Blok z ostatnimi odwiedzającymi dany profil jest wyłączony i nie jest wyświetlany użytkownikom.

  1. kruszynski

    Edycja tekstu wymiarowego

  2. kruszynski

    Edycja tekstu wymiarowego

    Przygotowłem taki kawałek LISP: Polecenia: EdycjaWymiaru - prosi o zaznaczenie wymiaru, podanie nowej treści i zamienia kolor ZaznaczZmienione - wyszukuje w rysunku wszystkie wymiarowania, które mają nadpisany tekst Gotowy plik w załączniku (setq COLORINDEX 1 ) ; Zmień tą wartość jeśli chcesz inny kolor niż czerwony (domyślnie 1) (defun C:EdycjaWymiaru ( / element newVal *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nC:EdycjaWymiaru:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq element (SelSet:Entsel "Wybierz wymiar" (list (cons 0 "*DIMENSION" ) ) ) ) (setq newVal (String:Get "Nowa treść: " "" ) ) (vlax-put-property element 'Color COLORINDEX ) (vlax-put-property element 'TextOverride newVal ) ) (defun C:ZaznaczZmienione ( / selItems *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nC:ZazmaczZmienione:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq selItems (ssget "_X" '( ( 0 . "*DIMENSION") (-4 . "<NOT") (1 . "") (-4 . "NOT>" ) ) ) ) (sssetfirst selItems selItems) ) (defun String:Get (komunikat defVal / Wynik tekst ) (if defVal (if (not(= defVal "")) (setq komunikat (strcat komunikat "<" defVal ">:" ) )) ) (setq tekst(vl-catch-all-apply 'getstring (list T komunikat ))) (if (vl-catch-all-error-p tekst) (progn (prompt (vl-catch-all-error-message tekst)) (setq Wynik nil ) ) (progn (if (null tekst) (setq Wynik defVal ) (if (= tekst "") (setq Wynik defVal ) (if (= tekst ".") (setq Wynik "") (setq Wynik tekst) ) ) ) ) ) Wynik ) (defun SelSet:Entsel (tresc filter / OldNoMutt MSel OutVal ) (setq tresc (strcat "\n" tresc ": ") ) (prompt tresc ) (setq OldNoMutt (getvar 'NOMUTT)) (setvar 'NOMUTT 1) (setq MSel (if (null filter) (vl-catch-all-apply 'ssget (list ":S:E" )) (vl-catch-all-apply 'ssget (list ":S:E" filter )) ) ) (setvar 'NOMUTT OldNoMutt ) (if (vl-catch-all-error-p MSel) (progn (prompt (vl-catch-all-error-message MSel)) ) (progn (if MSel (progn (setq OutVal (vlax-ename->vla-object (ssname MSel 0)) ) )) ) ) OutVal ) OutVal ) EdycjaWymiaru.lsp
  3. Taki komunikat świadczy o problemie jaki wystąpił w jakimś LISPie. Być może jest załadowany w inny sposób niż lista startowa: Wczytane z automatu są pliki: W opcjach może być dodany katalog. Jeśli w nim jest plik ZWCADdoc.lsp zostanie wczytany przy otwieraniu plików Jeśli jest wczytane menu (plik mnu) , odpowiadający mu plik MNL zostanie wczytany %AppData%\Roaming\ZWSOFT\ZWCAD\2018\pl-PL\Support\ZWCAD2018doc.lsp c:\Program Files\ZWSOFT\ZWCAD 2018\Support\ZWCAD2018.lsp Aplikację możemy wczytać przez rejestr HKEY_CURRENT_USER\Software\ZWSOFT\ZWCAD\2018\pl-PL\Applications\MojaAplikacja choć to raczej arx niż LISP Jeśli w skrócie w użyjemy parametru /ld albo /b wczytany będzie skrypt, (scr), ale on też może ładować LISPa. Mamy jeszcze plik acad.rx , ale to też raczej do ARX niż LISP a treść komunikatu wskazuje jednak na LISP ( plik ZRX też może ładować plik LISP) Część funkcjonalności ZWCADa zwłaszcza narzędzia ExpressTools są opracowane w LISP i ładowane na starcie. Być może problem jest jakoś związany z rysunkiem a raczej z parą rysunków skoro problem występuje przy otwarciu drugiego rysunku przez 2xclick. Proszę obserwować program, ważne by udało się ustalić zasadę - powtarzalność występowania problemu, leśli to się uda być może będzie łatwiej uniknąć problemu w przyszłości.
  4. kruszynski

    Znaki E-4 / E-5

    Aktualizacja z rozwiązaniem problemu gotowa do pobrania.
  5. kruszynski

    Znaki E-4 / E-5

    Problem jest nam znany. Myślę że ogarnę przy okazji najbliższej aktualizacji
  6. kruszynski

    ZWTraffic

    Pierwsza wersja gotowa. przeniesopisy.lsp (defun C:przeniesopisy ( / selElement allElements SelLayer *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nC:przeniesopisy:*error*: " ) (princ msg ) (princ "\n") ) ) ) (defun AskForBlock ( label / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nAskForBlock:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq block (SelSet:Entsel label (list (cons 0 "INSERT" ))) ) ) (defun GetCorespondingElements ( selElement / LayerName BlockName Blocks Leaders Selected *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nGetCorespondingElements:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq LayerName (vlax-get-property selElement 'Layer ) ) (setq BlockName (vlax-get-property selElement 'Name ) ) (setq Blocks (ssget "X" (list (cons 0 "INSERT") (cons 2 BlockName ) (cons 8 LayerName ) ) ) ) ( if (not (null Blocks) ) (progn (setq Selected (SelSet:ToList Blocks ) ) ) ) (setq Leaders (ssget "X" (list (cons 0 "MULTILEADER") (cons 8 LayerName ) ) ) ) ( if (not (null Leaders) ) (progn (setq Leaders (SelSet:ToList Leaders ) ) (setq Selected (append Selected Leaders ) ) ) ) Selected ) (defun AskForLayer ( msg / Options selString *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nAskForLayer:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq Options (list "Zaznacz" "Aktualna" ) ) ; "Wybierz" (setq selString (String:Get (strcat msg " lub " (UserInput:FormatOptions Options ) ":" ) "" ) ) (cond ( ( or ( null selString ) (not (= (type selString ) 'STR))) nil) ( ( or ( = ( strcase selString ) (substr ( strcase ( car Options ) ) 1 1) ) ( = ( strcase selString ) ( strcase ( car Options ) ) ) ) ( progn ; "Zaznacz" (setq elem (SelSet:Entsel "Wybierz element z warstwy na którą przenieść opisy" nil) ) (setq Layer (vlax-get-property elem 'Layer ) ) ) ) ;( ( or ( = ( strcase selString ) (substr ( strcase ( cadr Options ) ) 1 1) ) ; ( = ( strcase selString ) ( strcase ( car Options ) ) ) ; ) ( progn ; "Wybierz" ; (print "eNotImplementedYet" ) ;) ) ( ( or ( = ( strcase selString ) (substr ( strcase ( cadr Options ) ) 1 1) ) ( = ( strcase selString ) ( strcase ( car Options ) ) ) ) ( progn ; "Aktualna" ( setq Layer ( vlax-get-property ( vlax-get-property (vla-get-activedocument (vlax-get-acad-object) ) 'ActiveLayer ) 'Name ) ) ) ) ( T (setq Layer selString ) ) ) Layer ) (setq selElement ( AskForBlock "Wskaż blok" )) (setq allElements (GetCorespondingElements selElement ) ) (setq SelLayer (AskForLayer "Podaj nazwę warstwy" ) ) ( Layer:Set allElements SelLayer ) ) ; (defun ------ UserInput ------------ ( / ) (defun UserInput:FormatOptions ( Options / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nUserInput:FormatOptions:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq Out "[" ) (if (> (length Options) 0) (setq Out (strcat "[" (car Options) ) ) ) (foreach % (cdr Options) (setq Out (strcat Out "/" % ) ) ) (setq Out (strcat Out "]") ) ) (defun String:Get (komunikat defVal / Wynik tekst *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nString:Get:*error*: " ) (princ msg ) (princ "\n") ) ) ) ; (setq komunikat "podaj tekst" ) ; (setq defVal "SLU" ) (if defVal (if (not(= defVal "")) (setq komunikat (strcat komunikat "<" defVal ">:" ) )) ) (setq tekst(vl-catch-all-apply 'getstring (list komunikat ))) (if (vl-catch-all-error-p tekst) (progn (prompt (vl-catch-all-error-message tekst)) (setq Wynik nil ) ) (progn (if (null tekst) (setq Wynik defVal ) (if (= tekst "") (setq Wynik defVal ) (if (= tekst ".") (setq Wynik "") (setq Wynik tekst) ) ) ) ) ) Wynik ) ; (defun ------ Layer ------------ ( / ) (defun Layer:Set ( Element LayerName / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nLayer:Set:*error*: " ) (princ msg ) (princ "\n") ) ) ) (if (= ( Layer:Exist LayerName ) :vlax-false ) ( Layer:Create LayerName ) ) ( cond ( ( = (type Element ) 'LIST ) (progn (foreach % Element ( Layer:Set % LayerName ) ) ) ) ( ( = (type Element ) 'ENAME ) (progn ( Layer:Set (vlax-ename->vla-object Element ) LayerName ) ) ) ( ( = (type Element ) 'VLA-OBJECT ) (progn (setq ans(vl-catch-all-apply 'vlax-put-property (list Element 'Layer LayerName ))) ) ) ) ) (defun Layer:Exist ( Name / layers ans Out *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nLayer:Exist:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq layers (vlax-get-property (vla-get-activedocument (vlax-get-acad-object) ) 'Layers ) ) (setq ans(vl-catch-all-apply 'vlax-invoke-method (list layers 'Item Name ) ) ) (setq Out (if (vl-catch-all-error-p ans ) :vlax-false :vlax-true ) ) Out ) (defun Layer:Create ( Name / layers ans *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nLayer:Create *error*: " ) (princ msg ) (princ "\n") ) ) ) (setq layers (vlax-get-property (vla-get-activedocument (vlax-get-acad-object) ) 'Layers ) ) (setq ans (vl-catch-all-apply 'vlax-invoke-method (list layers 'Add Name ) ) ) (if (vl-catch-all-error-p ans) nil ans ) ) (defun Layer:Purge ( Name / layers ans Out *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nLayer:Purge:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq layers (vlax-get-property (vla-get-activedocument (vlax-get-acad-object) ) 'Layers ) ) (setq layer (vl-catch-all-apply 'vlax-invoke-method (list layers 'Item Name ) ) ) (if (not (vl-catch-all-error-p layer )) (vl-catch-all-apply 'vlax-invoke-method (list layer 'Erase ) ) ) nil ) ; (defun ------ SelSet ------------ ( / ) (defun SelSet:ToList (selset / Wynik ileelementow i *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nSelSet:ToList:*error*: " ) (princ msg ) (princ "\n") ) ) ) (if selset (progn (setq ileelementow(sslength selset) ) (setq i 0 ) (repeat ileelementow (setq Wynik (append Wynik (list (vlax-ename->vla-object(ssname selset i) ) ))) (setq i (1+ i )) ) )) Wynik ) (defun SelSet:Entsel (tresc filter / OldNoMutt MSel OutVal *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nSelSet:Entsel:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq tresc (strcat "\n" tresc ": ") ) (prompt tresc ) (setq OldNoMutt (getvar 'NOMUTT)) (setvar 'NOMUTT 1) (setq MSel (if (null filter) (vl-catch-all-apply 'ssget (list ":S:E" )) (vl-catch-all-apply 'ssget (list ":S:E" filter )) ) ) (setvar 'NOMUTT OldNoMutt ) (if (vl-catch-all-error-p MSel) (progn (prompt (vl-catch-all-error-message MSel)) ) (progn (if MSel (progn (setq OutVal (vlax-ename->vla-object (ssname MSel 0)) ) )) ) ) OutVal )
  7. kruszynski

    ZWTraffic

    Możliwe to jest, tylko potencjalnie narażone na komplikacje. Bo jak odróżnić blok opisowy od innych? Można w programie zapisać na stałe nazwę bloku opisowego. Ale jeśli ktoś chciałby użyć tego narzędzia w innym przypadku to nie zadziała. zaznaczenie jednego bloku wzorca chyba nie jest zbyt kłopotliwe a daje nam dużą elastyczność.
  8. kruszynski

    ZWTraffic

    to też uwzględnić? czy przenosić tylko ten jeden zaznaczony blok?
  9. kruszynski

    ZWTraffic

    tak. Trudno powiedzieć. Nie zostało to jeszcze ujęte w przewidywalnych planach
  10. kruszynski

    ZWTraffic

    tak można. tylko z mojego doświadcznia wynika że częstotliwość popełniania literówek jest denerwująca. i bedzie powstawało zbyt dużo podobnych warstw a może tylko ja szybciej piszę niż myślę 😉 wolałbym to rozwiązanie. tylko jak wskazać warstwę, można tak: - wybieramy dowolny element na warstwie docelowej - myślę, że to byłoby najłatwiejsze w użyciu, pod warukniem że coś juz na tej warstwie jest - pojawia się okno z listą wszystkich warstw do wyboru - to byłoby łatwe w użyciu jeśli mielibyśmy mało warstw przy dużej ilości wartw pewnie już nie. - wrzucamy np na aktualną warstwę - to byłoby najłatwiejsze do napisania ale czy funkcjonalne ? - może jeszcze coś? Możemy też zrobić takie combo typu Podaj nazwę warstwy lub [Zaznacz/Wybierz/Aktualna]:
  11. kruszynski

    ZWTraffic

    można tak, żeby żeby zaznaczył Pan jeden blok , a program zaznaczy wszystkie inne bloki o tej samej nazwie na tej samej warstwie. Tak będzie OK?
  12. kruszynski

    ZWTraffic

    W poprzednim poście w tym temacie zaproponowałem pewne rozwiązanie i zapytałem o kwestie, w których mam wątpliwości. Nie otrzymałem odowiedzi więc nie wiem czy to właśnie tak ma działać program. Dlatego nie zajołęm się przygotowaniem rozwiązania, które może działać sprzeczenie z oczekiwaniami.
  13. we miejscu wskazanym w czasie instalacji SDK nie wiem😉
  14. Witam Pakiet SDK zawierający sporo informacji o tworzeniu nakładek w ZRX, ale też przykłady .Net jest dostępny do pobrania tutaj: ZRX SDK . Zasadniczo model obiektowy jest analogiczny jak w AutoCAD. Gdyby coś jeszcze nie działało zgodnie z oczekiwaniami proszę o kontakt, najlepiej mailowo na adres pomoc@zwcad.pl
  15. Funkcja: znajduje przecięcia, jeśli linia przecina krawędź powierzchni - takie było założenie. Czy w AutoCADzie wykorzystując tą funkcję otrzymuje Pan inny wynik? Kalkulator na chwilę obecną wylicza następujące wartości: + dodawanie - odejmowanie * mnożenie / dzielenie ^ potęgowanie % modulo - reszta z dzielenia sqrt pierwiastek abs wartość bezwzględna ln logartym naturalny log10 logartym o podstawie 10 avg średnia sum suma wartości fact silnia min max - wartości ekstremalne funkcje trygonometryczne: sin asin cos acos tan atan pozostałe funkcja kalkulatora geometrycznego w wersji znanej z AutoCADa nie są jeszcze obsługiwane.