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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 座標拾得 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 座標拾得  (閲覧数 3866 回)
hiromayu
新人さん
*

オフライン

投稿: 4



I'm a llama!

プロファイルを見る
座標拾得
« 投稿日: 2006/10/23 - 16:29:01 »
引用して返信

はじめまして。VBマクロ初心者です。

現在VBにて、正面スケッチを開いた状態で

画面内でマウスの左ボタンをクリックしたら

そこの座標を拾得したいのですが上手に出来ません。

どなたかサンプルコードを教えて下さい。

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

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:座標拾得
« 返信 #1 投稿日: 2006/10/23 - 18:13:33 »
引用して返信

hiromayuさん、はじめまして。

SWではマウスイベントを取得することが出来ません。
(SW2007からは出来るよになるみたいです。)
なので、「クリックした時」自身を取得する事は難しいと思います。
ましてや、マウスの座標を取得と言うのはさらに難しいです。

ただ、マウスのイベントが取れないだけで、
何かが選択された時や選択オブジェクトが変更された時は
SolidWorksのイベントを取得することが出来るので、
これを代用して、ある程度の事ができると思います。

もう少し、手順ややりたい事を書いてくれると、サンプルを
作る事も出来ると思います。
議長に報告する   記録済み
hiromayu
新人さん
*

オフライン

投稿: 4



I'm a llama!

プロファイルを見る
Re:座標拾得
« 返信 #2 投稿日: 2006/10/24 - 09:15:05 »
引用して返信

お返事ありがとうございます。

SW2006を使用しています。マウスイベント取得はきびしいのですか 

行いたい内容は2Dスケッチを開いた状態から


スケッチ画面内の任意の場所を左クリック
         ↓
左クリックした場所に半径100mの円を書きたい


このような内容です。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:座標拾得
« 返信 #3 投稿日: 2006/10/24 - 14:14:43 »
引用して返信

いろいろと調べたり、テストしてみたりしたのですが、
やはり、できないようです。
どうしても、マウスイベントや現在のカーソル座標が取得できません。
SW2007で実現するしかなさそうです。
議長に報告する   記録済み
hiromayu
新人さん
*

オフライン

投稿: 4



I'm a llama!

プロファイルを見る
Re:座標拾得
« 返信 #4 投稿日: 2006/10/24 - 14:28:22 »
引用して返信

ありがとうございます。
今2007をインストールしてmausuイベントを勉強中なのですが
?ばかりです
色々検討してみます 何か2007VBの情報があればよろしくお願いします。
議長に報告する   記録済み
hiromayu
新人さん
*

オフライン

投稿: 4



I'm a llama!

プロファイルを見る
Re:座標拾得
« 返信 #5 投稿日: 2006/10/25 - 10:02:07 »
引用して返信

お世話になっています。

マウスイベントの使用方法が分からなくて行き詰ってます

サンプルがあれば情報をお願いします。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:座標拾得
« 返信 #6 投稿日: 2006/10/25 - 12:18:25 »
引用して返信

SolidWorks2007 APIヘルプのサンプルみてみました?
私はまだサンプルを試していないのですが、時間があれば試して見ます。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:座標拾得
« 返信 #7 投稿日: 2006/11/08 - 12:23:07 »
引用して返信

SolidWorks2007 APIヘルプのサンプルを基に、サンプルマクロを作ってみました。
・・・が、マウスイベントで取得できる座標が、ウィンドウ上でのXY座標で、そのXY座標からスケッチ座標やモデル空間の3次元座標に変換する方法がわかりませんでした・・・
(どなたか方法のわかる方がいましたら、書き込みお願いします。)

あまり使い物にならないサンプルマクロですが、添付しておきます。
 MouseEvents.lzh
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:座標拾得
« 返信 #8 投稿日: 2007/01/10 - 14:05:53 »
引用して返信

hiromayuさん、はじめまして

色々調べてみましたが、結構難しいですね
一応、スクリーン座標→モデル座標変換は出来るのですが、
2D表現であるスクリーンと実際の3Dモデルでは『奥行き』の部分で望む結果が
得られない場合があります。
具体的には、モデルを傾いて表示している場合に、同じマウスの位置でも奥行きに
よって返される座標値が異なります。

添付図(□50立方体の頭角投影)で説明すると、原点位置にマウスを持っていった
場合に、明示しない限り原点なのか手前の頂点なのかの判別が出来ません。
言い換えれば、奥行き次第でXYZ座標は変化してしまいます。
実際APIで検証してみたら、どうやらスクリーン座標は視線に垂直且つモデル中心
を通る平面として存在しているようです。
(添付図の緑色平面となり、原点位置にカーソルを持っていくとモデル中心:X25,Y25,Z25が返される)

上記を踏まえると、正面視や側面視などX/Y/Zのいずれかがカーソル位置で変化
しない状態であれば、他の座標は望む値を返してくれます。

分かりづらい説明になってしましたが、ようは画面に平行でモデルの中心を通る仮想
平面上をカーソルが常に這っていると考えて頂ければ…と思います
 PICT001.PNG
議長に報告する   記録済み

hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:座標拾得
« 返信 #9 投稿日: 2007/01/10 - 14:10:56 »
引用して返信

一応、試しに作成したマクロも添付しておきます。

フォームのチェックをONにした場合に、指定半径で円を描きます。
条件として、
1)スケッチ(3Dスケッチは除く)を開いた状態で
2)視線に垂直の表示で
としないと正しく機能してくれません…

幸い、ドラッグすることで既存の要素に一致させることも可能です
あまりデバッグしていませんのであしからず…

ご参考までに

追記)
上記を読むと全くの不可能の様に聞こえますが、ModelViewオブジェクトの
Orientation3・Transration・Scale2辺りを利用し指定面への座標変換
マトリクスを作成出来そうな気はしています。しかし、自分の頭ではそこまで
検証しきれませんでした…
 Mouse2ModelView.lzh
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 座標拾得 前のトピック 次のトピック
ジャンプします: