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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Изменить цвет курсора

Изменить цвет курсора

Ответ
Поиск в этой теме
Непрочитано 14.07.2005, 12:12
Изменить цвет курсора
nikolaev
 
конструктор
 
Мос. область
Регистрация: 28.08.2003
Сообщений: 119

Возможно ли курсору присвоить цвет текущего слоя? Это было бы удобно! Не нужно лишний раз переводить глаза на окошко слоев.
В опциях цвет курсора менять можно, но переменной такой, к сожалению, нет.
Просмотров: 30313
 
Непрочитано 20.09.2005, 11:34
#21
Apelsinov

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


Цитата:
Сообщение от mmax
Цитата:
Сообщение от Apelsinov
>4eh, mmax.
Вообще-то поменять тип линии курсора лиспом не получится, и плюс неувязки с масштабом линии. Поэтому тут и обсуждать нечего.
Вот и я про то же

Но скорее всего человек имел в виду вес курсора
Это уже лучше
Стоит ли открывать такую тему или здесь обсудим?
Я бы с удовольствием обсудил и тут, но обсуждать нечего, нет такого свойства как вес курсора. Поэтому придумайте еще что нибудь

Вообще с курсору можно задать цвет, можно изменить размер, наверное, но это все. Сделать с ним то, возможность чего не предусмотрели разработчики, нельзя.

Можно наверное пойти другим путем, брать некий примитив, или набор, и таскать его за курсором, наложив на него. Вроде бы это возможно. Вот тут можно делать что угодно, и вес и тип и т.п.
Но алгоритмов такого решения я не знаю. нужно грызть.
Apelsinov вне форума  
 
Автор темы   Непрочитано 20.09.2005, 15:02
#22
nikolaev

конструктор
 
Регистрация: 28.08.2003
Мос. область
Сообщений: 119


А как Вам это?
;;------------------> Рисование пробных линий <---------
;;-------------------------------------------------------------------
(defun c:t_line (/ p1 p2 DS)
(setq DS (getvar "dimscale")
p1 (getpoint "\nspecify first point:")
p2 (polar p1 0 (* ds 50.0))
)
(setvar "lwdisplay" 1)
(command "line" p1 p2 "")
(command "delay" 300)
(command "erase" "single" "l")
(command "delay" 300)
(command "line" p1 p2 "")
(command "delay" 300)
(command "erase" "single" "l")
(command "delay" 300)
(command "line" p1 p2 "")
(command "delay" 300)
(command "erase" "single" "l")
(command "line" p1)
)
nikolaev вне форума  
 
Непрочитано 22.09.2005, 19:06
#23
mmax

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


Вот и хорошо
Осталось добить последние косяки и багги

Ну насколько я понимаю с цветом экрана ничего не выйдет ну да ладно.

Косяк:
Цвет слоя = 250  цвет курсора = 84,84,84

Не могли бы вы что нибудь сделать?
Чтобы было Цвет слоя = 250  цвет курсора = 250
Я конечно понимаю что это для черного экрана так сделано, но как я уже говорил у меня экран уже несколько лет белый. От черного экрана глаза болят, а серенький курсор на белом тоже не очень

В Лиспе я как Apelsinov в реакторах
mmax вне форума  
 
Непрочитано 12.04.2009, 12:18
#24
skkkk


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


Очень отличная вещь эта смена цвета курсора! Но не выходит у меня сделать, чтоб при смене слоя курсор бы менялся сам. он меняется только после запуска функции. Что-то я, видимо, недопонял, а вот что.....?
skkkk вне форума  
 
Непрочитано 07.05.2009, 22:03
#25
skkkk


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


Взявшись за дело на свежую голову, внимательней вникнув и основательней потыкав, я-таки заставил эту штуку работать. Все оказалось просто: лиспы из #11 и 12 надо добавить в автозагрузку, а строку
Код:
[Выделить все]
(APEL-REACTOR-CURSOR_BY_CURRENT_LAYER nil nil)
вставить в файл acad200X.lsp. Apelsinov в общем-то так и сказал, но я не смекнул сразу... Причем обнаружил особенность: при вставке функции (APEL-REACTOR-CURSOR_BY_CURRENT_LAYER nil nil) в acad.lsp в самый конец, после моих других функций реактор не запускался, приходилось функцию вводить после пуска АвтоКАДа. Когда поставил ее в начало acad.lsp, всё заработало отлично, включая мои другие функции. Видимо об этом шла речь:
Цитата:
поэтому могут быть мааааленькие бяки
А вот от того,
Цитата:
Чтобы было Цвет слоя = 250  цвет курсора = 250
- я бы тоже не отказался. Но и так очень и очень достойно. Огромное СПАСИБО, Apelsinov!!!
skkkk вне форума  
 
Непрочитано 08.05.2009, 20:47
#26
mmax

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


Сколько лет сколько зим.
Тоже когдато сильно захотел эту примочку.

Все что представлено выше уже немного технически устарело. Если не ошибаюсь он использует 256 цветов, реактор не очень стабильный и модель & лист плоховато проработаны.

Я сделал свой
  • Стабильный реактор
  • Расширена цветовая палитра. Цвета пересчитываются из RGB, предыдущий вариант использует 256 цветов(если не ошибаюсь).
  • Полная поддержка перехода из модели в лист и обратно.
  • Инверсия цвета курсора производится только если модель - черная или белая, лист только белый.
  • Добавлены команды включения и выключения программы
  • clcoloron - цвет курсора будет меняться
  • clcoloroff - цвет курсора не будет меняться и останется таки каким был на последний момент.

Сделал очень давно и исходники к сожалению уже потерял.

Распакуйте файлы из архива куда нибудь на пути поддержки

При загрузке первым должен загрузиться LibFunctionsSamoCAD.fas.
CursorColor=ClayerColor.VLX должен загрузиться вторым. Это связано с тем что реактор начинает немедленную работу и если он не найдет библиотечные функции то начнет вылетать.

И ввиду того что реактор начинает мгновеннно работать при запуске AutoCAD. Рекомендуется подгружать их из функции s::startup
Вложения
Тип файла: rar SamoCAD.rar (12.5 Кб, 91 просмотров)
mmax вне форума  
 
Непрочитано 08.05.2009, 22:36
#27
Кулик Алексей aka kpblc
Moderator

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


mmax, а чего только компилированный вариант предоставил?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.05.2009, 11:53
#28
mmax

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


не могу найти исходники. Кажется я их потерял
mmax вне форума  
 
Непрочитано 09.05.2009, 13:54
#29
skkkk


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


Цитата:
Сообщение от mmax Посмотреть сообщение
  • Инверсия цвета курсора производится только если модель - черная или белая, лист только белый.
А если у меня цвет в модели сине-зеленый какой-то (136-й) - ну вот я привык к нему - мне кажется, самый уж он не напрягающий для глаз - не будет работать?
Третий день активно работаю - не заметил никакой нестабильности в "устаревшей" версии, работает как часики. Вот только подсказал бы кто, как изменить код из #11, чтоб при выборе слоя с цветом №250 курсор бы тоже становился №250 - частенько приходиться пользовать этот цвет при работе по растру.
skkkk вне форума  
 
Непрочитано 09.05.2009, 15:31
#30
mmax

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


Цитата:
Сообщение от skkkk Посмотреть сообщение
[/list]А если у меня цвет в модели сине-зеленый какой-то (136-й) - ну вот я привык к нему - мне кажется, самый уж он не напрягающий для глаз - не будет работать?
Третий день активно работаю - не заметил никакой нестабильности в "устаревшей" версии, работает как часики. Вот только подсказал бы кто, как изменить код из #11, чтоб при выборе слоя с цветом №250 курсор бы тоже становился №250 - частенько приходиться пользовать этот цвет при работе по растру.
Ну я не знаю. Если ты цвет слоя сделаешь равным цвету модели, то цвет курсора станет невидимым так как цвет курсора станет равным цвету модели.
Если кто подскажет по какому принципу происходит инверсия для цветов отличных от черного и белого, попробую подправить. Например черный меняется на белый, белый на черный, а на какой менять например сине-зеленый какой-то (136-й)?

А еще старый вариант не меняет цвет курсора если изменить цвет слоя не меняя самого текущего слоя

Также у меня цвет слоя = 250 делает цвет курсора = 250.

Нашел я исходники. Попробую опубликовать.

Не спрашивайте у меня почему все так замудрено. Это связано с тем что здесь используется два реактора и в процессе инициализации AutoCAD происходит много всякого такого что заставило меня сделать именно так.

Сначала грузятся библиотечные функции

После библиотечных функций должен подгрузиться файл

LayerColor-CursorColorReactorSamoCAD.lsp

Код:
[Выделить все]
;Пустые временные функции для реакторов

(defun layer_color=cursor_color_ObjectReactorFuntion-samocad ()
  (princ)
  )

(defun layer_color=cursor_color_SysvarReactorFuntion-samocad ()
  (princ)
  )


;******************************************************************************************************
;реактор объектов слоев
(setq layer_color=cursor_color_ObjectReactor-samocad
       (vlr-object-reactor (all-layers-obj-samocad t) nil
	 (list (cons :vlr-modified 'layer_color=cursor_color_ObjectReactorFuntion-samocad))))
;******************************************************************************************************

;******************************************************************************************************
;реактор системных переменных
(setq layer_color=cursor_color_sysvarreactor-samocad
       (vlr-sysvar-reactor
       nil (list (cons :vlr-sysvarchanged 'layer_color=cursor_color_SysvarReactorFuntion-samocad))))
;******************************************************************************************************

(vlr-remove layer_color=cursor_color_ObjectReactor-samocad)
(vlr-remove layer_color=cursor_color_sysvarreactor-samocad)

(load "LayerColor-CursorColorSamoCAD.lsp")


(if (eq
      (reg-riad-or-write-samocad
	"HKEY_CURRENT_USER\\Software\\MaksCAD Soft\\SamoCAD\\AutoCAD\\Interfase"
	"layercolor=cursorcolor"
	"1") "1")
  (progn
    (vlr-add layer_color=cursor_color_ObjectReactor-samocad)
    (vlr-add layer_color=cursor_color_sysvarreactor-samocad)
    (clayer_color=cursor_color-samocad)
    )
  (princ)
  )
Файл
LayerColor-CursorColorSamoCAD.lsp
подгружается предыдущим LayerColor-CursorColorReactorSamoCAD.lsp
его в автозагрузку не надо
Код:
[Выделить все]
;Цвет курсора равен цвету слоя

;;;(vla-get-ModelCrosshairColor(vla-get-Display(vla-get-Preferences (vlax-get-acad-object))))
;;;(vla-put-ModelCrosshairColor(vla-get-Display(vla-get-Preferences (vlax-get-acad-object)))3408653) 
;Получим цветовые характеристики слоя

(defun clayer_color=cursor_color-samocad ( /
					  BLUELAYER
					  GREENLAYER
					  LAYOUT_COLOR
					  LAYOUT_CUR_COLOR
					  MODEL_COLOR
					  MODEL_CUR_COLOR
					  REDLAYER
					  )

  

(setq Redlayer (vla-get-Red (vla-get-TrueColor (vla-get-ActiveLayer (acad-objects-samocad 2)))))
(setq Greenlayer (vla-get-Green (vla-get-TrueColor (vla-get-ActiveLayer (acad-objects-samocad 2)))))
(setq Bluelayer (vla-get-Blue (vla-get-TrueColor (vla-get-ActiveLayer (acad-objects-samocad 2)))))

(setq model_color (vlax-variant-value
		   (vlax-variant-change-type
		   (vla-get-GraphicsWinModelBackgrndColor
		    (vla-get-Display
                      (vla-get-Preferences
                         (vlax-get-acad-object))))3)))

(setq layout_color (vlax-variant-value
		   (vlax-variant-change-type
		   (vla-get-GraphicsWinLayoutBackgrndColor
		    (vla-get-Display
                      (vla-get-Preferences
                         (vlax-get-acad-object))))3)))
  
(vla-put-ModelCrosshairColor
  (vla-get-Display
    (vla-get-Preferences
      (vlax-get-acad-object)))
  (rgb->ole-samocad Redlayer Greenlayer Bluelayer)
    )
(vla-put-LayoutCrosshairColor
  (vla-get-Display
    (vla-get-Preferences
      (vlax-get-acad-object)))
  (rgb->ole-samocad Redlayer Greenlayer Bluelayer)
    )

(setq model_cur_color (vlax-variant-value
		        (vlax-variant-change-type
			  (vla-get-ModelCrosshairColor
                             (vla-get-Display
                               (vla-get-Preferences
                                   (vlax-get-acad-object)))) 3)))

(setq Layout_cur_color (vlax-variant-value
		        (vlax-variant-change-type
			  (vla-get-LayoutCrosshairColor
                             (vla-get-Display
                               (vla-get-Preferences
                                   (vlax-get-acad-object)))) 3)))

(if (= model_color model_cur_color 0)

 (vla-put-ModelCrosshairColor
   (vla-get-Display
    (vla-get-Preferences
      (vlax-get-acad-object)))
  16777215
    )(princ))

(if (= model_color model_cur_color 16777215)

 (vla-put-ModelCrosshairColor
   (vla-get-Display
    (vla-get-Preferences
      (vlax-get-acad-object)))
  0
    )(princ))

(if (= layout_color Layout_cur_color 16777215)
 (vla-put-LayoutCrosshairColor
   (vla-get-Display
    (vla-get-Preferences
      (vlax-get-acad-object)))
  0
    )(princ))
(if (= layout_color Layout_cur_color 0)
 (vla-put-LayoutCrosshairColor
   (vla-get-Display
    (vla-get-Preferences
      (vlax-get-acad-object)))
  16777215
    )(princ))

  (princ)
					      
  );(clayer_color=cursor_color-samocad)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;SamoCAD


;Функция реактора системных переменных
(defun layer_color=cursor_color_SysvarReactorFuntion-samocad (a b)
  (setq c  a
	d b)
  (if (and (eq (nth 0 b) "CLAYER")
	   (nth 1 b));and
    (progn
      (clayer_color=cursor_color-samocad)
      (layer_color=cursor_color_ChangObjectsForObjectReactor-samocad)
      );T
    (princ);nil
    );if
  (princ)
  )



;Функция реактора объектов(слоев)

(defun layer_color=cursor_color_ObjectReactorFuntion-samocad (a b c)
  (clayer_color=cursor_color-samocad)
  (princ)
  )

;Функция замены объектов для реактора объектов

(defun layer_color=cursor_color_ChangObjectsForObjectReactor-samocad (/ obj_layers_list)
  
;удаление владельцев
  
(mapcar (function (lambda (a)
		    (vlr-owner-remove layer_color=cursor_color_ObjectReactor-samocad
		      a ))) (vlr-owners layer_color=cursor_color_ObjectReactor-samocad))

;Добавление владельцев
  
(mapcar (function (lambda (b)
		    (vlr-owner-add layer_color=cursor_color_ObjectReactor-samocad b)))
	(all-layers-obj-samocad t))
  (princ)
  )


;Включение
(defun c:clcoloron ()
  (if (and
	(null (vlr-added-p layer_color=cursor_color_ObjectReactor-samocad))
	(null (vlr-added-p layer_color=cursor_color_ObjectReactor-samocad))
	);and
    (progn
    (vlr-add layer_color=cursor_color_ObjectReactor-samocad)
    (vlr-add layer_color=cursor_color_sysvarreactor-samocad)
(vl-registry-write
  "HKEY_CURRENT_USER\\Software\\MaksCAD Soft\\SamoCAD\\AutoCAD\\Interfase"
	"layercolor=cursorcolor" "1")
    (clayer_color=cursor_color-samocad)
    )
    (princ)
    );if
  (princ)
  )


(defun c:clcoloroff ()
  (if (and
	(null (vlr-added-p layer_color=cursor_color_ObjectReactor-samocad))
	(null (vlr-added-p layer_color=cursor_color_ObjectReactor-samocad))
	);and
    (princ)
    (progn
    (vlr-remove layer_color=cursor_color_ObjectReactor-samocad)
    (vlr-remove layer_color=cursor_color_sysvarreactor-samocad)
(vl-registry-write
  "HKEY_CURRENT_USER\\Software\\MaksCAD Soft\\SamoCAD\\AutoCAD\\Interfase"
	"layercolor=cursorcolor" "0")    
    )
    
    );if
  (princ)
  )
Как видите инверсия цветов когда они совпадают делается очень тупо для черного и белого. Эти участки кода можно заменить на код который будет при совпадении инвертировать цвет по какой либо формуле. напомню что такое инверсия в моем понимании. Это когда цвет курсора становится равным цвету слоя а цвет слоя в свою очередь равен цвету модели или листа. В этой ситуации курсора будет не видно. Для этого нужно цвкт курсора както инвертировать

Ну и собственно сами библиотечные функции которые должны загрузиться перед предыдущими лиспами:
Боюсь что сюда они все не влезут, поэтому кладу их в архив. В этой библиотеке много лишних, не относящихся именно к этой программе функций, разберетесь сами где нужные где не нужные. Бибилиотека небольшая.
Вложения
Тип файла: rar LibFunctionsSamoCAD.rar (13.3 Кб, 82 просмотров)

Последний раз редактировалось mmax, 09.05.2009 в 16:53.
mmax вне форума  
 
Непрочитано 09.05.2009, 21:50
#31
skkkk


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


Слои такого цвета, коим окрашено мое рабочее пространство (цвет №136), я еще не встречал за свою, пускай недолгую, практику. Но для удовлетворения бушующего любопытства решаю проверить одну вещь. Ставлю цвет слоя соответствующим цвету моего рабочего пространства модели. И что вы думаете? Объекты и курсор становятся цветом заметно темнее рабочего пространства, не сливаются. Иду дальше - пробую те же телодвижения с другими цветами: 80, 74, 154... Начинает сливаться всё, курсора не видно, видны только объекты - чуууть темнее. На 125-м цвете снова не сливаются... Закономерность неясна, но ясно, что некоторые цвета инверсии не требуют.
skkkk вне форума  
 
Непрочитано 09.05.2009, 23:17
#32
mmax

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


Извиняюсь за нескромность, но всетаки предлагаю использовать мой вариант. Он более современный и расширеный. А то что инверсии нет так это ничего страшного, навряд ли вы когда нибудь захотите использовать цвет слоя равный цвету экрана.
mmax вне форума  
 
Непрочитано 10.05.2009, 03:22
#33
skkkk


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


Поставил. Действительно, всё так и есть - версия более современная и расширенная. При черном цвете слоя - черный курсор и
Цитата:
меняет цвет курсора если изменить цвет слоя не меняя самого текущего слоя
Я очень доволен этим вариантом, спасибо огромное, mmax!!!

Я вот ненужные "книги из библиотеки", подчистил, прилагаю архив с необходимыми и достаточными файлами.
Вложения
Тип файла: rar LibFunctionsSamoCAD.rar (6.9 Кб, 85 просмотров)
skkkk вне форума  
 
Непрочитано 10.05.2009, 22:29
#34
mmax

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


Ну а я в свою очередь, снова скажу спасибо, Apelsinov!!!,
Еще тогда 4 года назад он на этом форуме ответил на большинство моих вопросов про LISP.


У меня тоже есть косячок. Я в те времена никак не мог разобраться как перевести цвета из RGB в OLE, и изобрел какойто очень странный способ перевода. Он правильный но очень громоздкий.
Поэтому рекомендую заменить библиотечную функцию rgb->ole-samocad
на
Код:
[Выделить все]
(defun rgb->ole-samocad (R G B)
  (+ (* B (expt 16 4)) (* G (expt 16 2)) R)
  )
и соответственно выбросить из библиотеки функции переваода единиц 10 и 16ричной систем
счисления.

Последний раз редактировалось mmax, 11.05.2009 в 16:07.
mmax вне форума  
 
Непрочитано 11.05.2010, 22:36 Небольшая проблемка с лиспами
#35
CAHTEXHuK

Инженер по теплоснабжению
 
Регистрация: 10.04.2010
РБ, г. Могилев
Сообщений: 25


Для начала хочу поблагодарить mmax... Спасибо.
а теперь ложку дегтя...
Не так давно вплотную работаю в автокаде, поэтому не ругайте сильно, если глупость спрошу...
Вот взял лиспы, установил, на 2008 enu все вроде хорошо... цвет меняется... красота... но я много использую инструментальные палитры... Причем различные варианты блоков с вставкой в различные слои или в текущий слой... оказалось, что лиспы каким-то образом влияют на их вставку... я в лиспах не силен, тем более в таких замудренных... т.е. блоки не вставляются с палитры в слой отличный от текущего...
в коммандной строке маячит:
Точка вставки или [Базовая точка/Масштаб/X/Y/Z/ПОворот]: *Прервано*
Если же блок вставляется в текущий слой - все идет на ура...
Проверил на чистом автокаде без всяких обвесов... можно ли решить эту проблему ?
Причем еще раз повторю, проблема возникает именно после загрузки выше указанных лиспов.
Заранее благодарен всем за любую помощь.
CAHTEXHuK вне форума  
 
Непрочитано 12.05.2010, 22:28
#36
mmax

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


Цитата:
Сообщение от CAHTEXHuK Посмотреть сообщение
блоки не вставляются с палитры в слой отличный от текущего...
Вот уже больше года прошло как я ушел из большого Автокада и за это время успел многое позабыть.
Объясни подробней как это вставить блок в слой отличный от текущего?
Я так понимаю в блоке есть объекты имеющие слои не созданные в данном документе?
А еще лучше абсолютно все подробно с файлом-примером с блоками и со слоями или без слоев
mmax вне форума  
 
Непрочитано 13.05.2010, 00:35
#37
CAHTEXHuK

Инженер по теплоснабжению
 
Регистрация: 10.04.2010
РБ, г. Могилев
Сообщений: 25


Спасибо, что откликнулся...
У кнопки палитры инструментов в свойствах можно задать всякие опции вставки блока... Одна из них - слой, на который блок будет размещен... т.е. у меня большинство блоков в нулевом слое сделаны... а уже в палитрах некоторые направляю в нужный слой.
Возможно эти лиспы как-то блокируют эту "временную смену" слоя для вставки блока в нужный .... поэтому операция прерывается...
Насчет примеров, я могу, но уже не сегодня, но проверил не один раз на разных блоках, разных чертежах... с надстройками типа СПДС и без ... только убираю лиспы из автозагрузки - все начинает работать...
Благодарю за внимание и помощь...
CAHTEXHuK вне форума  
 
Непрочитано 13.05.2010, 17:08
#38
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Вот как вариант, учитывая вышесказанное...
Код:
[Выделить все]
(defun vl-ActiveLayerColor->ModelCrosshairColor ( / acobj tcol)
  (vla-put-ModelCrosshairColor
    (vla-get-Display (vla-get-Preferences (setq acobj (vlax-get-acad-object))))
    (vlax-make-variant
      (+ (* (vla-get-Red (setq tcol (vla-get-TrueColor (vla-get-ActiveLayer (vla-get-ActiveDocument acobj))))))
         (* (vla-get-Green tcol) (expt 2 8))
         (* (vla-get-Blue tcol)  (expt 2 16))
      )
      vlax-vbLong
    )
  )
  tcol
)
реактор лень думать... см выше...
и, господа, вы забыли про сетку...
и еще рамку выбора объектов...

Последний раз редактировалось gomer, 14.05.2010 в 16:02.
gomer вне форума  
 
Непрочитано 13.05.2010, 20:56
#39
CAHTEXHuK

Инженер по теплоснабжению
 
Регистрация: 10.04.2010
РБ, г. Могилев
Сообщений: 25


я пока слабо разбираюсь, или совсем неразбираюсь в этих писулинах, ... куда мне использовать этот код, имея
LayerColor-CursorColorReactorSamoCAD.lsp
LayerColor-CursorColorSamoCAD.lsp
LibAcadObjectFunctionsSamoCAD.lsp
LibColorFunctionsSamoCAD.lsp
LibGetPutNameSamoCAD.lsp
LibMathFunctionsSamoCAD.lsp
LibOtherFunctionsSamoCAD.lsp
LibRegistryFuntionsSamoCAD.lsp
? и еще вопрос не совсем в тему, но очень срочно нужно...
<...> В отдельную тему /kpblc/

Последний раз редактировалось Кулик Алексей aka kpblc, 13.05.2010 в 21:45.
CAHTEXHuK вне форума  
 
Непрочитано 13.05.2010, 21:44
#40
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от CAHTEXHuK Посмотреть сообщение
куда мне использовать этот код
Как использовать лисп, опубликованный на форуме
Остальное - в отдельную тему.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Изменить цвет курсора

Размещение рекламы