BKW Posted November 4 Report Share Posted November 4 Czy istnieje jakaś funkcja, skrypt, program pozwalający na synchroniczne przesuwanie (zoomowanie) na dwóch rzutniach jednocześnie ? W samym AutoCadzie nie udało mi się odnaleźć czegoś takiego. Istnieją natomiast aplikacje, których zainstalowanie w Autocadzie pozwala na taką funkcjonalność - poniżej podaje przykład. https://apps.autodesk.com/ACD/en/Detail/Index?id=2788892389049910944&appLang=en&os=Win32_64 Chodzi mi o działanie takiej funkcji w "czasie rzeczywistym". Napisałem sobie procedurę w lispie, której wywołanie pozwala na takie działanie czyli wyświetlenie w każdym oknie tego samego widoku lub w jednym z okien widoku przesuniętego po współrzędnych X (lub Y) o jakąś wartość. Wszystko to jednak nie dzieje się w czasie rzeczywistym - aby użyć skryptu należy skończyć (przerwać) wykonywane polecenie. Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted November 4 Report Share Posted November 4 Nie spotkałem się z takim rozwiązaniem. Do czego może się ono przydać? Aplikacja, która znajduje się pod linkiem pozwala (jeśli dobrze rozumiem) na otwarcie dwóch plików dwg (raczej nie rzutni). Na filmie otwierają ten sam plik dwg. Myślę, że większe zastosowanie takiego mechanizmu byłoby przy porównywaniu dwóch osobnych plików. Wtedy w dwóch plikach dwg możemy patrzeć na ten sam obszar rysunkowy. Quote Link to comment Share on other sites More sharing options...
BKW Posted November 4 Author Report Share Posted November 4 33 minuty temu, dmatusz3 napisał: Nie spotkałem się z takim rozwiązaniem. Ja też nie, chociaż już od paru lat zastanawiam się dlaczego nie ma takiej funkcjonalności. 23 minuty temu, dmatusz3 napisał: Do czego może się ono przydać? Do jednoczesnego podglądania np. rzutów kondygnacji "0" i "+1". Działając w jednym oknie (rzutni) na kondygnacji niższej chciałbym mieć podgląd co jest na kondygnacji wyższej. Uprzedzając od razu pomysły i rady - wykorzystuje wiele sposobów na pracę na wielu kondygnacjach, począwszy od xrefów po nakładanie rzutów itp. 26 minut temu, dmatusz3 napisał: Aplikacja, która znajduje się pod linkiem pozwala (jeśli dobrze rozumiem) na otwarcie dwóch plików dwg (raczej nie rzutni). Mam tego pełną świadomość i wkleiłem to tylko po to, aby moje pytanie było lepiej zrozumiane. 28 minut temu, dmatusz3 napisał: Na filmie otwierają ten sam plik dwg. Myślę, że większe zastosowanie takiego mechanizmu byłoby przy porównywaniu dwóch osobnych plików. Wtedy w dwóch plikach dwg możemy patrzeć na ten sam obszar rysunkowy. Zgodzę się z Panem gdy np. rzuty branżowe są rysowane każde na osobnym rysunku. Czasami jednak lepiej pracuje się, gdy ja swoje rysunki robię na jednym pliku - stąd pytanie o rzutnie. Przerobiliśmy w biurze prace z rzutami na różny sposób - teraz padł pomysł na taki sposób pracy. Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted November 4 Report Share Posted November 4 40 minut temu, BKW napisał: Do jednoczesnego podglądania np. rzutów kondygnacji "0" i "+1". Ten skrypt z linku powoduje, że widzielibyśmy dokładnie taki sam fragment rysunku w rzutniach. Czyli nie możemy mieć różnych kondygnacji. Jeśli mamy widzieć różne kondygnacje, to oznacza że skrypt nie ma pokazywać tego samego fragmentu, tylko przesuwać i zoomować o tę samą wartość? Np. na początku ustawiamy 2 rzutnie - na jednej pierwsza kondygnacja, na drugiej druga kondygnacja. Wtedy po włączeniu synchronizacji przesuwalibyśmy widok o tę samą wartość, ale widoczne byłby różne kondygnacje. Nie wiem czy dobrze to interpretuje. Quote Link to comment Share on other sites More sharing options...
BKW Posted November 4 Author Report Share Posted November 4 58 minut temu, BKW napisał: Do jednoczesnego podglądania np. rzutów kondygnacji "0" i "+1". Powinienem tutaj dodać - "przesuniętych względem siebie na rysunku o jakąś wartość w poziomie lub pionie" - wtedy wszystko byłoby jasne. 11 minut temu, dmatusz3 napisał: Ten skrypt z linku powoduje, że widzielibyśmy dokładnie taki sam fragment rysunku w rzutniach. Czyli nie możemy mieć różnych kondygnacji. Zgadza się - mój błąd w opisaniu funkcji. Powyżej jest informacja czego zabrakło w moim opisie. 12 minut temu, dmatusz3 napisał: Jeśli mamy widzieć różne kondygnacje, to oznacza że skrypt nie ma pokazywać tego samego fragmentu, tylko przesuwać i zoomować o tę samą wartość? Dokładnie tak 14 minut temu, dmatusz3 napisał: Np. na początku ustawiamy 2 rzutnie - na jednej pierwsza kondygnacja, na drugiej druga kondygnacja. Wtedy po włączeniu synchronizacji przesuwalibyśmy widok o tę samą wartość, ale widoczne byłby różne kondygnacje. Nie wiem czy dobrze to interpretuje. Bardzo dobrze Pan to interpretuje. Ogólnie chodzi o to co opisał Pan powyżej. Nie ma znaczenia co jest na jednej i drugiej rzutni. Chodzi o to, żeby po włączeniu funkcji synchronizacji widok na jednej i drugiej rzutni przesuwał się synchronicznie oraz powiększał się również synchronicznie. Quote Link to comment Share on other sites More sharing options...
BKW Posted November 4 Author Report Share Posted November 4 Poniżej wklejam na szybko napisany fragment kodu lisp, który pozwala na wykonanie tego o czym piszę powyżej, ale nie w czasie rzeczywistym. Ja przypisałem sobie to polecenia skrót klawiaturowy, dzięki czemu całkiem sprawnie ustawiam na dwóch rzutniach to co chcę uzyskać. Kod oczywiście trzeba "owarunkować" itp. Cytat (DEFUN C:-+ ( / px) (setq px (getvar "USERR1")) (if px (setq px (getreal (strcat "\nPodaj wartość przesunięcia POZIOMEGO X <" (rtos (getvar "USERR1") 2 2) ">: "))) (setq px 0) ) (setvar "USERR1" px) ) (DEFUN C:zsaa ( / c h zasosnap px c1) (setvar "CVPORT" 2) (setq c (getvar "viewctr") h (getvar "viewsize") zasosnap (getvar "OSMODE") px (getvar "USERR1") ) (setvar "OSMODE" 0) (setvar "CVPORT" 3) (setq c1 (list (+ (car c) px)(car (cdr c)))) (command "_zoom" "_c" c1 h) (setvar "OSMODE" zasosnap) (setvar "CVPORT" 2) (princ (strcat "\nViewctr: " (rtos (car c) 2 2) " , " (rtos (car (cdr c)) 2 2) " - " (rtos (car c1) 2 2) " , " (rtos (car (cdr c1)) 2 2))) (princ (strcat "\nViewsize: " (rtos h 2 2) " - " (rtos h 2 2))) (princ) ) Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted November 5 Report Share Posted November 5 Po wstępnym rozeznaniu doszliśmy do wniosku, że zrobienie takiego Lispa będzie raczej niemożliwe. Spróbujemy to zrobić w C#. Mam jeszcze pytania: czy wystarczające będą 2 rzutnie? co będzie się działo jak będziemy przełączać się pomiędzy rzutniami? Quote Link to comment Share on other sites More sharing options...
BKW Posted November 5 Author Report Share Posted November 5 7 minut temu, dmatusz3 napisał: Po wstępnym rozeznaniu doszliśmy do wniosku, że zrobienie takiego Lispa będzie raczej niemożliwe. Dziękuję za zainteresowanie. Byłem pewny na 99%, że takiej funkcjonalności nie da się uzyskać za pomocą LISPa. Chociaż tak na prawdę patrząc na procedury jakie piszą użytkownicy programów CAD (chociażby Kojacek lub Lee Mac) zawsze zostaje ten 1% ... 10 minut temu, dmatusz3 napisał: czy wystarczające będą 2 rzutnie? Mi wystarczą w zupełności. Nie śmiałbym prosić o więcej. Ogólnie, z użytkowego pkt widzenia pewnie maksymalnie 4 by wystarczyły (chociażby z uwagi na wielkość monitorów - im więcej rzutni, tym mniejsze okno i mniej szczegółowy ogląd na to co się rysuje i na co się patrzy). Oczywiście to moje zdanie. 13 minut temu, dmatusz3 napisał: co będzie się działo jak będziemy przełączać się pomiędzy rzutniami? Nie do końca wiem o co Pan pyta. Jeżeli dobrze rozumiem to chyba najlepszym rozwiązaniem byłoby, gdyby w momencie przejścia na drugą rzutnię ta pierwsza zaczęłaby reagować tak samo jak ta druga przed jej aktywacją. Oczywiście wszelkie inne pomysły, sposoby działania itp. itd. będą jak najbardziej mile widziane Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted November 5 Report Share Posted November 5 Na razie mamy coś takiego. Zostało jeszcze zapamiętanie i przeliczenie początkowych przesunięć widoków w rzutni. RobS, Marek-M and BKW 1 2 Quote Link to comment Share on other sites More sharing options...
Marek-M Posted November 5 Report Share Posted November 5 Jesteście niesamowici Zaraz nam się pomysły skończą i co wtedy będziecie robić w tej Szansie?? Quote Link to comment Share on other sites More sharing options...
BKW Posted November 6 Author Report Share Posted November 6 Brawo, brawo i jeszcze raz brawo. 12 godzin temu, Marek-M napisał: Zaraz nam się pomysły skończą i co wtedy będziecie robić w tej Szansie?? My pomysłów mamy co niemiara, więc pracy nie stracą ;) Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted November 6 Report Share Posted November 6 Dziękujemy za uznanie Oto skrypt do załadowania do synchronizacji widoków w rzutni w przestrzeni modelu ViewChanged.dll Bibliotekę trzeba załadować poleceniem netload, uprzednio odblokowując plik .dll. Po załadowaniu pliku ViewChanged.dll ZWCAD wyświetli komunikat z dostępną listą poleceń, czyli dostępne są 2 nowe polecenia: VIEWSYNCHROSTART - włącza synchronizacje, VIEWSYNCHROSTOP - wyłącza synchronizacje. Skrypt działa w taki sposób, że przesuwanie widoku w rzutniach jest ustawione względem pozycji początkowej, natomiast zoom jest jednakowy. pawmal and BKW 2 Quote Link to comment Share on other sites More sharing options...
BKW Posted November 6 Author Report Share Posted November 6 Super !!! Skrypt działa. Niestety nie dane mi (nam) będzie go dogłębnie przetestować, gdyż posiadamy ZWCADa w wersji 2024. Ale szacunek za ekspresową pomoc i bardzo fajne podejście do rozwiązania problemu. pawmal 1 Quote Link to comment Share on other sites More sharing options...
BKW Posted November 12 Author Report Share Posted November 12 (edited) Potestowałem troszkę skrypt na nowym ZWCadzie 2025 i niestety na moim przypadku nie działa on poprawnie. Poniżej zamieszczam film z zachowania wraz z zrzutem, na którym widać wyświetlany błąd. 2024-11-12 13 27 46.mp4 EDIT: dodam jeszcze, że lokalne układy nie mają znaczenia gdyż przy globalnych skrypt zachowuje się tak samo. Edited November 12 by BKW Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted November 12 Report Share Posted November 12 Czy może Pan podesłać nam w wiadomości prywatnej ten rysunek? Czy sprawdzał Pan działanie skryptu na innych rysunkach? Quote Link to comment Share on other sites More sharing options...
BKW Posted November 13 Author Report Share Posted November 13 16 godzin temu, dmatusz3 napisał: Czy może Pan podesłać nam w wiadomości prywatnej ten rysunek? Jak najbardziej 16 godzin temu, dmatusz3 napisał: Czy sprawdzał Pan działanie skryptu na innych rysunkach? Tak, sprawdzałem. Na kilku plikach mam podobne zachowanie. Potestowałem skrypt na czystym pliku i wyniki na filmie poniżej. Skrypt poprawnie działa gdy używamy do nawigacji i zoomowania scrolla myszki. Gdy używamy polecenia "_zoom" to zawartość drugiego okna przesuwa się w pionie względem pierwszego okna (widać to po poziomej linii). Gdy przełączymy na drugi plik jest podobnie plus dodatkowo w linii komend pojawiają się błędy. 2024-11-13 09 04 27.mp4 Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted November 13 Report Share Posted November 13 Dziękuję. Czyli synchronizacja "rozjeżdża się" gdy użyjemy polecenie zoom. Natomiast podczas przesuwania i zoomowania myszką jest OK. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.