Имя: Пароль:
1C
 
Подключение 1С к Solid Works
0 SuperMario
 
15.04.19
13:48
Друзья, всем здравствовать.
Коллега не может подключиться через COM к Solid.
Вроде бы задача проста, как бульдозер.


Перем longstatus,longwarnings;

swApp = Новый COMОбъект ("SldWorks.application");    
swApp.Visible=Истина;
longstatus=0;longwarnings=0;
swApp.OpenDoc6("D:\radial_roller_bearing_tfm.sldprt",1,0,"",longstatus,longwarnings);
....

swApp.ExitApp();


ОШИБКА:
swApp.OpenDoc6("D:\radial_roller_bearing_tfm.sldprt",1,0,"",longstatus,longwarnings);
по причине:
Типы не совпадают (5)


Погуглил, но ответа не нашел.

Подобная тема поднималась  аж 2006 году.

v8: 1С8 + SolidWorks
v8: Как сделать тип Long для VB

но автор решил не делиться решением проблемы.

Описание процесса на Delphi
https://itnan.ru/post.php?c=1&p=263133
мне не дал результата.

Курили help по API Solid-а , тоже невнятно.

Записали макрос на самом Solid

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.OpenDoc6("D:\radial_roller_bearing_tfm.sldprt", 1, 0, "", longstatus, longwarnings)
swApp.ActivateDoc2 "radial_roller_bearing_tfm", False, longstatus
Set Part = swApp.ActiveDoc
....
....
End Sub
Макрос отрабатывает без ошибок.
Делаю точку останова на строке OpenDoc6() и см. значения переменных longstatus и longwarnings .
У обоих = 0.
1 wt
 
15.04.19
14:23
У Солида есть утилиты для подключения к 1с:PDM. У 1с:PDM есть решение, типа внешней обработки, по связи с Солидом. Делалось давно для решения проблем взаимосвязи между системами. Они сделали это, когда я, в целях своей организации приобрёл лицензии и того и другого. Звоните им, лучше производителю 1с:PDM. Там квалифицированные сотры. Или ждите, когда сюда кто-нибудь заглянет. Я уже не в теме, за давностью лет.
2 SuperMario
 
15.04.19
14:38
(1) Да, я на видеохостинге нашел эту красоту)
3 temapriv
 
21.05.19
13:55
Коллеги, поделитесь! Удалось победить проблему?
Пробовал открыть документ просто методом OpenDoc, но что-то как-то не то. OpenDoc6 никак победить не могу.