hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
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 |
※追加する構成部品がアセンブリ且つライトウェイトで開ける状態であれば、強制的にライトウェイトで開く処理をしてます。 ※実際には例外処理でドキュメントが非表示設定のままにならない工夫が必要です。
|