akb84
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
ExcelVBAを利用してアセンブリに部品挿入
« 投稿日: 2010/06/16 - 03:08:33 » |
|
初めて投稿させていただきます
過去のトピックで「ExcelVBAを利用してアセンブリに部品挿入 」(2006/07/08 )を拝見しました。 2010のバージョンでも使えるようにするにはどのように手を加えればよいでしょうか。 また、挿入時の座標指定や平面上での回転など出来るのでしょうか。
宜しくお願いいたします。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:ExcelVBAを利用してアセンブリに部品挿入
« 返信 #1 投稿日: 2010/06/16 - 09:49:45 » |
|
akb84さん、はじめまして。
SW2010はライセンスの都合で確認できないので、SW2009で試してみましたところ、 参照設定のところをSW2009用のものに変更したら、問題なく動作しました。
akb84さんは、マクロの参照設定のところはご存知ですか? また、どの辺りでエラーとなっているのかわかりますか?
もう一つ、挿入時に、座標や回転を行いたいとのことですが、今調べているので、もうしばらく待ってください。
|
|
|
|
akb84
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
Re:ExcelVBAを利用してアセンブリに部品挿入
« 返信 #2 投稿日: 2010/06/16 - 10:36:52 » |
|
Makoron様
ご返信ありがとうございます
「マクロの参照設定」... 本当に申し訳ありません。この方法もわからない素人です。 「どの辺りでエラー」... 「コンパイルエラーユーザ定義型は定義されていません」とでていました。
素人で大変、恐縮です
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:ExcelVBAを利用してアセンブリに部品挿入
« 返信 #3 投稿日: 2010/06/16 - 11:16:19 » |
|
参照設定の変更方法を説明します。
1.AddPartSample.lzhを解凍してAddPartSampleフォルダをC:\に移動します。 2.AddPartSampleフォルダを開いて、Sample.xlsを開きます。 3.エクセルのメニューから、「ツール」→「マクロ」→「Visual Basic Editor」を選択します。 4.Visual Basic Editorのメニューから、「ツール」→「参照設定」を選択します。 5.参照設定のダイアログが表示されます。 6.「参照不可:SldWorks 2006 Type Library」と「参照不可:SolidWorks 2006 Constant library」に チェックが付いていると思うので、この2つのチェックをはずします。 7.リストボックスから次の2個を探してチェックを付けます。 「SldWorks 2010 Type Library」 「SolidWorks 2010 Constant type library」 8.参照設定のダイアログのOKボタンを押します。
これでマクロの参照設定は終わりです。 Excelに戻ってボタンを押してみてください。
ちなみに、私の環境は WindowsXP SolidWorks2009 Excel2002(OfficeXP) です。 Excelのバージョンによって、多少説明が異なっているかもしれません。
また、座標指定や回転は結構複雑になりそうです・・・。 やりたい事のないようにもよりますが、手動で対応する方がいいかもしれませんね。
ちなみに、今の時点では、Transformオブジェクトを使った移動と回転を試しています。 あと、合致を付ける方法もあるのですが、まだ試していません。
|
|
|
|
akb84
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
Re:ExcelVBAを利用してアセンブリに部品挿入
« 返信 #4 投稿日: 2010/06/16 - 14:34:13 » |
|
Makoron様
動きました
サクサク挿入できるのでビックリしています。 本当にありがとうございます
ここでまた質問なのです。ごめんなさい。 新規アセンブリを開かずに、すでに開いているアセンブリファイルに連続して部品を挿入できますか? 類推できなくて悩んでまいす。。。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:ExcelVBAを利用してアセンブリに部品挿入
« 返信 #5 投稿日: 2010/06/16 - 15:02:47 » |
|
引用:動きました
サクサク挿入できるのでビックリしています。 本当にありがとうございます
ここでまた質問なのです。ごめんなさい。 新規アセンブリを開かずに、すでに開いているアセンブリファイルに連続して部品を挿入できますか? 類推できなくて悩んでまいす。。。 |
良かったですね
引用:ここでまた質問なのです。ごめんなさい。 新規アセンブリを開かずに、すでに開いているアセンブリファイルに連続して部品を挿入できますか? 類推できなくて悩んでまいす。。。 |
できますよ!
まず、アクティブなアセンブリに対して挿入するには以下の様にソースを書き換えてください。
Set swModelDoc2 = swApp.NewDocument("C:AddPartSampleアセンブリ.asmdot", 0, 0#, 0#) を Set swModelDoc2 = swApp.ActiveDoc
これで、現在アクティブなアセンブリにサクサク挿入できると思います。
|
|
|
|
akb84
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
Re:ExcelVBAを利用してアセンブリに部品挿入
« 返信 #6 投稿日: 2010/06/16 - 18:49:46 » |
|
Makoron様
完璧です!ありがとうございます はじめは↓こんなので(下記コード)試していたので本当に助かりました。お恥ずかしい。。。
Sub main() Dim myrng As Range Set App = CreateObject("SldWorks.Application") Set Part = App.ActiveDoc boolstatus = Part.AddComponent(Range("B2").Value, Range("C2").Value / 1000, Range("D2").Value / 1000, Range("E2").Value / 1000) End Sub
引用:「ちなみに、今の時点では、Transformオブジェクトを使った移動と回転を試しています。 あと、合致を付ける方法もあるのですが、まだ試していません。 」
本当に感謝いたします。 ソリッドワークスVBAユーザーサンプル(移動と回転は別コードで)はあるのですが、エクセルで応用しきれずに困っていました
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:ExcelVBAを利用してアセンブリに部品挿入
« 返信 #7 投稿日: 2010/07/01 - 18:03:45 » |
|
akb84さん、こんにちは。
なっ、なんとかサンプルが出来ました。 集中して作業する時間が無くて遅れてしまいました・・・。
あと、合致のパターンも出来そうと書きましたが、ちょっと時間が掛かりそうだったので省いちゃいました
役に立つかわかりませんが、試してみてください。
|
|
|
|