Сообщество программистов Autodesk в СНГ
ADN Club => Inventor API => Тема начата: filat от 05-06-2015, 09:28:04
-
Через AddIn VB.Net нужно из производного компонента параметрической сборки мне нужно получить исходный родительский файл и сохранить его под новым именем.
Использую код:
If oDoc.ComponentDefinition.IsiAssemblyMember = False Then
oName = oDoc.FullFileName
Else
oName = oDoc.ReferencedFiles(1).FullFileName
Dim tDoc As AssemblyDocument
tDoc = m_inventorApplication.Documents.Open(oName, False)
tDoc.Update()
noName = Replace(oName, "[z]", "[p]")
Call tDoc.SaveAs(noName, False) 'Сохраняет файл модели в новой папке и под новым именем
Exit Sub
End If
Файл создается битый - при попытке его открыть происходит фаталэррор...
Если после SaveAs добавить tDoc.Save то файл потом открыть можно, но фаталэррор происходит при попытке его закрыть.
Иногда успевает появится сообщение:
(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fib4.keep4u.ru%2Fb%2F2015%2F06%2F05%2F4d%2F4dcf5163b9b562c9a288c8aaed0db047.jpg&hash=fca4e2ab2e3450c04a85c13ee3661a97) (http://keep4u.ru)
-
Через AddIn VB.Net нужно из производного компонента параметрической сборки мне нужно получить исходный родительский файл и сохранить его под новым именем.
А если средствами ОС (через проводник) копируешь, то файл целый остается?
Просто зачем его открывать? Может просто через FileManager.FileSystemObject() попробовать скопировать...
Смысл действий непонятен...
-
Нет, сохранение силами винды не подходит - нажно, чтоб файл проходил через событие OnSave...
-
Вопрос в развитие понимания процедуры Call SaveAs: есть чертеж на котором изображены разные исполнения iPart. Когда я выполняю команду Call dDoc.SaveAs(NewName, True), то в событие он OnSave попадают и производняе файлы iPart. Почему это происходит? Это естественный процесс работы SaveAs для чертежа или производняе файлы iPart направляются в событие OnSave из-за не правильного построения дрругих участков кода моего AddIn и, по умолчанию, такого не должно быть?
-
Это естественный процесс работы SaveAs для чертежа
События OnSave возникают от зависимых файлов, нужно просто проверять, если это не сохраняемый файл (чертеж), то событие пропускать...