BKW Opublikowano 4 Listopada Zgłoś Udostępnij Opublikowano 4 Listopada 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 4 Listopada Zgłoś Udostępnij Opublikowano 4 Listopada 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BKW Opublikowano 4 Listopada Autor Zgłoś Udostępnij Opublikowano 4 Listopada 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 4 Listopada Zgłoś Udostępnij Opublikowano 4 Listopada 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BKW Opublikowano 4 Listopada Autor Zgłoś Udostępnij Opublikowano 4 Listopada 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BKW Opublikowano 4 Listopada Autor Zgłoś Udostępnij Opublikowano 4 Listopada 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) ) Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 5 Listopada Zgłoś Udostępnij Opublikowano 5 Listopada 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? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BKW Opublikowano 5 Listopada Autor Zgłoś Udostępnij Opublikowano 5 Listopada 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 5 Listopada Zgłoś Udostępnij Opublikowano 5 Listopada Na razie mamy coś takiego. Zostało jeszcze zapamiętanie i przeliczenie początkowych przesunięć widoków w rzutni. Marek-M, BKW i RobS 1 2 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek-M Opublikowano 5 Listopada Zgłoś Udostępnij Opublikowano 5 Listopada Jesteście niesamowici Zaraz nam się pomysły skończą i co wtedy będziecie robić w tej Szansie?? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BKW Opublikowano 6 Listopada Autor Zgłoś Udostępnij Opublikowano 6 Listopada 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ą ;) Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 6 Listopada Zgłoś Udostępnij Opublikowano 6 Listopada 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 i BKW 2 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BKW Opublikowano 6 Listopada Autor Zgłoś Udostępnij Opublikowano 6 Listopada 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BKW Opublikowano 12 Listopada Autor Zgłoś Udostępnij Opublikowano 12 Listopada (edytowane) 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. Edytowane 12 Listopada przez BKW Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 12 Listopada Zgłoś Udostępnij Opublikowano 12 Listopada Czy może Pan podesłać nam w wiadomości prywatnej ten rysunek? Czy sprawdzał Pan działanie skryptu na innych rysunkach? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BKW Opublikowano 13 Listopada Autor Zgłoś Udostępnij Opublikowano 13 Listopada 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 13 Listopada Zgłoś Udostępnij Opublikowano 13 Listopada Dziękuję. Czyli synchronizacja "rozjeżdża się" gdy użyjemy polecenie zoom. Natomiast podczas przesuwania i zoomowania myszką jest OK. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.