• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Код материала

Автор Kredo, 11.07.05, 03:12:39

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Kredo

Как можно получить код материала или экземпляра сортамента из основной надписи чертежа, выбранного из справочника МиС.

Kredo

Обнаружил, вернее прочитал, что код материала содержится в атрибуте документа. А как его можно передать в спецификацию? Или вытащить через объект спецификации?

сhelkаr

Можно получить файлы у объекта спецификации через ksDocAttachedSpcParam и пройти итератором ksIterator::ksCreateAttrIterator (obj = 0). Дальше получить значение нужного атрибута.

Kredo

Не могу сделать перемещение по атрибутам через ksMoveAttrIterator(’F’,0). Ругается на несоответсвие типов.

333

В спецификации код материала пишется в дополнительные колонки

Kredo

Это если его в самой спецификации указывать. А когда данные считываются с чертежа, тогда нет.

333

// Получить атрибут с location текущего материала
ksIteratorPtr iter( kompas->GetIterator() );
BOOL res = iter->ksCreateAttrIterator( docReference, 0, 0, 0, 0, MATERIAL_ATTR_ID );
   long resOld = iter->ksMoveAttrIterator( "F", NULL );

   if ( pAttr )
  {
      ksAttributeObjectPtr attrObj( kompas->GetAttributeObject() );

      // Инициализировать структуру массива для атрибута
      ksUserParamPtr values( kompas->GetParamStruct( ko_UserParam ) );
      values->Init();
      ksDynamicArrayPtr array( kompas->GetDynamicArray( LTVARIANT_ARR ) );
      ksLtVariantPtr val( kompas->GetParamStruct( ko_LtVariant ) );
      val->Init();
      val->strVal = "";
      array->ksAddArrayItem( -1, val );
      values->SetUserArray( array );

      // Считать атрибут
      attrObj->ksGetAttrRow( pAttr, 0L, NULL, NULL, values );
      array->ksGetArrayItem( 0, val );
      m_sLocation = (char*)val->strVal;
   }