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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: イベントハンドラー 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: イベントハンドラー  (閲覧数 4912 回)
chippu
Sr. メンバー
****

オフライン

投稿: 79



I'm a llama!

プロファイルを見る
イベントハンドラー
« 投稿日: 2006/03/20 - 19:18:05 »
引用して返信

SolidWorksのイベントハンドラーってどうやって使うのですすか?
たとえば、ファイル保存時にメッセージを表示させたいとか・・・・
ご存知の方、ご教授願います。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:イベントハンドラー
« 返信 #1 投稿日: 2006/03/20 - 19:33:20 »
引用して返信

hiroponです
私はよく、フォーム出現時にイベントハンドラを使います。
(フォーム出現時しか使えないと思ってるんですが
ちがうのかな???)
フォームを作成して
フォーム最上部(フォーム内グローバル変数宣言箇所)に
例えば
Dim WithEvents aaa as PartDoc
と宣言します。
Genelicと書いていあるコンボボックスで aaa が選択できるようになります。
aaa を選択すると 右横のコンボボックスに イベントの関数一覧が表示されるので
望みのイベント関数を選択します。
すると望みのイベントが発生した際、その関数内に実行が移るようになります。
たしか、このサイトでイベントハンドラについてすごく参考になるプログラムを
発見した記憶があるんですがどこだっけかな?? :-
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:イベントハンドラー
« 返信 #2 投稿日: 2006/03/20 - 19:42:01 »
引用して返信

SW(US)のサイトからサンプルをダウンロード出来ます。
(SWJはSupcription契約があればダウンロード出来ます。)

SWUS
http://www.solidworks.com/pages/services/APIDownloads.html?PID=121
のページにある
「Run events monitor utility (VB)」をクリックしてダウンロード

SWJ
https://www.solidworks.co.jp/pages/services/subscription/_CodeExamples2.html#events
のページにある
「イベントの通知 」をクリックしてダウンロード
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:イベントハンドラー
« 返信 #3 投稿日: 2006/03/20 - 19:42:44 »
引用して返信

chippuさん
ありましたよ〜
Makoronさんが以前投稿してくれてました。
Makoronさん引用させていただきます。。。
>(API Downloads のページ)
>http://www.solidworks.com/pages/services/APIDownloads.html
>(VBAイベントモニターのサンプルファイル)
>http://www.solidworks.com/downloads/API/Downloads/00000/0200s/0230/VBA_Events.zip

このサンプルプログラムが非常に役に立ちました。

議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:イベントハンドラー
« 返信 #4 投稿日: 2006/03/20 - 20:10:16 »
引用して返信

'
引用元: hiropon 投稿日 '.timeformat('1142851364').'   
'chippuさん
ありましたよ〜
Makoronさんが以前投稿してくれてました。
Makoronさん引用させていただきます。。。
>(API Downloads のページ)
>http://www.solidworks.com/pages/services/APIDownloads.html
>(VBAイベントモニターのサンプルファイル)
>http://www.solidworks.com/downloads/API/Downloads/00000/0200s/0230/VBA_Events.zip

このサンプルプログラムが非常に役に立ちました。

お〜〜、自分書き込んでいたのですね・・・。
また同じ事書いてしまいました
記憶していて見つけ出したhiroponさんは、すごい!

・・・で、少し恥ずかしいので、追加情報です。
http://www.solidworktips.com/api_pages/05_using_notifications.htm
にClassを使ったイベント取得方法が書かれているようです。
(いつもの事ながら、英語が不得意なので、良く理解していませんが...)
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:イベントハンドラー
« 返信 #5 投稿日: 2006/03/20 - 21:18:15 »
引用して返信

Makoronさん
このイベントハンドラーのサンプルって、どうゆう意味なんでしょう?
私のつたない英語読解力でよんだところ、SolidWorks Exeの
ショートカットを
C:\Program Files\SolidWorks\SLDWORKS.exe" /m "C:\Macros\notifications.swp
にしたら、自動的に
C:\Macros\notifications.swp
のマクロが走って、部品ファイルを新規に作成してセーブしたらメッセージがでるよ
って書いてあると読解したんですが、なりませんよね??(なりました??)
というか
Public Sub MonitorSolidWorks()
    Set swApp = Application.SldWorks
End Sub
が実行してEnd Subまでいったら イベントなんてとれないですよねー?(もしかして、
とれるんですか???)
それとも
Set swApp = New SldWorks.SldWorks
の下になにかコードを書くことを前提としているんでしょうか?
ちなみに 下に
swApp.CloseDoc ("Part1.SLDPRT")
と書いたら、ちゃんとクラスのイベントは発生しましたが・・・
いまいち、英文のPDF文章の意味がわからないっす。。。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:イベントハンドラー
« 返信 #6 投稿日: 2006/03/21 - 09:31:54 »
引用して返信

実は試した事がなかったのです・・・。
ちょっと試して見ましたが、サンプルのままだと動きませんでした。

そこで、いろいろと試して、なんとか動きそうな事がわかりました。
標準モジュールの部分を次の様に修正したら動きました。
-------------------------------------------------------
Option Explicit
Dim MyClass As New Notification_Class
Sub main()
    MyClass.MonitorSolidWorks
End Sub
-------------------------------------------------------
MyClass の定義の場所を変えただけです。

>が実行してEnd Subまでいったら イベントなんてとれないですよねー?(もしかして、
>とれるんですか???)
たぶん、クラスとしてイベントハンドラーを定義しているので、クラスが開放されるまかSWが閉じない限り、動いているのではないかと思います。
なにせ、クラスの使い方(考え方)をマスターしていないので、このくらいしか説明出来ません。

あと、
C:\Program Files\SolidWorks\SLDWORKS.exe" /m "C:\Macros\notifications.swp
の部分ですが、

単に、起動と同時にこのマクロを実行するための手順だと思うので、
従来どおり、マクロの実行やマクロボタンの登録から、マクロを起動しても問題ないのと思います。
(終了できないマクロになると思いますが...。)

このマクロの使い方はいろいろあると思いますが、例えば、
・保存した時に、自動でPDFも作る
・特定のフォルダへの保存を禁止する
・保存した時に、別のフォルダにもコピーしておく
なんか使えそうなしょりかな。

別のイベントも追加すると、いろいろ出来そうですね。






議長に報告する   記録済み
chippu
Sr. メンバー
****

オフライン

投稿: 79



I'm a llama!

プロファイルを見る
Re:イベントハンドラー
« 返信 #7 投稿日: 2006/03/22 - 09:06:27 »
引用して返信

なるほど。。。
例えば、既存のファイル保存コマンドで利用してるマクロ?に手を加えたりって不可能なんですかね?
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:イベントハンドラー
« 返信 #8 投稿日: 2006/03/22 - 09:27:11 »
引用して返信

hiroponです
おぉー
Makoronさん さすがです。グローバルにしておけば クラスオブジェクトが破棄されない
んですね
破棄をどうするかがネックですかね。まぁ、SWが閉じたら自動的に破棄されるんで問題
はないでしょうね-
クラスによるイベント取得は、憶えておくとかなり後々いろんなことに使えそうですねー
本当、いつもいつも有益な情報ありがとうございます。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: イベントハンドラー 前のトピック 次のトピック
ジャンプします: