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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 新規ドキュメントを複数、取得するには? 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 新規ドキュメントを複数、取得するには?  (閲覧数 1428 回)
magu
Sr. メンバー
****

オフライン

投稿: 57



I'm a llama!

プロファイルを見る
新規ドキュメントを複数、取得するには?
« 投稿日: 2005/12/12 - 13:14:23 »
引用して返信

SolidWorks内に開いている複数の新規ドキュメントをマクロでPartDocとして、取得したいのですが、どのように記述すればよろしいでしょうか?

アクティブの新規ドキュメントはActiveDoc関数で取得できますが、アクティブではないウィンドウの取得方法が分かりません。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:新規ドキュメントを複数、取得するには?
« 返信 #1 投稿日: 2005/12/12 - 14:27:15 »
引用して返信

新規Partドキュメントだけの取得ということでしたら、
以下の方法が考えられます。

(1) SldWorks.GetFirstDocumentにて現在のセッションで
  開いている初めのドキュメント(ModelDoc2)を取得。

(2) ModelDoc2.GetPathNameにて、戻り値が空の文字列で
  あれば未保存(新規)のドキュメント。

(3) 取得したドキュメントがPartDocであれば、PartDoc取得。

(4) ModelDoc2.GetNextで次のドキュメントを取得し、手順(2)へ。

開いているドキュメントの巡回は、SldWorks.GetFirstDocument
及びModelDoc2.GetNextのサンプルとしてヘルプ内に記述されて
います。

ドキュメントの取得に関する命令は、ヘルプ内でSldWorks・ModelDoc2
及びSelectionManagerオブジェクトなどを辿ってみれば大体見付かるのでは
ないかと思います。
また、ヘルプ内に記載されているオブジェクトの取得は、該当オブジェクトの
ページ上部右側にある『継承取得メソッド』を選択すると使用するメソッドや
上位オブジェクトの説明が記載されているので参考にしてみると良いでしょう。
議長に報告する   記録済み
magu
Sr. メンバー
****

オフライン

投稿: 57



I'm a llama!

プロファイルを見る
Re:新規ドキュメントを複数、取得するには?
« 返信 #2 投稿日: 2005/12/15 - 14:00:04 »
引用して返信

hisaさん、ありがとうございました。
出来ました。
今回は新規ドキュメントの確認は必要ありませんでした。
すみません・・・・・・分かりやすいように伝えたかっただけだったので・・・・・・

ソースはこのような感じに組みました。
Dim swApp As SldWorks.SldWorks
Dim ModelDoc As SldWorks.ModelDoc2
Dim PartDoc As SldWorks.PartDoc
Dim Check As Boolean

Set swApp = Application.SldWorks

Check = True
Do
    If Check Then
        Set ModelDoc = swApp.GetFirstDocument
        Check = False
    Else
        Set ModelDoc = ModelDoc.GetNext
    End If
    If ModelDoc Is Nothing Then
        Exit Do
    End If
    If ModelDoc.GetType = 1 Then
        Set PartDoc = ModelDoc
        MsgBox ("現在のパス:" & ModelDoc.GetPathName)
    End If
Loop
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 新規ドキュメントを複数、取得するには? 前のトピック 次のトピック
ジャンプします: