C#ATIA

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

GetParameterOnSubStringメソッド

CATIAのDrawingTxtオブジェクトのGetParameterOnSubStringメソッドを
使ったことが無いので、戸惑ってます。
御存知の方いらっしゃいましたらアドバイス頂けると助かります。

GetParameterOnSubStringメソッドはDrawingTxtの部分的な文字の情報を
取得するメソッドだと思ってます。
r1 DrawingText (Object)


こんな雑なコードを作りました。

'vba
Sub test()
    Dim doc As Document
    Set doc = CATIA.ActiveDocument
    
    Dim sel As Object 'selection
    Set sel = doc.selection
    
    Dim msg$: msg = "選択して下さい : ESCキー 終了"
    Dim txt As Variant 'DrawingText
    Do
        Select Case sel.SelectElement2(Array("DrawingText"), msg, False)
            Case "Cancel", "Undo", "Redo"
                Exit Sub
            End Select
        Set txt = sel.Item(1).value
        
        iParam = CatTextProperty.catFontSize
        iFirst = 0
        inbCharacter = 0
        oval = txt.GetParameterOnSubString(iParam, iFirst, inbCharacter)
        
        Debug.Print "oval: " & oval
        Stop
    Loop
End Sub

DrawingTextを選択し、GetParameterOnSubStringの結果をイミディエイトウィンドウに
垂れ流してます。
第一パラメータはこちらです。
r1 Enumeration CatTextProperty
フォントのサイズを取得したいのです。

こんなデータで試しました。
f:id:kandennti:20200615184153p:plain
例えば「a11」は全てフォントサイズ3です。これを選択すると

oval: 3000

ん?単位mmで返すってHelpに書いてあるのに。

続いて「a8」を選択。こちらは全てサイズ10です。

oval: 10000

ん~単位の間違いだけなのだろう。

次は「a12」です。「a」がサイズ5で「12」はサイズ3です。

oval: 0

なるほど、0は文字列のフォントサイズが統一されていないって解釈で
良いんですかね?


分からなかったのが 、上記の「 iFirst 」「 inbCharacter 」。
試すと、「 iFirst 」で指定する文字列の先頭は1の様で、全ての場合は0かな?
文字数の「 inbCharacter 」は「 iFirst 」からの文字数で、「 iFirst 」以降全ての
場合は0で良いような・・・。

解釈合ってますかね?