Проверить DESIGN_MODE

Программирование для CATIA.

Проверить DESIGN_MODE

Сообщение void » 04 июн 2016 15:54

Коллеги, добрый день!

Подскажите, пожалуйста, можно ли на automation узнать, загружена ли деталь в сборке в DESIGN_MODE?

Если как-нибудь так проверять,

Код: Выделить всё
set curDoc = PProduct1.ReferenceProduct.Parent

on error resume next
set part = curDoc.part


то при таком обращении сразу подгружает автоматически.
А надо именно проверить, подгружена ли деталь. И манипулировать дальше с ней, если только она подгружена.


Есть еще третий вариант, когда деталь не подгружена и вместо instanceName в квадратных скобках "*.CATPart". Тогда даже

pN = PProduct1.PartNumber

невозможно считать.
Но если нажать на свойства, или на шарик с крестиком, тогда свойства подгружаются, PartNumber считать уже можно.


Хотелось бы

1. проверить, находится ли деталь в DESIGN_MODE

2. если не находится, то не переводя ее в DESIGN_MODE, считать ее свойства (PartNumber и пр.)


Заранее спасибо за любые ответы!
Знаю, что задача очень распространенная, но что-то не припомню, как с ней бороться...
void
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 24 май 2012 14:03

Re: Проверить DESIGN_MODE

Сообщение Wireless_Fidelity » 04 июн 2016 20:00

Как подгрузить, не вспомню.
Но в CAA есть метод GetWorkMode. В Automation же доступен только ApplyWorkMode.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Проверить DESIGN_MODE

Сообщение void » 05 июн 2016 12:29

Пока удалось вот так сделать...

Обходим сборку, для каждого узла проверяем:
Код: Выделить всё
      on error resume next
                set curDoc = PProduct1.ReferenceProduct.Parent
      if err.number <> 0 then'по всей видимости, не подгруженный парт
         oSelection.Clear
         oSelection.Add(PProduct1)
         CATIA.StartCommand  "Load"'подгружаем
         oSelection.Clear
         set curDoc = PProduct1.ReferenceProduct.Parent
         flag = false
      end if
      on error goto 0


Т.е. если не можем считать свойство, то значит не подгруженный парт в VISUALIZATION_MODE (квадратные скобки).
Подгружаем его
CATIA.StartCommand "Load" '(Нашелся способ!)
Если пришлось подгружать, значит он не в DESIGN_MODE, значит с ним далее не манипулируем.


НО!
Теперь осталось как-то разделить те детали, которые уже были подгружены и которые находятся в DESIGN_MODE...
void
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 24 май 2012 14:03

Re: Проверить DESIGN_MODE

Сообщение Wireless_Fidelity » 05 июн 2016 17:28

Возможно, через ApplyWorkMode удастся осуществить частичную загрузку.

А какие свойства, кроме PartNumber, нужны?
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Проверить DESIGN_MODE

Сообщение void » 05 июн 2016 18:23

Насколько понимаю, деталь в сборке может быть в трех видах:

1.VISUALIZATION_MODE (квадратные скобки) - невозможно считать свойства PartNumber, Nomenclature и пр. остальные из окошка "Свойства"

2.DEFAULT_MODE (подгружена, выполнена команда Load) - возможно считать свойства PartNumber, Nomenclature и пр. остальные из окошка "Свойства", но невозможно считать, например, параметры. При попытке считывания деталь сразу переходит в DESIGN_MODE!!! (Вот это плохо!!! не получается поставить какую-нибудь косвенную проверку!!)

3. DESIGN_MODE - можно совершать любые считывания и манипуляции


Задача такая:
для деталей не в DESIGN_MODE считать свойства (PartNumber, Nomenclature и пр)
для деталей в DESIGN_MODE считать параметры


Пока получилось выделить только детали 1го типа.
Вот теперь пытаюсь додуматься, можно ли как-то косвенно определить, выполнен ли DESIGN_MODE....
Неприятность в том, что при попытке получить любой объект, он спокойно возвращается, а деталь переходит в DESIGN_MODE..
void
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 24 май 2012 14:03

Re: Проверить DESIGN_MODE

Сообщение Wireless_Fidelity » 05 июн 2016 19:09

Ну так САА же.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Проверить DESIGN_MODE

Сообщение void » 05 июн 2016 19:19

Т.е. писать какой-нибудь exe, который это будет делать вместо скрипта??
Просто скрипт уже готов. А для деталей в DESIGN_MODE там надо не просто параметры считать, а еще манипуляции с проверкой присвоенного материала...
Или exe,который просто вернет список подгруженных деталей?
Вообщем, на крайней случай.
В любом случае спасибо за отзывчивость.
void
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 24 май 2012 14:03

Re: Проверить DESIGN_MODE

Сообщение Wireless_Fidelity » 05 июн 2016 19:25

Никаких exe, я уже объяснял про расширения:
viewtopic.php?f=140&t=4370#p25406
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Проверить DESIGN_MODE

Сообщение void » 05 июн 2016 19:40

Угу, спасибо! Помню.
Но тогда не получилось расширение сделать.. =\
Ту задачу полностью на САА решаю.

Т.е. один метод GetWorkMode попытаться сделать доступным для скриптов?
void
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 24 май 2012 14:03


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron