• ブログ
  • 西田将也
  • 1. SDKのインストールとテンプレート使用法|SOLIDWORKS APIの勉強メモ

1. SDKのインストールとテンプレート使用法|SOLIDWORKS APIの勉強メモ

2014年クリスマス,某山本サンタからのプレゼントが便利だったので,ぼくも作ってみたいと思い年末年始の空き時間に勉強をしてみることにしたので,気づいたことなどあればここにメモしていこうと思います。

バージョン2015のAPIヘルプを見ながら進める。
とりあえず言語はなんでもいい(どれも馴染みがないので逆に)けど,とりあえずVB.NETにしようかな。
無料のVisual Studio Expressは2013までで,つぎははVisual Studio Communityという名前になっているらしい。
機能は上位っぽかったのでこれ(Community 2013)をインストール。

Solidworks インストレーションマネージャーから,機能追加でSolidworks API SDKをインストール。
これでVisual Studioのテンプレートに出てくるらしいが出てこない。
しらべてみるとここにやり方書いてくれている人が。

~以下引用&意訳~

apisdkのmsiファイル(インストーラー,カスタマーポータルのダウンロード→Solidworks→Accept→一番下に個別ダウンロードリンクがある,そこから入ってAPI SDKをダウンロードして回答したらSOLIDWORKS API SDK.msiというファイルができる)を,7-zipなどで解凍する。すると中にswcsharpaddin.zip と swvbaddin.zip がある。これがテンプレートファイルで,これをVisual Studioのテンプレートフォルダにコピーする。テンプレートフォルダはVSのツール→オプション→プロジェクト及びソリューション→全般 に設定されている。プロジェクトテンプレートのフォルダ。

~引用終わり~

これでテンプレートに出てくるようになり,めでたくぼくの一つ目のアドインが開始できるようになった。
機能は未定。

コメント

コメント表示順: リミット: オートロード:
  • 辻 直樹 3370 日前

    最初に”Imports・・・”と書いておくのは、各コマンドの在り処(入れ子状の入れ物?)を宣言しておくようなもので、ここで直前まで宣言しておくと、その後の構文内ではコマンド名だけ書けばいいのですが、宣言されていないと、構文内で入れ物の名前まで書かないといけなくなるんですね。

    例えば、

    Imports SolidWorks までしか宣言していないと構文内では Interop.sldworks.コマンド名

    Imports SolidWorks.Interop まで宣言していると構文内では sldworks.コマンド名 や swconst.コマンド名

    Imports SolidWorks.Interop.sldworks まで宣言していると構文内では コマンド名 だけでOK

    なのでSolidWorksの宣言はせいぜい3~4つで済むので最初に Imports しておいたほうが楽ですね。

    これは System でも同じことです。

  • 山本誠 3370 日前

    ここだけの話し、某山本サンタ=Makoron です(^^)v
    でも、過去の記憶をさかのぼるのが大変なので、カタマリの固まりが早く解消されるといいな!

  • 西田将也 3370 日前

    2008バージョンなんですが,TopLevelオブジェクトがSldWorksとなっていて,
    2015ではISldWorksに変わっている?のかな?

    よくわかってませんが,これがヒントになって動きました!

    SldWorks → SolidWorks.Interop.sldworks
    SwConst → SolidWorks.Interop.swconst
    SWPublished → SolidWorks.Interop.swpublished

    で,それっぽいAPIに置き換えたら動きました。

    SldWorksとかSwConstとかは,ぼくの環境ではそもそもインポートできませんでした。

  • 西田将也 3370 日前

    山本さん:ありがとうございます!

    それを参考に作るものイメージ出来たらまた考えます。

    この辺の話,googleで調べてカタマリで(そしてMakoron氏発言で)ヒットするんですが,
    行ってみたら工事中になってたんですよね 笑

    新谷さん頑張ってください!

  • 西田将也 3370 日前

    辻さん:コメントありがとうございます~

    さっそく日本語版ダウンロードしてみました。
    やっぱり日本語だと見やすいです。

    2008バージョンなんですが,TopLevelオブジェクトがSldWorksとなっていて,
    2015ではISldWorksに変わっている?のかな?
    何個か前のレスで書いたYoutubeのコードはSldWorks.TaskpaneViewというプロパティが
    未定義のエラーが出てしまうんですが2008バージョンのヘルプにはこれ乗ってました。
    しかしSldWorksオブジェクト自体にはエラー出てないんですよね。

  • 山本誠 3370 日前
    ちなみにexeを使うのはなぜですか?dllは配布の問題かな。
    VBAマクロにするのはどうなんでしょう

    単純に楽な方法という感じでexeにしてます(^^;)

    ■dll(アドイン)だと...
    コマンドアイコンやメニューなどの部分まで作りこまなければいけないからめんどう。
    アドインでプロパティマネージャに表示されるタイプだと、コントロールの種類がSOLIDWORKSのコントロールに限定されてしまうからヤダ。

    ■VBAマクロだと...
    VB6ベースのコーディングルールとUIなので使いにくい。(DotNet環境が楽)
    VBAのコントロールも微妙です。DotNetならWin7の見た目を気にしなくていい。
    (VSTAもあるけど、無くなるとかの話も聞いたことあるから微妙)

    という単純な消去法でVisual Bacic 2010 Expressで作っているだけです。
    それぞれメリット、デメリットがあるから作りたいものに合わせて選択したらいいと思います。

  • 辻 直樹 3370 日前

    西田さんAPIデビューおめでとうございます。頑張っていいの作って下さい!

    私はSWのマクロメニューから起動できるVisual Studioしか使っていないので、Express版などはダウンロードしてないです。

    アドインに仕込むのでなければ、山本さんがおっしゃるようにテンプレートも要らないので普通にマクロツールは作れますよ。

    また、西田さんのように英語に堪能なら不要かもしれませんが、2008年版までならヘルプの日本語版もあります。

    私は基本的なところは日本語版で調べて、最新情報を英語版で確認しながらやってます。

    日本語版は、SWジャパンのサイトで、サポート>テクニカルサポート>API>ナレッジベースでログインし、左のメニューのAPI HELPダウンロード にあります。

    ご参考まで。

     

  • 西田将也 3370 日前

    ちなみにexeを使うのはなぜですか?dllは配布の問題かな。
    VBAマクロにするのはどうなんでしょう

  • 西田将也 3370 日前

    『SOLIDWORKSのテンプレート使わずに』

    なるほど。

    ぼくもちょっと,理解できてなさすぎるので,いっこずつ書いていったほうがいいかな~

  • 山本誠 3370 日前

    Visual StudioではなくてVisual Bacic 2010 Express 使ってます!(どちらでも同じですね。)

    手打ちというのは、『SOLIDWORKSのテンプレート使わずに』という表現の方がただしいですね。
    アドインを作るときは『クラスライブラリ(DLL)』のテンプレートで作成してた様な気がします。(かなり昔)
    もしかすると最近は『SOLIDWORKSのテンプレート』で無いと作成し辛いかもしれません。
    自分は『Windowsフォームアプリケーション(exe)』ばかり作っているので微妙な回答になっちゃいます(^^;)

More ...