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

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

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

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

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

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

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

Как вытянуть у объекта штриховки, её границу?

Автор GerontDevICS, 03.04.08, 11:43:49

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

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

GerontDevICS

Мне нужно вытянуть всю информацию об штриховке, все данные которые есть в ksHatchParam я беру, но не могу понять, где взять контур штриховки? :?:

В SDK сказано через boundaries – указатель на временную группу, я через ksIterator созданный iteratorgrups.ksCreateIterator(0, param.boundaries),  просканировал там только один объект CONTOUR_OBJ (ksContourParam) – содержащий только стиль !!!! ???  8-)

Вот еще по любопытствовал тип: _activeDocument2D.ksGetObjParam(param.boundaries, 0, 0) = WORK_GROUP_OBJ

Вот пример кода:
Kompas6API5.ksHatchParam param = (Kompas6API5.ksHatchParam)_kompasObject.GetParamStruct((short)Kompas6Constants.StructType2DEnum.ko_HatchParam);
if (param.Init())
{
   _activeDocument2D.ksGetObjParam(currentObject, param, -1);
      ....
       Беру все из param.xxxxxx
     .....
    Kompas6API5.ksIterator iteratorgrups = (Kompas6API5.ksIterator)_kompasObject.GetIterator();
            if (iteratorgrups.ksCreateIterator(0, param.boundaries))
                   if (iteratorgrups.reference != 0 && _activeDocument2D != null)
                        {
                          int currentObjectgrups = iteratorgrups.ksMoveIterator("F");
                          if (_activeDocument2D.ksExistObj(currentObjectgrups) != 0)
                            {
                                do
                                 {// type==26
                                  int type = _activeDocument2D.ksGetObjParam(currentObjectgrups, 0, -1);
                                  int lb = _activeDocument2D.ksGetViewNumber(currentObjectgrups);
                                   currentObjectgrups = iteratorgrups.ksMoveIterator("N");
                                   } while (_activeDocument2D.ksExistObj(currentObjectgrups) != 0);
                         }
                 iteratorgrups.ksDeleteIterator();
         }
}

Еще сам контур создается RECTANGLE_OBJ.  :shu:

GerontDevICS

Так и не понял, как это делать, выкрутился, взяв габариты временной группы(объектом границе является прямоугольник) :  :shu:
Цитировать
int bnd;
bnd = _activeDocument2D.ksDuplicateBoundaries(currentObject);
if (bnd != 0 && _activeDocument2D.ksExistGroupObj(bnd) != 0)
{
Kompas6API5.RectParam RectP =  (Kompas6API5.RectParam)_kompasObject.GetParamStruct((short)Kompas6Constants.StructType2DEnum.ko_RectParam);
  if (_activeDocument2D.ksGetObjGabaritRect(bnd, RectP) == 1)
   {
     Kompas6API5.MathPointParam p1 = (Kompas6API5.MathPointParam)RectP.GetpBot();
     Kompas6API5.MathPointParam p2 = (Kompas6API5.MathPointParam)RectP.GetpTop();
     double x = p1.x;
     double y = p1.y;
     double w = p2.x - p1.x;
     double h = p2.y - p1.y;
    }
}