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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 設計テーブルの編集について 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 設計テーブルの編集について  (閲覧数 2294 回)
oone
新人さん
*

オフライン

投稿: 3



I'm a llama!

プロファイルを見る
設計テーブルの編集について
« 投稿日: 2008/01/22 - 20:40:08 »
引用して返信

いつも参考にさせてもらっています。
SW2005を使用しておりまして、VB6で、マクロを使って、設計テーブルのコンフィギュレーションのパラメータの値を変更したいのですが、コードを組むことができません。
申し訳ありませんが、どなたか教えていただけないでしょうか?
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
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となってとんでもない値を返しますが、エラーにはならない
ようなので、多分大丈夫です

以上、ご参考まで。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 設計テーブルの編集について 前のトピック 次のトピック
ジャンプします: