Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Visual Basic (VB, VBA, VB.NET) => Тема начата: gramdee от 05.09.19, 13:35:20

Название: Выбор версии DXF при сохранении
Отправлено: gramdee от 05.09.19, 13:35:20
Сохраняю файл из CDW/FRW в формат DXF с помощью IKompasDocument.SaveAs. Все получается.

Возникла необходимость сохранить в старой версии, а именно в AutoCAD 2000. Есть ли какой-либо способ сохранить с указанием версии или, может быть где-то в интерфейсе Компаса нужно что-то перенастроить, чтобы всегда сохранялось в старой версии?

Название: Re: Выбор версии DXF при сохранении
Отправлено: Вират Лакх от 10.01.20, 06:18:31
Вот тут можно задать версию формата (он запомнится):
iConverter = iApplication.Converter(KompasObject.ksSystemPath(1) + '/ImpExp/dwgdxfExp.rtw') # Конвертер файлов КОМПАС
iConverter.VisualEditConvertParam(0, 1) # Запустить визуальное редактирование параметров конвертации - работает

iConverter.Convert('', 'файл.dxf', 1, True) # Последний параметр showParam - TRUE - выдавать диалог па­раметров конвертации - не работает почему-то.

Но вопрос, как задать версию формата без визуального редактирования?
iConverterParameters = iConverter.ConverterParameters(1) # Получить интерфейс параметров конвертирования
Выдает указатель на интер­фейс <COMObject ConverterParameters>
А что дальше делать - не могу найти информацию. Нужно SDK конвертера?
Название: Re: Выбор версии DXF при сохранении
Отправлено: Эдуард от 10.01.20, 08:04:22
Цитата: gramdee от 05.09.19, 13:35:20...
Возникла необходимость сохранить в старой версии, а именно в AutoCAD 2000. Есть ли какой-либо способ сохранить с указанием версии или, может быть где-то в интерфейсе Компаса нужно что-то перенастроить, чтобы всегда сохранялось в старой версии?

В правом верхнем углу есть кнопка "Параметры".

PS Извиняюсь, поторопился, не внимательно прочитал в каком разделе тема.
Название: Re: Выбор версии DXF при сохранении
Отправлено: Дмитрий22 от 10.01.20, 17:53:12
На C# делал так:

                        IConverter pConverterDXF = NewKompasAPI.get_Converter(PathVKompas);
                        Object convParam = pConverterDXF.ConverterParameters(1);
                        IAutoCadExportParam DWG1 = (IAutoCadExportParam)convParam;
                        DWG1.ColorByLayer = true;

                        switch (numVerDXF)
                        {
                            case 0:
                                DWG1.AcadFileVersion = ksAutoCadFileVersionEnum.ksAutocad_v15; // version 2000
                                break;
                            case 4:
                                DWG1.AcadFileVersion = ksAutoCadFileVersionEnum.ksAutocad_v18; //version 2004
                                break;
                            case 7:
                                DWG1.AcadFileVersion = ksAutoCadFileVersionEnum.ksAutocad_v21; //version 2007
                                break;
                            case 10:
                                DWG1.AcadFileVersion = ksAutoCadFileVersionEnum.ksAutocad_v24; //version 2010
                                break;
                            case 13:
                                DWG1.AcadFileVersion = ksAutoCadFileVersionEnum.ksAutocad_v27; // version 2013
                                break;
                            default:
                                DWG1.AcadFileVersion = ksAutoCadFileVersionEnum.ksAutocad_v27;  // version 2013
                                break;
                        }

             pConverterDXF.Convert(docum.PathName, path + NameOfDXf + ".dxf", 1, false);
Название: Re: Выбор версии DXF при сохранении
Отправлено: Вират Лакх от 15.01.20, 05:33:51
Цитата: gramdee от 05.09.19, 13:35:20Сохраняю файл из CDW/FRW в формат DXF с помощью IKompasDocument.SaveAs. Все получается.
Для справки. Через SaveAs можно сохранить только видимый документ. Для невидимых ksSaveToDXF или IConverter.Convert
Название: Re: Выбор версии DXF при сохранении
Отправлено: EKosarev от 09.12.20, 08:51:19
господа получилось ли у вас сменить версию dxf?
Название: Re: Выбор версии DXF при сохранении
Отправлено: p3452 от 17.10.21, 18:39:01
Цитата: Дмитрий22 от 10.01.20, 17:53:12На C# делал так:

                        IConverter pConverterDXF = NewKompasAPI.get_Converter(PathVKompas);
                        Object convParam = pConverterDXF.ConverterParameters(1);
                        IAutoCadExportParam DWG1 = (IAutoCadExportParam)convParam;
Подскажите, что за интерфейс "IAutoCadExportParam" и от чего (как) его можно получить?
В SDK о нем, ни слова!?
- Как, в прочем и о том, как получить (или где взять) "command" для ConverterParameters!?:
"LPDISPATCH ConverterParameters (long command)"
Название: Re: Выбор версии DXF при сохранении
Отправлено: Дмитрий22 от 18.10.21, 19:12:31
Насколько я помню, подключал ACADEXPORTLib.
ACADExport.JPG
Также использовал код:
using ACADEXPORTLib;
Название: Re: Выбор версии DXF при сохранении
Отправлено: p3452 от 19.10.21, 08:22:53
Подключать можно, когда есть что подключать!
Более подробно... (https://forum.ascon.ru/index.php?topic=32761.msg290666;topicseen#msg290666)