| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Макрос на кнопку смена белого и черного фона экрана

Макрос на кнопку смена белого и черного фона экрана

Ответ
Поиск в этой теме
Непрочитано 27.04.2020, 10:10 #1
Макрос на кнопку смена белого и черного фона экрана
dextron3
 
проектировшик
 
СССР
Регистрация: 01.01.2007
Сообщений: 5,143

Всем привет, хотел спросить можно создать такую кнопку с макросом нажимаешь ее черный фон, нажимаешь повторно белый фон, до сих пор люди работают на белом фоне черными линиями именно черными, и на черном фоне этого не видно, постоянно нужно переключаться чтобы увидеть черную кошку в белой комнате

заранее благодарен
__________________
инженер проектировшик с опттом программа авто гад образование высшие
Просмотров: 3577
 
Непрочитано 27.04.2020, 10:28
#2
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Не задумывался насчет макроса...
Начиная еще с ДОСовского Автокада выбрал для себя серый фон экрана,
на котором ВСЕ цвета видны (кроме конечно цвета соответствующего фону).
Использую 252 цвет для Модели и чуть более тёмный 251 для Листа.
В своё время с.ач на тему цвета поднимался, кажется в теме "Корпоративные стандарты...".
P.S. Чёрный вроде более контрастный, на белом желтого не видно....
Кстати и Autodesk в последних версиях "по умолчанию" предлагает для Модели цвет 33, 40, 48 (темно серый)
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 27.04.2020, 11:15
#3
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,001


GraphicsWinModelBackgrndColor
Сергей812 вне форума  
 
Непрочитано 27.04.2020, 11:45
#4
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Код:
[Выделить все]
 
(defun cycle_bwo_background ( / display_settings _space back_color)
	(if (= "*Paper_Space" (vla-get-name
							(vla-get-block
								(vla-get-activelayout
									(vla-get-ActiveDocument
										(vlax-get-acad-object)
									)
								)
							)
						  )
		)
		(setq _space "graphicswinlayoutbackgrndcolor")
		(setq _space "graphicswinmodelbackgrndcolor")
	)
	(setq back_color (vlax-variant-value
						(vlax-variant-change-type
							((eval (read (strcat "vla-get-" _space)))
								(setq display_settings
									(vla-get-display
										(vla-get-preferences
											(vlax-get-acad-object)
										)
									)
								)
							)
							vlax-vbLong
						)
					 )
	)
	(if (null (eval (read _space)))
		(set (read _space) back_color)
		(if (and
				(/= back_color (eval (read _space)))
				(/= 0 back_color)
				(/= 16777215 back_color)
			)
				(set (read _space) back_color)
		)
	)
	(cond
		(
			(and
				(eval (read _space))
				(/= 0 back_color)
				(/= 16777215 back_color)
			)
				((eval (read (strcat "vla-put-" _space))) display_settings 0)
		)
		(
			(zerop back_color)
				((eval (read (strcat "vla-put-" _space))) display_settings 16777215)
		)
		(
			(and
				(= 16777215 back_color)
				(/= 0 (eval (read _space)))
				(/= 16777215 (eval (read _space)))
			)
				((eval (read (strcat "vla-put-" _space))) display_settings (eval (read _space)))
		)
		(
			t
				(if (= 16777215 back_color)
					((eval (read (strcat "vla-put-" _space))) display_settings 0)
					((eval (read (strcat "vla-put-" _space))) display_settings 16777215)
				)
		)
	)
	(princ)
)

Последний раз редактировалось koMon, 29.04.2020 в 12:22. Причина: циклическое переключение чёрный-белый-установленный цветной
koMon вне форума  
 
Непрочитано 27.04.2020, 11:48
#5
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989


Код:
[Выделить все]
 (defun background_color (/)

  (if (/= (getenv "Background") "16777215")
    (progn
      (vlax-put-property
        (vla-get-display (vla-get-preferences (vlax-get-acad-object)))
        "ModelCrosshairColor"
        000
      )
      (vlax-put-property
        (vla-get-display (vla-get-preferences (vlax-get-acad-object)))
        "GraphicsWinLayoutBackgrndColor"
        16777215
      )
      (vlax-put-property
        (vla-get-display (vla-get-preferences (vlax-get-acad-object)))
        "GraphicsWinModelBackgrndColor"
        16777215
      )
    ) 
    (progn
      (vlax-put-property
        (vla-get-display (vla-get-preferences (vlax-get-acad-object)))
        "ModelCrosshairColor"
        16777215
      )
      (vlax-put-property
        (vla-get-display (vla-get-preferences (vlax-get-acad-object)))
        "GraphicsWinModelBackgrndColor"
        3156001 ; öâåò 33,40,48
      ) 
      (vlax-put-property
        (vla-get-display (vla-get-preferences (vlax-get-acad-object)))
        "GraphicsWinLayoutBackgrndColor"
        3156001 ; öâåò 33,40,48
      )
    ) 
  ) 
)
Nike вне форума  
 
Автор темы   Непрочитано 27.04.2020, 11:57
#6
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


Первый лис допущена ошибка:

defun C:

Откорректировал заработало, спасибо, но теперь на черном экране не видит область выделения она тоже черная, почему лисп меняет и другие настройки цвета, нужно исключительно только экран uniform backgraund

Второй лисп неизвестный шрифт абракадабра перед цветовыми координатами
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 27.04.2020 в 15:00.
dextron3 вне форума  
 
Непрочитано 27.04.2020, 19:44
#7
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от koMon Посмотреть сообщение
((eval (read (strcat "vla-get-" _model)))
koMon, в 17-й строке забыл исправить _model на _space, полагаю, когда решил сделать универсально для листа и модели)
Цитата:
Сообщение от dextron3 Посмотреть сообщение
defun C:

Откорректировал заработало
Странно, как заработало? У меня вываливает ошибку
Код:
[Выделить все]
; ошибка: неверный тип аргумента: stringp nil
что, с учетом вышесказанного, ожидаемо. А отсутствие C: говорит лишь о том, что эта функция и вызывать ее надо со скобками.
Цитата:
Сообщение от dextron3 Посмотреть сообщение
но теперь на черном экране не видит область выделения она тоже черная, почему лисп меняет и другие настройки цвета
Такого не наблюдалось.
Цитата:
Сообщение от dextron3 Посмотреть сообщение
Второй лисп неизвестный шрифт абракадабра перед цветовыми координатами
Абракадабра в комментарии - он не влияет на исполняемую часть кода. Все работает, правда, цвет экрана переключается не на черный, а на серый.
skkkk вне форума  
 
Непрочитано 27.04.2020, 20:19
#8
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от skkkk Посмотреть сообщение
забыл исправить _model на _space, полагаю, когда решил сделать универсально для листа и модели
Цитата:
Holy fuck, а ведь точняк))) не пора ли нам встретиться и бухнуть?!
Но не совсем так. Она (функция) и была универсальной, просто я решил элиминировать повторяющийя кусок.
Поправил.
koMon вне форума  
 
Непрочитано 27.04.2020, 20:54
#9
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от koMon Посмотреть сообщение
не пора ли нам встретиться и бухнуть?!
Внезапно
Ну да а почему бы и нет?
Тем более по такому поводу, как space
skkkk вне форума  
 
Непрочитано 28.04.2020, 10:13
#10
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


не внезапно)))
space это на сегодня наверное самое актуальное слово после covid-19...
koMon вне форума  
 
Непрочитано 29.04.2020, 08:45
#11
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Вариант от Apelsinov:
Код:
[Выделить все]
 ;;;функция возврата текущего цвета экрана в модели по OLE
;;;Apelsinov
;;;19.07.05
(defun APEL-MODELBACKGRNDCOLOR_OLE ()
  (vlax-variant-value
    (vlax-variant-change-type
      (vla-get-graphicswinmodelbackgrndcolor
        (vla-get-display
          (vla-get-preferences (APEL-ACAD_APPLICATION))
        )
      )
      vlax-vblong
    )
  )
)
;;;  (apel-modelbackgrndcolor_OLE)

;;;Функция присвоения экрану в модели цвету по OLE
;;;color - номер цвета по  OLE
;;;Apelsinov
;;;19.07.05
(defun APEL-PUT-MODELBACKGRNDCOLOR_OLE (color /)
  (vla-put-graphicswinmodelbackgrndcolor
    (vla-get-display
      (vla-get-preferences (APEL-ACAD_APPLICATION))
    )
    color
  )
)
;;;(APEL-PUT-MODELBACKGRNDCOLOR_OLE 0)


;;;Изменение цвета экрана с цвета color1 на цвет color2 и наоборот
;;;Apelsinov
;;;19.07.05
(defun APEL-PUT-MODELBACKGRNDCOLOR_REVERSE_TWO_COLOR (color1 color2 / current_color)
  (setq current_color (apel-modelbackgrndcolor_OLE))
  (cond ((eq current_color color1) (APEL-PUT-MODELBACKGRNDCOLOR_OLE color2))
        ((eq current_color color2) (APEL-PUT-MODELBACKGRNDCOLOR_OLE color1))
        ((alert "\nЦвет фона экрана не опознан!"))
  )
)
;;;(APEL-PUT-MODELBACKGRNDCOLOR_REVERSE_TWO_COLOR 0 16777215)


;;;Apelsinov
;;;13.05.05
(defun APEL-ACAD_APPLICATION ()
  (if (null *apel_acad_application*)
    (setq *apel_acad_application* (vlax-get-acad-object))
    *apel_acad_application*
  )
)


;^C^C(APEL-PUT-MODELBACKGRNDCOLOR_REVERSE_TWO_COLOR 0 16777215)


;;;функция возврата текущего цвета экрана в лесте по OLE
;;;Apelsinov
;;;19.07.05
(defun APEL-LAYOUTBACKGRNDCOLOR_OLE ()
  (vlax-variant-value
    (vlax-variant-change-type
      (vla-get-graphicswinlayoutbackgrndcolor
        (vla-get-display
          (vla-get-preferences (APEL-ACAD_APPLICATION))
        )
      )
      vlax-vblong
    )
  )
)
;;;  (apel-modelbackgrndcolor_OLE)

;;;Функция присвоения экрану в модели цвету по OLE
;;;color - номер цвета по  OLE
;;;Apelsinov
;;;19.07.05
(defun APEL-PUT-LAYOUTBACKGRNDCOLOR_OLE (color /)
  (vla-put-graphicswinlayoutbackgrndcolor
    (vla-get-display
      (vla-get-preferences (APEL-ACAD_APPLICATION))
    )
    color
  )
)
;;;(APEL-PUT-MODELBACKGRNDCOLOR_OLE 0)


;;;Изменение цвета экрана с цвета color1 на цвет color2 и наоборот
;;;Apelsinov
;;;19.07.05
(defun APEL-PUT-LAYOUTBACKGRNDCOLOR_REVERSE_TWO_COLOR (color1 color2 / current_color)
  (setq current_color (apel-layoutbackgrndcolor_OLE))
  (cond ((eq current_color color1) (APEL-PUT-LAYOUTBACKGRNDCOLOR_OLE color2))
        ((eq current_color color2) (APEL-PUT-LAYOUTBACKGRNDCOLOR_OLE color1))
        ((alert "\nЦвет фона экрана не опознан!"))
  )
)






(defun Kr-LAYOUTBACKGRNDCOLOR_REVERSE ()
  (if (= (Getvar "TILEMODE") 0)
    (if	(not (or (eq (APEL-LAYOUTBACKGRNDCOLOR_OLE) 0)
		 (eq (APEL-LAYOUTBACKGRNDCOLOR_OLE) 16777215)
	     )
	)
      (APEL-PUT-LAYOUTBACKGRNDCOLOR_OLE 0)
      (APEL-PUT-LAYOUTBACKGRNDCOLOR_REVERSE_TWO_COLOR 0 16777215)
    )					;if

    (if	(not (or (eq (apel-modelbackgrndcolor_OLE) 0)
		 (eq (apel-modelbackgrndcolor_OLE) 16777215)
	     )
	)
      (APEL-PUT-MODELBACKGRNDCOLOR_OLE 0)
      (APEL-PUT-MODELBACKGRNDCOLOR_REVERSE_TWO_COLOR 0 16777215)
    )
  )
)
На кнопку повесить (Kr-LAYOUTBACKGRNDCOLOR_REVERSE)
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Макрос на кнопку смена белого и черного фона экрана

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SPDS макрос на кнопку масштаб нужна помощь dextron3 ПО от CSoft 18 20.05.2019 13:37
Как заменить цвет экрана с черного на белый в Autocad Architecture2012 KaterinaP AutoCAD 14 01.08.2012 14:38
Дайте макрос на кнопку LINE dextron3 Программирование 41 17.03.2009 18:33
Есть макрос на кнопку на выпадающие меню? dextron3 Программирование 3 29.08.2007 13:26
При смене фона с черного не белый курсор пропадает. Lenich Программирование 3 24.12.2004 19:12