UI ツールを使用してカスタム ボタンを追加する

  1. Windows のスタート メニューで、[すべてのプログラム] [Microsoft Visual Studio] [Microsoft Visual Studio]をクリックします。
  2. Visual C# プロジェクトを作成する:
    1. Visual Studio 開発環境の、[ファイル]メニューで、[新規] [プロジェクト]をクリックします。
    2. 左側のツールバーで、[Visual C# テンプレート]を展開し、[InventorETO]をクリックします。
    3. テンプレートの一覧で、[Inventor ETO アドイン]をクリックします。
    4. プロジェクトの名前を入力します。
    5. [OK]をクリックすると、プロジェクトが作成されます。
  3. プロジェクトをビルドする
    いくつかの自動的に生成されるソース ファイルが適切な時間に Inventor と Inventor ETO に接続されます。プロジェクトをビルドし、ビルドが正常に終了したことを確認します。ビルド プロセスの一環として、Inventor によりそれ自体が登録されます。アドインの登録については、Visual C# プロジェクトが生成する ReadMe ファイルを参照してください。
  4. Inventor を実行する
    1. Inventor プロジェクトとアセンブリを開きます。

      リボンで、アドインの名前を持つタブに 3 つのボタン、[レンダリング][エクスポート][インポート]が表示されます。

    2. 保存せずに Inventor を閉じます。
  5. カスタム ボタンを定義する
    1. Addin Visual Studio プロジェクトで、"UI" 組織フォルダを展開し、ファイル "UserInterfaceComponents.cs" を開きます。このファイルは、リボンとボタンの作成を扱うクラス UserInterfaceComponents を定義します。
    2. このクラスに ButtonDefinitionWrapper オブジェクトを追加してカスタム ボタンを定義します。
    3. クラスのコンストラクタの下で、既存のボタン定義に新しいボタンを追加します。
    4. 既存のボタンを削除するには、その定義を削除するか、コメント アウトします。他のボタン定義の下に次の行を追加します。
       internal ButtonDefinitionWrapper MyButton { get; privateset; }
  6. ボタン インスタンスを作成する:
    1. メソッド "CreateButtonDefinitions" に次の行を追加します。
       MyButton = CreateButtonDefinition(buttons, addInSite, "MyButton" , CommandTypesEnum .kNonShapeEditCmdType);

      ボタンのインスタンスが "MyButton" という名前と "kNonShapeEditCmdType" という分類で表示されます。用途に応じて適切な分類を選択します。

      CreateButtonDefinition メソッドは ButtonDefinitionWrapper クラスのコンストラクタを呼び出し、ボタンを作成します。コンストラクタはボタンを表示するために必要なリソースを登録します。

    2. 表示から既存のボタンを削除するには、その他のボタンのインスタンス化を削除します。
  7. リボンにカスタム ボタンを追加する:
    1. UserInterfaceComponents.cs で、CreateAssemblyRibbonTab メソッドを指定します。このメソッドは、各コンポーネントをアドイン リボンに追加して表示します。ボタンはこのメソッドの下部でリボンに追加されます。行を追加して独自の新しいボタンを追加します。
    2. 次の行を追加して新しいボタンを追加します。
       controls.AddButton(MyButton.Target, true );
      ボタンはリボンに左から右に追加されるため、ボタンを表示する場所を考慮します。
  8. ボタン OnExecute ハンドラを作成する:
    1. プロジェクトのルートにある IntentModel.cs ファイルを開きます。
    2. 新しいボタンでのクリックを処理するメソッドを追加します。次のスニペットは各クリック時に MessageBox を生成し、いつ OnExecute メソッドが呼び出されるかを示します。
       void MyButton_OnExecute( object sender, ButtonDefinitionWrapper . ExecuteEventArgs e)
       {
      // TODO Implement OnExecute Method
      MessageBox .Show( "MyButton's OnExecute Method" );
      }

      既存のボタンを削除する場合は、それぞれの OnExecute ハンドラを削除することができます。

  9. OnExecute ハンドラを登録する:
    1. IntentModel クラスのコンストラクタで、次の行を追加して GUI でイベント ハンドラを登録します。
       gui.MyButton.OnExecute += new EventHandler < ButtonDefinitionWrapper. ExecuteEventArgs >(MyButton_OnExecute);
  10. プロジェクトをビルドする:
    1. プロジェクトをビルドし、すべてのエラーをクリーンアップします。
    2. Inventor プロジェクトを開き、任意のアセンブリを選択します。[アドイン]リボンにカスタム ボタンが含まれています。ボタンをクリックすると、OnExecute メソッド ハンドラで作成したメッセージ ボックスが表示されます。
    3. 保存せずに Inventor を閉じます。
  11. ボタンにテキストを追加する:
    1. ボタンにカスタム アイコンとヘルプ テキストを追加するには、プロジェクトの Resources 組織フォルダの Resources.resx デザインを編集します。

      このファイルは、各ボタン用の文字列とイメージのセットを定義します。

    2. ボタンに必要な文字列を追加するには、他のボタンのモデルに厳密に従います。各リソース名の接頭辞には、ボタンのインスタンス化に使用したのと同じ文字列を使用します。

      <name>_DisplayName 文字列はカスタム ボタンのアイコンの下に表示される名前を定義します。

      <name>_DescriptionText はカスタム ボタンにカーソルを合わせたときのテキストを定義します。

      <name>_ToolTip は DescriptionText 文字列と同一です。

  12. カスタム アイコンを追加する:
    1. Resources.resx ファイルで、現在は[文字列]を表示しているドロップダウン メニューで[イメージ]を選択します。
    2. このビューでは各ボタンのアイコンを定義します。イメージ <name>_LargeIcon および <name>_StandardIcon を指定し、ButtonDefinitionWrapper クラスがそれらを追加するようにします。大きなサイズのアイコンは 32x32 ピクセルで、標準のアイコンは 16x16 ピクセルです。

      例として、Render アイコン セットを再利用してそれらを MyButton_LargeIcon および MyButton.StandardIcon に新しく指定するか、任意のイメージを使用します。
  13. ソリューションをビルドする:
    1. リソース ファイルを保存して、ソリューションをビルドします。
    2. Inventor プロジェクトとアセンブリをもう一度開きます。[アドイン]リボンにカスタム ボタンとアイコンが含まれています。新しい表示テキストがボタンに与えられた名前と置き換わっています。
    3. いずれかのリソースがロードされない場合には、ボタンのインスタンス化に使用した接頭辞を使用して各リソースを指定しているかどうかを確認します。