



Random Thoughts |
A clear conscience is a continual Christmas - Benjamin Franklin
|

言語 |
|




|
 |
フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27) |
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2025/07/03 - 17:01:55 |
|
 |
|

著者
|
トピック: 設計テーブルの編集について (閲覧数 2294 回) |
|
oone
新人さん 
オフライン
投稿: 3

I'm a llama!
|
 |
設計テーブルの編集について
« 投稿日: 2008/01/22 - 20:40:08 » |
|
いつも参考にさせてもらっています。 SW2005を使用しておりまして、VB6で、マクロを使って、設計テーブルのコンフィギュレーションのパラメータの値を変更したいのですが、コードを組むことができません。 申し訳ありませんが、どなたか教えていただけないでしょうか?
|
|
|
|
hisa
カタマリの王様!?     
オフライン
投稿: 507

PANDA-Z!!
|
 |
Re:設計テーブルの編集について
« 返信 #1 投稿日: 2008/02/05 - 14:30:15 » |
|
結構時間経っちゃってますが、アドバイスを 
APIヘルプ内のサンプルGet Design Table Example (VB)を 引用して、以下のようなサンプルを作りました。
Code:Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc Dim swDesTable As SldWorks.DesignTable Dim nTotRow, nTotCol As Long Dim i, j As Long Dim bRet As Boolean
Sub main()
Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc
Set swDesTable = swModel.GetDesignTable
bRet = swDesTable.Attach Debug.Assert bRet
nTotRow = swDesTable.GetTotalRowCount nTotCol = swDesTable.GetTotalColumnCount
For i = 0 To nTotRow '1.指定コンフィギュレーション名検出 If swDesTable.GetEntryText(i, 0) = "デフォルト" Then For j = 0 To nTotCol '2.指定パラメータ検出(ヘッダーテキストから検出) If swDesTable.GetHeaderText(j - 1) = "D1@押し出し1" Then '3.〜ここに処理〜 Debug.Print swDesTable.GetEntryText(i, j) End If Next j End If
Next i swDesTable.Detach End Sub |
流れとしては、 1.各行(Row)のゼロ列(Column)から、コンフィギュレーション名を検出 2.該当コンフィギュレーション行から、全ての列のヘッダーテキスト (つまりパラメータ名前:D1@押し出し1とか)を検出 3.上記で検出した時の、行列番号が該当するパラメータとなる といった感じです。
注意する点がひとつ。 手順2のヘッダーテキスト取得に関するメソッドGetHeaderTextの引数ですが、 何故かGetEntryTextの引数とズレがありました。(引数はどちらも列番号です) ですので、上記コードではswDesTable.GetHeaderText(j - 1)としています。 j=0の時に、列番号-1となってとんでもない値を返しますが、エラーにはならない ようなので、多分大丈夫です 
以上、ご参考まで。
|
|
|
|
|
|
|

|