Приветствую Вас, Гость! Регистрация RSS

DelphiVS

Пятница, 26.04.2024
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Программирование » Компас » Параметры объекта спецификации
Параметры объекта спецификации
MaxaДата: Вторник, 10.11.2009, 06:12 | Сообщение # 1
Школьник
Группа: Администраторы
Сообщений: 22
Репутация: 0
Статус: Offline
необходимо создать объект спецификации и указать для него имя файла подключаемого документа.
С созданием объекта спецификации я справился, а вот с подключением документа – нет.

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;

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

 
MaxaДата: Вторник, 10.11.2009, 06:14 | Сообщение # 2
Школьник
Группа: Администраторы
Сообщений: 22
Репутация: 0
Статус: Offline
Дело в том что данные строки подключения файла не имеют связи с объектом спецификации.

function EditSpcObjDet(obozn, name: string ) : Reference;
var
spcObj: Reference;
par: ksUserParam;
item: ksLtVariant;
arr,arr2: ksDynamicArray;
item_f:ksDocAttachedSpcParam;
sop:ksSpcObjParam;
begin
spec.ksSpcObjectCreate( 'graphic.lyt',1,20,0,0,0 );
par := ksUserParam( kompas.GetParamStruct(ko_UserParam) );
item := ksLtVariant( kompas.GetParamStruct(ko_LtVariant) );
arr := ksDynamicArray( kompas.GetDynamicArray(LTVARIANT_ARR) );
par.Init;
item.Init;
par.SetUserArray( arr );
item.strVal := obozn;
arr.ksAddArrayItem( -1, item );//Добавить элемент в массив.
spec.ksSpcChangeValue( 4, 1, par, STRING_ATTR_TYPE );
item.strVal := name;
arr.ksAddArrayItem( 0, item );
spec.ksSpcChangeValue( 5, 1, par, STRING_ATTR_TYPE );
spcObj := spec.ksSpcObjectEnd;

//подключаем файл
sop:=ksSpcObjParam(kompas.GetParamStruct(ko_SpcObjParam));
sop.Init;
item_f := ksDocAttachedSpcParam(kompas.GetParamStruct(ko_DocAttachSpcParam));
item_f.Init;
item_f.fileName := 'C:\1.cdw';
item_f.transmit := 0;
item_f.comment:='sacvasdv';
arr2:= ksDynamicArray( kompas.GetDynamicArray(DOC_SPCOBJ_ARR) );
arr2.ksAddArrayItem( -1, item_f);
sop.SetDocArr(arr2);
spcdoc.ksSetObjParam(spcobj,sop,ALLPARAM);
end;

Приятной работы

 
Форум » Программирование » Компас » Параметры объекта спецификации
  • Страница 1 из 1
  • 1
Поиск: