Параметры объекта спецификации

Автор Dune, 31.05.09, 14:19:51

« предыдущая - следующая »

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

Dune

Привет всем!
Помогите разобраться.
Мне нужно определить имя файла связанного с объектом спецификации
пол дня мучаюсь нашел тока ksD3GetSpcObjGeometry но чувсвую это не то.
При ручном создании спецификации можно добавлять чертежи, из основной надписи которых заполняются колонки "Обозначение" , "Наименование"  и  доп колонка "Масса", кажется. В каком параметре эта строка фигурирует?? Явно ж должно сохраняться где-то в свойствах объекта спецификации.
Заранее спасибо.

Максимилиан

Вот пожалуйста, думаю вам это поможет.
Приятной работы

http://kompas-i.narod.ru/readobjspec.rar

Dune

Пмогло, действительно!
Правда я работаю в режиме прикладной библиотеки, но помогло поискать в другом направлении.
SpcObParam - вот что был нужно. Все очень просто.
А получить эти параметры можно банально getObjParam(ref, param, parSize, SPC_OBJ);
Я то рылся в SDK.hlp в разделе работа с документом-спецификацией...
Спасибо :)

Дмитрий

09.11.09, 14:52:21 #3 Последнее редактирование: 09.11.09, 15:28:02 от Дмитрий
Цитата: Dune от 31.05.09, 14:19:51
Dune: Мне нужно определить имя файла связанного с объектом спецификации

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

function EditSpcObjDet( geom: Reference; obozn, name: string ) : Reference;
var
  spcObj: Reference;
  par: ksUserParam;
  item: ksLtVariant;
  arr: ksDynamicArray;

  item_f:ksDocAttachedSpcParam;

begin
  spcObj := 0;
  //ввойдем в режим создания объекта спецификации
  if ( spcObj <> 0 )  or ( spc.ksSpcObjectCreate( 'graphic.lyt', //имя библиотеки типов
                                   1,         //   номер типа спецификации
                                   20,  0,    //номер раздела и подраздела
                                   0,0 ) <> 0 ) then    //тип атрибута
  begin
    par := ksUserParam( kompas.GetParamStruct(ko_UserParam) );
     item := ksLtVariant( kompas.GetParamStruct(ko_LtVariant) );
      arr := ksDynamicArray( kompas.GetDynamicArray(LTVARIANT_ARR) );

      if ( par = nil ) or ( item = nil ) or ( arr = nil ) then
    begin
         Result := 0; exit;
    end;
      par.Init();
      par.SetUserArray( arr );
     item.Init();
      item.strVal := obozn;
    arr.ksAddArrayItem( -1, item );//Добавить элемент в массив.
    //обозначение
    spc.ksSpcChangeValue( 4, 1, par, STRING_ATTR_TYPE  );

      item.strVal := name;
      arr.ksAddArrayItem( 0, item );
    //наименование
    spc.ksSpcChangeValue( 5, 1, par, STRING_ATTR_TYPE  );

    // Тут пытаюсь подключить файл
    item_f := ksDocAttachedSpcParam(kompas.GetParamStruct(ko_DocAttachSpcParam));
    item_f.Init();
    item_f.fileName := 'E:\Мои документы\Рабочая\Прокладки 4\Библиотека шаблонов\Шаблон 6.289.010А-ХХХ\6.289.011-ХХХ.cdw';
    item_f.transmit := 0;

    spcObj := spc.ksSpcObjectEnd( );

    if  spcObj <> 0   then
    begin
      Result := spcObj;
      exit;
    end;

  end;
  Result := 0;
end;

Программа работает,  объекты создаются, а вот файл не подключается.
Помогите, пожалуйста. Подскажите где ошибка?

Максимилиан

У вас нет связи с объектом спецификации

ваш ответ
http://delphivs.ucoz.ru/forum/3-8-1

Дмитрий

Спасибо большое за помощь. Файлы теперь подключаются.