Нужен совет по ссылке из активного параметрического вида.

Автор graphdark, 05.08.21, 07:30:37

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

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

graphdark

Пытаюсь изменить ссылку на модель в чертеже, но не меняет.

  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)
Если что, вид главный. Он при загрузке активный.

Вы напротив каждой строчки кода напишите, что она делает, Вам самому станет интересно.
Вы понимаете, что данная строчка делает - ksavp.Init();?
Если есть ksGetObjParam, то наверно есть и ksSetObjParam.

graphdark

Цитата: 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-параметры, тип параметров. Нельзя только одно свойство задать? Надо вообще все менять?


graphdark

Цитата: 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);
Неочевидно, что обязательно сначала гет, потом меняем линк, потом сет. В этом случае меняется одно свойство. Если без гет, свойства обнуляются.