e1337e4016
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
70 lines
3.3 KiB
Markdown
70 lines
3.3 KiB
Markdown
---
|
|
title: "Nurbs - Создать NURBS"
|
|
type: guide
|
|
api: [api7]
|
|
tags: [guide, api7, nurbs]
|
|
sources:
|
|
- nurbs.html
|
|
---
|
|
|
|
*API экспортных функций > Функции работы с графическим документом > Создание графических объектов > Кривые Безье, Nurbs, ломаные *
|
|
|
|
|
|
## Nurbs - Создать NURBS
|
|
|
|
Пример...
|
|
Аналог данной функции при использовании Automation - метод ksDocument2D::ksNurbs.
|
|
Синтаксис:
|
|
```
|
|
int Nurbs (unsigned char degree,
|
|
unsigned char close,
|
|
unsigned int style);
|
|
Входные параметры:
|
|
degree - порядок NURBS (степень полинома + 1), от 3 до 10,
|
|
close - признак замыкания сплайна: FALSE - незамкнутый, TRUE - замкнутый,
|
|
style стиль линии.
|
|
Системные стили линий...
|
|
Возвращаемое значение:
|
|
1 - в случае успешного завершения,
|
|
0 - в случае неудачи.
|
|
```
|
|
Примечание:
|
|
1. Узлы кривой определяются следующими далее функциями Point или NurbsPoint. Описание кривой завершается функцией EndObj, возвращающей указатель на созданную кривую.
|
|
2. Объект создается в текущем слое текущего вида.
|
|
3. В качестве стиля линии можно задавать номер предопределенного (системного LStyles) или пользовательского стиля линии.
|
|
|
|
|
|
## Кривые Безье, Nurbs, ломаные
|
|
|
|
Функции данного радела обеспечивают построение NURBS и кривых Безье.
|
|
Bezier - Создать кривую Безье
|
|
_Bezier - Создать кривую Безье по массиву точек (узлов кривой Безье)
|
|
BezierPoint - Построить узел кривой Безье
|
|
ksAddPowerForm - Ввести параметр для построения NURBS кусочно-степенным способом
|
|
ksCreatePowerArc - Построить дугу NURBS кусочно-степенным способом и присоединить ее к существующей кривой NURBS
|
|
ksNurbsKnot - Создать узел NURBS-кривой
|
|
ksPolyline - Создать ломаную
|
|
_ksPolyline - Создать ломаную линию
|
|
ksPolylineEx - Создать ломаную линию
|
|
Nurbs - Создать NURBS
|
|
NurbsForConicCurve - Создать NURBS по характеристическим точкам конического сечения
|
|
NurbsPoint - Создать узел NURBS
|
|
TanLineAngCurve - Функция расчета касательной к кривой
|
|
|
|
|
|
## Nurbs, NurbsPoint - пример использования
|
|
|
|
void Nurbs_Example (void) {
|
|
static NurbsPointParam par[]={{ 0,0,1}, {20,20,1}, {50,10,1}, {70,20,1}, {100,0,1}, {50,-50,1}};
|
|
//построить Nurbs-кривую
|
|
if (Nurbs(3, 0, 1))
|
|
for (int i=0; i<6; i) {
|
|
NurbsPoint(&par[i]);
|
|
}
|
|
reference p = EndObj();
|
|
LightObj(p, 1);
|
|
Message(NURBS);
|
|
LightObj(p, 0);
|
|
}
|
|
}; /* Nurbs_Example */
|