Edycja tekstu wymiarowego


Rekomendowane odpowiedzi

Dnia 29.11.2016 o 07:29, Bartek1977 napisał:

Trzeba jeszcze raz kliknąć na tekst lub użyć strzałki i backspace, żeby pisać.

"Pisać można od razu w obu programach.

Jedyną różnicą na jaką zwróciliśmy uwagę jest to, że w 2015 pisany tekst nadpisuje tekst wymiarowy, w 2017 nowy tekst jest dopisywany obok istniejące tekstu wymiarowego."

Powracam do tematu, bo kolejne wersje nie wprowadziły tej, jakże przydatnej dla mnie dogodności. Chodzi o to, żeby po jednym kliknięciu edycją tekstu na wymiarze można było od razu nadpisać tekst wymiarowy (tak jak jest to przy edycji tekstu jednowierszowego). Zdarza się, że muszę nadpisać tysiące wymiarów i bardzo ułatwiłoby mi to pracę. Może udałoby się zrobić jakiegoś lispa 😉

I jeszcze jedna rzecz, żeby nie zakładać nowego tematu. Czy istnieje możliwość wyodrębnienia edytowanych wymiarów? Tzn. chcę zaznaczyć tylko te wymiary, w których zmieniłem tekst. Super rozwiązaniem byłoby, gdyby wymiar po edycji zmieniał z automatu kolor lub warstwę. Wtedy od razu bym wiedział, który był edytowany, a który nie. Wyobrażam sobie to tak: _DDEDIT > jedno kliknięcie na tekst wymiarowy > nadpisanie tekstu > ok > wymiar lub tekst wymiarowy zmienia kolor.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Myślę, że na domyślną zmianę zachowania edycji nie ma co liczyć, ponieważ tak obecnie jest w Autocadzie.

edycja_wymiaru_autocad.gif

 

Myślę jednak, że opracujemy taki skrypt jaki jest Panu potrzebny.

Ewentualnie prosto można zrobić także LISPa do zaznaczenia wszystkich wymiarów gdzie wartość tekstu wymiarowego jest wpisana "z rączki".

Odnośnik do komentarza
Udostępnij na innych stronach

pomysł do przemysleń.... a jakby ZWSOFT tak "nie odmalpował od AUTOCADA" tylko umożliwiłby poprzez jakąś zmienną systemową|
ustawienie wg np. 2 opcji wyboru ...

#1 tak jak kiedys było do 2015+

#2 jak w Autocadzie

to było by bardziej postępowe i twórcze/innowacyjne niż "odmałpowywanie" AUTOCADOWYCH" rozwiązań bo tak rzekomo amerykanie sobie wydumali

dlatego też nie dziwi mnie "wstrzymanie" rozwoju ZWCAD ARCHITECTURE od kilku lat..bo widze co podają 😉

Odnośnik do komentarza
Udostępnij na innych stronach

Przygotowłem taki kawałek LISP:

Polecenia:

  • EdycjaWymiaru - prosi o zaznaczenie wymiaru, podanie nowej treści i zamienia kolor
  • ZaznaczZmienione - wyszukuje w rysunku wszystkie wymiarowania, które mają nadpisany tekst

Gotowy plik w załączniku

(setq COLORINDEX 1 )	; Zmień tą wartość jeśli chcesz inny kolor niż czerwony (domyślnie 1)

(defun C:EdycjaWymiaru (  / element newVal 
	*error* )	(defun *error* ( msg / ) 
		(if (not (null msg ) )	(progn (princ "\nC:EdycjaWymiaru:*error*: " ) (princ msg ) (princ "\n")	) )
	)
	(setq element (SelSet:Entsel "Wybierz wymiar" (list (cons 0 "*DIMENSION" ) ) ) )
	
	(setq newVal (String:Get "Nowa treść: " "" ) )
	
	(vlax-put-property element 'Color COLORINDEX )
	(vlax-put-property element 'TextOverride newVal )	
)

(defun C:ZaznaczZmienione (  / selItems
	*error* )	(defun *error* ( msg / ) 
		(if (not (null msg ) )	(progn (princ "\nC:ZazmaczZmienione:*error*: " ) (princ msg ) (princ "\n")	) )
	)
	(setq selItems (ssget "_X" '( ( 0 . "*DIMENSION") (-4 . "<NOT") (1 . "") (-4 . "NOT>" ) ) ) )
	(sssetfirst selItems selItems)
	
)



(defun String:Get (komunikat defVal / Wynik tekst )
	(if defVal (if (not(= defVal "")) (setq komunikat (strcat komunikat "<" defVal ">:" ) )) )
	(setq tekst(vl-catch-all-apply 'getstring (list T komunikat )))
	(if (vl-catch-all-error-p tekst)
	(progn
		(prompt (vl-catch-all-error-message tekst))
		(setq Wynik nil )
	)
	(progn
	  (if (null tekst) 
		(setq Wynik defVal )
		(if (= tekst "")
			(setq Wynik defVal )
			(if (= tekst ".")
				(setq Wynik "")
				(setq Wynik tekst)
			)
		)
	  )
	)
  )
  Wynik

)

(defun SelSet:Entsel (tresc filter / OldNoMutt MSel OutVal )

	(setq tresc (strcat "\n" tresc ": ") )
	(prompt tresc )
	
	(setq OldNoMutt (getvar 'NOMUTT))	
	(setvar 'NOMUTT 1)	
	(setq MSel
		(if (null filter)
			(vl-catch-all-apply 'ssget (list ":S:E" ))
			(vl-catch-all-apply 'ssget (list ":S:E" filter ))
		)
	)
		
	(setvar 'NOMUTT OldNoMutt )
	(if (vl-catch-all-error-p MSel)
	(progn
		(prompt (vl-catch-all-error-message MSel))
	)
	(progn
	  (if MSel (progn		
		(setq OutVal (vlax-ename->vla-object  (ssname MSel 0)) )			
	  ))
	)
	)
	OutVal
)


    OutVal
)

EdycjaWymiaru.lsp

Odnośnik do komentarza
Udostępnij na innych stronach

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