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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: アセンブリにパーツを追加するには? 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: アセンブリにパーツを追加するには?  (閲覧数 2581 回)
thontyan
新人さん
*

オフライン

投稿: 7



I'm a llama!

プロファイルを見る メールアドレス
アセンブリにパーツを追加するには?
« 投稿日: 2011/03/06 - 18:15:17 »
引用して返信

御世話になっています。

なにげにできると思っていたことができなくて困っています。
アクティブなアセンブリに対して任意のパーツ(ファイル名、パスが解っている)を追加したいのですが、AddComponent4だけでは
うまくいきません。HelpのAdd Component and Mate Example (VB)
では 一度 パーツをオープンしてから AddComponent4するサンプルがあり これだとうまく行きますが いちいち パーツをオープンし、アクティブの切り換えをする必要があるのでしょうか?

宜しくお願い致します。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:アセンブリにパーツを追加するには?
« 返信 #1 投稿日: 2011/03/07 - 13:41:55 »
引用して返信

thontyan さんが仰る通り、構成部品を追加する場合は部品を開いてから挿入する必要があります。

そうなると、追加する構成部品はアセンブリとは異なるグラフィック領域を使用するため、メモリを無駄に食ってしまいます…

それを避けるためには、SldWorks::DocumentVisible を利用して、一時的に新しく開くドキュメントを表示させなくすれば、メモリ消費の観点及びドキュメントのアクティブ切り替え不要となります

とりあえず、以下は簡単なサンプルコードです。

Code:
Option Explicit

Sub main()

    Dim swApp As SldWorks.SldWorks
    Dim swAssy As SldWorks.AssemblyDoc
    Dim swModel As SldWorks.ModelDoc2
    Dim swComp As SldWorks.Component2
    Dim swDocSpec As SldWorks.DocumentSpecification
   
    Set swApp = Application.SldWorks
   
    swApp.DocumentVisible False, swDocPART
    swApp.DocumentVisible False, swDocASSEMBLY
   
    Set swAssy = swApp.ActiveDoc
   
    Set swDocSpec = swApp.GetOpenDocSpec("C:Assem1.SLDASM")
    swDocSpec.UseLightWeightDefault = False
    swDocSpec.LightWeight = True
    swDocSpec.Silent = True
       
    Set swModel = swApp.OpenDoc7(swDocSpec)
    Set swComp = swAssy.AddComponent4(swModel.GetPathName, "", 0#, 0#, 0#)
   
    swApp.DocumentVisible True, swDocASSEMBLY
    swApp.DocumentVisible True, swDocPART

End Sub


※追加する構成部品がアセンブリ且つライトウェイトで開ける状態であれば、強制的にライトウェイトで開く処理をしてます。
※実際には例外処理でドキュメントが非表示設定のままにならない工夫が必要です。
議長に報告する   記録済み
thontyan
新人さん
*

オフライン

投稿: 7



I'm a llama!

プロファイルを見る メールアドレス
Re:アセンブリにパーツを追加するには?
« 返信 #2 投稿日: 2011/03/07 - 15:21:31 »
引用して返信

hisaさん

ありがとうございます。
やはりそうですか...
非表示は、いい方法ですね。参考にさせて頂きます。

今後とも宜しくお願い致します。

議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: アセンブリにパーツを追加するには? 前のトピック 次のトピック
ジャンプします: