Как получить параметры чертежа

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

Как получить параметры чертежа

Сообщение void » 12 май 2016 05:04

Коллеги!
Подскажите, пожалуйста, как получить список всех параметров в открытом CATDrawing. (Вообще-то нужен один, но, видимо, он все равно из списка получается)

В примере получают для парта.
Код: Выделить всё
        // Get all the parameters under the part
        CATIParmPublisher_var spParmPub(spSpecObjectPart);
        if (!! spParmPub)
        {
          spParmPub->GetAllChildren("CATICkeParm",oListParameters);
        }



Причем у меня dll и обращение к чертежу CATDrawing идет через агента выбора _pObjectAgent
Например, для построения линий получаем CATI2DWFFactory через объект pElemPath


Код: Выделить всё
   CATSO* pObjSO = _pObjectAgent->GetListOfValues();
   CATPathElement *pElemPath = NULL;
   CATIDftGenGeom * piGenGeom = NULL;
   CATUnicodeString BuiltMessage1 ;
   CATUnicodeString partNumber;


   
   if (NULL != pObjSO) 
   {
      // We will scan the CSO from the begining
      pObjSO->InitElementList();
      while (NULL != (pElemPath = (CATPathElement*)pObjSO->NextElement())  )
      {
         
         // Make sure the element is a circle type
         // Thi circle can be interactive or a generative result (from part, model, ...)
      CATBaseUnknown *piElementRef = (CATBaseUnknown *)pElemPath->CurrentElement();
         
         if (NULL != piElementRef)
         {
            CATI2DWFFactory *piDrwFact = (CATI2DWFFactory *)pElemPath->FindElement(IID_CATI2DWFFactory);
             .....
         }
     }
 }




А как теперь на уровень документа CATDrawing выйти, чтобы его параметры получить?

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

Re: Как получить параметры чертежа

Сообщение Wireless_Fidelity » 12 май 2016 08:26

Если агент выбора настроен на работу только в активном документе, то можно этот документ перед запуском агента запоминать. Тогда не придется идти "вверх" от выбранного объекта в поисках содержащего его документа.
По параметрам посмотрю уже на работе.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Как получить параметры чертежа

Сообщение Wireless_Fidelity » 12 май 2016 11:33

1. Получаем активный документ через CATFrmEditor
2. Берем у него интерфейс CATIDftDraftingServices
3. Получаем корневой элемент чертежа через GetDrawing.
4. Получаем список параметров через CATIParmPublisher.

Альтернативно можно из корневого объекта чертежа получить интерфейс Automation - CATIADrawingRoot - и дальше оперировать уже им.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Как получить параметры чертежа

Сообщение void » 12 май 2016 21:56

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

Re: Как получить параметры чертежа

Сообщение Wireless_Fidelity » 12 май 2016 23:34

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

Re: Как получить параметры чертежа

Сообщение void » 14 май 2016 20:34

Признаться, не знаю толком. Меня коллеги попросили помочь со скриптами для чертежей. Со скриптами я худо-бедно дружу.
Но выяснилось, что одна из задачек на скриптах не решается. Пришлось забуриться в интерфейсы.

Пока до считывания параметра не дошло дело.

Будьте добры, подскажите, как выноску добавить, "Text with leader" так называемый.

Пишу

Код: Выделить всё
             CATIDftLeader *oLead  = NULL;
             CATIDftGDT *oGDT = NULL;
                            double startPoint[2], endPoint[2];


            if (SUCCEEDED(piADrwFact->CreateDftGDT(-2, startPoint, endPoint, &oLead,  &oGDT )))
            {



              oLead->Release();oLead=NULL;
              oGDT->Release();oGDT=NULL;
            }



Во-первых, это вообще она, выноска?
Во-вторых, смотрю все свойства и методы этого CATIDftLeader и этого CATIDftGDT, не могу найти и понять, где добавление текста к выноске... Уже сомнение, так ли я делаю.
И собственно достаточно ли указать координаты точек при создании? Или их еще раз через свойства надо указывать?

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

Re: Как получить параметры чертежа

Сообщение Wireless_Fidelity » 15 май 2016 14:54

И вновь оффтопик. Выноска к тексту (а не наоборот) добавляется методом AddLeader.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Как получить параметры чертежа

Сообщение void » 16 май 2016 20:57

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


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

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

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

cron