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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Цвет курсора пространства листа=цвету текущего слоя

Цвет курсора пространства листа=цвету текущего слоя

Ответ
Поиск в этой теме
Непрочитано 14.09.2005, 02:42 #1
Цвет курсора пространства листа=цвету текущего слоя
mmax
 
Программист широкого профиля.
 
Челябинск
Регистрация: 08.09.2005
Сообщений: 722

http://dwg.ru/forum/viewtopic.php?t=4225
это для модели

А как сделать для листа?

Всем спасибо
Просмотров: 4758
 
Непрочитано 14.09.2005, 08:38
#2
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Замени в программе Апельсинова ModelCrosshairColor на LayoutCrosshairColor, и будет тебе щастье.
Лентяй вне форума  
 
Непрочитано 14.09.2005, 09:08
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Так там достаточно заменить функцию (vla-put-modelcrosshaircolor ...) на (vla-put-layoutcrosshaircolor ...)
Если надо универсальное, то по идее определять активную вкладку либо через (getvar "tilemode"), либо через ActiveX - например, так:
Код:
[Выделить все]
(defun apel-cursor-get_color (flag / var_color ole_color)
  (vl-load-com)
  (if (= 1 (vlax-get-activespace (vlax-get-activedocument (vla-get-acad-object))))
    (setq var_color (vla-get-modelcrosshaircolor
          (vla-get-display
      (vla-get-preferences (apel-acad_application))
      ) ;_ end of vla-get-display
          ) ;_ end of vla-get-modelcrosshaircolor
    ) ;_ end of setq
    (setq var_color (vla-get-layoutcrosshaircolor
          (vla-get-display
      (vla-get-preferences (apel-acad_application))
      ) ;_ end of vla-get-display
          ) ;_ end of vla-get-layoutcrosshaircolor
    ) ;_ end of setq
    ) ;_ end of if
  (setq  ole_color (vlax-variant-value
        (vlax-variant-change-type var_color vlax-vblong)
        ) ;_ end of vlax-variant-value
  ) ;_ end of setq
  (if (= flag "ACI")
    (apel-ole-to-aci-color ole_color)
    ole_color
    ) ;_ end of if
  ) ;_ end of defun
Что-то типа такого имхо.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.09.2005, 12:10
#4
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


apel-cursor-get_color - это функция для получения текущего цвета курсора, а не задания его.

Чтобы задать цвет можно так:
Код:
[Выделить все]
(defun APEL-CURSOR-PUT_COLOR (ACI_color /)
  ((cond ((eq (vla-get-ActiveSpace (APEL-ACTIVE_DOCUMENT)) 1)
	  vla-put-ModelCrosshairColor
	 )
	 (vla-put-LayoutCrosshairColor)
   )
    (vla-get-display
      (vla-get-preferences (APEL-ACAD_APPLICATION))
    )
    (APEL-ACI-TO-OLE-COLOR ACI_color)
  )
)
но тогда цвета курсоров в модели и в листе будут разных цветов, что не правильно. Поэтому универсально так:

Код:
[Выделить все]
;;;Присвоение курсору цвета
;;;Apelsinov
;;;14.09.05
;;;ACI_color - цвет из 256 по ACI
(defun APEL-CURSOR-PUT_COLOR (ACI_color / display OLE_color)
  (setq	display	  (vla-get-display
		    (vla-get-preferences (APEL-ACAD_APPLICATION))
		  )
	OLE_color (APEL-ACI-TO-OLE-COLOR ACI_color)
  )
  (vla-put-ModelCrosshairColor display OLE_color)
  (vla-put-LayoutCrosshairColor display OLE_color)
)
;;;(APEL-CURSOR-PUT_COLOR 120)
Apelsinov вне форума  
 
Автор темы   Непрочитано 15.09.2005, 01:18
#5
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Всем огромное спасибо

А можно как нибудь решить проблему когда экран белый цвет слоя (черный\белый)
при выборе такого цвета курсор остается белым и на белом экране его не видно :?:
mmax вне форума  
 
Автор темы   Непрочитано 17.09.2005, 03:30
#6
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Кстати с текстом командной строки тоже получается
mmax вне форума  
 
Непрочитано 19.10.2007, 14:26
#7
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


"...а можно такую же - но с перламутровыми пуговицами..."

Вместо цвета слоя можно просто текущий цвет
Diman111 вне форума  
 
Непрочитано 06.01.2010, 19:10
#8
roman56

инженер строитель
 
Регистрация: 01.03.2007
ISRAEL
Сообщений: 39


С Новым Годом, господа!
Очень надеюсь, что мне ответят
Мне понравилась эта идея с изменением цвета курсора по цвету текущего слоя.
Запустил функцию Апельсинова, но она у меня не сработала, выдала результат:
; error: too few arguments
Что делать и почему?
roman56 вне форума  
 
Непрочитано 07.01.2010, 02:13
#9
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


РЕБЯТЫ-очень полезнаую штуку вы придумали.... А вот как ее заставить работать, у меня ничего не получается, пробую сделать так чтобы не функция а программа сама по себе, полный обвал.
А ведь очень полезно - по цвету курсора видеть примерно на каком слое находишся РАЗьЯСНИТЕ пожалста тугодуму
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Непрочитано 07.01.2010, 03:19
#10
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Да ты что, Startrek, ведь разные слои в принципе могут иметь одинаковый цвет. А имя текущего слоя высвечивается в выпадающем меню Control-Layer.
Profan вне форума  
 
Непрочитано 07.01.2010, 17:11
#11
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Ты прав Profan конечно, но дело в том что у нас есть несколько (почти все)
"знатоков" которые ПАТАЛОГИЧЕСКИ путают слои. Вот тут даже примерный цвет дает представление, особенно если учесть чт в фирме все размеры всегда на слое желтого цвета и желтый цвет нигде больше не применяется
Да и не забывай что каждый устраивает интерфейс по-своему и выпадающееокно слоев ДААААЛЕКО не у всех присутствует.
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Непрочитано 07.01.2010, 17:23
#12
skif58

Наше дело труба
 
Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
<phrase 1= Отправить сообщение для skif58 с помощью Yahoo Отправить сообщение для skif58 с помощью Skype™


Цитата:
Сообщение от Startrek Посмотреть сообщение
выпадающееокно слоев ДААААЛЕКО не у всех присутствует.
Ну..., - тогда они просто балбесы, - sorry
__________________
*...И Случай, бог изобретатель. *
skif58 вне форума  
 
Непрочитано 07.01.2010, 18:13
#13
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Народ в основном конечно неглупый, НО от старых привычек отказывыться не любят. ОЧЕНЬ многие работают как работали в Акаде 14 и ничем их не подвинуть...... А наш главный клиент (ну тот что деньги за разработки платит ) так вообще на уровне старой десятки (АКАД 10) только в модели и все на одном слое.
ТК ЧТО ПРИХОДИТСЯ ВЫКРУЧИВАТЬся, ИЗГОЛЯТСЯ, ПОДСТРАИВАТЬСЯ И Т. Д.
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Цвет курсора пространства листа=цвету текущего слоя