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

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

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

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

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

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

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

Проблема при чтении стиля линий

Автор mkrz, 30.07.09, 13:24:29

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

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

mkrz

Проблема. Может кто сталкивался. Хотел выбрать с чертежа все объекты со стилем линии "Основная". При запросе стиля выдает всегда "0". На примере отрезков код такой:

par := ksLineSegParam( kompas.GetParamStruct(ko_LineSegParam) );
kompas.ksMessage('line style = '+inttostr(par.style));

Подскажите в чем ошибка.

begin
  FLineSegIter:=ksIterator(Kompas.GetIterator);
  FLineSegIter.ksCreateIterator(LINESEG_OBJ,0);
  Obj:=FLineSegIter.ksMoveIterator('F');
  while BOOL(Doc2D.ksExistObj(Obj)) do
   begin
     if(Doc2D.ksGetObjParam(Obj,LineSegParam,LINESEG_OBJ))<>0 then
        kompas.ksMessage('line style = '+inttostr(LineSegParam.style));     
     Obj:=FLineSegIter.ksMoveIterator('N');
   end;
end;

Maxagg

немного поправленный код

var
  kompas:KompasObject;
  doc2d:ksDocument2D;
  FLineSegIter:ksIterator;
  Obj:reference;
  LineSegParam:kslinesegparam;
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    kompas:=KompasObject(GetActiveOleObject('Kompas.Application.5'));
  except
  end;
  kompas.Visible:=true;
  kompas.ActivateControllerAPI;
  doc2d:=ksdocument2d(kompas.ActiveDocument2D);
  begin
  FLineSegIter:=ksIterator(Kompas.GetIterator);
  FLineSegIter.ksCreateIterator(LINESEG_OBJ,0);
  Obj:=FLineSegIter.ksMoveIterator('F');
  while obj<>0 do
   begin
    LineSegParam:=ksLineSegParam( kompas.GetParamStruct(ko_LineSegParam) );
    if Doc2D.ksGetObjParam(Obj,LineSegParam,LINESEG_OBJ)<>0 then
     kompas.ksMessage('line style = '+inttostr(LineSegParam.style));
     Obj:=FLineSegIter.ksMoveIterator('N');
   end;
  end;
end;

mkrz

Спасибо ответившим. Ошибку осознал. Пропустил строку:
if Doc2D.ksGetObjParam(Obj,par,LINESEG_OBJ)<>0 then

Тему можно закрыть