Тема: Как программно возвратить цвет фона окна модели ?
Как программно возвратить цвет фона окна модели ?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Autodesk → AutoCAD → Как программно возвратить цвет фона окна модели ?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как программно возвратить цвет фона окна модели ?
subj:
;;;---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--- ;;; Функция извлечения цвета фона пространства модели 5 февраля 2003 ;;;---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--- ;;; Функция возвращает цвет фона пространства модели в соответствии с заданным параметром flag ;;; flag может иметь значения "OLE" или "ACI" ;;; Вызов: ;;; (sw-get-ModelBG-color "OLE") или (sw-get-ModelBG-color "ACI") ;;; Возврат: ;;; целое число - цвет Windows (OLE) или AutoCAD Color Index (ACI) ;;;---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--- (defun sw-get-ModelBG-color (flag / var_color OLE_color) (setq var_color (vla-get-GraphicsWinModelBackgrndColor (vla-get-display (vla-get-preferences *acadApplication*) ) ;_ vla-get-display ) ;_ vla-get-GraphicsWinModelBackgrndColor ) ;_ setq (setq OLE_color (vlax-variant-value (vlax-variant-change-type var_color vlax-vbLong) ) ;_ vlax-variant-value ) ;_ setq (if (= flag "ACI") (sw-OLE-to-ACI-color OLE_color) OLE_color ) ;_ if ) ;_ defun
И еще:
;;;---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--- ;;; Функция преобразования номера цвета из OLE в ACI 5 февраля 2003 ;;;---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--- ;;; Функция преобразует заданный целым аргументом OLE_color номер цвета Windows в номер ACI ;;; (AutoCAD Color Index) ;;; Вызов: ;;; (sw-OLE-to-ACI-color 12345678) ;;; Возврат: ;;; целое число ;;;---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--- (defun sw-OLE-to-ACI-color (OLE_color / result) (if (not (setq result (vl-position OLE_color '(0 255 65535 65280 16776960 16711680 16711935 16777215 8421504 12632256 255 8421631 166 5460902 128 4210816 76 2500172 38 1250086 16639 8429567 10662 5466278 8320 4214912 4940 2502732 2598 1251366 33023 8437759 21414 5471398 16512 4219008 9804 2505036 4902 1252646 49151 8445951 31910 5476774 24704 4223104 14668 2507596 7462 1253670 65535 8454143 42662 5482150 32896 4227200 19532 2509900 9766 1254950 65471 8454111 42620 5482129 32864 4227184 19513 2509891 9757 1254945 65408 8454079 42579 5482108 32832 4227168 19494 2509881 9747 1254941 65344 8454047 42537 5482088 32800 4227152 19475 2509872 9738 1254936 65280 8454016 42496 5482067 32768 4227136 19456 2509862 9728 1254931 4259584 10485632 2729472 6858323 2129920 5275712 1264640 3165222 665088 1582611 8453888 12582784 5481984 8169043 4227072 6324288 2509824 3755046 1254912 1910291 12582656 14679936 8168960 9545299 6324224 7372864 3755008 4410406 1910272 2172435 16776960 16777088 10921472 10921555 8421376 8421440 5000192 5000230 2500096 2500115 16760576 16768896 10910720 10916179 8413184 8417344 4995328 4997926 2497792 2498835 16744448 16760704 10900224 10910803 8404992 8413248 4990464 4995366 2495232 2497811 16728064 16752512 10889472 10905683 8396800 8409152 4985600 4993062 2492928 2496531 16711680 16744576 10878976 10900307 8388608 8405056 4980736 4990502 2490368 2495251 16711744 16744607 10879017 10900328 8388640 8405072 4980755 4990512 2490378 2495256 16711808 16744639 10879059 10900348 8388672 8405088 4980774 4990521 2490387 2495261 16711871 16744671 10879100 10900369 8388704 8405104 4980793 4990531 2490397 2495265 16711935 16744703 10879142 10900390 8388736 8405120 4980812 4990540 2490406 2495270 12517631 14647551 8126630 9524134 6291584 7356544 3735628 4400716 1900582 2167590 8388863 12550399 5439654 8147878 4194432 6307968 2490444 3745356 1245222 1905446 4194559 10453247 2687142 6837158 2097280 5259392 1245260 3155532 655398 1577766 5526612 7763574 10000536 12303291 14540253 16777215 ) ) ;_ vl-position ) ;_ setq ) ;_ not (setq result 0) ) ;_ if result ) ;_ defun
Думаю сам разберешься. Если нет - пиши, поможем.
Удачи.
PS: отдельное спасибо ShaggyDoc'у за преобразование цветов OLE-ACI.
Большое Спасибо, заработало.
Можно ли сделать так, чтобы, если открыта Model, цвет командной строки был один, а если переключился в Layout, то другой?
Увы, Vova, ит'с импосибел. В настройках цветов есть только "Цвет фона текстового экрана", который одинаков и для модели и для листа.
Удачи.
А я такую промочку видел-у нашего скрытного Cad-manager'a
> kos
В options же есть цвет коммандной строки.
Где его взяли?
Можно было-бы написать простой vlr-sysvar-reactor.
> kos
А Вы пробовали изменять цвет на номер больше 10? Дело в том, что у меня получается другой список. Только что проверил на трех машинах - везде одинаковый, но не такой, как у Вас. Собственно вопрос (к Вам или ShaggyDoc) как получался этот список, и действительно ли он может быть разным из-за разных машин или чего-то еще?
Вот список (закомментированы строки с моим списком):
0 255 65535 65280 16776960 16711680
;0 255 65535 65280 16776960 16711680
16711935 16777215 8421504 12632256 255 8421631
;16711935 16777215 8421504 12632256 255 8355839
166 5460902 128 4210816 76 2500172
;204 6710988 153 5000345 127 4145023
38 1250086 16639 8429567 10662 5466278
;76 2500172 16383 8364031 13260 6717388
8320 4214912 4940 2502732 2598 1251366
;9881 5005209 8063 4149119 4940 2502476
33023 8437759 21414 5471398 16512 4219008
;32767 8372223 26316 6724044 19609 5010073
9804 2505036 4902 1252646 49151 8445951
;16255 4153215 9804 2505036 49151 8380415
31910 5476774 24704 4223104 14668 2507596
;39372 6730444 29337 5014937 24447 4157311
7462 1253670 65535 8454143 42662 5482150
;14668 2507340 65535 8388607 52428 6737100
32896 4227200 19532 2509900 9766 1254950
;39321 5020057 32639 4161407 19532 2509900
65471 8454111 42620 5482129 32864 4227184
;65471 8388575 52377 6737074 39282 5020037
19513 2509891 9757 1254945 65408 8454079
;32607 4161391 19513 2509890 65407 8388543
42579 5482108 32832 4227168 19494 2509881
;52326 6737049 39244 5020018 32575 4161375
9747 1254941 65344 8454047 42537 5482088
;19494 2509881 65343 8388511 52275 6737023
32800 4227152 19475 2509872 9738 1254936
;39206 5019999 32543 4161359 19475 2509871
65280 8454016 42496 5482067 32768 4227136
;65280 8388479 52224 6736998 39168 5019980
19456 2509862 9728 1254931 4259584 10485632
;32512 4161343 19456 2509862 4194048 10485631
2729472 6858323 2129920 5275712 1264640 3165222
;3394560 8375398 2529536 6265164 2064128 5209919
665088 1582611 8453888 12582784 5481984 8169043
;1264640 3099686 8388352 12582783 6736896 10079334
4227072 6324288 2509824 3755046 1254912 1910291
;5019904 7510348 4161280 6258495 2509824 3755046
12582656 14679936 8168960 9545299 6324224 7372864
;12582656 14679935 10079232 11717734 7510272 8755532
3755008 4410406 1910272 2172435 16776960 16777088
;6258432 7307071 3755008 4344870 16776960 16777087
10921472 10921555 8421376 8421440 5000192 5000230
;13421568 13421670 10066176 10066252 8355584 8355647
2500096 2500115 16760576 16768896 10910720 10916179
;5000192 5000230 16760576 16768895 13408512 13415014
8413184 8417344 4995328 4997926 2497792 2498835
;10056192 10061132 8347392 8351551 4995328 4997670
16744448 16760704 10900224 10910803 8404992 8413248
;16744192 16760703 13395456 13408614 10046464 10056268
4990464 4995366 2495232 2497811 16728064 16752512
;8339200 8347455 4990464 4995366 16727808 16752511
10889472 10905683 8396800 8409152 4985600 4993062
;13382400 13401958 10036736 10051404 8331008 8343359
2492928 2496531 16711680 16744576 10878976 10900307
;4985600 4992806 16711680 16744319 13369344 13395558
8388608 8405056 4980736 4990502 2490368 2495251
;10027008 10046540 8323072 8339263 4980736 4990502
16711744 16744607 10879017 10900328 8388640 8405072
;16711743 16744351 13369395 13395583 10027046 10046559
4980755 4990512 2490378 2495256 16711808 16744639
;8323103 8339279 4980755 4990511 16711807 16744383
10879059 10900348 8388672 8405088 4980774 4990521
;13369446 13395609 10027084 10046578 8323135 8339295
2490387 2495261 16711871 16744671 10879100 10900369
;4980774 4990521 16711871 16744415 13369497 13395634
8388704 8405104 4980793 4990531 2490397 2495265
;10027122 10046597 8323167 8339311 4980793 4990530
16711935 16744703 10879142 10900390 8388736 8405120
;16711935 16744447 13369548 13395660 10027161 10046617
4980812 4990540 2490406 2495270 12517631 14647551
;8323199 8339327 4980812 4990540 12517631 14647295
8126630 9524134 6291584 7356544 3735628 4400716
;10027212 11691724 7471257 8735897 6226047 7290751
1900582 2167590 8388863 12550399 5439654 8147878
;3735628 4335180 8323327 12550143 6684876 10053324
4194432 6307968 2490444 3745356 1245222 1905446
;4980889 7490713 4128895 6242175 2490444 3745356
4194559 10453247 2687142 6837158 2097280 5259392
;4129023 10452991 3342540 8349388 2490521 6245529
1245260 3155532 655398 1577766 5526612 7763574
;2031743 5193599 1245260 3089996 3355443 5987163
10000536 12303291 14540253 16777215
;8684676 11382189 14079702 16777215
> leha
нет, это вопро не мне. ShaggyDoc прислал (еще раз ему за это благодарность), я только лишь пользуюсь.
Удачи.
Как обращаться с цветом в 2004 см.
%Acad2004%\Sample\VisualLISP\color-util.lsp. Работа через
(vla-getinterfaceobject (vlax-get-acad-object) "AutoCAD.AcCmColor.16")
OleColor - цвета, используемые в Windows. С ними работают функция OleTranslateColor из olepro32.dll
Приводившийся > kos (2003-08-18 11:00:17) список мною был также получен от Jimmy Bergmark. Это было давно. Autodesk может менять свои ACI-color.
> ShaggyDoc
Спасибо. Свой список получал именно под 2004, но он у меня совпадает с 2000. Наверно, все-таки соотношение RGB<->ACI как-то зависит от машины, а не от версии ACAD.
> leha
Да, скорее всего именно от железа и настроек видеосистемы зависит. Вот Фотошоп на некоторых машинах предлагает подстроить свою палитру. Возможно и 2004 займется подобным. Не зря специальный интерфейс появился. Пока не экспериментировал, но лучше, конечно работать в дальнейшем с ним, а не с шаманскими списками.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Autodesk → AutoCAD → Как программно возвратить цвет фона окна модели ?
Форум работает на PunBB, при поддержке Informer Technologies, Inc