CATScript - текст, линии и рамки в черном цвете

Код приведен ниже (CATScript):

Sub CATMain()
    '   enter sheet background
    Set oView = oDrawingDocument.DrawingRoot.ActiveSheet.Views.Item("Background View")
    oView.Activate

    '   select all views in current screen
    Set oSelection = oDrawingDocument.Selection
    oSelection.Search "Type=*,scr"

    '   set visual to black
    oSelection.VisProperties.SetRealColor 0, 0, 0, 0

    '   exit sheet background
    Set oView = oDrawingDocument.DrawingRoot.ActiveSheet.Views.Item("Main View")
    oView.Activate
End Sub

Код работает без проблем, за исключением того, что oSelection.VisProperties.SetRealColor 255, 255, 255, 0 не изменяет ни одну из выбранных линий и рамок на черные в моем 2D-чертеже. Я могу сделать это вручную, поэтому уверен, что использую неправильный синтаксис. SetVisibleColor не работает, но я также могу обнаружить, что эти синтаксисы используются для изменения цвета в 3D, и я использую его для 2D-рисунка. Кто-нибудь здесь знает синтаксис для управления цветным значком в рабочем пространстве «Свойства графики» для 2D-чертежа?

Глядя на документация, вы, кажется, делаете правильный выбор. Интересно, возможно, это проблема наслоения, нужно ли вам устанавливать определенный слой перед указанием цвета? Я мог бы ошибиться, так как я никогда не использовал CATIA, так что относитесь к моим предположениям с долей скепсиса.

user692942 30.08.2018 13:44

@Lankymart Вручную я просто ввожу фон листа, выбираю весь лист (как это делает код), выбираю черный цвет в рабочей области «Свойства графики», и все становится черным. В строке кода, как у меня сейчас, ни один цвет не меняется. Слой находится на «Нет» во время ручного и скриптового процесса.

Sid 30.08.2018 13:58

@Lankymart Также я проверил, зарегистрирован ли выбор с помощью oSelection.Count после активации oSelection.Search "Type = *, scr". Это возвращает «11».

Sid 30.08.2018 14:03

В этом случае я бы предложил пройтись по объекту Selection (с использованием петли For Each) и вывести, какие объекты выбираются, чтобы подтвердить, что они являются ожидаемыми объектами в выборе. На данный момент сделано слишком много предположений.

user692942 30.08.2018 14:12

@Lankymart выбраны следующие объекты (информация, собранная с помощью цикла, как вы указали): 1. Point2D (1x) - 2. Line2D (2x) - 3. DrawingComponent (5x) - 4. DrawingText (4x).

Sid 30.08.2018 14:37

@Lankymart Получил, что работает. Я использовал следующее: Set oSelectionDC = oDrawingDocument.SelectionoSelectionDC.Search("CATDrwSearch.DrwText,all")oSelectionDC.VisProperties.SetRealColor 0,0,0,0Set oSelectionDT = oDrawingDocument.SelectionoSelectionDT.Search("CATDrwSearch.DrwTable,all")oSelectionDT.VisProperties.SetRealColor 0,0,0,0

Sid 30.08.2018 16:46

@Lankymart то же самое можно было бы сделать со строками, используя oSelectionGI.Search("CATDrwSearch.CATEarlyGenItem,all"), но я пропустил это из-за времени, необходимого для запуска. Предположим, дизайнер уже рисует черными линиями.

Sid 30.08.2018 16:50

Звучит хорошо, возможно, рассмотрите добавление ответа(вместо того, чтобы добавлять решение вашего вопроса). Не волнуйтесь, ответ на свой вопрос приветствуется.

user692942 30.08.2018 17:26

@Lankymart, хотя моя учетная запись существует какое-то время, я новичок в публикации / ответах. Спасибо за подсказку, обязательно изменю! И еще одно спасибо за то, что вы обдумали решение. :)

Sid 31.08.2018 10:18
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
9
179
1

Ответы 1

Это решение, которое я нашел после некоторых исследований и проб и ошибок:

'CHANGE LINE COLOR
Set oSelectionGI = oDrawingDocument.Selection               
oSelectionGI.Search("CATDrwSearch.CATEarlyGenItem,all")     
oSelectionGI.VisProperties.SetRealColor 0,0,0,0

'CHANGE TEXT COLOR
Set oSelectionDC = oDrawingDocument.Selection
oSelectionDC.Search("CATDrwSearch.DrwText,all")
oSelectionDC.VisProperties.SetRealColor 0,0,0,0

'CHANGE TABLE COLOR
Set oSelectionDT = oDrawingDocument.Selection
oSelectionDT.Search("CATDrwSearch.DrwTable,all")
oSelectionDT.VisProperties.SetRealColor 0,0,0,0

Другие вопросы по теме