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

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

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

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

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

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

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

Как открыть документ КОМПАСА из VB

Автор Илья Муромец, 28.08.12, 17:35:53

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

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

Илья Муромец

Подскажите как правильно написать процедуру в VB 2010 чтобы открыть документ КОМПАСа?



Николай

А что, функции ShellExecute в VB-2010 нет?

Есть функции Компаса ksDocument2D::ksOpenDocument, ksChoiceFiles и ksChoiceFile.

Илья Муромец

Про функции я в курсе, вот только как правильно написать код с их применением это не понятно. В SDK слишком запутанно, надо максимально просто....

Вы, как нибудь напишите, можно не правильно, но Вас возможно, кто то поймёт и поможет, это буду не я, с Бэйсиком я завязал более 20 лет назад и возвращаться, не планирую.

Илья Муромец

Public Class Form1
    Public Kompas As Object
    Public ksdoc As New Kompas6API5.Document2D
    Private Sub Form1_Load() Handles MyBase.Load

        Kompas = CreateObject("KOMPAS.Application.5")
        Kompas.Visible = True

        ksdoc.ksOpenDocument("D:\Временные\Чертеж.cdw", True) 'открываем шаблон

    End Sub
End Class

КОМПАС запускается, а файл не открывается


Николай

 А какие либо изменения чертежа предполагается совершать с помощью VB? Или только "...\Чертеж.cdw" следует открыть через VB и всё?

Илья Муромец

Windows 7 Компас 13. Предполагается из сборки выбрать детали кот. имеют вид "развертка" создать лист без оформления с видом развертка и сохранить его в формат dxf

Windows 7 использует Unicode.
Но я думаю проблема в ksdoc.ksOpenDocument("D:\Временные\Чертеж.cdw", True), Вы запускаете документ в слепом режиме, замените на ksdoc.ksOpenDocument("D:\Временные\Чертеж.cdw", False)

Илья Муромец

выдает "ссылка на объект не ссылается на экземпляр объекта"

Илья Муромец

Sabahs 
Может вы напишете аналогичный код на дельфи, может по аналогии пойму

31.08.12, 07:15:05 #14 Последнее редактирование: 31.08.12, 07:30:12 от Sabahs
Вы делаете EXE файл или DLL?
Если EXE, то смотрите пример ksContrl, там есть готовый код.
Если DLL, то можете попробовать так, но работоспособность не обещаю:

' Головная функция библиотеки - вызывается при выборе пункта меню библиотеки
Public Sub ExternalRunCommand(ByVal command As Integer, ByVal mode As Integer, ByVal kompas_ As Kompas6API5.Application)
  Set Kompas = kompas_                        ' Интерфейс приложения КОМПАС
  Dim ksdoc As Kompas6API5.Document2D           ' Интерфейс ksDocument2D
   
  ' Получить интерфейс 2D документа
  Set ksdoc = Kompas.Document2D               ' Возьмем пустой интерфейс 2D документа
 
  ksdoc.ksOpenDocument("D:\Временные\Чертеж.cdw", False)
 
End Sub

Илья Муромец

делаю EXE фйл, но это потом..после компиляции. Проблема с примерами в том, что они на VB6 с VB2010 большая разница. Даже конвертация из старой версии в новую не помогает.

В части нюансов в Вашем языке не помогу, но рекомендую самому разобраться, где и что, в Delphi примеры, тоже не на XE2 написаны.