自定义Translator add-in - 1

来源:互联网 发布:java 模拟http请求 编辑:程序博客网 时间:2024/04/30 22:36

Inventor支持打开或保存多种文件格式,例如*.DWG, *.SAT, *.IGS等。其背后是由对应的Translator add-in (格式转换器)所处理。在插件管理器的Translator选项卡下可以看到它们。而普通的插件是在Applications选项卡。


clip_image001[4]

如果你的文件格式Inventor还不支持,可以自己做转换器。API提供了这种能力。其实,我们经常做的插件是常规插件(放在Applications下的那些),Translator也是一种插件。其实这种插件的基本结构和普通插件是类似的:

1.都是一个dll
2. *.X.Manifest与*.dll编译
3. 由 *.addin文件规定其行为 

但有些细节是不同的:

1. Translator 插件需要从TranslatorAddInServer继承
2. 必须重载几个方法,例如 Open和SaveCopyAs方法等
3. *.addin文件里的标签内容用来规定是Translator,用于打开保存什么后缀名的文件,是否支持打开的转换,是否支持保存转换等。具体请见我写的英文博客:

http://adndevblog.typepad.com/manufacturing/2014/02/custom-translator-addin-of-inventor-1.html

大家知道,对于常规插件,Inventor 向导是可以帮你创建一个工程。C++的向导,还有选项创建Translator插件。但.NET的还没有提供。既然它和普通插件类似,我就把普通插件的模板拿出来,修改修改,做了个Translator插件模板。我暂时做的是C#的,过几天做VB.NET的。

Download VCSInventorTranslatorAddInTemplate2014

把这个压缩包放到

<Documents>\ Visual Studio ***\Templates\ProjectTemplates\ 

当打开VS,选择这个模板创建工程

clip_image002

工程建立后是这个样子。它帮助你新建了一个类,把TranslatorAddInServer的必要方法都重载了。

clip_image003

也准备好了一个*.addin文件。默认是处理*.abc文件。你可以根据需要修改成自己的后缀。还有其它行为参数也可修改。

<AddinType="Translator">  <!--Created for Autodesk Inventor Version 18.0-->  <ClassId>{f4c4d6ac-3354-457b-ad49-626583d640d9}</ClassId>  <ClientId>{f4c4d6ac-3354-457b-ad49-626583d640d9}</ClientId>  <DisplayName>MyTranslator</DisplayName>  <Description>MyTranslator</Description>  <Assembly>MyTranslator.dll</Assembly>  <SupportsOpenInto>.ipt;.iam</SupportsOpenInto>  <SupportsImportInto>.ipt</SupportsImportInto>  <SupportsSaveCopyAsFrom>.ipt;.iam</SupportsSaveCopyAsFrom>  <FileExtensions>.abc</FileExtensions>  <FilterTextLanguage="1033">ABC Files (*.abc)</FilterText>  <SupportsOpen>1</SupportsOpen>  <SupportsImport>1</SupportsImport>  <SupportsSaveCopyAs>1</SupportsSaveCopyAs>  <LoadOnStartUp>0</LoadOnStartUp>  <UserUnloadable>1</UserUnloadable>  <Hidden>0</Hidden>  <ExtraInfo>1</ExtraInfo></Addin>

下一篇博客我将根据这个工程做一个具体的例子,实现对*.abc的打开和保存。

0 0
原创粉丝点击