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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: SWの最小化 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: SWの最小化  (閲覧数 2452 回)
yahiro
Jr. メンバー
**

オフライン

投稿: 22





プロファイルを見る
SWの最小化
« 投稿日: 2008/08/25 - 17:22:24 »
引用して返信

こんばんわ。
WinXPx64でSW2006SP4.1を使用しています。

VB.NETでプログラムを組んでいるのですが、SWを最小化することはできないでしょうか?
DRAWINGにAPIで線を描いたり文字を貼り付けたりしていると、画面が固まってしまうのですが、最小化して処理をすると画面が固まらず正常に処理が終了します。

そこで、処理はじめにSWを最小化しようかと思うのですが、ヘルプを探してもそれっぽいのがないもので・・・
最小化するのはアプリでもドキュメントでもOKです。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:SWの最小化
« 返信 #1 投稿日: 2008/08/26 - 10:04:55 »
引用して返信

yahiroさん、お早う御座います。hisaです

最小化の回答ではないのですが、APIでのスケッチ要素追加の場合、
以下の処理を追加すると高速化出来ます。

==============================
swModel.SetAddToDB True
swModel.SetDisplayWhenAdded False

"スケッチ描画処理"

swModel.SetAddToDB False
swModel.SetDisplayWhenAdded True
==============================

SetAddToBD:スケッチ要素をSlidWorksのデータベースに直接追加するかを設定
SetDisplayWhenAdded:要素追加に伴う表示の更新をするかを設定
となります。

以前投稿した長穴スケッチ描画マクロを参考にして頂いても良いです

ご参考まで。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:SWの最小化
« 返信 #2 投稿日: 2008/08/26 - 10:30:34 »
引用して返信

最小化に関していろいろと調べたてみました。
SolidWorksAPIでは、それらしいのは見つからず、VB.NETから直接ウィンドウ操作する場合でもWindowsAPIを使う方法しか見つかりませんでした。しかし、yahiroさんの環境は64bitなので、WindowsAPIのあたりがどうなるかわかりません。(64bitは使った事がないのです・・・)

「最小化して問題が発生しなくなる」と言う状況から、「画面描画の部分で問題が出ている」と想定して、APIでの処理時に、ModelView::EnableGraphicsUpdateを使って画面描画をしない設定にしてしまうと改善が出来るかも知れません。
(上手くいけば、最小化する必要がなくなるかもしれません。)
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:SWの最小化
« 返信 #3 投稿日: 2008/08/26 - 12:10:41 »
引用して返信

一応、最小化についても調べてみました

Makoronさん仰るとおり、x64環境でどうなるは確認が取れないんですが、x86環境のサンプルを載せます。
Code:
Private Declare Function CloseWindow Lib "user32" _
    (ByVal hWnd As Long) As Long

Private Declare Function OpenIcon Lib "user32" _
    (ByVal hWnd As Long) As Long

Dim swApp As SldWorks.SldWorks
Dim swFrame As SldWorks.Frame
Dim swhWnd As Long

Sub main()

Set swApp = CreateObject("SldWorks.Application")

Set swFrame = swApp.Frame

swhWnd = swFrame.GetHWnd

CloseWindow swhWnd

MsgBox "最小化したよ!"

OpenIcon swhWnd

MsgBox "元に戻したよ!"

End Sub


FrameからのhWnd取得の部分は、swFrame.GetHWndx64というメソッドがあったので
x64環境用のWindowHandle値が取得出来るのかもしれません。

ご参考まで。
議長に報告する   記録済み
yahiro
Jr. メンバー
**

オフライン

投稿: 22





プロファイルを見る
Re:SWの最小化
« 返信 #4 投稿日: 2008/08/28 - 10:51:45 »
引用して返信

回答ありがとうございました。
Makoronさんの
 ModelView::EnableGraphicsUpdate
を組み込んだら不具合が解消しました。
この現象は32bitPCでは出ず、64bitPCのみで発生していました。

また、hisaさんの
 swModel.SetAddToDB True
 swModel.SetDisplayWhenAdded False
はパターン(ModelDoc2::CreateLinearSketchStepAndRepeat)が動作しなくなるようで、採用できませんでした。

貴重な情報ありがとうございました。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: SWの最小化 前のトピック 次のトピック
ジャンプします: