|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
to gomer в твоем коде нет ничего нового и даже не правильно.
Цвет для ModelCrosshairColor нужно переводить не из RGB, а из BGR, тоесть зачемто нужно переворачивать TrueColor. Ну и по проблеме. Во время выполнения команды которая генерируется палитрой, текущий слой временно меняется на тот который задан в свойствах. Тоесть все логично - слой меняется и цвет курсора пытается стать равным цвету слоя прямо во время работы команды, но команда почемуто не хочет работать когда выполняются данные лиспы. Я попробую выяснить на каком этапе это происходит. Если окажется что вылет происходит именно во время смены цвета курсора то ничего сделать нельзя. |
|||
|
||||
Инженер по теплоснабжению Регистрация: 10.04.2010
РБ, г. Могилев
Сообщений: 25
|
Кулик Алексей aka kpblc, я кое-как освоил как использовать выложенный код, тут вопрос в другом, что исходные 8 файлов, а куда тот, что предложил gomer, я не понял.
mmax, мне остается только ждать и надеяться... |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
К сожалению мне удалось выяснить что отмена происходит во время смены слоя в момент выполнения команды вставки блока. Так что в данном случае бессильны будут даже гуру.
Несовместимость называется. Поэтому могу предложить:
Если не разбираешься как грузить 8 файлов используй вариант, предложенный тут, там же инструкции: http://forum.dwg.ru/showpost.php?p=393497&postcount=26 Все что ниже этого поста исходники, предназначенные для программистов и ничего нового или представляющего интерес для непрограммиста в них нет. То что предложил gomer никуда не надо вставлять, такая функция там уже есть. Ну и еще у меня у самого будет вопрос к гуру: можно ли в лиспе определить, что в данный момент выполняется команда с таким то именем? напрмер в данном случае _executetool |
|||
|
||||
Инженер по теплоснабжению Регистрация: 10.04.2010
РБ, г. Могилев
Сообщений: 25
|
Ну еще есть вариант... чтобы команды clcoloron и clcoloroff срабатывали вместе с открытием / закрытием палитры инструментов... или код проверял, открыта палитра или нет... не знаю насколько это реально сделать...
а насчет 8 лиспов - я же сделал, чтобы работали... но знания в этой области сияют пробелами... |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Все же рано оружие чехлить.
кажется я нашел очень неплохе решение нужно только время для его воплощения Уже потестил получается. Ждите выхода релиза Последний раз редактировалось mmax, 14.05.2010 в 11:13. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
>mmax: Еще раз проверил - работает функция нормально, цвет правильный выставляет))) (16.0)
>остальным: Да, не надо вставлять никуда... нового нет, не спорю, просто короче и понятней Еще не понятно, если текущий цвет не соответствует цвету текущего слоя... посмотрел, например на курсор, он синий, а линии красным рисуются, вот досада... Остается вопрос, заданный apelsinov: куда девать реактор системных переменных, если он уже загружен... После выгрузки реактора от mmax вообще ничего не останется... я так понимаю... Последний раз редактировалось gomer, 14.05.2010 в 16:25. |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Ну вот собственно и все.
Просто скопируйте файлы из архива в папку установки Автокада. Ничего загружать не надо все само загрузится. Для загрузки используются файл acaddoc.lsp и в нем функция s::startup. Нужно учесть этот момент, если вы используете другие приложения. Исходники для програмистов: 1. Файл который должен загрузиться функцией s::startup Код:
Код:
|
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Если вы заметили разницу в цветах слоя и курсора, это не ошибка, а так называемый баг Windows, монитора и видеокарты.
Напомню что разные люди воспринимают цвета по разному. Есть еще дальтоники. В данной ситуации программа не смотрит на цвет глазами, она оперирует их номерами, поэтому то что мы видим глазами программу не интересует. Для примера. Сделаем цвет слоя 52 Смотрим что цвет курсора визуально не равен цвету слоя. Слой имеет темный цвет то ли коричневый то ли зеленый (типа хаки), курсор при этом имеет яркий коричневый цвет почти желтый. [IMG]http://i069.***********/1005/7f/994baf3b221f.jpg[/IMG] Смотрим какой RGB у цвета 52 (получается 165 165 0): [IMG]http://s49.***********/i126/1005/b5/ec42fc345133.jpg[/IMG] идем уже в настройки рабочего пространства (там где цвет курсора руками меняется): [IMG]http://s48.***********/i120/1005/12/4b5b055b520b.jpg[/IMG] цвет курсора 52. Совпадает. Смотрим какой RGB у курсора получился: [IMG]http://s61.***********/i173/1005/f8/c99435630925.jpg[/IMG] Снова все совпадает, но визуально чувствуется разница. Программа тут ни при чем. Разница в цветах вас ждет даже если вы будете задавать вручную цвет курсора. Альбомами цветов программа не оперирует, но у каждого альбомного цвета есть аналог в RGB который берется за основу в программе. Цветов, которые визуально совпадают намного больше, чем тех которые не совпадают, даже если вы используете альбомные цвета, которыми программа не оперирует но преобразует правильно. Если в вашей коллекции слоев есть не совпадающие цвета, то придется вам их сменить. Последний раз редактировалось mmax, 16.05.2010 в 22:45. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
>mmax: наши функции делают одно и тоже, в чем ошибка? Превод цвета: 52->52... нормально? Откуда BGR не понимаю.
А понял все!!! R в степени 0 B в степени 4 B (G в степени 2) а от перемены мест слагаемых сумма не меняется Не путай народ! И без ошибок пиши А так респект и уважуха... |
|||
|
||||
Регистрация: 15.01.2010
Сообщений: 254
|
|
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Кстати. Я тут подумал, да и gomer намекал на это дело, но я сначала не въехал о чем речь.
А не логичнее бы было сделать привязку цвета курсора вот к этой пнельке. Тогда цвет курсора будет равен цвету вновь рисуемых линий. [IMG]http://s51.***********/i133/1005/81/7d5e49365178.jpg[/IMG] Ну и соответственно в этой ситуации будет присутствовать частный случай когда цвет будет ПОСЛОЮ. to superkot007 ты сам ответил на свой вопрос. |
|||
|
||||
Инженер по теплоснабжению Регистрация: 10.04.2010
РБ, г. Могилев
Сообщений: 25
|
mmax, если честно, такой вариант и мне приходил в голову, но потом решил, что когда цвет равет цвету слоя - тогда сразу видно, когда после каких либо действий начинаешь рисовать цветом не по слою... да и привыкаешь, к цвету прицела, если работаешь постоянно в одних и тех же слоях... и при попытке что-то рисануть в левом слое - сразу глаза режет... хотя может кому-то и пригодится...
|
|||
|
||||
конструктор мебели Регистрация: 28.02.2010
г. Гатчина
Сообщений: 27
|
>mmax, заметил такую вещь.
С использованием лиспа, который переносит размеры и прочее на соответствующий слой не очень корректно работает смена цвета курсора, точнее смена цвета происходит, но приходится два раза нажимать на соответствующую кнопку размера. То есть получается так. Код:
Ни у кого больше подобного не происходит? PS. AutoCAD 2011 ENG |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Я тут поправил пост 49, там рассказывается про визуальную разницу цветов. В Автокад 2011 с этим делом ситуация вообще аховая. Не смотря на то что цвета совпадают по номерам, у некоторых цветов визуальная разница просто огромная.
Цитата:
проверил иногда конфликтует. Надо разбираться. Плохо что нет стандартов на использование реакторов. Все их пользуют как хотят Последний раз редактировалось mmax, 17.05.2010 в 00:29. |
|||
|
||||
Инженер по теплоснабжению Регистрация: 10.04.2010
РБ, г. Могилев
Сообщений: 25
|
Тут такое дело... Выявился еще один неприятный момент... видима из той же оперы что и размеры у grachev.p При желании перетащить группу объектов или объект на неактивном слое за ручку и нажатии на пробел, чтобы активировать Перемещение... команда отменяется...
Автокад по прежнему 2008 рус |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Значит так.
Все команды прерываются если цвет курсора сменился прямо во время выполнения команды. Это может произойти если слой сменился во время работы команды. Некоторые команды в процессе своей работы временно меняют слой и восстанавливают предыдущий при завершении своей работы. В случае с перемещением можно что-то придумать, а вот в с размерами неизвестно. |
|||
|
||||
конструктор мебели Регистрация: 28.02.2010
г. Гатчина
Сообщений: 27
|
Цитата:
Хотя тоже не вариант, не все пользуются тем лиспом. |
|||