Фиберы и AutoCAD Civil 3D 2015

Автор Тема: Фиберы и AutoCAD Civil 3D 2015  (Прочитано 16870 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Фиберы и AutoCAD Civil 3D 2015
« : 08-10-2014, 12:03:09 »
Здравствуйте!
Недавно перенес свои разработки в Civil 3D 2015 версии и, соответственно, перешел на Visual Studio 2013. Сейчас уже ни для кого не секрет, что в 2015 версии AutoCAD отказались от использования фиберов. Об этом можно прочитать например здесь: http://adn-cis.org/autocad2015-for-develop.html
Однако, запустив отладку, я не смог остановить выполнение кода в точке остановки, т.к. "Код выполняется в другом потоке"  :o . Более того, при изменении настроек чертежа, Civil 3D вылетал с ошибкой.
Вот как это выглядит: https://screencast.autodesk.com/Main/Details/81c2064b-7147-453d-89c4-81d526679a78
Сегодня я решил попробовать старое доброе обнуление NEXTFIBERWORLD (других вариантов уже не оставалось, я перепробовал все что мог) - и проблема исчезла! При этом, в запущенном с отключенными фиберами Civil 2015  не работает NETLOAD из автозагружаемого лисп-файла, так же, как и в 2014 версии.
Получается, что в случае с Civil 3D от фиберов "недоотказались" и переменные NEXTFIBERWORLD и FIBERWORLD по-прежнему актуальны.
« Последнее редактирование: 08-10-2014, 12:15:48 от Загорулькин Дмитрий »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #1 : 08-10-2014, 12:33:33 »
Сегодня я решил попробовать старое доброе обнуление NEXTFIBERWORLD (других вариантов уже не оставалось, я перепробовал все что мог) - и проблема исчезла! При этом, в запущенном с отключенными фиберами Civil 2015  не работает NETLOAD из автозагружаемого лисп-файла, так же, как и в 2014 версии.
Получается, что в случае с Civil 3D от фиберов "недоотказались" и переменные NEXTFIBERWORLD и FIBERWORLD по-прежнему актуальны.
Стоп. А каким у тебя был FIBERWORLD прежде чем ты начал эксперименты? Т.к. в AutoCAD 2015 изначально FIBERWORLD равен 0.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #2 : 08-10-2014, 12:57:12 »
FIBERWORLD не проверял, а NEXTFIBERWORLD было "<вкл.>", то есть = 1. Значит, и FIBERWORLD должно было быть = 1.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #3 : 08-10-2014, 13:01:05 »
FIBERWORLD не проверял, а NEXTFIBERWORLD было "<вкл.>", то есть = 1.
Хочешь меня запутать? ;-) Если NEXTFIBERWORLD было 1, то и FIBERWORLD было 1. Ты уверен что до того ничего не менял? Для эксперимента попробуй создать новый профиль и переключится на него. Ну и перезапустить Civil 3D и проверить значение FIBERWORLD (важно именно его значение, т.к. оно показывает текущее состояние).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #4 : 08-10-2014, 13:11:04 »
Нет такого желания :)
Создал профиль, сделал текущим, перезапустил программу, проверил:
Команда: NEXTFIBERWORLD

Новое значение NEXTFIBERWORLD <Вкл>: *Прервано*

Команда: FIBERWORLD

FIBERWORLD = Вкл (только чтение)
Команда: *Прервано*

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #5 : 08-10-2014, 13:47:09 »
Уточню ка я в ADN DevHelp какое значение по-умолчанию должно быть у переменной FIBRWORLD в AutoCAD Civil 3D 2015.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #6 : 08-10-2014, 14:26:10 »
Проверил на "нетронутом" Civil 3D 2015 - фиберы по умолчанию отключены. Но в этом случае не работает NETLOAD из LISP кода. Получается, что по умолчанию теперь этот способ загрузки DLL нерабочий?

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #7 : 08-10-2014, 15:45:41 »
В принципе можно попробовать временно установить NEXTFIBERWORLD в 1, выполнить _.netload и потом вернуть обратно. Хотя, конечно, это далеко не гуд...
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #8 : 08-10-2014, 15:49:36 »
Не получится - изменения переменной вступают в силу только после перезапуска программы.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #9 : 08-10-2014, 16:06:09 »
Может, у меня тут мозги закипают потихоньку - но вроде бы на чистом ACAD 2015 сработало. Попробую перепроверить, но попозже.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #10 : 08-10-2014, 16:08:40 »
Не получится - изменения переменной вступают в силу только после перезапуска программы.
Именно. Я так понимаю, что NETLOAD из lisp-кода не работает только при запуске AutoCAD, а во всех остальных случаях работает. В любом случае советую решать этот вопрос радикально, т.е. отказаться от загрузки при помощи команды NETLOAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #11 : 08-10-2014, 16:24:13 »
При отключенном NEXTFIBERWORLD загрузка через _.netload не срабатывает даже в уже созданном документе (при этом ручная загрузка работает вполне корректно).
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #12 : 08-10-2014, 16:24:42 »
Чем дальше в лес, тем толще партизаны...
При отключенных фиберах ПКМ работает только на повтор последней команды, независмо от настроек в профиле.
https://screencast.autodesk.com/main/details/1fe0b73e-f4e5-44e7-8d2c-6dbdb2ebe2cf

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #13 : 08-10-2014, 16:37:25 »
При отключенных фиберах ПКМ работает только на повтор последней команды, независмо от настроек в профиле.
В чистом AutoCAD 2015 это не воспроизводится. Меня смущает то, что ты запустил два Civil 3D 2015 с разными значениями FIBERWORLD. Как ты это сделал? Я не уверен, что это может корректно работать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #14 : 08-10-2014, 16:46:50 »
В чистом AutoCAD 2015 это не воспроизводится.
Проверю вечером на домашнем английском Civil 2015 и сделаю видеоотчет.
Да все то же самое, даже если я запускаю один экземпляр программы. Второй я запустил, изменив значение NEXTFIBERWORLD на 1 в первом, просто для того, чтобы видео удобнее было записывать.

P.S. Что же такое, неужели я один пытаюсь что-то делать в Civil 2015? Должен же кто-то еще с ним пытаться разбираться... Товарищи, где вы? Ау!! :)
Отписался бы хоть кто-нибудь, есть такие проблемы или это только я такой "везучий".

P.P.S. Удалось проверить поведение ПКМ на "нетронутом" Civil 3D 2015 без SP - там нет этой проблемы. У меня же SP1, может в этом дело...
« Последнее редактирование: 08-10-2014, 17:16:30 от Загорулькин Дмитрий »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #15 : 08-10-2014, 17:25:47 »
Я не смог воспроизвести ситуацию с отключенным FIBERWORD и неработающим контекстным меню в AutoCAD Civil 3D 2015 Russian:
https://screencast.autodesk.com/main/details/6b2db5f9-848d-4eb3-b535-eeb6ccbd731e
Это версия с SP1:

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #16 : 08-10-2014, 17:40:40 »
Стойте, Вы жмете ПКМ во время выполнения команды, а я показывал ее поведение, когда команда не выполняется.
« Последнее редактирование: 08-10-2014, 17:50:50 от Загорулькин Дмитрий »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #17 : 08-10-2014, 18:00:47 »
Стойте, Вы жмете ПКМ во время выполнения команды, а я показывал ее поведение, когда команда не выполняется.
А так: https://screencast.autodesk.com/Main/Details/283940ed-41e6-4ba8-b2c9-d6e7dfd4e2cd ?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #18 : 08-10-2014, 18:28:33 »
Александр Наумович, большое спасибо за проверку! Благодаря Вам, нашел-таки причину.
Такое поведение наблюдается, если имела место попытка NETLOAD из LISP файла. Возникает какая-то внутренняя ошибка и дальше Civil ведет себя таким безобразным образом.
Опять же, не всякая попытка NETLOAD из LISP вводит Civil в ступор. Попробовал выполнить загрузку одиночного DLL файла - выполнилось успешно. Когда же LISP грузит "пачку" DLL - возникает ошибка... Буду разбираться!
Еще раз спасибо!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #19 : 08-10-2014, 18:45:54 »
Такое поведение наблюдается, если имела место попытка NETLOAD из LISP файла.
Этот лисп ты запускал вручную после того как Civil 3D полностью загрузился или он запускается автоматически при загрузке? Если автоматически при загрузке, то каким образом (есть с десяток разных способов)?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #20 : 08-10-2014, 18:56:34 »
В последний раз я запускал LISP через инструмент загрузки приложений (_APPLOAD). Мой LISP-загрузчик выдал ошибку при загрузке. После этого, я создал простой LISP в котором практически одной строчкой грузил одну DLL - он загрузился без ошибок.
Тогда я убрал из своего старого LISP-загрузчика установки значений переменных (GETVAR, SETVAR), вывод сообщений в командную строку (PRINC) и функцию итераций по списку (MAPCAR) - он стал грузиться без ошибок.
Вот теперь методом исключения пытаюсь понять, что же вызывает ошибку.

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #21 : 08-10-2014, 19:36:33 »
В общем, получается, что проблема возникает при совместном использовании MAPCAR, LAMBDA, VL-CMDF и NETLOAD. Уж в чем тут проблема - непонятно.
Вот такой код вызывает ошибку:
Код - Auto/Visual Lisp [Выбрать]
  1. (mapcar (function (lambda (a) (vl-cmdf "_netload" a)))
  2.         (list
  3.           "zlib.net.dll"
  4.           "ProjectorSupport.dll"
  5.           "ProjectorWinFormLib.dll"))
А его "развернутый" аналог - нет:
Код - Auto/Visual Lisp [Выбрать]
  1. (vl-cmdf "_netload" "zlib.net.dll")
  2. (vl-cmdf "_netload" "ProjectorSupport.dll")
  3. (vl-cmdf "_netload" "ProjectorWinFormLib.dll")
В видео первая минута - один сеанс, где я запускал первый код, начиная с 00:01:02 - другой сеанс, где я запускал второй код. Эдакий видеомонтаж :)
https://screencast.autodesk.com/Main/Details/9f186a70-af9c-457e-8f69-c12e06ba103c

Если же фиберы включить, то ошибки не происходит.
https://screencast.autodesk.com/Main/Details/f2604c51-a010-4529-b46a-1e46a162203f

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #22 : 08-10-2014, 19:38:14 »
начни с замены (vl-cmdf ...) на (command ...)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #23 : 08-10-2014, 19:46:01 »
начни с замены (vl-cmdf ...) на (command ...)
Не помогло. К тому же, vl-cmdf есть в обоих вариантах.
Mapcar тоже отдельно работает - проверял. А вот именно в комбинации mapcar+netload+vl-cmdf "что-то не того" происходит.
В принципе, я спокойно могу обойтись и без таких конструкций, заменив циклы на развернутые аналоги.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #24 : 08-10-2014, 19:51:42 »
Я бы посоветовал грузить один dll-файл, который будет грузить все остальные. Список кого нужно грузить можно оформить в виде xml-файла в той же папке, что dll-файл. Мне кажется, что так должно быть надежнее. Кстати можно будет делать это всё из главного потока (Thread), что должно быть более корректным: http://adn-cis.org/ispolzovanie-potokov-dlya-fonovoj-obrabotki.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #25 : 09-10-2014, 09:28:09 »
начни с замены (vl-cmdf ...) на (command ...)
Заменил на command-s (новая LISP функция для синхронного выполнения команды), проблема пропала.
Я бы посоветовал грузить один dll-файл, который будет грузить все остальные. Список кого нужно грузить можно оформить в виде xml-файла в той же папке, что dll-файл. Мне кажется, что так должно быть надежнее. Кстати можно будет делать это всё из главного потока (Thread), что должно быть более корректным: http://adn-cis.org/ispolzovanie-potokov-dlya-fonovoj-obrabotki.html
О... эта тема отдельной ветки. Вообще, сейчас в моде Bundle, как я понял :)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Фиберы и AutoCAD Civil 3D 2015
« Ответ #26 : 09-10-2014, 11:49:44 »
Заменил на command-s (новая LISP функция для синхронного выполнения команды), проблема пропала.
О! Отлично.
Вообще, сейчас в моде Bundle, как я понял :)
Сейчас да, но это если ты поддерживаешь AutoCAD начиная не ранее чем 2012-ым.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение