蒹葭苍苍,白露为霜。
所谓伊人,在水一方。

Autodesk Inventor单一文件复制设计

这两天稍微有空,把早期写的一个关于对Inventor文件重命名的功能(其实也是复制设计的一种,复制设计后把源文件删除就是重命名了)做了修正。通常对inventor零件或者工程图执行文件系统的复制操作时,往往工程图的参考链接不会直接过去。所以,这里无论是复制设计或者热重命名都需要用api对工程图内部的引用链接进行修改。常用的代码原型如下:

Sub Test()
    Call ReplaceFileReference(ThisDoc.Document, "C:\PartA.ipt", "C:\PartB.ipt")
End Sub

Sub ReplaceFileReference(oDoc as Document, oRefToRemove As String, oRefToInclude As String)
    For Each oFD In oDoc.File.ReferencedFileDescriptors
        If oFD.FullFileName = oRefToRemove
             oFD.ReplaceReference(oRefToInclude)
        End if
    Next
End Sub

早期是按照这个修改链接的思路去做的,发现前后铺垫逻辑相对复杂,而且还容易出错。这两天重新研究了一下Inventor的api,发现其实api中的document.SaveCopyAs()方法隐藏了把链接一起复制过去功能。相当的隐秘。然后用了这个方法,整个重命名或者复制设计过程非常的完美,效率非常高。

在 Autodesk Inventor 的 API 中,DrawingDocument.SaveAs 方法用于保存文档,可以用来另存为新文件。当想要将一个已存在的文件另存为一个新文件时,SaveCopyAs 参数的作用就显得非常重要。

这里是 SaveCopyAs 参数的具体说明:

  • SaveCopyAs 参数为 True:表示正在保存的文件是当前文档的一个副本。这意味着原始文档保持不变(保持打开状态),而您创建了它的一个新副本。这种情况下,Inventor 不会把当前打开的文档视为新保存的文件。原始文档仍然保持原来的文件名和路径。
  • SaveCopyAs 参数为 False:表示正在更新当前文档的文件名和路径。这种情况下,原始文件被新文件替换,Inventor 会将当前打开的文档视为您刚刚保存的这个新文件。

因此,如果想要将一个之前存在的文件另存为一个新文件,并且希望新文件成为当前操作的文档,您应该将 SaveCopyAs 设置为 False。如果您只是想创建当前文档的副本,并保持原文档不变,那么应该将 SaveCopyAs 设置为 True

核心就是要用到这个:

' 另存为新文件,同时更新当前文档
drawingDocument.SaveAs("新文件路径.ipt", False)

更新一下:SaveCopyAs 设置为 False 应该谨慎使用,这会把内存中所有指向这个doc的文档的链接一起改变。容易意外的改动到其它文档。不过,在某些情况下,这个可能是一个神器。

Inventor 插件下载:https://www.lnv.cn/down/

赞(0) 打赏
未经允许不得转载:酷居科技 » Autodesk Inventor单一文件复制设计

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

锦瑟无端五十弦,一弦一柱思华年

酷居科技联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏