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

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

Изменение настроек экрана

Ответ
Поиск в этой теме
Непрочитано 19.10.2007, 08:20 #1
Изменение настроек экрана
olegg
 
Регистрация: 19.10.2007
Сообщений: 13

Подскажите пожалуйста, как из программки на LISP поменять цвет фона (экрана).
Просмотров: 4524
 
Непрочитано 19.10.2007, 08:29
#2
Кулик Алексей aka kpblc
Moderator

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


http://dwg.ru/f/showthread.php?t=4087
http://dwg.ru/f/showthread.php?t=8264
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 19.10.2007, 10:48
#3
olegg


 
Регистрация: 19.10.2007
Сообщений: 13


Спасибо за ответ. Еще раз понял, что программирование на LISP - вещь серьёзная и решить задачу на уровне прочитал/изменил системную переменную или т.п. не получится.
А нельзя ли добиться нужного результата с помощью OPTIONS с какими-нибудь "волшебными" параметрами. Ну а с функциями типа VLA видимо придется знакомиться (до сих пор удавалось обойтись).
olegg вне форума  
 
Непрочитано 19.10.2007, 10:55
#4
Кулик Алексей aka kpblc
Moderator

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


http://dwg.ru/f/showthread.php?t=7405 - но не думаю, что это "то что надо".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 19.10.2007, 11:18
#5
olegg


 
Регистрация: 19.10.2007
Сообщений: 13


Да, это не то. Задача-то в общем следующая - экспорт отдельных элементов чертежа в файл *.BMP. И всё бы хорошо, но "BMPOUT" переносит фон, а у меня он серый и для последующей распечатки это нехорошо. Можно, конечно, залезть в меню OPTIONS и поменять цвет фона на "белый" вручную, а потом таким же образом восстановить (так кстати и делаю), но уж больно муторно. Можно было бы воспользоваться командой WMFOUT, которая позволяет с помощью системной переменной WMFBKGND управлять прозрачностью фона, но на сегодняшний день создана БОООЛЬШАЯ библиотека файлов *.BMP и менять на пол-дороги тип файла не лучший выход. Может быть существует программулина для перевода BMP -> WMF ?
olegg вне форума  
 
Непрочитано 19.10.2007, 11:55
#6
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Совет от дилетанта: попробуй на других форумах поспрашивай. Может дадут примитивную прогу на прогон рисунков через фотожопу или корелдрочу с изменением фона. Цвет-то, как я понял, у тя везде один фона
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 19.10.2007, 12:42
#7
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Если я правильно понял, то надо что-то вида:
Код:
[Выделить все]
(defun demo (/ curcolor display space)
    (setq display  (vla-get-display (vla-get-preferences (vlax-get-acad-object)))
          space    (if (zerop
                           (vla-get-activespace (vla-get-activedocument (vlax-get-acad-object)))
                       )
                       "layout"
                       "model"
                   )
          curcolor (apply (read (strcat "vla-get-graphicswin" space "backgrndcolor"))
                          (list display)
                   )
    )
    (apply (read (strcat "vla-put-graphicswin" space "backgrndcolor"))
           (list display (vlax-make-variant 16777215 19))
    )
    (vl-cmdf "_bmpout" "C:\\temp\\test.bmp")
    (while (not (zerop (logand 1 (getvar "cmdactive")))) (vl-cmdf ""))
    (apply (read (strcat "vla-put-graphicswin" space "backgrndcolor"))
           (list display curcolor)
    )
    (princ)
)
Должна существовать директория "c:\temp"
Alaspher вне форума  
 
Автор темы   Непрочитано 19.10.2007, 13:47
#8
olegg


 
Регистрация: 19.10.2007
Сообщений: 13


Спасибо Bull. Вся фигня в том, что нужно прогнать (преобразовать) порядка 1500 файлов и обработка каждого файла отдельно (не списком) - занятие надолго. Да и хотелось бы что-то новое узнать об AutoCAD.
Спасибо Alaspher. Моя беда в том, что я кое-что понимаю в языке AutoLISP и похоже полный дилетант в VisualLISP. Подскажи, правильно ли я поступил с предложенным тобой кодом. 1. Скопировал его в файл *.lsp 2. Загрузил этот файл в AutoCAD 3. Набрал в командной строке demo+ Enter и был послан <<Unknown command "demo">>. Что-то очевидно не так. Помоги уж недоучке. На случай если важно - у меня AutoCAD 2004.
olegg вне форума  
 
Автор темы   Непрочитано 19.10.2007, 13:48
#9
olegg


 
Регистрация: 19.10.2007
Сообщений: 13


Пардон, забыл - директория temp создана.
olegg вне форума  
 
Непрочитано 19.10.2007, 13:51
#10
Кулик Алексей aka kpblc
Moderator

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


Вызов:
Код:
[Выделить все]
Command: (demo)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 19.10.2007, 14:06
#11
olegg


 
Регистрация: 19.10.2007
Сообщений: 13


Попробовал. Помогло, но не очень.
Command: (demo)
; error: no function definition: VLAX-GET-ACAD-OBJECT

???
olegg вне форума  
 
Непрочитано 19.10.2007, 14:07
#12
Кулик Алексей aka kpblc
Moderator

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


Перед
Код:
поставь
Код:
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2007, 14:22
#13
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от olegg Посмотреть сообщение
Попробовал. Помогло, но не очень.
Command: (demo)
; error: no function definition: VLAX-GET-ACAD-OBJECT

???
По сути Алексей уже ответил, у меня (vl-load-com) грузится при старте автокада (загрузка нужна один раз за сеанс редактирования) и я про него всё время забываю. Сорри!
Alaspher вне форума  
 
Автор темы   Непрочитано 19.10.2007, 14:38
#14
olegg


 
Регистрация: 19.10.2007
Сообщений: 13


Ура! Заработало!
Спасибо ВАМ.
Вот только при изменении содержимого экрана кнопками Zoom (нужно экспортировать часть чертежа) работать отказывается. Если не сложно - в чем причина и как победить?
olegg вне форума  
 
Автор темы   Непрочитано 19.10.2007, 14:53
#15
olegg


 
Регистрация: 19.10.2007
Сообщений: 13


Прошу прощения за дезу. Сейчас попробовал - работает (хотя перед этим глючило).
olegg вне форума  
 
Непрочитано 19.10.2007, 14:55
#16
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Если ты используешь тот, код, который я выложил - там нечему на зум реагировать.
Alaspher вне форума  
 
Автор темы   Непрочитано 19.10.2007, 15:17
#17
olegg


 
Регистрация: 19.10.2007
Сообщений: 13


Два раза проверил на скопированном объекте клинит. Копировал часть чертежа на свободное место, чтобы лишние объекты не были видны на экране.
olegg вне форума  
 
Автор темы   Непрочитано 19.10.2007, 15:21
#18
olegg


 
Регистрация: 19.10.2007
Сообщений: 13


Ещё раз сорри. Не работало из-за пробела. В макросе написал ^C^C (demo).
olegg вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Изменение настроек экрана

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мониторы LCD CRT Разное 94 17.06.2008 10:51
Сохранение и перенос настроек в AutoCAD 2006/ Borov AutoCAD 8 30.01.2008 17:22
Как задать "глубину" видового экрана? СергейА AutoCAD 5 04.10.2007 01:29
Перенос настроек AutoCAD на другой компьютер Алексей Викторович AutoCAD 8 09.09.2005 02:17
В каком файле AutoCAdа 2005, прописывается путь настроек ilka_t AutoCAD 3 07.04.2004 15:40