Edycja tekstu wymiarowego


Recommended Posts

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.

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...