C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

DrawingTextの"選択可能"を切り替える

CATIA V5です。

DrawingTextを選択出来たり、出来なかったりするのは、プロパティの
こちらを変更すれば可能です。

"選択可能"のチェックを外した際、再設定する為にはGUIの場合は
検索するしかなさそうです。

選択出来ないようにしたのに、検索での選択出来るのは
矛盾しているような気もしますが、これが出来ないとゴミとして
残っちゃうので、助かります。


この"選択可能"を切り替えるサンプルです。

'vba
'Drawのテキストの"選択可能"状態の反転

Option Explicit

Sub CATMain()

    Dim doc As DrawingDocument
    Set doc = CATIA.ActiveDocument
    
    Dim sheet As DrawingSheet
    Set sheet = doc.sheets.ActiveSheet
    
    Dim view As DrawingView
    Set view = sheet.views.ActiveView

    '目的のテキスト
    Dim drawTxt As DrawingText
    Set drawTxt = view.Texts.Item(1)

    'VisPropertySetの取得
    Dim sel As Selection
    Set sel = doc.Selection
    
    Dim vis As VisPropertySet
    Set vis = sel.VisProperties

    'テキストの選択
    sel.Clear
    sel.Add drawTxt

    'プロパティの"選択可能"状態の取得
    'http://catiadoc.free.fr/online/interfaces/enum_CatVisPropertyPick.htm
    Dim pickState As CatVisPropertyPick
    vis.GetPick pickState

    'プロパティの"選択可能"状態の反転
    Dim pickSetting As CatVisPropertyPick
    If pickState = catVisPropertyPickAttr Then
        pickSetting = catVisPropertyNoPickAttr
    Else
        pickSetting = catVisPropertyPickAttr
    End If

    vis.SetPick pickSetting

End Sub

これ、質問がDrawingTextだったのでこの様にしましたが、
ボディ等他の要素でも同じです。