Выбор детали Catia в цикле for

В моем цикле 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

person Sherlock Homies    schedule 12.07.2017    source источник
comment
Какой смысл помещать ваши документы в массив DocumentArrayNew ? Вы сразу потребляете объект документа, и массив кажется ненужным. И, Document - это объект, когда вы назначаете его хэшу, вы должны использовать ключевое слово Set. Кроме того, цвета нельзя назначать объектам документа. Обычно вы назначаете цвета продуктам в сборке или телам в детали.   -  person C R Johnson    schedule 12.07.2017
comment
Имя документа не обязательно совпадает с номером детали или именем детали в сборке. Будьте осторожны с этим. Основная проблема заключается в том, что когда вы ищете, вы ищете что-то с именем хэш. Вам нужно исправить эту строку поискового запроса, чтобы она включала значение имени экземпляра, которое вы ищете.   -  person C R Johnson    schedule 12.07.2017
comment
прежде всего спасибо! Думаю, именно в этом моя проблема. Имена экземпляров не совпадают с именами деталей. Есть ли способ изменить мой поисковый запрос, чтобы он искал только имена экземпляров?   -  person Sherlock Homies    schedule 12.07.2017
comment
я пытался сделать это: hash = Left(DokumentArrayNew(n),len(DokumentArrayNew(n)-1)) и я получаю конфликт типа ошибки!   -  person Sherlock Homies    schedule 12.07.2017


Ответы (1)


Ваш Selection.Search ищет слово "Hash", а не то, что находится внутри переменной hash

Измените свои Select Case утверждения на это:

Set sel = catia.activedocument.selection
sel.search "Name =*" & hash & "*,all"
person Quima    schedule 12.07.2017
comment
сделал, но все равно ничего не происходит. - person Sherlock Homies; 13.07.2017