Rekomendowane odpowiedzi

Opublikowano

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

Opublikowano (edytowane)

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

Edytowane przez Martin_S
Opublikowano

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ść)

Opublikowano

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 )

Opublikowano

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

Opublikowano

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.

post-451-0-17772100-1400857899.png

Opublikowano

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

Opublikowano

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).

Opublikowano

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.

Opublikowano (edytowane)

@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).

Edytowane przez Martin_S
Opublikowano

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ł ;)

Opublikowano

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.

Opublikowano

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...

Opublikowano (edytowane)

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?

Edytowane przez justyha
Opublikowano

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)
)

Opublikowano (edytowane)

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 ;)

Edytowane przez justyha
Opublikowano

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.

Opublikowano (edytowane)

@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?   

Edytowane przez justyha
Opublikowano (edytowane)

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ć.

Edytowane przez kojacek
Opublikowano

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.

Opublikowano

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ń. 

Opublikowano (edytowane)

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:

post-451-0-00843800-1401434009_thumb.png

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 normalnej
Ustawienia - ustawienia współczynnika i skali

Idziemy w tym kierunku?

Edytowane przez kojacek

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ą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie