Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Тема начата: graphdark от 05.08.21, 07:30:37

Название: Нужен совет по ссылке из активного параметрического вида.
Отправлено: graphdark от 05.08.21, 07:30:37
Пытаюсь изменить ссылку на модель в чертеже, но не меняет.

  obj1 := doc2d.ksGetReferenceDocumentPart(3);
  ksAVP:=ksAssociationViewParam(Form1.kompas.GetParamStruct(ko_AssociationViewParam));
  ksavp.Init();
  doc2d.ksGetObjParam(obj1,ksAVP,ASSOCIATION_VIEW_PARAM);
  ksavp.fileName := Form1.FileSaveDialog1.FileName;
  ksavp.Init();
  doc2d.ksSaveDocument(pathNew)
Если что, вид главный. Он при загрузке активный.
Название: Re: Нужен совет по ссылке из активного параметрического вида.
Отправлено: Sabahs от 05.08.21, 07:45:59
Вы напротив каждой строчки кода напишите, что она делает, Вам самому станет интересно.
Вы понимаете, что данная строчка делает - ksavp.Init();?
Если есть ksGetObjParam, то наверно есть и ksSetObjParam.
Название: Re: Нужен совет по ссылке из активного параметрического вида.
Отправлено: graphdark от 05.08.21, 09:29:47
Цитата: Sabahs от 05.08.21, 07:45:59Вы напротив каждой строчки кода напишите, что она делает, Вам самому станет интересно.
Вы понимаете, что данная строчка делает - ksavp.Init();?
Если есть ksGetObjParam, то наверно есть и ksSetObjParam.
Заставили думать. Благодарю. Get на Set поменял, все заработало, но почему сбрасываются все свойства?
  obj1 := doc2d.ksGetReferenceDocumentPart(3);
  ksAVP:=ksAssociationViewParam(Form1.kompas.GetParamStruct(ko_AssociationViewParam));
//  ksavp.Init();
  ksavp.fileName := pathM3D;
  doc2d.ksSetObjParam(obj1,ksAVP,ASSOCIATION_VIEW_PARAM);
//  ksavp.Init();
  doc2d.ksSaveDocument(pathNew);
Так понял, что obj1-вид, ksavp-параметры, тип параметров. Нельзя только одно свойство задать? Надо вообще все менять?
Название: Re: Нужен совет по ссылке из активного параметрического вида.
Отправлено: Sabahs от 05.08.21, 09:47:41
Get - замена свойства -Set.
Название: Re: Нужен совет по ссылке из активного параметрического вида.
Отправлено: graphdark от 05.08.21, 11:03:25
Цитата: Sabahs от 05.08.21, 09:47:41Get - замена свойства -Set.
Спасибо Вам. Таки дошло. У кого аналогичная проблема будет, выкладываю свое решение.
  obj1 := doc2d.ksGetReferenceDocumentPart(3);
  ksAVP:=ksAssociationViewParam(Form1.kompas.GetParamStruct(ko_AssociationViewParam));
//  ksavp.Init();
  doc2d.ksGetObjParam(obj1,ksAVP,ASSOCIATION_VIEW_PARAM);
  ksavp.fileName := pathM3D;
  doc2d.ksSetObjParam(obj1,ksAVP,ASSOCIATION_VIEW_PARAM);
Неочевидно, что обязательно сначала гет, потом меняем линк, потом сет. В этом случае меняется одно свойство. Если без гет, свойства обнуляются.