kruszynski

Moderatorzy
  • Zawartość

    1059
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    33

Ostatnia wygrana kruszynski w Rankingu w dniu 29 Grudzień 2018

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. To może zacznijmy od rzeczy najprostrzych. Wiesz jak narysować kreskę używając AutoLISP? Jeśli nie, to zerknij na te kilka przykładów https://www.zwcad.pl/1-narzedzia-do-lisp.html Jeśli tak, to wrzuć co zrobiłeś i zapytaj o to czego nie wiesz.
  2. Może Eventhandler SystemVariableChanged ?
  3. kruszynski

    Palety narzędzi - tworzenie, edycja

    Istotną kwestią jest o jaką paletę chodzi? Jeśli o tą dostępną po uruchomieniu polecenia _toolpalettes, to nie ma do niej API. Jedyne co możemy zrobić, to wyeksportować i zaimportować z poziomu GUI. Można jednak utworzyć własne palety, używając WPF. tak jak @Parikon wrzucił: W ZWcad takimi paletami są np SmartSelect, QuickCalc, czy designCenter
  4. kruszynski

    odtworzenie obwiedni kreskowania_problem

    Jak na razie przygotowałem taką wersję minimalną. Działa tak, że klikamy w kolejne obszary w wyniku powstaje sumaryczny obrys. zlewnia.lsp
  5. kruszynski

    export do wmf_pytanie za 5 punktów

    Musimy robić coś inaczej, bo u mnie lisp działa. To co wkleiła Pani w treści to tylko początek lispa. cały dodałem w załączniku. Po jego uruchomieniu powstał plik mfw. Załączam też plik wynikowy. Co tutaj jest inaczej niż powinno być? WMF_World.lsp Droga_full.mfw
  6. kruszynski

    odtworzenie obwiedni kreskowania_problem

    - całkiem możliwe, ale jeszcze nie potwierdzam na 100%. - kreskowanie załatwia nam przypadki gdzie są małe przerwy jak pisała Pani we wpisie powyżej, więc nie jestem pewien czy pominięcie tego kroku byłoby wskazane Czyli różnica pomiędzy naszą funkcją a funkcją byłaby taka, że boundary tworzy oddzielne regiony dla poszczególnych obszarów, nasza funkcja miałaby tworzyć ich sumę. Tylko to czy coś jeszcze? Podejrzewam, że czas kreskowania nie będzie znaczący. Dodatkowo kreskowanie pozwoli łatwo rozróżnić obszary, które są "opracowane" od tych, które jeszcze wymagają pracy. może najlepiej byłoby zrobić opcję dodawania kreskowania . czyli opis miałby taki format: przedrostek[powierzchnia][jednostka]przyrostek
  7. kruszynski

    odtworzenie obwiedni kreskowania_problem

    Gdybyśmy przyjęli taki scenariusz: 1. Zaznaczamy kreskowania według własnego uznania, np wszystkie na określonej warstwie 2. Uruchamiamy funkcję - lub odwrotnie 3. Dla każdego z kreskowań program wykonuje następujące operacje: 3a. Program odtwarza kreskowania - jako region 3b. Jeśli powstanie wiele regionów to program je sumuje w jeden 3c. Program rozbija region (explode ) czyli powstaje kilka linii, łuków, może jakieś kółko 3d. Wszystko co powstało w kroku 3c program łączy w jedną polilinię ( pedit ) - jeśli w kreskowaniu były jakieś otwory - to: "sorry no bonus" To będzie OK?
  8. kruszynski

    odtworzenie obwiedni kreskowania_problem

    Wygląda mi na to, że zaczynamy się kręcić wokół czegoś, co łatwo źle zrozumieć. Różnych dziwacznych przypadków połączeń ,rozdzieleń, części wspólnych i otworów możemy znaleźć całe mnóstwo. Zastanawiamy się nad tym co i jak zrobić, ale nie wiem do czego to jest potrzebne. Jeśli mamy dwa przylegające kreskowania, a potrzebujemy ich wspólną obwiednię - którą da się edytować - da się to zrobić funkcjami ZWCADa, więc da się zrobić lispa, który to będzie robił dla wielu kreskowań Jeśli mamy kreskowanie które ma wycięte obszary wewnętrzne analogicznie do litery A. to jedynym co możemy zrobić, to region. Tak wiem, nie da się edytować regionu za uchwyty, ale możemy z tego odczytać rzeczywistą powierzchnię i rzeczywisty obwód. Gdybyśmy taki region zamienili na dwie polilinie, to chcąc odczytać rzeczywistą powierzchnię, musielibyśmy odjąć powierzchnię wewnętrzną od zewnętrznej. Gdybyśmy stworzyli jedną polilinię, wewnętrzna musiałaby mieć jakieś połączenie z zewnętrzną, wówczas mielibyśmy zakłamaną długość. Więc wróćmy do początku: co jest celem? np: - utworzyć granice obszaru które jest określone przylegającymi kreskowaniami? - jako polilinię dającą się edytować na uchwytach? - utworzyć granice obszaru które może mieć "otwory" , z zachowaniem poprawnego parametru powierzchni i długości? - skrócić czas potrzebny na wielokrotnie powtarzane tych samych czynności dla setki kreskowań?
  9. Po niewielkim dostosowaniu, teraz powinno być OK PowerDraw_2018.zelx
  10. NIezupełnie wyszło tak jak chciałem, ale może wystarczy. Blokuje inny element okna. ale nie przy każdej zmianie, ale przy zatwierdzaniu wartości, np przechodząc do innej komórki,albo [enter] na koniec. plik DCL wygląda tak: EditCheck : dialog { label = ""; :edit_box{ key="path"; label="Ścieżka"; edit_width=6; fixed_width=true; action = "(DCL:Edit:IsValid)"; } : button { action = "(done_dialog 0)"; key = "accept"; label = "Zapisz"; } : button { action = "(done_dialog 0)"; key = "cancel"; label = "Anuluj"; is_cancel = true; } } plik LSP tak: (defun DCL:Edit:IsValid ( / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nDCL:Edit:IsValid :*error*: " ) (princ msg ) (princ "\n") ) ) ) (print (strcat "wartość wpisana do okna: " $key " to: " $value ) ) (if (= "" $value) (mode_tile "accept" 1) (mode_tile "accept" 0) ) ) (defun c:testEdit ( / dcl_id RunDialogResult coords LastPath *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nc:testEdit:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq DCL_Path "C:\\<< TWOJA ŚCIEŻKA >>\\edit_check.DCL") (setq dcl_id (load_dialog DCL_Path)) (setq RunDialogResult t ) (setq LastPath "" ) (while RunDialogResult (if(not(new_dialog "EditCheck" dcl_id))(exit)) (action_tile "cancel" "(done_dialog -1)") (setq RunDialogResult(start_dialog)) (cond ((= RunDialogResult 0) (progn (setq RunDialogResult nil ))) ; ESC pressed (t (print RunDialogResult)) ) ) (unload_dialog dcl_id) (princ) )
  11. Na 99.9% da się to zrobić. Mam taki fragment kodu sprawdzający czy wpisana została liczba. (defun DCL:CheckNum ( / ) (if (not(> (atof $value) 0)) (set_tile $key "")(set_tile $key (rtos(atof $value)) ) ) ) To jeszcze trzeba osadzić w kontekście DCLa i na to nie mam przykładku tak na szybko.
  12. kruszynski

    EncryptLISP

    W ZWCAD 2018, 2019 można szyfrować lispy poleceniem lispowym tak: (compile-zelx "C:\\Ścieżka\\Plik.lsp" "C:\\Ścieżka\\Plik.zelx")
  13. kruszynski

    [C#] Detekcja środowiska

    hm. jeszcze nie wiem do czego, ale mam takie podskórne wrażenie, że będę tego używał.
  14. kruszynski

    [C#] Detekcja środowiska

    Znalazłem: namespace test { public class Class1 : ZwSoft.ZwCAD.Runtime.IExtensionApplication { public void Initialize() { MessageBox.Show("Initialize!"); } public void Terminate() { Console.WriteLine("Cleaning up..."); } [CommandMethod("test2492")] public static void test2492() { MessageBox.Show("Hello World!"); } } } Ale jestem z siebie dumny