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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Почему срабатывает "табличный" реактор при сохранении рисунка.

Почему срабатывает "табличный" реактор при сохранении рисунка.

Ответ
Поиск в этой теме
Непрочитано 18.05.2010, 22:27
Почему срабатывает "табличный" реактор при сохранении рисунка.
Дима_
 
Продуман
 
Питер
Регистрация: 22.02.2007
Сообщений: 2,839

Не очень ясна следуящая реакция автокада (2010, на других пока не проверял). Вот упрощенный (но рабочий) код:
Код:
[Выделить все]
(defun f (a b c) (alert "Start edit"))
(vlr-object-reactor (list (vlax-ename->vla-object (entlast))) nil '((:vlr-modified . f)))
Если нарисовать отрезок, круг, полилинию и т.п все работает корректно, но если сей реактор поставить на таблицу - то он почему-то срабатывает при сохранении документа (в том числе при "Save as" и автосохранении). Более того, если в этом реакторе идет чтение таблицы (что и было в первоначальном "сложном варианте"), то 1-ый раз она читается - а на второй - идет ошибка - отсутствие описания, вобщем эта ошибка (не срабатывание чтения таблицы на второй раз), на данный момент у меня используеться для определения кем вызван реактор (автозапуском или нет), но получаеться что-то типа взаимной компенсации ошибок. Вобщем вопрос такой - с чего вдруг при сохранении срабатывает реактор, и как от этого избавиться "по правильному"? Мешает мне это по тому, что на таблице висит реактор "пересоздающий" часть рисунка - так вот беда в том, что если пользователь что-нибудь подправил вручную (не в таблице - а скажем так в результате ее работы) то для сохранения приходиться "обнулять" реактор, что совсем не удобно.
p.s. такое же поведение обнаружилось у текстов, подумал что дело в обновлении полей при сохранении (хотя ни там, ни там их не было, но хрен знет как там в автодеске написали), отключил - не помогло. Есть идеи то подкинтье пожалуйста, я сам "порою".
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 19.05.2010 в 10:41.
Просмотров: 9116
 
Непрочитано 21.05.2010, 11:53
#21
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Дима_
У меня была похожая реакция на непонятное для меня поведение AutoCAD лет 10...15 назад. Например, когда в AutoCAD 2000i перестала работать фильтрация по имени приложения в расширенных данных в функции (ssget) - это было для меня принципиально. Теперь я отношусь к таким вещам спокойнее. Если есть возможность обхода какой-либо ситуации (workaround) малой кровью, то я не считаю что это критичным багом и даже не посылаю его в Autodesk (по линии ADN).
В данном же случае если послать сообщение в Autodesk о срабатывании реактора при сохранении, то (100%) Autodesk'цы сообщат, что так и задумано и ничего менять не будут. Поверь моему опыту.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 21.05.2010, 12:30
#22
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Верю! Может кажеться и по другому - но я тоже вполне спокойно отношусь к подобным вещам, я с автокадом знаком гораздо менее Вас, но в системном программировании "крутился" лет 10 плотно (сейчас правда забросил) - так там таких "багов-особенностей" да еще и друг друга компенсирующих - одна на одной. В общем-то хороший системщик и отличается от "среднестатистического" (я себя относил к хорошим, да и другие то же), знанием "особенностей" конкретной системы выходящих за общие рамки программирования (алгоритмированния).
p.s. На самом деле изначально спрашивал - может кто с этим сталкивался, и как это можно корректно обойти - предложенный метод по заглушке реакторов - это первое что пришло мне на ум, но это т.н. "кривой" метод. т.к. сам по себе пораждает кучу гороздо более трудноотслеживаемых потенциальных ошибок - которые вылезут неизвестно где (вобще не поймешь что они связанны). Но судя по теме других вариантов и нет - увы.
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 21.05.2010 в 12:50.
Дима_ вне форума  
 
Непрочитано 21.05.2010, 13:37
#23
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
предложенный метод по заглушке реакторов - это первое что пришло мне на ум, но это т.н. "кривой" метод.
Правильный метод был предложен mmax - это отмечать факт начала/конца сохранения/автосохранения и в случае попадания в интервал начало-конец сохранения/автосохранения табличный реактор не должен ничего делать.
Александр Ривилис вне форума  
 
Непрочитано 21.05.2010, 21:24
#24
mmax

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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Правильный метод был предложен mmax - это отмечать факт начала/конца сохранения/автосохранения и в случае попадания в интервал начало-конец сохранения/автосохранения табличный реактор не должен ничего делать.
повторюсь:
Был предложен еще вариант:
Начало конец редактирования таблицы - отключать а потом возвращать автосохранение в исходное состояние
mmax вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Почему срабатывает "табличный" реактор при сохранении рисунка.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сейсмозащита и сейсмоизоляция существующих, построенных зд. 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