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

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

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

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

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

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

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

штриховка

Автор Drey, 14.12.05, 18:36:38

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

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

Drey

Допустим рисую кривую nurbs, и мне надо заштриховать область, ограниченную ей и еще несколькими прямыми. Как не перерисовывая опять эту кривую между ksHatch и ksEndObj это сделать? Т.е. как указать штриховке что один из примитивов задается reference?

333

Попробовать использовать ksHatch
там можно передать границу штриховки см pBoundaries
Только возможно нужно будет сделать копию с кривой

333

в автоматизации
ksDocument2D::ksHatchByParam

Drey

Спасибо большое! Научился. Всего то:

   ksHatchParam hpar = (ksHatchParam) kompas.GetParamStruct(ko_HatchParam);
   hpar.Init();
   hpar.SetBoundaries(doc.ksMakeEncloseContours(0, 0.0, points[1][17]-1.0));
   hpar.SetStyle(0);
   hpar.SetAng(45.0);
   hpar.SetStep(3.0);
   hpar.SetWidth(1.0);
   hpar.SetX(nps[0][0]);
   hpar.SetY(nps[1][0]);
   doc.ksHatchByParam(hpar);

Дмитрий22

Добрый день!
Все мы знаем как пользоваться командой штриховка:
doc.ksHatch(0, 45, 2, 0, 0, 0);
doc.ksCircle(30, 30, 20, 1);
doc.ksCircle(30, 30, 10, 1);
doc.ksEndObj();
А если усложнить задачу:
Известна только точка на чертеже с коорд. X , Y  и то что вокруг нее гарантировано существует замкнутый контур.
Вопрос: как построить штриховку из точки, имея эти данные.
Задача сводится к поиску замкнутого контура вокруг точки или есть другой способ? Как, интересно, Компас решает эту задачу?



p3452

Цитата: Дмитрий22 от 18.07.22, 16:26:21Вопрос: как построить штриховку из точки, имея эти данные.
Что значит "штриховку из точки"?

Можно заштриховать Контур внутри, которого находится Точка.

Дмитрий22

Цитата: p3452 от 18.07.22, 17:47:19Что значит "штриховку из точки"?

Можно заштриховать Контур внутри, которого находится Точка.
именно так,
Осталось найти объекты, которые образуют замкнутый контур вокруг точки. Объектов много на чертеже.

Вират Лакх

#7
ksFindObj - Найти ближайший к заданной точке объект вида
ksMakeEncloseContours - Получить указатель на группу объектов, охватывающих заданную точку
ksMakeEncloseContoursEx - Получить указатель на группу объектов, охватывающих заданную точку
ksIsPointInsideContour - Проверить положение точки относительно кривой
+ Благодарностей: 1

Дмитрий22

Добрый!
Сразу не докопал, сейчас разобрался.
ksMakeEncloseContours(0, point.X, point.Y)  -  вот функция которую я искал!
всего лишь по координатам 1 точки создает контур вокруг этой точки.
Дальше все просто,
перебираем все контура смотрим их координаты:
foreach (IContour LS in newDrawingContainer.DrawingContours)никакие ksFindObj и ksIsPointInsideContour не нужны.
Похоже Компас сам пользуется ksMakeEncloseContours, когда строит штриховку.