Перейти к публикации

Проблема с api pack and go


Sturmann

Рекомендованные сообщения

Здравствуйте коллеги. 

Есть проблема в api для команды копировать проект (  sw2015) 

Всё работает кроме одного момента : не копирует сборки. Детали и чертежи в все ок, а вот сборки.... 

При исполнении метода он возвращается ошибку копирования именно на сборки. Кто сталкивался? 

 

Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts
4 часа назад, Sturmann сказал:

возвращается ошибку

какую из swPackAndGoSaveStatus_e ?

По сути, API это же вызов тех же функций что и обычным методом мышкой. Через explorer всё работает как надо?

Если попробовать код из хелпа и для VBA на той же сборке с подсборками - тоже ошибка будет?

Ссылка на сообщение
Поделиться на других сайтах
55 минут назад, streamdown сказал:

какую из swPackAndGoSaveStatus_e ?

По сути, API это же вызов тех же функций что и обычным методом мышкой. Через explorer всё работает как надо?

Если попробовать код из хелпа и для VBA на той же сборке с подсборками - тоже ошибка будет?

Номер 4. 

С кодом из справки эта ошибка т происходит. 

Я вот думаю что там что то не дописали. Либо как обычно строки местами перепутали. 

Через файл- копировать проект всё работает. Сборки копирует. Даже можно целое изделие скопировать с чертежами. И всё будет как надо. Но вот программно - затык. 

Изменено пользователем Sturmann
Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, Sturmann сказал:

Номер 4. 

С кодом из справки эта ошибка т происходит. 

Условия для выполнения выполнены:

Цитата

' Предварительные условия:
' 1. Указанная сборка существует.
' 2. Папка c:\temp существует.
' 3. Откройте Immediate window.
' 4. Запустите макрос.

Solidworks установлен в папку по умолчанию? А то ведь может не оказаться файла сборки который прописан в справке лежит в ином месте:

Цитата

' Open assembly
openFile = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\samples\tutorial\advdrawings\handle.sldasm"

В конце концом можно понатыкать точек остановки макроса в некоторых местах, для проверки что там в переменных/функциях в точке остановки выполнения макроса, что бы разобраться где идёт сбой.

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Kelny сказал:

Условия для выполнения выполнены:

Solidworks установлен в папку по умолчанию? А то ведь может не оказаться файла сборки который прописан в справке лежит в ином месте:

В конце концом можно понатыкать точек остановки макроса в некоторых местах, для проверки что там в переменных/функциях в точке остановки выполнения макроса, что бы разобраться где идёт сбой.

Солид в парке по умолчанию. 

Файл сборки - активный документ

Да вот с точками беда- строка с самим методом возвращает 4.

https://help.solidworks.com/2017/english/api/swconst/SolidWorks.Interop.swconst~SolidWorks.Interop.swconst.swPackAndGoSaveStatus_e.html

 

Ошибка 4

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, Sturmann сказал:

Да вот с точками беда- строка с самим методом возвращает 4.

Так функция в конце лишь отрабатывает, что было настроено выше, так что возможно стоит проверить переменную status для функций/процедур выше?

Ссылка на сообщение
Поделиться на других сайтах
14 часов назад, Sturmann сказал:

Здравствуйте коллеги. 

Есть проблема в api для команды копировать проект (  sw2015) 

Всё работает кроме одного момента : не копирует сборки. Детали и чертежи в все ок, а вот сборки.... 

При исполнении метода он возвращается ошибку копирования именно на сборки. Кто сталкивался? 

 

Я сталкивался с похожей проблемой в SW2011. При копировании сборочного чертежа или сборки копировалось всё, кроме самого сборочного чертежа или сборки. Возвращаемый функцией  SavePackAndGo массив содержал swPackAndGoSaveStatus_SaveError именно на сборочном чертеже или сборке. Не знаю как эта функция отрабатывала в других SW, но после SW2018 все было нормально.

 
Изменено пользователем Shvg
Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, Shvg сказал:

Я сталкивался с похожей проблемой в SW2011. При копировании сборочного чертежа или сборки копировалось всё, кроме самого сборочного чертежа или сборки. Возвращаемый функцией  SavePackAndGo массив содержал swPackAndGoSaveStatus_SaveError именно на сборочном чертеже или сборке. Не знаю как эта функция отрабатывала в других SW, но после SW2018 все было нормально.

 

ну вот в 15 таже песня

Ссылка на сообщение
Поделиться на других сайтах

Ну вот взял пример из хелпа. Массив статусов скопированных сборок. Ячейка  (0) имеет значение 4 что означает ошибка при копировании. Это сборка верхнего уровня

2022-01-30_11-01-32 (2).png

А вот список компонентов (файлов) в папке.Тут скопировалась только одна сборка- сборка на уровень ниже той которую открывали.

2022-01-30_11-02-01.png

 

 

В это сборке есть подсборка. 

Она скопировалась, с ней все ок.

 2022-01-30_11-02-59.png

 

 

 

 

 

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, streamdown сказал:

Сколько версий SW стоит на компе?

Одна

Ссылка на сообщение
Поделиться на других сайтах
30.01.2022 в 11:10, Sturmann сказал:

Ну вот взял пример из хелпа. Массив статусов скопированных сборок. Ячейка  (0) имеет значение 4 что означает ошибка при копировании. Это сборка верхнего уровня

А пример из справки без подмены сборки работает?

Как вариант попрбовать сохранить без добавки (без префиксов/суфиксов), обновить сборку перед сохранением, проверить что там с сообщениями для которых сделан выбор БОЛЬШЕ НЕ СПРАШИВАТЬ и возмозможно отобразить их все. Ещё попробовал бы сохранить в архив ZIP.

 

Как костыль вероятно можно попрбовать копировать файл сборки через SaveAs, но там скорее всего будут старые ссылки и нужно будет переподключать на новые модели с префиксом/суфиксом.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Kelny сказал:

А пример из справки без подмены сборки работает?

Как вариант попрбовать сохранить без добавки (без префиксов/суфиксов), обновить сборку перед сохранением, проверить что там с сообщениями для которых сделан выбор БОЛЬШЕ НЕ СПРАШИВАТЬ и возмозможно отобразить их все. Ещё попробовал бы сохранить в архив ZIP.

 

Как костыль вероятно можно попрбовать копировать файл сборки через SaveAs, но там скорее всего будут старые ссылки и нужно будет переподключать на новые модели с префиксом/суфиксом.

Пример из справки работает.Только там нет вложенных сборок.

Если "Сохранить как" то там проблема с чертежами и вложенными компонентами- чертежей не будет, вложенные компоненты- из исходника.

Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, Sturmann сказал:

Пример из справки работает.Только там нет вложенных сборок.

Если "Сохранить как" то там проблема с чертежами и вложенными компонентами- чертежей не будет, вложенные компоненты- из исходника.

Когда возникли проблемы с IPackAndGo в SW2011, я использовал SolidWorks Document Manager API. Функционал такой же, даже больше. Недостаток - должны быть закрыты документы в SolidWorks-e, но меня это устраивало и нужен ещё LicKey.

Изменено пользователем Shvg
Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, Shvg сказал:

Когда возникли проблемы с IPackAndGo в SW2011, я использовал SolidWorks Document Manager API. Функционал такой же, даже больше. Недостаток - должны быть закрыты документы в SolidWorks-e, но меня это устраивало и нужен ещё LicKey.

про SolidWorks Document Manager API слышал.

если я его буду запускать на другом компьютере без лицензии он будет работать?

Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, Sturmann сказал:

про SolidWorks Document Manager API слышал.

если я его буду запускать на другом компьютере без лицензии он будет работать?

После SW2011 не пробовал.  Как сейчас, не знаю.

Изменено пользователем Shvg
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Sturmann сказал:

без лицензии

Что нужно, чтобы программа работала с файлами SW без самого SW:

- лицензионный текстовый ключ, который надо подпихивать при создании SwDMApplication. Ключ запрашивается отдельно через американскую техподдержку, даже если у вас стоит лицензионный SW. Ключ либо зашивать с обфускацией в программу, либо хранить отдельно в зашифрованном виде. Чтоб не спёрли. Хотя, мало кому такое может понадобиться, но согласно лицензии вы в ответе за сохранность ключа.

- на целевом компьютере установленной библиотеки SwDocumentMgr.dll через regsvr32 (в моём случае было очень много ошибок, поэтому ставил аж сетап докменеджера с диска, но может сработать и простая регистрация, главное чтоб все зависимости были)

2 часа назад, Sturmann сказал:

Пример из справки работает.Только там нет вложенных сборок.

А что мешает подпихнуть туда свою сборку с подсборками то?

Ссылка на сообщение
Поделиться на других сайтах
31.01.2022 в 16:11, streamdown сказал:

 

А что мешает подпихнуть туда свою сборку с подсборками то?

Ну она для чтения как бы) 

Ссылка на сообщение
Поделиться на других сайтах
40 минут назад, Sturmann сказал:

Ну она для чтения как бы) 

Ась?

 

Вот код https://help.solidworks.com/2019/english/api/sldworksapi/pack_and_go_an_assembly_example_vb.htm

Открываете свою сборку с подсборками и с чертежами. Создаёте папку "temp" в корне диска С

Заменяете код этим

' Open assembly
'openFile = "C:\Users\Public\Documents\SOLIDWORKS\SOLIDWORKS 2018\samples\tutorial\advdrawings\handle.sldasm"
'Set swModelDoc = swApp.OpenDoc6(openFile, swDocASSEMBLY, swOpenDocOptions_Silent, "", errors, warnings)
Set swModelDoc = swApp.ActiveDoc
Set swModelDocExt = swModelDoc.Extension

Всё должно сработать.

Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, streamdown сказал:

Ась?

 

Вот код https://help.solidworks.com/2019/english/api/sldworksapi/pack_and_go_an_assembly_example_vb.htm

Открываете свою сборку с подсборками и с чертежами. Создаёте папку "temp" в корне диска С

Заменяете код этим

' Open assembly
'openFile = "C:\Users\Public\Documents\SOLIDWORKS\SOLIDWORKS 2018\samples\tutorial\advdrawings\handle.sldasm"
'Set swModelDoc = swApp.OpenDoc6(openFile, swDocASSEMBLY, swOpenDocOptions_Silent, "", errors, warnings)
Set swModelDoc = swApp.ActiveDoc
Set swModelDocExt = swModelDoc.Extension

Всё должно сработать.

Ок. Спасибо. Попробую. 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

×
×
  • Создать...