|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
18.05.2010, 22:27 | #1 | |
Почему срабатывает "табличный" реактор при сохранении рисунка.
Продуман
Питер
Регистрация: 22.02.2007
Сообщений: 2,840
|
||
Просмотров: 8396
|
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Если реактор срабатывает на таблицу во время сохранения, то это не исправить. Точнее нельзя сделать так чтобы он не срабатывал.
Как вариант могу предложить следующее: Есть реактор который отслеживает сохранение рисунка и там есть два события 1 документ будет сохранен (на это событие выключаем реактор таблицы) 2 Документ сохранен (включаем реактор таблицы) |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Про это я думал - но как-то через ж..у получаеться, ведь наверняка "попадет" что именно во время редакции таблицы (когда реактор должен сработать) заработает автосохранение.
п.с. похоже это будет мой следующий вопрос когда кто-нибудь из наших передовиков поедет на встречу с автодеском.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
вот такой реактор не даст среагировать табличному реактору, когда выполняется сохранение и авто сохранение.
Конфликт конечно не исключен, но все зависит от поставленной задачи. Код:
Код:
Последний раз редактировалось mmax, 19.05.2010 в 21:40. Причина: Исправление ошибок в коде |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Спасибо - за примеры - но это все же танцы с бубнами - типа убрать одну ошибку но появится другая (потенциально), хотя видимо в данном случае что-то лучшее придумать сложно - жаль, надеюсь спецы в автодеске рано или поздно подправят. В твоем первом варианте, я так понимаю (cons :vlr-beginsave 'OFFtablereactor) надо заменить на (cons :vlr-saveComplete 'OFFtablereactor)
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Да.
Автосохранение началось - выключаем табличный реактор Закончилось - включаем Во втором варианте клик по таблице - выключается автосохранение редактирование закончилось(нажатия различных клавишь типа ESC ЕНТЕР) - включаем сохранение Цитата:
Цитата:
|
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Не обязательно быть "влиятельным" - тут регулярно толковых людей приглашают на "сходняки" Автодеска куда и выноститься подобное, не то что это сразу все там бросаются решать, но тем не менее...
Про ошибок бояться - замечание оригинальное
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Я немного детальныее проанализировал почему срабатывает реактор для таблицы при сохранении. Протокол ниже:
Код:
Судя по всему такое поведение не случайно, так что с вероятностью 99.9% Autodesk'овцы ничего менять не будут. Кстати у меня при команде QSAVE реактор вызвался дважды. Причем во второй раз (entget) для таблицы возвращал nil. |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Аналогично.
Насчет вероятности не знаю, да и с тем что поведение не случайно уверен на 100% - просто там не учтено, что на таблицу при этом может висеть реактор - а т.к. эта ситуация не обрабатывется (не учитывается) - это не что иное как ошибка.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Ну и что? Значит ты должен учесть возможность срабатывания реактора при сохранении.
Нет. Это особенность поведения. Реакторы - это очень тонкая вещь. С учетом того, что в VisualLisp реализованы далеко не все реакторы (по сравнению с ObjectARX) могу посочувствовать тем, кто их в lisp'е использует. |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Как и в соседней теме - это вопрос как мы это назовем - т.к. эта "особенность" не описана в руководстве - я называю ее ошибкой - это то же самое, например, если Вы делаете большой чертеж - а когда его размер достигает, скажем, 100 МБ - он без предупреждения и возможности что-то исправить, слетает нафиг - это что ошибка или особенность поведения?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Цитата:
А вот если AutoCAD разваливается сам по себе и на значительно меньших чертежах (без программистских штучек) - то это баг, который нужно исправлять. |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Не ну это уже перебор - точно так-же нигде не паписано, что при сохранении она не должна поменять шрифты - еслиб они менялись Вы тоже назвали'б это особенностью?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
|
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Если честно то нет - характер ошибки одинаковоый, просто одна более на поверхности. Сугубо ИХМО. Почему я должен догадываться что ШТАТНАЯ функция установки реактора на РЕДАКТИРОВАНИЕ будет вызываться во время работы СОХРАНЕНИЯ - причем 2 раза, причем во второй еще и "косячно". Не учитывать, что могут работать привязки, например, самая распостраненная ОШИБКА новичков в Автолиспе - с этим Вы согласны? Чем принципиально отличается от неучитанного установленного реактора, ведь для пользователя никакого редактирования не происходит.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Цитата:
Для пользователя - да. Для программиста - нет. Программист должен понимать и быть готов к тому, что при сохранении чертежа возможны всякие нюансы, в том числе и модификация существующих примитивов (например, при наличии полей). |
||||
|
||||
Цитата:
Можно предположить, что первый раз таблица изменяется при модификации AcDbBlockTableRecord, второй раз как AcDbTable Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 21.05.2010 в 10:56. |
||||
|
||||
Александр Ривилис, Не знаю как такое получилось. Исправил
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
То VVA - раз уж и Вы здесь - хочу узнать Ваше мнение на данную реакцию автокада (к чему это ближе - особенности реализации или недосмотру программистов)? Уважте авторитетным мнением
п.с. Не подумайте плохого - Александра Ривлиса я уважаю и считаю одним из самых авторитетных людей в этом подфоруме, просто в данном вопросе "расхожусь" во мнениях.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сейсмозащита и сейсмоизоляция существующих, построенных зд. | IANationalInformAgentstvo | Прочее. Архитектура и строительство | 216 | 20.01.2015 16:51 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
БРЕД СИВОЙ КОБЫЛЫ | Kryaker | Разное | 1876 | 29.12.2006 23:41 |
Почему при печати сплайн толщиной 1 мм меньше donut диаметро | boban | AutoCAD | 4 | 18.05.2005 08:45 |
Почему при печати точка диаметром 1 меньше линии толщиной 1 | boban | AutoCAD | 6 | 30.04.2005 21:05 |