• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

чтение dxf файлов с помощью Automation C# или VB.NET

Автор Alexey_Ovtses, 15.04.13, 11:30:53

« назад - далее »

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

Alexey_Ovtses

Добрый день, пытаюсь пакетно конвертировать dxf в frw автоматически запуск компаса и создание документа получились, не могу разобраться какой функцией конвертировать. В компас KompasAPI7 есть интерфейс KompasAPI7.Converter но как его получить?

        'конвертация dxf
        If CheckBox7.IsChecked Then

            'запускаем компас
            Dim ka As New Kompas6API5.Application
            ka.Visible = True
            'KompasAPI7.
            Dim kconv As KompasAPI7.Converter
            kconv.Convert("c:\projects60\3052\12_003\postpi\s5 RSA\103.dxf", "c:\projects60\3052\12_003\postpi\s5 RSA\103.frw", 0, False)

            'создаем новый пустой документ
            Dim kd As Kompas6API5.Document2D = ka.Document2D()
            If kd IsNot Nothing Then
                Dim kdpar As Kompas6API5.DocumentParam = ka.GetParamStruct(Kompas6Constants.StructType2DEnum.ko_DocumentParam)
                If kdpar IsNot Nothing Then
                    kdpar.Init()
                    kdpar.type = Kompas6Constants.DocumentTypeEnum.ksDocumentDrawing
                    MsgBox(kd.ksCreateDocument(kdpar))
                End If
            End If

        End If

Посмотрите пример например Step2_API7_2D для C#, как получить интерфейс API7 IApplication, далее с помощью свойства IApplication.Converter получите интерфейс конвертера.
+ Благодарностей: 1

Alexey_Ovtses

#2
интерфейс получил, он просит путь к библиотеке конвертации. ниже лежащий код выдает ошибку подключения библиотеки, может как то надо регистрировать её? и правильную ли библиотеку прописал.

            'запускаем компас
            Dim ka As New Kompas6API5.Application
            ka.Visible = True
            Dim ka7 As KompasAPI7.IApplication = ka.ksGetApplication7
            Dim kconv As KompasAPI7.Converter = ka7.Converter("c:\Program Files\ASCON\KOMPAS-3D V14\Bin\ConvertLibInterfaces.tlb")
            kconv.Convert("c:\projects60\3052\12_003\postpi\s5 RSA\103.dxf", "c:\projects60\3052\12_003\postpi\s5 RSA\103.frw", 0, False)

как итог работы - должен быть создан фрагмент из файла dxf

Если устанавливали SDK, то должно быть всё зарегистрировано, зарегистрировать заново можно запустив KOMPAS.Exe /register
Можно из среды, ниже выдержка из документа: "Компиляция библиотек под K...doc".
Visual Basic
Подключите новую библиотеку (файл с расширением tlb).
Вызовите команду Project - References... - Browse....

По идеи должно выглядеть так:
Dim kconv As KompasAPI7.Converter = ka7.Converter

Alexey_Ovtses

библиотека зарегистрирована с помощью KOMPAS.Exe /register

но функция ka7.Converter просит параметр Library

выдержка из справки:

Указатель на интерфейс IConverter конвертера файлов КОМПАС.
Синтаксис Automation:
Converter = iObject.Converter (Library)
Входные параметры:
Library
- полный путь к библиотеке, тип VARIANT.


Посмотрите раздел в SDK по оформлению библиотек типа Converter, скорее всего путь должен быть к Вашей библиотеке.

Alexey_Ovtses

натолкнули на мысль  :)
получилось, но по другому, используя такой путь

Dim kconv As KompasAPI7.Converter = ka7.Converter("c:\Program Files\ASCON\KOMPAS-3D V14\Libs\ImpExp\dwgdxfImp.rtw")

Спасибо