kruszynski

Moderatorzy
  • Zawartość

    999
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    29

Zawartość dodana przez kruszynski

  1. 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 )
  2. 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ść.
  3. kruszynski

    ZWTraffic

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

    ZWTraffic

    tak. Trudno powiedzieć. Nie zostało to jeszcze ujęte w przewidywalnych planach
  5. 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]:
  6. 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?
  7. 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.
  8. we miejscu wskazanym w czasie instalacji SDK nie wiem😉
  9. 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
  10. 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.
  11. kruszynski

    ZRXDbg?

    Mmamy odpowiedź z ZWSOFT: ARXDBG powinno działać tak jak w AUTOCAD. Może Pan przeprowadzić migrację projektu, czyli skompilować z ustawionymi ścieżkami do bibliotek ZWCADa i będzie mógł Pan używac narzędzi analogicznie jak w AutoCadzie.
  12. kruszynski

    [c#] Arc i CircularArc2d

    Ok, postaram się coś dowiedzieć.
  13. Sprawdzę to i postaram się dowiedzieć czegoś więcej od ZWSOFT.
  14. kruszynski

    [c#] Arc i CircularArc2d

    Czy jest z nimi jakiś problem? W tym przypadku potrzena będzie jeszcze zmiana środka. I trzeba to będzie przeliczyć Może Pan rozwinąć ? :
  15. kruszynski

    Narożniki niektórych znaków [rozwiązane]

    W najnowszej aktualizacji, którą jest dostępna do pobrania, problem został rozwiązany.
  16. kruszynski

    Linie poziome pod znakami [rozwiązany]

    Proszę pobrać aktualizację. teraz powinno być już OK
  17. kruszynski

    Linie poziome pod znakami [rozwiązany]

    Nowa aktualizacja nakładki dosępna jest do pobrania przez mechanizm automatycznych aktualizacji. Wystarczy kliknąć : Wprowadzone zmiany to: rozwiązanie problemu: Nowe znaki [U-25a] w różnych kolorach Zmiana domyślnej szerokości miejsc postojowych dla samochodów osobowych z 2,3 m na 2,5 m Drobne poprawki w zakresie stabilności działania.
  18. kruszynski

    Linie poziome pod znakami [rozwiązany]

    W ciągu kilku najbliższych dni przygotuję wersję, w której wyeliminuję ten problem.
  19. kruszynski

    Błąd polecenia DIMSPACE

    W załączeniu funkcja dimspace1. dimspace1.lsp
  20. kruszynski

    Skrypt przenoszący określone warstwy na spód

    W załączeniu skrypt. Polecenie do wywołania: tak jak nazwa pliku HatchToBack.lsp
  21. kruszynski

    Otwieranie rysunku PDF po wydruku

    Przesłałem zgłoszenie do ZWSOFT. W przyszłości zostanie to wprowadzone. Jeśli drukowałby Pan używając drukarki PDFCreator, można tam ustawić, żeby plik otwierał się po zapisaniu
  22. No tak, czyli te kreskowania, które się przesuwają to są zespolone. a manipulowanie nimi przez Vlisp jest w pewnym stopniu "głębiej"
  23. kruszynski

    Dokumentacja fotograficzna

    W wywołaniu poleceniehyperlink "_I" powinno być w cudzysłowie po co tam jest _O ? powinno być tak: (command "_-hyperlink" "_i" last_ent "" path "" "" "" )
  24. Chyba jeszcze kawa nie zaczęła krążyć, bo nie rozumiem pytania.
  25. kruszynski

    Skrypt przenoszący określone warstwy na spód

    Może tak: LDOrderV1-2.lsp