Inventor API: 简单聊聊ReplaceReference , FileSaveAs, OnFileResolution

来源:互联网 发布:阿拉伯血钻野燕麦知乎 编辑:程序博客网 时间:2024/04/30 21:47

原文链接

 http://adndevblog.typepad.com/manufacturing/2016/03/replacereference-vs-filesaveas-vs-onfileresolution.html


对装配,组件进行重命名,复制,文件丢失或移动后对装配的重新更新,重新引用,是Inventor开发中的一个重要和常用的需求。方法多样,都是为了让装配结构中的部件对应的文件能正确找到。

1) ReplaceReference

Inventor API 和学徒服务器(Apprentice)都支持。 用这个方法进行替换,需要新文件和原文件是同源的( InternalName 一样)。通常新文件是源文件的拷贝。

不过需要注意的是,并不是所有场景这个方法都能支持。例如管路(Cable&Harness)不支持。另外, 用Apprentice的话,如果文件是旧版本的(ApprenticeServerDocument.NeedsMigrating = true),还需要文件移植后才能工作。

2) FileSaveAs

只有Apprentice支持。这个方法能堆文件名或路径进行修改,更新到新的文件。当然,既然是另存,新文件和源文件能保证是同源的。Inventor SDK中有个经典的例子“Copy Design”:"C:\Users\Public\Documents\Autodesk\Inventor 2016\SDK\UserTools\CopyDesign" 就是用的这个方法。

 同样。如果文件是旧版本的(ApprenticeServerDocument.NeedsMigrating = true),还需要文件移植后才能工作。

3)OnFileResolution

只有Inventor API 支持。这类似于当您打开装配,有部件对应的文件找不到的时候,会弹出个对话框,让您重新定位缺失的文件。

ResolveLink

FileAccessEvents .OnFileResolution 这个事件能捕获Inventor尝试找到部件,所以,即便是部件的文件正常也存在,它也会触发。这样您就能进行定制化,干预reference解析的过程。


0 0
原创粉丝点击