yahiro 
            Jr. メンバー               
  
  オフライン
  
            
            投稿: 22 
           
  
 
  
                 
       
			
			 | 
            
            
              
                  | 
                
                SWの最小化 
                «  投稿日: 2008/08/25 - 17:22:24 » | 
                                   | 
               
             
             
            こんばんわ。 WinXPx64でSW2006SP4.1を使用しています。
  VB.NETでプログラムを組んでいるのですが、SWを最小化することはできないでしょうか? DRAWINGにAPIで線を描いたり文字を貼り付けたりしていると、画面が固まってしまうのですが、最小化して処理をすると画面が固まらず正常に処理が終了します。
  そこで、処理はじめにSWを最小化しようかと思うのですが、ヘルプを探してもそれっぽいのがないもので・・・ 最小化するのはアプリでもドキュメントでもOKです。 
             | 
           
            | 
            			
			 | 
           
         
         | 
       
     
     | 
  
  
    
    
    
      
        
        
          
            
            hisa 
            カタマリの王様!?                  
  
  オフライン
  
            
            投稿: 507 
           
  
  PANDA-Z!! 
                 
         
			
			 | 
            
            
              
                  | 
                
                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!! 
                 
         
			
			 | 
            
            
              
                  | 
                
                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)が動作しなくなるようで、採用できませんでした。  
  貴重な情報ありがとうございました。
             | 
           
            | 
            			
			 | 
           
         
         | 
       
     
     |