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

ADN Club => Inventor API => Тема начата: Vladislav от 20-01-2020, 15:41:32

Название: Конвертация чертежей в DWG
Отправлено: Vladislav от 20-01-2020, 15:41:32
Здравствуйте!
Есть следующий код, сохраняющий чертежи Inventor в формате DWG.
Код - C# [Выбрать]
  1. TranslatorAddIn DWGAddIn = InventorApplication.ApplicationAddIns.ItemById["{C24E3AC2-122E-11D5-8E91-0010B541CD80}"] as TranslatorAddIn;
  2.  
  3.             TranslationContext trContext = InventorApplication.TransientObjects.CreateTranslationContext();        
  4.             trContext.Type = IOMechanismEnum.kFileBrowseIOMechanism;
  5.  
  6.             //Create a NameValueMap object
  7.             NameValueMap Options = InventorApplication.TransientObjects.CreateNameValueMap();
  8.  
  9.             //Create a DataMedium object
  10.             DataMedium oDataMedium;
  11.             oDataMedium = InventorApplication.TransientObjects.CreateDataMedium();
  12.  
  13.             //Check whether the translator has 'SaveCopyAs' options
  14.             if (DWGAddIn.HasSaveCopyAsOptions[DrwDoc, trContext, Options]) {
  15.                String strIniFile =  Path + "tempDWGOut.ini";
  16.                 // Create the name-value that specifies the ini file to use.
  17.                 Options.Value["Export_Acad_IniFile"] = strIniFile;
  18.             }
  19.  
  20.             //Set the destination file name
  21.             oDataMedium.FileName = Path + "Pub.dwg";
  22.  
  23.             //Publish document.
  24.             DWGAddIn.SaveCopyAs(DrwDoc, trContext, Options, oDataMedium);

При его работе возникает ошибка (скриншот приложен). Не могу понять, в чем дело.
Раньше этот код работал.
Благодарю за информацию.
Название: Re: Конвертация чертежей в DWG
Отправлено: mikazakov от 21-01-2020, 08:10:24
Vladislav,
выложите пожалуйста файл который экспортируются, я проверю на своей компе.
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 21-01-2020, 11:32:33
Вот этот файл. Но дело, я думаю, не в нем.
Потому что, раньше всё работало...
Название: Re: Конвертация чертежей в DWG
Отправлено: mikazakov от 21-01-2020, 15:48:06
В общем, посмотрел, работает всё нормально, вам нужно инвентор переустановить, может какая библиотека слетела.
А может прав нету на папку куда сохранение идет.
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 21-01-2020, 16:56:56
Vladislav,
mikazakov
А в каких версиях Inventor вы проверяли? И не ставились ли обновления на Inventor или Windows???
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 21-01-2020, 17:19:43
Нашел две темы с этой же ошибкой:
https://forums.autodesk.com/t5/inventor-customization/dxf-export-inventor-2017/td-p/7168269
https://forums.autodesk.com/t5/inventor-customization/ilogic-rule-not-working-with-inventor-2019/td-p/8093643
В одной из них проблема была связана с отсутствием доступа к ini-файлу.
Название: Re: Конвертация чертежей в DWG
Отправлено: mikazakov от 21-01-2020, 17:25:33
А в каких версиях Inventor вы проверяли?
Inventor 2020.2
Винда 10-ка
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 22-01-2020, 13:34:40
Добрый день.
У меня Inventor 2019 и Windows 7.
Windows периодически ставит обновления. Возможно, после одного из них всё и поломалось...
Переустановка Inventor не помогла.
Путь к ini-файлу тот же, что и для результирующего dwg. Проверил вручную доступ к этой папке.
С созданием в ней файлов вручную проблем нет.
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 22-01-2020, 13:36:20
Vladislav,
А что с доступом к ini-файлу?
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 22-01-2020, 13:38:11
Переустановка Inventor не помогла.
Переустановка теоретически может помочь только если выполнена "подчистка хвостов", т.е. стерты все предыдущие установки Inventor.
Ну и установите обновления Inventor.
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 22-01-2020, 13:44:08
Путь к ini-файлу тот же, что и для результирующего dwg. Проверил вручную доступ к этой папке.
С созданием в ней файлов вручную проблем нет.
Но после получения этой ошибки Ini-файлов в этой папке нет...
Возможно, до его создания дело и не доходит.
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 22-01-2020, 13:48:31
Vladislav,
А вручную экспорт в dwg в эту же папку работает? Или уже тоже перестал?
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 22-01-2020, 14:24:09
Вручную экспорт работает.
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 22-01-2020, 14:36:22
Попробуй всё что описано в этой статье: https://adndevblog.typepad.com/manufacturing/2012/08/save-a-drawing-to-dwg-dxf-format-using-additional-options-in-an-ini-file.html
P.S.: Я так понял по статье, что ini-файл предварительно должен существовать в указанном месте.
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 22-01-2020, 15:29:22
Странно. Но, если предварительно создать ini-файл, то и правда работает.
Но раньше код корректно работал и без этого. Не понятно...
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 22-01-2020, 15:33:04
Но, если предварительно создать ini-файл, то и правда работает.
Фух!
Но раньше код корректно работал и без этого. Не понятно...
Может где-то находил другой подходящий ini-файл.
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 22-01-2020, 15:35:56
Осталось уточнить у mikazakov, как он проверял с существующим ini-файлом или без.
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 22-01-2020, 15:37:43
Вот я и не пойму...
В любом случае мне не очень подходит вариант с предварительным созданием ini-файла.
Поставлять ini-файл вместе со своим плагином я не смогу, т.к. там (в ini-файле) есть жесткая привязка по путям.
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 22-01-2020, 15:38:47
Поставлять ini-файл вместе со своим плагином я не смогу, т.к. там (в ini-файле) есть жесткая привязка по путям.
Ну так пропишешь эти пути. В чем проблема?
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 22-01-2020, 15:50:45
Кажется, я выяснил в чем проблема.
Почему-то ini-файл создался в другой папке. Не там, где я указывал в коде.
Нашел его через поиск на диске. Осталось понять, как он там оказался...
Название: Re: Конвертация чертежей в DWG
Отправлено: mikazakov от 22-01-2020, 19:37:40
Осталось уточнить у mikazakov, как он проверял с существующим ini-файлом или без.
Я ручками прописал  путь к нему, ведь у меня был только кусок программного кода
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 22-01-2020, 20:45:13
Осталось уточнить у mikazakov, как он проверял с существующим ini-файлом или без.
Я ручками прописал  путь к нему, ведь у меня был только кусок программного кода
Путь к существующему ini-файлу? Потому-что Vladislav считает, что приведённый им код сам должен его создать.
Название: Re: Конвертация чертежей в DWG
Отправлено: mikazakov от 23-01-2020, 05:51:57
Путь к существующему ini-файлу?
Код был "не причёсаный" и не понятно что за переменная "Path", ну я немного его модифицировал на существующий файл. Вполне может быть, что ini-файл может создаваться где-нибудь "по дефолту"
Но при работе пользователем, как то вообще не заморачиваешься на этом файле.

(https://i.ibb.co/8Bk0sjt/image.png) (https://imgbb.com/)
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 24-01-2020, 15:02:49
Path - это строка с путем к папке на диске, в которую должны сохраняться полученные dwg-файлы.
Я подразумеваю, что ini-файл создается там же.
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 24-01-2020, 15:19:39
Я подразумеваю, что ini-файл создается там же.
Похоже, что зря подразумеваешь и этот файл автоматически не создаётся.
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 24-01-2020, 16:07:28
Но и через поиск найти его на диске не получается...
Хотя сейчас, вроде, работает.
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 27-01-2020, 13:48:21
Добрый день. Странно.
Код нормально работает в Inventor 2019 и
выдает ту же ошибку в Inventor 2020.
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 27-01-2020, 13:50:34
Vladislav,
1. Ты подложил программе готовый ini-файл?
2. Установлены все обновления для Inventor 2020?
Название: Re: Конвертация чертежей в DWG
Отправлено: mikazakov от 27-01-2020, 16:58:50
Дефолтные файлы должны быть здесь
C:\Users\Public\Documents\Autodesk\Inventor 2020\Design Data\DWG-DXF
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 30-01-2020, 13:29:42
Vladislav,
1. Ты подложил программе готовый ini-файл?
2. Установлены все обновления для Inventor 2020?
Нет, готовый файл не предложил. Но я его и 19-му Инвентору сейчас не предлагаю.
При этом в нем работает. Обновления, нет, не все.
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 30-01-2020, 13:31:31
Дефолтные файлы должны быть здесь
C:\Users\Public\Documents\Autodesk\Inventor 2020\Design Data\DWG-DXF
У меня этой папки вообще нет ни в 20-м, ни в 19-м Инвенторе.
Прошу прощения. Папку, кажется, нашел. Файлы exportdwg.ini там есть. Но всё равно не работатет...
Название: Re: Конвертация чертежей в DWG
Отправлено: mikazakov от 30-01-2020, 15:50:57
Папку, кажется, нашел.
Ну путь к папке Design Data может как быть общим, так и переопределенным для конкретного проекта (вторая картинка сверху). Может просто в проекте путь переопределен?
(https://i.postimg.cc/mPQP5tsv/image.png) (https://postimg.cc/mPQP5tsv)
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 31-01-2020, 14:45:14
А где находятся настройки проекта?
В настройках приложения путь указан корректно.
Название: Re: Конвертация чертежей в DWG
Отправлено: mikazakov от 31-01-2020, 21:20:47
А где находятся настройки проекта?
Ну в редакторе проекта, где же ему ещё быть.
Или у вас проектами пользоваться не принято?
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 31-01-2020, 21:23:41
mikazakov,
Может я не прав, но мне кажется, что вопрос Vladislav, заключается в том, чтобы используя API найти каталог, установленный в проекте, чтобы потом сослаться на него в коде:
Код - Visual Basic [Выбрать]
  1. Dim sPath As String
  2. If ThisApplication.DesignProjectManager.ActiveDesignProject.DesignDataPathOverridden = True
  3.   sPath = ThisApplication.DesignProjectManager.ActiveDesignProject.DesignDataPath
  4. Else
  5.   sPath = ThisApplication.FileOptions.DesignDataPath
  6. Endif
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 03-02-2020, 17:46:59
Заметил, что у меня в Inventor 2020 загружается плагин, установленный в папку с Inventor 2019.
Не знаю, почему так происходит, но, скорее всего, проблемы связаны именно с этим...
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 04-02-2020, 14:43:26
   Проблему с загрузкой решил, но чертежи по-прежнему не публикуются в Inventor 2020.
Если я предлагаю программе файл exportdwg.ini из Design Data, то публикация проходит,
но результат не совсем тот, что мен нужен. На выходе получается один файл с расширением zip.
В то время как мне нужен набор dwg-файлов.
В Inventor 2019 всё работает корректно...
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 04-02-2020, 15:05:22
Если я предлагаю программе файл exportdwg.ini из Design Data, то публикация проходит,
но результат не совсем тот, что мен нужен.
Так скопируй программой этот ini-файл, подправь в копии так, чтобы было "как нужно" и предложи программе копию ini-файла. В чем проблема?
Название: Re: Конвертация чертежей в DWG
Отправлено: Vladislav от 04-02-2020, 15:24:34
Просто в Inventor 2019 всё хорошо работает и без этих лишних манипуляций.
Вот я и пытался сделать код максимально простым и универсальным для разных версий Inventor...
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 04-02-2020, 15:49:07
Vladislav,
Вы не можете изменить поведение Inventor. Следовательно следует под него подстроится.
Название: Re: Конвертация чертежей в DWG
Отправлено: Александр Ривилис от 04-02-2020, 15:51:55
Вот я и пытался сделать код максимально простым и универсальным для разных версий Inventor...
Универсальным будет как раз если вы подложите ini-файл с нужными настройками.