kruszynski

Moderatorzy
  • Postów

    1474
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    93

Treść opublikowana przez kruszynski

  1. Czyli chodzi o taki efekt jak w załączonym przykładzie: Kiedy w oknie modal klikniemy przycisk [Ask For Point ] , nie możemy kliknąć w oknie modeless przycisku [Show Modal DIalog]. HelloWorld_Modal_Modeless.zip
  2. Czyli sekwencja wydarzeń wygląda tak ? - Otwieramy oknoPI w trybie modeless - Klikamy przycisk X : - Otwiera się okno2 w trybie modal. - ZWCAD (wstążka, właściwości, nasz przykładowy niezwiązany z PI program HelloWorld , praca w modelu wszystko inne ) jest zablokowane - Klikamy przycisk Y w oknie2 : - okno2 znika - ZWCAD jest odblokowany czyli pojawia się podpowiedź, można klikać punkty ? - okno2. HelloWorld są zablokowane. wskaźnik się nad nimi nie pokazuje, nie da się kliknąć. a co ze standardowymi oknami ZWCADa? właściwości, wstążka? można klikać, czy wskaźnik jest "uwięziony" w modelu? Myślę że istotne może być jak zamyka Pan okno? W ZRX miałem kiedyś podobny problem, wyłączałem okno, ale nie dało się nic klikać. powodem było to JAK wyłączałem okno. Zrobiłem to wywołując CWnd::ShowWindow( SW_HIDE ) Okno zniknęło, ale nic się nie dało zrobić. ZRX ma swoje okno , w którym trzeba wywołać: CAdUiDialog::BeginEditorCommand() Wtedy odblokowało ZWCADa. Być może tu sytuacja jest analogiczna. W tym przypadku najbardziej podejrzane jest działanie ZwSoft.ZwCAD.Internal.Utils.SetFocusToDwgView();
  3. Zawsze może Pan przesłać do UDT link do ogłoszenia i zapytać i opinię, albo w jaki sposób zweryfikować wiarygodność.
  4. Używając okna, jakie przesłałem i standardowych poleceń ZWCADa okno nie jest blokowane. Może Pan to zobaczyć na filmie: Czy może Pan przerobić przykład do takiej postaci, żeby zaobserwować zachowanie analogiczne jak w Pana aplikacji, ale z wykorzystaniem tylko tego okna i standardowych poleceń ZWCADa? Może problem jest nie w samym oknie, ale w poleceniu podłączonym pod przycisk?
  5. Dostałem z ZWSOFT przykład okna z przyciskiem, który wydaje się działać tak, jak Pan potrzebuje. HelloWorld.rar
  6. Myślałem o tym, żeby zamiast odczytywać aktywne polecenie ze zmiennej systemowej zamiast z tego: Umknęło mi że to chodzi o to, że nie da się kliknąć przycisku.
  7. Czy rozwiązaniem mogłoby być sprawdzenie zmiennej systemowej: CMDNAMES ?
  8. ok, teraz jasne. podpytam w ZWSOFT
  9. Zaraz chwila, bo chyba czegoś nie rozumiem. W AutoCAD wszystko jest OK? czy tutaj też anuluje polecenie? Chyba właśnie anulowaniu aktywnego polecenia ma służyć: acDoc.SendStringToExecute("\x03\x03", false, true, false); czy nie? Dlaczego ZwSoft.ZwCAD..Internal. pomiędzy ZwCAD a Internal są dwie kropki? O rozwiązanie jakiego problemu chodzi?
  10. W zbliżającej się aktualizacji będzie to działało tak: Oznaczamy najpierw jedną krawędź pasa ruchu, następnie drugą lub więcej. Następnie usuwamy poszczególne opisy, i dodajemy jeden zbiorczy dla wszystkich utworzonych linii, następnie tak przygotowany opis możemy aktualizować po zmianie długości pasa. Po aktualizacji będzie długość pasa i suma powierzchni wszystkich namalowanych linii.
  11. kruszynski

    ZWTraffic

    Czyli powinno być tak: ?
  12. Moim zdaniem lepiej ustawić zmienną na OSMODE na 0 niż 8 Sprawdzić wartość zmiennej systemowej można korzystając z funkcji getvar. funkcja setvar ustawia wartość zmiennej.
  13. Pracuję właśnie nad aktualizacją tej funkcji i mam pewną wątpliwość, proszę o pomoc. Jak powinien wyglądać opis przedstawionej na obrazku sytuacji? W opisie wstawiamy powierzchnię. Ale oznakowanie składa się z 2 kolorów farby. w tym przypadku jest np 81 m2 farby niebieskiej i 10,39 m2 farby białej więc co wpisać w opisie? najprościej sumę? czy rozbić na 2 opisy żeby potem w zestawieniach rozróżnić na poszczególne kolory? czy jeszcze inaczej?
  14. Współrzędne można pobrać łącząc funkcje repeat, ssname, assoc, ( może jescze entget ) sumy nie można "pobrać" trzeba ją wyliczyć
  15. Przygotowane przez Pana lispy to krok w dobrym kierunku. Jakiej pomocy Pan oczekuje? Działanie funkcji ssget sprowadza się do tego, że wybiera z rysunku obiekty po zadanych kryteriach. Ma całkiem sporo trybów , które można przełączać. Funkcja może np pozwolić Użytkownikowi na wskazanie elementów albo wybrać automatycznie z całego rysunku. W helpie ZWCADa jest artykuł na temat tej funkcji i jej trybów. Współrzędne ze zbioru wskazań może Pan pobrać np w funkcji repeat sprawdzając każdy element ssname. Do pobrania współrzędnych może przydać się assoc 10
  16. Może Pan przesłać plik dwg? na adres pomoc@zwcad.pl i jeszcze proszę o informację na której wersji programu Pan pracuje Sprawdziłem to u siebie i działa, więc pewnie coś robimy inaczej
  17. Jest to możliwe tylko częściowo Jest lispowa funkcja ( get-license-serial ) Nie ma możliwości odczytania numeru licencji ( ze względów bezpieczeństwa ) Ale można odczytać stan licencji więc może Pan zintegrować własny program z licencją funkcja zwraca 3 elementy: 1. typ licencji: 0 - brak licencji, 1 - licencja na kodzie programowym , 2. licencja na kluczu. 2. kod licencji ( jeśli dobrze pamiętam to jednoznacznie identyfikuje licencję, ale nie jest kodem, którym można aktywować program ) 3. nie pamiętam chyba pozwala rozpoznać czy to jest licencja pojedyncza, czy sieciowa
  18. właśnie. dla 0 zwraca 5, dla wartości większych liczy wartość dla wartości mniejszych od 0 liczy w nieskończoność ( do wyczerpania zasobów w tym przypadku stosu ) dla kolejnych coraz mniejszych wartości. co z tym zrobić? np: - możemy przyjąć że dla wartość ujemnych zwraca jakąś wartość np: 0 , ale niby dlaczego mielibyśmy coś zakładać. - możemy wskazać osobie zlecającej, że dla takiego warunku wynik jest nieokreślony i niech zleceniodawca się martwi. - możemy też uruchomić funkcję ( exit ) skończy się działanie programu. Możemy jeszcze jakąś ładną obsługę błędów zrobić, żeby wyświetliło komunikat o tym jaki problem napotkaliśmy.
  19. W najnowszej wersji po małej modyfikacji działa: (defun ZYXAK_MT_BandWBackground (/ PREF COL) (setq PREF (vla-get-display (vla-get-preferences (vlax-get-acad-object)))) (setq COL (vlax-variant-value (vlax-variant-change-type (vla-get-GraphicsWinModelBackgrndColor PREF) vlax-Vblong))) (if (zerop COL) (progn (vla-put-GraphicsWinModelBackgrndColor PREF 16777215 ) (vla-Put-ModelCrosshairColor PREF 0 ) ) (progn (vla-Put-GraphicsWinModelBackgrndColor PREF 0 ) (vla-Put-ModelCrosshairColor PREF 16777215 vlax-Vblong ) ) ) (vlax-release-object PREF) ) zmiana koloru_1.lsp
  20. pozostaje jeszcze jedna kwestia co się stanie jeśli wywołamy funkcję tak: (a -2)
  21. n to parametr wywołania funkcji / oddziela parametry od zmiennych lokalnych. w tym przypadku nie jest potrzebne ale z przyzwyczajenia ( makro w edytorze) mi się napisało
  22. do tego właśnie służy rekurencja powinno być coś typu ( defun a ( n / ) (cond ( ( = n 0 ) 5 ) ( t (+ (* 3 (a (- n 1 ) ) ) 2 ) ) ) )
  23. O to właśnie chodzi, "a" to nie zmienna, tylko nazwa funkcji, która ma być rekurencją. czyli Ty mnożysz 3 * a (jako zminną) * (n-1) ma być 3 * a ( jako wynik dla obliczenia funkcji a dla wartości (n-1))