kruszynski

Moderatorzy
  • Postów

    1482
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    94

Treść opublikowana przez kruszynski

  1. Wygląda na to, że teraz już wszyscy włącznie z ZWSOFT mamy jasność na czym polega problem. Tylko że problem wydaje się być skomplikowany, taką informację otrzymałem od ZWSOFT. Obawiam się więc, że na rozwiązanie będzie trzeba poczekać. Jako rozwiązanie obejściowe, mogę zaproponować włączanie drugiego okna również w trybie modeless.Pewnie to pociągnie za sobą jakieś komplikacje typu kursor znikający z kontrolek typu EditBox. ale może po kliknięciu przycisku przed ukryciem okna może Pan okno przełączyć do trybu modeless, i dopiero wtedy ukryć?
  2. 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
  3. 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();
  4. Zawsze może Pan przesłać do UDT link do ogłoszenia i zapytać i opinię, albo w jaki sposób zweryfikować wiarygodność.
  5. 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?
  6. Dostałem z ZWSOFT przykład okna z przyciskiem, który wydaje się działać tak, jak Pan potrzebuje. HelloWorld.rar
  7. 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.
  8. Czy rozwiązaniem mogłoby być sprawdzenie zmiennej systemowej: CMDNAMES ?
  9. ok, teraz jasne. podpytam w ZWSOFT
  10. 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?
  11. 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.
  12. kruszynski

    ZWTraffic

    Czyli powinno być tak: ?
  13. 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.
  14. 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?
  15. Współrzędne można pobrać łącząc funkcje repeat, ssname, assoc, ( może jescze entget ) sumy nie można "pobrać" trzeba ją wyliczyć
  16. 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
  17. 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
  18. 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
  19. 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.
  20. 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
  21. pozostaje jeszcze jedna kwestia co się stanie jeśli wywołamy funkcję tak: (a -2)
  22. 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
  23. 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 ) ) ) )
  24. 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))