在for循环中选择Catia部分

时间:2017-07-12 08:26:28

标签: vba vbscript catia

我的For循环中存在一个小错误,因为它不会选择我想要着色的部分。我使用变量哈希将文档的所有名称放在那里,然后尝试使用Catia函数进行着色,但仍然没有任何内容!

以下是代码的一部分。 问题区域是Select Case。如果找到它,它实际上不会选择和着色部件。

更新:现在我确切地知道问题的确切位置,在选择零件并着色它的情况下。不知怎的,它甚至都不会选择那部分。

For n = 1 To DokAnzahl
    Set Dokument = DokumentArray(n)

    ReDim DokumentArrayNew(DokAnzahl)
    DokumentArrayNew(n)  = CStr(Dokument.Name)

    For j = 1 To UBound(arrNamen)
        If arrNamenNew(j) = Left(DokumentArrayNew(n), Len(arrNamenNew(1))) Then
            'MsgBox "They are equal!"
            hash = DokumentArrayNew(n)
            ColorCode(j) = arrFarben(j)
            'MsgBox ColorCode(j) checked

            m = j+1

            Select Case ColorCode(j)
                Case "NEU" 'rot
                    Set sel = catia.activedocument.selection
                    sel.search "Name =hash,all"
                    sel.visproperties.setRealColor 240, 1, 1, 1
                Case "entfällt" 'Gelb
                    Set sel = catia.activedocument.selection
                    sel.search "Name =hash,all"
                    sel.visproperties.setRealColor 240, 240, 16, 1
                Case "COP" 'Grün
                    Set sel = catia.activedocument.selection
                    sel.search "Name =hash,all"
                    sel.visproperties.setRealColor 30, 240, 60, 1
                Case Else
                    MsgBox "no color info"
            End Select
        End If
    Next
Next

1 个答案:

答案 0 :(得分:1)

您的Selection.Search正在搜索"Hash"这个词,而不是变量hash

中的内容

将您的Select Case语句更改为:

Set sel = catia.activedocument.selection
sel.search "Name =*" & hash & "*,all"