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

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

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

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

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

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

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

определить имена внешних переменных при вставке фрагмента

Автор Максимилиан, 21.04.09, 16:27:48

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

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

Максимилиан

Здравствуйте, имеется код, в котором я вставляю фрагмент с внешними переменными
Следует  найти имена переменных
Все вставляется как надо, даже видит что переменных 4 (а их действительно 4),
вот только не выдает их имена :`(

var
  d3d:ksDocument3d;
  d2d:ksdocument2d;
  lib:ksModelLibrary;
  part,Part_f:kspart;
  iUserParam:ksUserParam;
  iRequestInfo3D:ksRequestInfo3D;
  iRequestInfo2D:ksRequestInfo;
  docPar :ksDocumentParam;
  iVariableCollection:ksVariableCollection;
  phan :ksPhantom;
  frag : ksFragment;
  par : ksPlacementParam;
  type1 : ksType1;
  macro:integer;
  Arr:  ksDynamicArray;
  par_f:ksvariable;
  Obj,p,pDefFrg: Reference;

...

  d2d:=ksDocument2d(kompas.ActiveDocument2D);
  docPar := ksDocumentParam(Kompas.GetParamStruct(35));
  phan := ksPhantom(Kompas.GetParamStruct(6));
  frag := ksFragment(d2d.GetFragment);
  par := ksPlacementParam(Kompas.GetParamStruct(7));
  par.Init;
  phan.phantom := 1;
  d2d.ksMacro(1);
  macro:=d2d.ksendobj;
  type1 := ksType1(phan.GetPhantomParam);
  type1.xBase := 0;
  type1.yBase := 0;
  type1.angle := 0;
  type1.scale_ := 1;
  pDefFrg:=frag.ksFragmentDefinition(fn+adoquery3.fieldbyname('DocumentKompas').asstring,'lll',0);
  type1.gr :=d2d.ksNewGroup (1);
  p:= frag.ksInsertFragment (pDefFrg,false,par);
  d2d.ksEndGroup;
  if type1.gr = 0 then
  exit;
  phan.phantom := 1;
  d2d.ksPlacement(nil, x, y,angle,phan);
  if type1.gr <> 0 then
  d2d.ksStoreTmpGroup(type1.gr);
  obj:=d2d.ksCopyObj(p,0,0,x, y,0,angle);
  arr:=ksDynamicArray(d2d.ksGetDocVariableArray(obj));
  if arr.ksGetArrayCount<>0 then
  for i:=0 to arr.ksGetArrayCount-1 do
  begin


///вот здесь :`(
    if arr.ksGetArrayItem(i,par_f)=1 then memo2.Lines.Add(par_f.name);



  end;
  d2d.ksSetDocVariableArray(type1.gr,arr,false); // }
  d2d.ksAddObjectToMacro(macro,type1.gr);
  d2d.ksDeleteObj(type1.gr);


Помогите, плиз. Заранее благодарен

Максимилиан

 :-))) :-))) :-)))
нашел сам ответ через 2 часа

  arr:=ksDynamicArray(d2d.ksGetDocVariableArray(obj));
  par_f:=ksvariable(kompas.getuserparam(85));
  if arr.ksGetArrayCount<>0 then
  for i:=0 to arr.ksGetArrayCount-1 do
  begin


///вот здесь Cry
    if arr.ksGetArrayItem(i,par_f)=1 then memo2.Lines.Add(par_f.name);



  end;
  d2d.ksSetDocVariableArray({type1.gr}obj,arr,false); // }