justyha Posted May 23, 2014 Report Share Posted May 23, 2014 Witam Czy ktoś z Was wie może jak ustawić wymiarowanie obiektu tak żeby pokazywał daną wartość po dodaniu do wymiaru jakiejś stałej liczby?. Np. linia ma 5.5m natomiast stała wartość to np 132. Chciałabym aby wyświetlało mi finalnie wartość 137.5 (czyli 5.5+132). Da się to jakoś zrobić? Z góry dziękuje Pozdrawiam Justyna Quote Link to comment Share on other sites More sharing options...
pawmal Posted May 23, 2014 Report Share Posted May 23, 2014 Witam Po zaznaczeniu wymiaru, na pasku Właściwości, w grupie Tekst, w polu Zmiana tekstu można ręcznie wpisać konkretną wartość. Pozdrawiam Quote Link to comment Share on other sites More sharing options...
Martin_S Posted May 23, 2014 Report Share Posted May 23, 2014 (edited) Można nawet wpisac formułe 132+5.5=137.5 (cokolwiek) np. rozstaw strzemion: 8x150=<> a wyświetli wtedy 8x150=1200 , wpis <> podaje dokładną wartość wymiaru Edited May 23, 2014 by Martin_S Quote Link to comment Share on other sites More sharing options...
justyha Posted May 23, 2014 Author Report Share Posted May 23, 2014 Nie chodzi mi o nadpisanie wymiaru. Bardziej o narzędzie do wymiarowania, że każdy wymiar będzie mi powiększał/pomniejszał o wartość stałą jaką wybiorę i interesuje mnie tylko wynik. Czyli mierzę linię która ma 5,5m, a wyświetla mi 137.5m (przy narzuconej wcześniej wartości stałej 132). Przy stylach wymiarowania w ZWC mogę sobie pomnożyć lub podzielić o jakiś współczynnik. A mi potrzebny jest taki styl wymiaru albo coś który powiększy/pomniejszy wymiar o jakąś stałą wartość) Quote Link to comment Share on other sites More sharing options...
perlon Posted May 23, 2014 Report Share Posted May 23, 2014 Obawiam się, że chodzi o to żeby wymiar zmieniał się dynamicznie i aktualizował się np przy zmianie. Zdaje się, że wtdy potrzebny będzie reaktor obsługujący obiekt typu "wymiar" i podpięta pod niego funkcja np. w lispie która na bieżąco wyliczy sumę jakiejś wartości i rzeczywistego wymiaru. Generalnie chyba nie takie proste, a i ZwCAD chyba reaktorów na wymiarach nie obsługuje ( tego nie jestem pewien, nie sprawdzałem ) Quote Link to comment Share on other sites More sharing options...
pawmal Posted May 23, 2014 Report Share Posted May 23, 2014 Nie chodzi mi o nadpisanie wymiaru. Bardziej o narzędzie do wymiarowania, że każdy wymiar będzie mi powiększał/pomniejszał o wartość stałą jaką wybiorę i interesuje mnie tylko wynik. Czyli mierzę linię która ma 5,5m, a wyświetla mi 137.5m (przy narzuconej wcześniej wartości stałej 132). Przy stylach wymiarowania w ZWC mogę sobie pomnożyć lub podzielić o jakiś współczynnik. A mi potrzebny jest taki styl wymiaru albo coś który powiększy/pomniejszy wymiar o jakąś stałą wartość) Witam Obawiam się, że ustawienie tego z automatu nie będzie możliwe. Rysunki tworzymy zazwyczaj w 1:1 lub w skali. W przypadku tworzenia rysunków w konkretnej skali, w razie potrzeby można wtedy przemnożyć wartości wymiarów. Pozdrawiam Quote Link to comment Share on other sites More sharing options...
kojacek Posted May 23, 2014 Report Share Posted May 23, 2014 Witam Obawiam się, że ustawienie tego z automatu nie będzie możliwe. Rysunki tworzymy zazwyczaj w 1:1 lub w skali. W przypadku tworzenia rysunków w konkretnej skali, w razie potrzeby można wtedy przemnożyć wartości wymiarów. Pozdrawiam Jeśli ZwCAD obsługuje obiekty typu FIELD, jest to jak najbardziej możliwe. W AutoCAD zrobiłem to tak: Utworzyłem obiekt tekstowy typu field, z przypisaną formułą typu 100 + <wartość wskazanego wymiaru>. Następnie, edytując ten wymiar, zamiast <> wprowadzam field z wartością tego tekstu. W efekcie wartość pokazywana przez wymiar pokazuje owe 100 + jego długość. Oczywiście edycja wymiaru uchwytami (rozciągnięcie) i regeneracja, nadążają za zmianami. Quote Link to comment Share on other sites More sharing options...
pawmal Posted May 26, 2014 Report Share Posted May 26, 2014 Witam ZWCAD obsługuje obiekty FIELD, ale do przedstawionego sposobu byłaby potrzebna jeszcze obsługa formuł. Jeśli dobrze zrozumiałem post @justyha, to chodzi o proste narzędzie, w którym można zdefiniować jakąś wartość, która ma być za każdym razem dodawana do tworzonego wymiaru. Pozdrawiam Quote Link to comment Share on other sites More sharing options...
justyha Posted May 26, 2014 Author Report Share Posted May 26, 2014 dokładnie tak @pawmal :) Quote Link to comment Share on other sites More sharing options...
kojacek Posted May 26, 2014 Report Share Posted May 26, 2014 Witam ZWCAD obsługuje obiekty FIELD, ale do przedstawionego sposobu byłaby potrzebna jeszcze obsługa formuł. Jeśli dobrze zrozumiałem post @justyha, to chodzi o proste narzędzie, w którym można zdefiniować jakąś wartość, która ma być za każdym razem dodawana do tworzonego wymiaru. Pozdrawiam Jeśli dobrze zrozumiałem ZwCAD obsługuje FIELD-y ale (jednocześnie) nie obsługuje formuł? Jeśli zaś obsługuje, to proste narzędzie można przecież wykrzesać lisp-em, nieszczególnie skomplikowanym. Rozwiązanie które proponuję, właśnie dodaje dowolną wartość do (rzeczywistego) tekstu wymiarowego, w sposób dynamiczny (rozciągnięcie wymiaru nadąża za zmianami). Quote Link to comment Share on other sites More sharing options...
justyha Posted May 26, 2014 Author Report Share Posted May 26, 2014 Jeżeli mogę troszkę skomplikować sprawę to pomocna by była taka opcja aby ten rzeczywisty wymiar móc przeskalować dodatkowo. Po mojemu to by wyglądało mniej więcej tak: 1. Wybieram polecenie X 2. Wybieram współczynnik do przeskalowania np. 0.01 3. Wybieram wartość stałą np.130 Czyli wychodzi tak: Odmierzony wymiar rzeczywisty mam np 660, zeskalowany ( *0.01) wychodzi w domyśle 6.6, a wyświetla mi 136.6. Quote Link to comment Share on other sites More sharing options...
Martin_S Posted May 26, 2014 Report Share Posted May 26, 2014 (edited) @justyha ... Do jakiego i czego jest potrzeba taka specyficzna, niestandardowa metoda ... może coś innego by dało radę wymysleć by to "obejść", ale nie wiem do czego ta idea ma służyć, proszę o przykłady , jeśli można. Bo to nie jest standardowe kreslenie CAD 1:1 i lokalne skalowania (np. 1:50 1:20 w rzutniach na obszarze papieru). Edited May 26, 2014 by Martin_S Quote Link to comment Share on other sites More sharing options...
justyha Posted May 26, 2014 Author Report Share Posted May 26, 2014 Prosta sprawa ta funkcja przydałaby mi się do sprawdzania profili sieci zewnętrznych. Jak się rozgrzebuje zaczętą wcześniej pracę lub kończy po kimś. Szybkie przelecenie rzędnych bez dodawania pojedynczo każdego wymiaru do rzędnej odniesienia eliminuje też ryzyko błędu. Tak opcja przyśpieszyłaby znacznie pracę. Jeżeli ktoś ma jakiś myk ciekawy na to, byłoby fajnie jakby się podzielił ;) Quote Link to comment Share on other sites More sharing options...
KBR Posted May 26, 2014 Report Share Posted May 26, 2014 Taka opcja byłaby przydatna do wymiarowania profili.Ja sobie radzę w ten sposób, że zaczepiam wymiar odpowiednio niżej (baza) i jakoś działa, ale nie jest to zbyt wygodne. Quote Link to comment Share on other sites More sharing options...
kojacek Posted May 27, 2014 Report Share Posted May 27, 2014 Pobadajcie takiego lispa. Działa w ten sposób: Jeśli nie ma zdefiniowanej zmiennej globalnej *XDIMDATA*, prosi o podanie stałej (dodawanej do wymiaru) oraz współczynnika skalowania długości (tutaj można dać ENTER (wtedy bez współczynnika). Potem należy wskazać pierwszy punkt wymiaru, potem drugi. W konsekwencji malowany jest wymiar z nadpisanym tekstem wymiarowym o wartości WYMIAR x WSPÓŁCZYNNIK + STAŁA. Po załadowaniu lisp-a, polecenie XDIM ; ------------------------------------------------------------------------------------------- ; ; by kojacek 2014 ; ------------------------------------------------------------------------------------------- ; (defun C:XDIM (/ pt Cmd v1 v2 e el d n nd) (if (not *XDIMDATA*) (progn (initget (+ 1 2 4)) (setq v1 (getreal "\nPodaj stałą wymiaru: ") v2 (getreal "\nPodaj współczynnik (lub ENTER): ") ) (setq *XDIMDATA* (list v1 v2)) ) ) (if (setq pt (getpoint "\nOkreśl początek pierwszej pomocniczej linii wymiarowej: ") ) (progn (setq Cmd (getvar "CmdEcho") e (entlast) ) (setvar "CmdEcho" 0) (command "_.DimLinear" pt) (command "'_.SetVar" "CmdEcho" Cmd) (while (= 1 (logand (getvar "CmdActive") 1)) (command "\\") ) (if (eq (setq el (entlast)) e) (princ "\nAnulowano. ") (progn (setq d (entget el) n (cdr (assoc 42 d)) n (* (if (not (cadr *XDIMDATA*)) 1 (cadr *XDIMDATA*)) n) n (+ (car *XDIMDATA*) n) nd (subst (cons 1 (rtos n))(assoc 1 d) d) ) (entmod nd) ) ) ) (princ "\nAnulowano. ") ) (princ) ) Sprawdźcie czy działa... Quote Link to comment Share on other sites More sharing options...
justyha Posted May 27, 2014 Author Report Share Posted May 27, 2014 (edited) hehe :D działa! - jak się wybiera pierwszy i drugi punkt to pisze >Invalid point input< ale działa poprawnie - dało by się jeszcze ustawić żeby wyświetlało tylko 2 zaokrąglone miejsca po przecinku? Edited May 27, 2014 by justyha Quote Link to comment Share on other sites More sharing options...
kojacek Posted May 27, 2014 Report Share Posted May 27, 2014 Zmień kod na poniższy i sprawdź teraz: ; ------------------------------------------------------------------------------------------- ; ; by kojacek 2014 ; ------------------------------------------------------------------------------------------- ; (defun C:XDIM (/ pt Cmd v1 v2 e el d n nd) (if (not *XDIMDATA*) (progn (initget (+ 1 2 4)) (setq v1 (getreal "\nPodaj stałą wymiaru: ") v2 (getreal "\nPodaj współczynnik (lub ENTER): ") ) (setq *XDIMDATA* (list v1 v2)) ) ) (if (setq pt (getpoint "\nOkreśl początek pierwszej pomocniczej linii wymiarowej: ") ) (progn (setq Cmd (getvar "CmdEcho") e (entlast) ) (setvar "CmdEcho" 0) (command "_.DimLinear" pt) (setvar "CmdEcho" Cmd) ; (command "'_.SetVar" "CmdEcho" Cmd) (while (= 1 (logand (getvar "CmdActive") 1)) (command "\\") ) (if (eq (setq el (entlast)) e) (princ "\nAnulowano. ") (progn (setq d (entget el) n (cdr (assoc 42 d)) n (* (if (not (cadr *XDIMDATA*)) 1 (cadr *XDIMDATA*)) n) n (+ (car *XDIMDATA*) n) nd (subst (cons 1 (rtos n 2 2))(assoc 1 d) d) ) (entmod nd) ) ) ) (princ "\nAnulowano. ") ) (princ) ) Quote Link to comment Share on other sites More sharing options...
pawmal Posted May 27, 2014 Report Share Posted May 27, 2014 Witam Potwierdzam, u mnie działa bardzo dobrze według założeń. Pozdrawiam Quote Link to comment Share on other sites More sharing options...
justyha Posted May 27, 2014 Author Report Share Posted May 27, 2014 (edited) Również potwierdzam działa elegancko :good: Bardzo dziękuje! Pozdrawiam PS: Dodatkowo fajnie, że jest sprzężone ze stylami wymiarów, więc można sobie dowolnie modyfikować pod względem wizualnym, ale najlepiej stworzyć oddzielny styl dla tego narzędzia, bo można przeskalować sobie coś podwójnie niechcący ;) Edited May 27, 2014 by justyha Quote Link to comment Share on other sites More sharing options...
KBR Posted May 29, 2014 Report Share Posted May 29, 2014 Procedura działa nieźle. Ja zrobiłem dwa warianty żeby można było wstawić od nowa stałe. Pewnym mankamentem jednak jest to , że wymiar nie jest dynamiczny i przy zmianach trzeba wymiarować od nowa, gorzej jak się zapomni. Quote Link to comment Share on other sites More sharing options...
justyha Posted May 29, 2014 Author Report Share Posted May 29, 2014 (edited) @KBR możesz rozwinąć jak dokładniej działają u Ciebie te dwa warianty? Zastanawiam się też jak można zmienić stałą lub współczynnik podczas gdy narzędzie jest już załadowane? Czy da się jakoś zresetować to narzędzie? Edited May 29, 2014 by justyha Quote Link to comment Share on other sites More sharing options...
kojacek Posted May 29, 2014 Report Share Posted May 29, 2014 (edited) Zastanawiam się też jak można zmienić stałą lub współczynnik podczas gdy narzędzie jest już załadowane? Czy da się jakoś zresetować to narzędzie? Tak. Wystarczy w linii poleceń wpisać: (setq *XDIMDATA* nil) Ponowne wywołanie polecenia XDIM, odpyta o nowe dane. Oczywiście nowe ustawienia zadziałają tylko dla nowych wymiarów, Można pomysleć o jakimś reaktorze, dla takich wymiarów (aby nadać im dynamiki), ale chyba narzędzie jest zbyt niszowe, by się w to bawić (?) Edyta: Inna opcja to "przywiązanie" danych (współczynnika i stałej) do wymiaru. Taki zabieg pozwoliłby sprawdzić wartości i nawet je modyfikować. Edited May 29, 2014 by kojacek Quote Link to comment Share on other sites More sharing options...
KBR Posted May 29, 2014 Report Share Posted May 29, 2014 Ja zrobiłem wariant z którego usunąłem if i za każdy razem pyta o wartości i nazwałem XDIM1. Narzędzie nie jest takie całkiem niszowe bo bardzo przydatne do rysowania profili (np w hydrotechnice profili cieku, wałów ale i przekroje poprzeczne, podobnie dla dróg) rzędne można podawać w formie wymiaru. Ja czasem tak robię wtedy początek wymiarów ustawiam w przyjętym "0" bezwzględny dla układu, a nie w poziomie porównawczym. Quote Link to comment Share on other sites More sharing options...
kojacek Posted May 29, 2014 Report Share Posted May 29, 2014 Ja zrobiłem wariant z którego usunąłem if i za każdy razem pyta o wartości i nazwałem XDIM1. Narzędzie nie jest takie całkiem niszowe bo bardzo przydatne do rysowania profili (np w hydrotechnice profili cieku, wałów ale i przekroje poprzeczne, podobnie dla dróg) rzędne można podawać w formie wymiaru. Ja czasem tak robię wtedy początek wymiarów ustawiam w przyjętym "0" bezwzględny dla układu, a nie w poziomie porównawczym. Nie ma potrzeby tworzenia wariantu polegającego na usuwaniu czekokolwiek. Wystarczy zdefiniować nowe polecenie np. XDIM2, w taki sposób: (defun C:XDIM2 ()(setq *XDIMDATA* nil)(C:XDIM)(princ)) Zaletą takiego rozwiązania jest wykorzystywanie wcześniej zdefiniowanej funkcji (polecenia) C:XDIM, bez niepotrzebnego kopiowania (w efekcie dublowania) kodu. Wbrew pozorom (rzekomej nieszkodliwości) ma to głęboki sens, w utrzymaniu spójności i "czystości" rozwiązań. Quote Link to comment Share on other sites More sharing options...
kojacek Posted May 30, 2014 Report Share Posted May 30, 2014 (edited) A co powiecie na coś takiego? Rysując wymiar skażony dane (stała i współczynnik) przypisane są do wymiaru. Pozwala to mieć w rysunku różne wymiary z różnymi danymi. I teraz, takie polecenie -XDIM, ma następujące opcje: Rysuj - rysuje wymiar zmieniając tekst (tak jak wcześniejsze XDIM)Uzgodnij - przypisuje dowolnie wskazanym wymiarom ustawienia (stała i współczynnik) z wymiaru źródłowego.Aktualizuj - po rozciągnięciu wymiaru skażonego, pozwala go zaktualizować.Przywróć - usuwa "skażenie" - przywraca wymiar o długości normalnejUstawienia - ustawienia współczynnika i skali Idziemy w tym kierunku? Edited May 30, 2014 by kojacek 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.