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

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

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

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

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

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

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

Изменить значение шероховатости

Автор Andreych, 29.03.20, 21:32:45

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

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

Andreych

Не получается изменить текст шероховатостей на чертеже.
Есть примеры как создать шероховатость с нуля, но редактирования нигде не нашел.

Вот текст пробной процедуры, где просто ко всем текстам прибавляется "----".
var
  iter: ksIterator;
  CurObj: Reference;
  arrText : ksDynamicArray;
  i, j: Integer;
  tLinePar: ksTextLineParam;
  RoughParam: ksRoughParam;
  RoughPar: ksRoughPar;
  str: ksChar255;
  arrpTextItem: ksDynamicArray;
  itemPar: ksTextItemParam;

begin
  iter:=ksIterator(kompas.GetIterator());
  iter.ksCreateIterator(ROUGH_OBJ,0);
  CurObj:=iter.ksMoveIterator('F');
  while CurObj<>0 do begin
    RoughParam:=ksRoughParam(kompas.GetParamStruct(ko_RoughParam));
    doc.ksGetObjParam(CurObj,RoughParam,ALLPARAM);
    RoughPar:=ksRoughPar(RoughParam.GetrPar);
    arrText := ksDynamicArray(RoughPar.GetpText);

    if RoughPar.style = INDICATIN_TEXT_LINE_ARR then begin
      tLinePar := ksTextLineParam( kompas.GetParamStruct(ko_TextLineParam) );
      for i := 0 to arrText.ksGetArrayCount() - 1 do begin
        arrText.ksGetArrayItem( i, tLinePar );
        arrpTextItem := ksDynamicArray( tLinePar.GetTextItemArr() );
        if arrpTextItem=nil then Exit;
        itemPar := ksTextItemParam( kompas.GetParamStruct(ko_TextitemParam) );

        for j := 0 to arrpTextItem.ksGetArrayCount() - 1 do begin
          arrpTextItem.ksGetArrayItem( j, itemPar );
          itemPar.s := itemPar.s + '----';
          if arrpTextItem.ksSetArrayItem(j, itemPar) = 1 then ShowMessage('Сохранено arrpTextItem ' + itemPar.s);
        end;
        if tLinePar.SetTextItemArr(arrpTextItem) then ShowMessage('Сохранено tLinePar');
        if arrText.ksSetArrayItem(i, tLinePar) = 1 then ShowMessage('Сохранено arrText');
      end;
    end else begin // этот блок никогда не срабатывает
      str:=ksChar255(kompas.GetParamStruct(ko_Char255));
      for i:=0 to arrText.ksGetArrayCount()-1 do begin
        arrText.ksGetArrayItem(i,str);
        str.str := str.str + '--';
        arrText.ksSetArrayItem(i,str);
      end;
    end;

    if RoughPar.SetpText(arrText) then ShowMessage('Сохранено RoughPar');
    if RoughParam.SetrPar(RoughPar) then ShowMessage('Сохранено RoughParam');

// вот эта строка не сохраняет
    if doc.ksSetObjParam(CurObj,RoughParam,ALLPARAM) = 1 then ShowMessage('Сохранено CurObj');

    CurObj:=iter.ksMoveIterator('N');
  end;
  iter.ksDeleteIterator;
end;

При всех операциях сохранения появляется диагностическое сообщение "Сохранено ****".
Не работает только последнее сохранение ksSetObjParam.
Из-за него, видимо, в итоге ничего не сохраняется.
Может как-то по другому нужно действовать?

Andreych

Все получилось.
У меня было лишнее сохранение параметров RoughParam.SetrPar(RoughPar)
Без этой строки все сохраняется.