Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 16-03-2016, 18:33:04

Название: Как получить длину объекта Spline
Отправлено: Алексей (IdeaSoft) от 16-03-2016, 18:33:04
Нужно получить длину объекта Spline
Стандартной функции пока не нашел. Есть ли она в API?
Или нужно приложить голову для решения этой задачи.
Название: Re: Как получить длину объекта Spline
Отправлено: Александр Пекшев aka Modis от 16-03-2016, 18:41:16
Код - C# [Выбрать]
  1. var length = spline.GetDistanceAtParameter(spline.EndParam) - spline.GetDistanceAtParameter(spline.StartParam);
Название: Re: Как получить длину объекта Spline
Отправлено: Алексей (IdeaSoft) от 16-03-2016, 19:02:55
Попробовал этот вариант длина возвращается 0.
EndParam  и StartParam что это за аргументы?
Название: Re: Как получить длину объекта Spline
Отправлено: Александр Пекшев aka Modis от 16-03-2016, 19:04:28
Попробовал этот вариант длина возвращается 0.
EndParam  и StartParam что это за аргументы?
Не может быть такого)) Я уже много лет его использую - всегда результативно
Название: Re: Как получить длину объекта Spline
Отправлено: Александр Ривилис от 16-03-2016, 19:04:47
Алексей (IdeaSoft)
Код Александр Пекшев aka Modis годится не только для сплайнов, но и для всех примитивов, унаследованных от Curve. Т.е. отрезки - Line, дуги - Arc, полилинии - Polyline, Polyline2d, Polyline3d, сплайн - Spline и т.д. и т.п.
Название: Re: Как получить длину объекта Spline
Отправлено: Александр Ривилис от 16-03-2016, 19:05:31
EndParam  и StartParam что это за аргументы?
Это свойства в классе Curve.
Название: Re: Как получить длину объекта Spline
Отправлено: Александр Пекшев aka Modis от 16-03-2016, 19:05:52
EndParam  и StartParam что это за аргументы?
http://adn-cis.org/forum/index.php?topic=3328.msg14217#msg14217
Название: Re: Как получить длину объекта Spline
Отправлено: Александр Ривилис от 16-03-2016, 19:17:18
Кстати, вот готовый пример кода:
http://adn-cis.org/forum/index.php?topic=1043.msg4886#msg4886
В нём я пользуюсь тем, что для всех стандартных примитивов, унаследованных от Curve, значение GetDistanceAtParameter(curve.StartParam) равно 0.0
Название: Re: Как получить длину объекта Spline
Отправлено: Алексей (IdeaSoft) от 16-03-2016, 19:36:47
Не может быть такого)) Я уже много лет его использую - всегда результативно
Может я что-то не так делаю у меня получается.

spl.EndParam = 3.348
spl.StartParam = 0

Использую API acad 2012
Название: Re: Как получить длину объекта Spline
Отправлено: Алексей (IdeaSoft) от 16-03-2016, 19:56:21
Спасибо большое. Все получилось!
Это просто в коде у меня локальная переменная length
совпала с глобальной переменной от какого-то Me.Length, которая была =0
я поменял на dim L as Double = ... и все OK!