Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Андрей Бушман от 12-05-2014, 12:25:04

Название: CUIX & LSPFile
Отправлено: Андрей Бушман от 12-05-2014, 12:25:04
проверял в AutoCAD 2014 SP1 x86 Enu.
1. Почему код, обозначенный мною здесь (http://www.theswamp.org/index.php?topic=47045.msg520730#msg520730), не дал ожидаемых результатов? Если что-то не верно в коде - прошу указать на это.
2. Почему в режиме удалённой (проверить для локальной нет возможности) отладки получаю обозначенное мною исключение, а вне отладки - нет?
Название: Re: CUIX & LSPFile
Отправлено: Дима_ от 12-05-2014, 13:12:28
Путь к лиспу в числе разрешенных к запуску?
Название: Re: CUIX & LSPFile
Отправлено: Андрей Бушман от 12-05-2014, 13:13:41
да
Название: Re: CUIX & LSPFile
Отправлено: Александр Ривилис от 12-05-2014, 13:53:23
проверял в AutoCAD 2014 SP1 x86 Enu.
1. Почему код, обозначенный мною здесь, не дал ожидаемых результатов? Если что-то не верно в коде - прошу указать на это.
2. Почему в режиме удалённой (проверить для локальной нет возможности) отладки получаю обозначенное мною исключение, а вне отладки - нет?
1. Не ленись переносить вопрос в этот форум.
2. FIBERWORLD чему равен?
3. Отладчик VS 2013? Тогда: http://through-the-interface.typepad.com/through_the_interface/2013/11/debugging-autocad-using-visual-studio-2013.html
Название: Re: CUIX & LSPFile
Отправлено: Андрей Бушман от 12-05-2014, 13:55:44
2. FIBERWORLD чему равен?
FIBERWORLD = 1 (read only)
Название: Re: CUIX & LSPFile
Отправлено: Андрей Бушман от 12-05-2014, 14:28:12
1. Всё же мне бы хотелось услышать конкретный ответ на мой первый вопрос (хотя бы на него).

2. Указанный по ссылке топик Волмслея рассказывает о проблеме, проявляющейся в ситуациях, связанных со шрифтами. Контекстное меню корневого элемента в дереве настроек не имеет никакого отношения к шрифтам Автокада.
Название: Re: CUIX & LSPFile
Отправлено: Александр Ривилис от 12-05-2014, 14:33:33
2. Указанный по ссылке топик Волмслея рассказывает о проблеме, проявляющейся в ситуациях, связанных со шрифтами.
Это одно из проявлений.
Название: Re: CUIX & LSPFile
Отправлено: Андрей Бушман от 12-05-2014, 14:36:38
Это одно из проявлений.
Ясно, спасибо. А по первому пункту что-то есть?
Название: Re: CUIX & LSPFile
Отправлено: Александр Ривилис от 12-05-2014, 14:38:30
А по первому пункту что-то есть?
Проверю и отпишусь. Возможно баг, возможно изменили поведение. Так как описания нет, то возможны варианты.
Название: Re: CUIX & LSPFile
Отправлено: Андрей Бушман от 12-05-2014, 14:43:09
Проверю и отпишусь.
Спасибо.
Название: Re: CUIX & LSPFile
Отправлено: Дима_ от 13-05-2014, 08:32:48
Возможно баг, возможно изменили поведение.
Кстати, по поводу "изменили поведение" а .SaveAs() случаем не работает (хотя в любом случае могли как минимум в заглушке метода "старого образца" написать об этом где нибудь типа консоли - или вообще убрать, чтоб не компилировалось - а то странная поддержка - он есть, true "молча" вернул - но не работает).
Название: Re: CUIX & LSPFile
Отправлено: Андрей Бушман от 13-05-2014, 10:38:10
а .SaveAs() случаем не работает
Группу тестирования AutoCAD (ходят необоснованные слухи, о её возможном существовании) нужно поставить на горох в угол. SaveAs() работает! Что-то у Автодеска наблюдается устойчивая "нелюбовь" к методу Save() - аналогичная "реализация" наблюдалась и для Database.Save (см. "Внимание!" здесь (https://sites.google.com/site/bushmansnetlaboratory/translate-manual/upravlenie-sredoj-autocad/sozdanie-otkrytie-sohranenie-i-zakrytie-certezej/sohranenie-i-zakrytie-certeza)). Тынц (http://www.theswamp.org/index.php?topic=47045.msg520811#msg520811).
Название: Re: CUIX & LSPFile
Отправлено: Дима_ от 13-05-2014, 11:46:00
Что-то у Автодеска наблюдается устойчивая "нелюбовь" к методу Save()
Все ниженаписанное лишь мои фантазии. Я не знаю первопричин проявления этого бага у автодеска, но допускаю, что они пытаются плавно привести API к более "правильному" виду (в моем представлении метод Save() без аргумента - то есть работающий только с неочевидной на момент вызова внутренней структурой - это рассадник ошибок - делать так можно, но тем самым "связывает" абстракцию до уровня файла настроек - да он сейчас именно этим и является - но надо смотреть чуток вперед, а если это (файл и все тут) "осознанно" - то проще документировать XML, а не извращаться с "полуайпи"). Если это так - то тенденция конечно правильная - но реализация пока немного хромает - похоже одна группа решила, что надо сделать так, другие, не вдаваясь в подробности "реализовали".
Название: Re: CUIX & LSPFile
Отправлено: Александр Ривилис от 13-05-2014, 11:46:38
Группу тестирования AutoCAD (ходят необоснованные слухи, о её возможном существовании) нужно поставить на горох в угол
Группа тестирования AutoCAD не занимается тестированием AutoCAD API. Это совершенно разные вещи.

Дима молодец - интуиция и опыт сработали! Кстати, если помните начиная с AutoCAD 2006 перестал работать метод MenuGroup.Save (впрочем и метод MenuGroup.SaveAs тоже не работает) - об этом явно написано в документации. Для Андрея уточняю, что сейчас я говорю о AutoCAD ActiveX/COM API

Задам вопрос в ADN DevHelp Online по поводу работы CustomizationSection.Save
Название: Re: CUIX & LSPFile
Отправлено: Дима_ от 13-05-2014, 11:54:38
Дима молодец - интуиция и опыт сработали!
:)
ВиниПух как у тебя так все получается?
Опыт Пятачок, опыт.
Ну да у тебяЖопыта больше.... 

Название: Re: CUIX & LSPFile
Отправлено: Андрей Бушман от 13-05-2014, 11:56:21
что-то Дима_ в очередной раз намудрил "с запятыми":
Цитировать
в моем представлении метод Save() без аргумента - то есть работающий только с неочевидной на момент вызова внутренней структурой - это рассадник ошибок - делать так можно, но тем самым "связывает" абстракцию до уровня файла настроек - да он сейчас именно этим и является - но надо смотреть чуток вперед, а если это (файл и все тут) "осознанно" - то проще документировать XML, а не извращаться с "полуайпи".

Написано так, что не понятно, что именно он считает "рассадником ошибок": то ли реализацию без параметров, то ли реализацию с параметрами. :)

P.S. Такое ощущение, что Дима_ пишет с Nokia в трясущемся трамвае и не всегда попадает пальцем туда, куда целится. Отсюда вырастают порой двояко-трактуемые фразы. ;)
Название: Re: CUIX & LSPFile
Отправлено: Дима_ от 13-05-2014, 12:00:42
Да вроде в этот раз понятно (но каюсь бывают грешу) - без параметра - это ИХМО залипуха и потенциальное зло.
з.ы. Да с "нокии" я порой лучше пишу - просто сейчас я еще на работе паралельно.
Название: Re: CUIX & LSPFile
Отправлено: Александр Ривилис от 13-05-2014, 12:07:34
Я отправил вопрос в Autodesk. Пусть объяснят.
Название: Re: CUIX & LSPFile
Отправлено: Андрей Бушман от 13-05-2014, 12:08:43
без параметра - это ИХМО залипуха и потенциальное зло.
Но тем не менее, без параметров - это как раз устранение зависимости, поскольку аргумент, в виде имени целевого файла как раз и:
Цитировать
"связывает" абстракцию до уровня файла настроек - да он сейчас именно этим и является - но надо смотреть чуток вперед, а если это (файл и все тут)
Т.е. при отсутствии параметра [имени файла] разработчику как раз и должно быть фиолетово, где в текущей версии AutoCAD хранит свои настройки: в зашифрованном бинарнике, в XML, в реестре или же вовсе в реляционной базе данных (это абстрагировано от него).
Название: Re: CUIX & LSPFile
Отправлено: Дима_ от 13-05-2014, 12:22:57
Но тем не менее, без параметров - это как раз устранение зависимости:
У нас просто разный подход к этому вопросу - это место вызова неочевидного кода котому строго должны предшествовать неявные из "сложнозакрученной" программы действия (то есть его можно использовать только в простой императивной последовательности).
Цитировать
Т.е. разработчику должно быть фиолетово, где в текущей версии AutoCAD хранит свои настройки: в XML, реестре или в реляционной базе данных.
- да. Смотрим например класс Bitmap (экземпляр которого может быть и создан "програмно" и загружен из файла), там нет "пустого" метода Save() только с указанием куда (плюс естественные расширения - как и в каком формате). ИХМО неверно при загрузке хранить путь откуда и если он есть по дефолту записывать туда.
з.ы. цитата успела измениться - мы экземпляр класса как-то получили (из файла в нашем случае, но допустим, их можно будет хранить еще черт знает где, либо создать полностью програмно - в данных неправильно хранить привязку откуда они и они должны соответственно уметь записываться куда угодно - что и нужно показать - да возможно это будет какое-либо хранилище автодеска по умолчанию (изменяемое пользователем) - что и надо указать отдельной перегрузкой метода - но не как не пустым методом - который подразумевает сохранить там откуда взято - этот подход я считаю не правильным - т.к. появляется зависимость от физической реализации хранилища).
Название: Re: CUIX & LSPFile
Отправлено: Александр Ривилис от 14-05-2014, 18:14:55
Проблема с CustomazationSection.Save подтверждена в ADN DevHelp и передана в команду разработчиков.