仕事のカタマリにようこそ!  [ ログイン | ユーザ登録 ]
フォーラムから検索

機械用3D-CAD SolidWorks非公認のユーザサイトです
 
 
Web katamari.org
仕事のカタマリ
ホーム リンク集 ダウンロード フォーラム(掲示板) FAQ お問い合わせ









フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27)
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/11/23 - 08:09:04
ホーム ヘルプ 検索 ログイン 登録

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: アセンブリ上での部品の原点座標の取得 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: アセンブリ上での部品の原点座標の取得  (閲覧数 5220 回)
moumou
新人さん
*

オフライン

投稿: 8



I'm a llama!

プロファイルを見る
アセンブリ上での部品の原点座標の取得
« 投稿日: 2011/09/20 - 16:01:51 »
引用して返信

皆様お忙しいところ失礼します。
アセンブリファイル上で、アセンブリ原点から見た各部品原点を一斉に読み込むマクロを作成したいのですが、
なにぶん素人なのでマクロの作り方がいまいちわかりません。
今現在少しずつマクロを勉強しながら書こうとしていますが、難航しています。

まず部品原点を読んでくれる、solidworksで用意されているマクロ関数はあるのでしょうか?
ヘルプなどを探しているのですが、どれがそれに相当するのかわかりません。

今何もかもわからない状態なので、どなたかやり方だけでもご教授して下さる方はいませんでしょうか?
全くの無知なので、わかりやすく教えていただけたらと思います。

よろしくお願いいたします
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:アセンブリ上での部品の原点座標の取得
« 返信 #1 投稿日: 2011/09/20 - 19:15:59 »
引用して返信

moumousさん、はじめまして。

アセンブリ上で部品の原点座標を取得するマクロは、とても難しく、通常のマクロの様に簡単に作成する事が出来ないのです。
(私の現時点では作成する事ができません。)

そこで、逃げの方法になるのですが、
最近、kim_aokiさんが質問された「スケッチで打った点のxyz座標の取得」が同様の内容になり、ここでも、アセンブリ上で3Dスケッチを挿入し、各部品の原点に点を作成してから「点群の座標データのエクセルへの読み込み」のマクロで座標を取得する方法を紹介しています。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:アセンブリ上での部品の原点座標の取得
« 返信 #2 投稿日: 2011/09/21 - 17:10:17 »
引用して返信

SolidWorksのAPIヘルプに、ズバリのサンプルがありました

APIヘルプのキーワードからTransformを検索し、その下にあるcomponentsをダブルクリックすると、
該当するトピックの中にGet Transforms of Assembly Components Example (VB)があります。
(ヘルプからそのままコピペすると余計な改行が入ってそのまま実行できないので、ヘルプと見比べて適宜修正して下さい)

結果は、Debug.Printで出力(VBエディタのイミディエイト ウィンドウに表示)されていて、構成部品ごとに
Trans = (x.xxxx,  x.xxxx, x.xxxx)
といった感じで、XYZ座標が表示されています。(コピペできます)

Debug.Printの部分を変えれば結果の表示方法も自由に変えられますよ
議長に報告する   記録済み
moumou
新人さん
*

オフライン

投稿: 8



I'm a llama!

プロファイルを見る
Re:アセンブリ上での部品の原点座標の取得
« 返信 #3 投稿日: 2011/09/25 - 00:16:52 »
引用して返信

Makoronさん
ご回答ありがとうございました。スケッチ点を打つ方法では確かに可能でした。
ありがとうございます。しかしやはりもっと直接的に出力したいと考えています。
ですがこれもいい方法なので参考にさせていただきます。


hisaさん
ご回答ありがとうございます。ヘルプからサンプルコードを見つけ、コピーして実行してみましたが、色々エラーが出てしまいました。
多分簡単なことだと思うのですが、自分で訂正してみてもなかなかエラーがなくなりません。出たエラーは以下のものです。

エラー1
--------------------------------------------------------------
Sub OutputCompXform _
( _

    swComp As SldWorks.Component2 _

    nLevel As Long _

)
--------------------------------------------------------------

エラー2
--------------------------------------------------------------

      Debug.Print sPadStr & "  Rot1  = (" + _

            Str(vXform(0)) + ", " + _

            Str(vXform(1)) + ", " + _

            Str (vXform(2)) + ")" _
--------------------------------------------------------------

このコードの部分がエラーとして出たところです。コンパイルエラーとして”識別子”が指摘されます。
何か文法上の間違いなんでしょうか?
多分簡単なことだとおもうのですが、なかなかうまく訂正できません。
もしわかるようであれば、教えていただけないでしょうか?
誠にお手数かけますがよろしくお願いします。
議長に報告する   記録済み
moumou
新人さん
*

オフライン

投稿: 8



I'm a llama!

プロファイルを見る
Re:アセンブリ上での部品の原点座標の取得
« 返信 #4 投稿日: 2011/09/26 - 23:54:44 »
引用して返信

Makoronさん
私が見つけたのは、Get Transforms of Assembly Components Example (VBA)であり、VBではないのですが、VBAでも関係なく動くのでしょうか?今このVBAの方のサンプルプログラムを使用して、前回投稿のようなエラーが出ている状況にいます。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:アセンブリ上での部品の原点座標の取得
« 返信 #5 投稿日: 2011/09/27 - 08:52:55 »
引用して返信


引用:
Makoronさん
私が見つけたのは、Get Transforms of Assembly Components Example (VBA)であり、VBではないのですが、VBAでも関係なく動くのでしょうか?今このVBAの方のサンプルプログラムを使用して、前回投稿のようなエラーが出ている状況にいます。

流れからするとhisaさんだと思うのですが、名指しされたので

VBとVBAはほとんど違いがありありませんので、VBと書かれていればVBAと考えてもいいと思います。
(詳しく説明すると長くなるのでWeb検索等で調べてみてください。)

で、エラーに関してですが、書込みにあったそのままであれば、幾つか入力ミスがありますね。
(見ただけで判断しているので、実際のコードで動作するかはかくにんしてないです。)

エラー1
・カンマが抜けています。
・_の後は改行しても良いが、その下に空白行が入っている。
--------------------------------------------------------------
Sub OutputCompXform _
( _
    swComp As SldWorks.Component2 , _
    nLevel As Long _
)
--------------------------------------------------------------

エラー2
・最後の _ が不要
--------------------------------------------------------------
      Debug.Print sPadStr & "  Rot1  = (" + _
            Str(vXform(0)) + ", " + _
            Str(vXform(1)) + ", " + _
            Str (vXform(2)) + ")"
--------------------------------------------------------------
議長に報告する   記録済み
moumou
新人さん
*

オフライン

投稿: 8



I'm a llama!

プロファイルを見る
Re:アセンブリ上での部品の原点座標の取得
« 返信 #6 投稿日: 2011/09/27 - 23:08:06 »
引用して返信

誠に申し訳ありません。
hisaさんとMakoronさんを勘違いして送っていたようです。

無事解決しました。
hisaさん、Makoronさん、本当にありがとうございました。。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: アセンブリ上での部品の原点座標の取得 前のトピック 次のトピック
ジャンプします: