0. はじめに
Freeradicalの中の人、yamarahです。
本稿では、Autodesk InventorのAddIn開発における、様々なVersionにまつわる情報をまとめます。
時折、作ったAddInがInventorのVersionによって動作したり、しなかったりということが起きますが、大抵はこれらのVersionの不整合が原因です。
1. InventorのVersion
まずは、Inventor自体のVersionです。現時点での最新Versionは、Inventor 2023です。
例えばInventor 2023の場合に、2023という数字とは別に、内部的には連番で管理されている番号があります。
Version番号は、Inventor.Application.SoftwareVersionからアクセスできるので、VBAのイミディエイトで確認してみます。
? ThisApplication.SoftwareVersion.DisplayVersion
2023
? ThisApplication.SoftwareVersion.Major
27
? ThisApplication.SoftwareVersion.Minor
0
内部的には、Inventor 2023のVersionは27
で、今後updateが入ると、Minorの数字が上がっていきます。
また、必ずしも保証されているわけではありませんが、Inventorは1年に1回のMajor updateがあり、その度にMajorの数字が1つ増えます。
つまり、
Major = DisplayVersion - 1996;
だということですね。
以後はInventorのVersionと言えば、2023(DisplayVersion)ではなく、27
(Major)の方を指すので、注意してください。
2. InteropのVersion
AddInは、直接Inventorとやり取りするわけではなく、途中に仲介者がいます。それが、Interopです。
なぜ間に仲介者(Interop)を挟むのかは色々な事情があるのでしょうが、確かなことは、InventorのVersionが上がっても、AddInをrecompileすることなく使えるということです。
この場合、InteropのVersionは24.0.0.0です。ピリオドで区切られた1つ目の数字がMajorで、2つ目がMinorです。3つ目以降は常に0という認識で問題ないです。
さて、このVersionの意味するところですが、これはAddInがlinkされるVersionであり、AddInはこのVersion以前のInventorには対応しなくなります。
今回ですと、Majorが24
ですので、このままcompileすると、そのAddInはInventor 2019では使えないというわけです。
でしたら、大は小を兼ねる的な発想で(数字の大小は逆だが)、出来るだけ古いInteropを使えば良いのでしょうか?
その場合は、新しいVersionで追加されたAPIが使えません。Major24
で追加されたAPIを使いたければ、InteropもVersion24.x.x.x
を使わないといけないのです。
さて、先ほど、
確かなことはInventorのVersionが上がっても、AddInをrecompileすることなく使えるということです。
と書きましたが、実は極まれに例外があります。
Major Versionが上がった直後に、1つ前のVersionのMinorが上がり、そのInteropを使った場合です。
実際にあったのは、Inventor 2020のリリースとほぼ同時に、Inventor 2019に対しUpdateがかかり、その際にInteropのMinorの数字が上がったのです(23.2.0.0
になった)。
Inventor 2020にしてみれば、自分よりも古いVersionのはずですが、全く見知らぬInterop23.2.0.0
からのアクセスなので、拒否されてしまいました。
3. addinファイルに指定するVersion
さて、InteropのVersionと、AddInが動作するInventorのVersionの関係を説明しましたが、もう1つ別の要素があります。
それは、拡張子がaddin
のファイルです。templateで自動作成されたaddin
ファイルを見てみましょう。
<Addin Type="Standard">
<!--Created for Autodesk Inventor Version 24.0-->
<ClassId>{dad03fdd-e24c-4cd9-af01-631e3e11fb0a}</ClassId>
<ClientId>{dad03fdd-e24c-4cd9-af01-631e3e11fb0a}</ClientId>
<DisplayName>SampleInventorAddIn</DisplayName>
<Description>SampleInventorAddIn</Description>
<Assembly>SampleInventorAddIn.dll</Assembly>
<LoadOnStartUp>1</LoadOnStartUp>
<UserUnloadable>1</UserUnloadable>
<Hidden>0</Hidden>
<SupportedSoftwareVersionGreaterThan>23..</SupportedSoftwareVersionGreaterThan>
<DataVersion>1</DataVersion>
<UserInterfaceVersion>1</UserInterfaceVersion>
</Addin>
ここに記載されている、<SupportedSoftwareVersionGreaterThan>
のキーより新しいVersionのInventorでないと、動作しません。
少しややこしいのですが、Greater Thanですので、この場合は23
__よりも新しい__ということで、24
以降(つまり、Inventor 2020以降)が動作対象バージョンとなります。
ちなみに、2行目の<!--Created for Autodesk Inventor Version 24.0-->
は、コメントなので無視して大丈夫です。
なお、このaddin
ファイルはAddIn自体のdllと同じディレクトリに配置され、Inventorはこのファイルを見てAddInを読み込むかどうかを判断します。
4. AddIn自体のVersion
AddIn自体のVersionは、Inventorからは無視されますが、ソースに変更を加えたら数値を上げると良いでしょう。
設定個所は、2か所あります。
- AssemblyInfo.cs
- <AddIn名>.X.manifest
それぞれに別の値を設定することが出来ますが、特別な理由がない合わせておいた方が良いでしょう。
また、ピリオドで区切られた4つの数字には、それぞれに意味がありますが、ここでは割愛します。(事実上、勝手につけて問題ない)
5. Visual StudioのVersion
現時点で最新のInventor 2023のSDKがサポートするVisual StudioのVersionは2015, 2017, 2019です。
もし、InventorのSDKが対応していないVersionのVisual Studioで開発したい場合でも、別の記事に書いた通り、恐らく可能です。
その場合は、記事に従ってtemplateを自分でコピーする必要があります。
既にtemplateを必要としない場合は、もちろんコピーする必要すらありません。
6. .NET FrameworkのVersion
templateからprojectを作ると、.NET Framework 4.5が選択されるようです。
最近のInventorのVersionと、動作環境に上げられている.NET FrameworkのVersionをまとめてみましょう。
Inventor | .NET Framework |
---|---|
2017 | 4.6以降 |
2018 | 4.6以降 |
2019 | 4.7以降 |
2020 | 4.7以降 |
2021 | 4.8以降 |
2022 | 4.8以降 |
2023 | 4.8以降 |
では、どのVersionの.NET Frameworkを対象のフレームワーク
のとし選択すれば良いかですが、別に4.5
のままでもInventor 2023で動作します。
もちろん、AddIn自体が4.8
に依存する機能を使っているのでしたら、それを選択する必要があります。注意が必要なのは、全てのWindowsに最新の.Net Frameworkがinstallされている保証がないということです。例えば、Windows 8でInventor 2018が動作している環境では、4.7
が無いかもしれません。
7. ExcelのVersion
関係はないですが、ついでにExcelのVersionもまとめておきます。
Inventor2019と2020は、一部の動作に64 bit版を要求しているので、注意してください。大抵の作業は、32 bit版でも動作すると思います。
Inventor | Excel |
---|---|
2017 | 2010, 2013, 2016 |
2018 | 2010, 2013, 2016 |
2019 | 2010, 2013, 2016 |
2020 | 2010, 2013, 2016 |
2021 | 2016以降 |
2022 | 2016以降 |
2023 | 2016以降 |
8. WindowsのVersion
Inventor2023でWindows11がサポートされました。(いずれも64bit版)
Inventor | Windows |
---|---|
2019 | 7, 8.1, 10 |
2020 | 7, 10 |
2021 | 10 |
2022 | 10 |
2023 | 10, 11 |