- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
环境:inventor 2025
代码:vba
流程:用inventor将手上已有的step模型打开(此时还未保存),执行代码(代码功能:批量导出保文件为dwg文件),代码执行后会先在打开的文件的路径文件夹中新建一个文件夹,然后在其中保存文件为ipt文件,再次打开ipt文件执行代码才会在ipt所在文件夹中导出dwg文件。
问题:1.不理解为什么保存的时候为什么会于源路径自行新建一个同名文件夹后保存;2.当打开另外一个文件夹中的step文件执行代码后,理论上本应该是保存在打开的文件所在文件夹中,但是实际还是保存在了第一次代码执行成功后保存的位置,在此之后,不论是修改代码还是重启程序还是重启电脑,不论打开哪里的文件,执行代码后都是保存在哪一个文件夹中,不能再修改保存路径。
vba代码:
Sub ExportAndClose()
Dim oDoc As Document
Dim oPath As String
Dim oName As String
Dim oDWGTranslator As TranslatorAddIn
Dim oContext As TranslationContext
Dim oOptions As NameValueMap
Dim oData As DataMedium
Set oDWGTranslator = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC2-122E-11D5-8E91-0010B541CD80}")
On Error Resume Next
ThisApplication.SilentOperation = True
Do While ThisApplication.Documents.Count > 0
Set oDoc = ThisApplication.ActiveDocument
oPath = Left(oDoc.FullFileName, InStrRev(oDoc.FullFileName, ""))
oName = Left(oDoc.DisplayName, InStrRev(oDoc.DisplayName, ".") - 1)
Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = kFileBrowseIOMechanism
Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap
Set oData = ThisApplication.TransientObjects.CreateDataMedium
If oDWGTranslator.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
oOptions.Value("Export_Acad_Layout") = False
oOptions.Value("Export_Acad_PaperSpace") = False
oOptions.Value("Export_3D_Geometry") = True
End If
oData.FileName = oPath & oName & ".dwg"
Call oDWGTranslator.SaveCopyAs(oDoc, oContext, oOptions, oData)
oDoc.Saved = True ' Set the document as saved to avoid the save prompt
oDoc.Close
Loop
ThisApplication.SilentOperation = False
On Error GoTo 0
End Sub
Solved! Go to Solution.