LoginSignup
1
0

More than 1 year has passed since last update.

Autodesk Inventor API Hacking (Versionあれこれ)

Last updated at Posted at 2019-05-26

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することなく使えるということです。
InteropVersion.png
この場合、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

99. 親の記事に戻る

Autodesk Inventor API Hacking (概略)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0