Последние сообщения

Последние сообщения

Страницы: [1] 2 3 ... 10
1
AutoCAD .NET API / Re: Инсталлятор для новичков
« Последний ответ от RevitTormentor 18-10-2017, 20:55:31 »
На всякий случай поясняю - если ты решишь оформлять свой плагин в виде Bundle-пакета и использовать его в AutoCAD 2012 или более новой версии, то регистрировать его в реестре нет необходимости.

Т.е. можно bundle пакет и в 2011 поставить, только надо где то в реестре чего то прописать? Или в принципе Bundke пакеты только после >=2012 версии?
2
думает правда долго на тяжелых чертежах(около минуты)...жалко что фильтр не работает с динамическими блоками из-за смены имени на "U..."
Так это потому, что не надо так делать. Не надо использовать SelectAll, если можно просто найти нужное описание блока в таблице блоков и из него получить все вставки блока в чертеже, включая анонимные.
Именно!
bert
Читаем: Как найти все вставки динамического блока
3
думает правда долго на тяжелых чертежах(около минуты)...жалко что фильтр не работает с динамическими блоками из-за смены имени на "U..."
Так это потому, что не надо так делать. Не надо использовать SelectAll, если можно просто найти нужное описание блока в таблице блоков и из него получить все вставки блока в чертеже, включая анонимные.
4
Civil 3D API / Re: Получить геометрию PressurePipe.
« Последний ответ от Дмитрий Загорулькин 18-10-2017, 18:57:41 »
А ведь есть ещё напорные трубы, выровненные по поверхности. Одна труба может состоять из более мелких сегментов, повторяющих линию профиля поверхности. Интересно, какой объект получится при взрыве такой трубы?
А ещё, при взрыве трубы может получиться не одна линия, а несколько - в зависимости от настроек стиля трубы. Надо будет среди них найти ту, которая идёт вдоль трубы...
5
Civil 3D API / Re: Получить геометрию PressurePipe.
« Последний ответ от Дмитрий Загорулькин 18-10-2017, 18:35:10 »
Мда...
Ну на самом деле, Explode - не так уж и плохо. Если объекты-"осколки" обрабатывать в памяти и не добавлять в базу данных чертежа, то не должно быть сильных тормозов.
6
Civil 3D API / Re: Получить геометрию PressurePipe.
« Последний ответ от Andant 18-10-2017, 18:08:07 »
Код - C# [Выбрать]
  1. StartParameter = pipe.GetParameterAtPoint(pipe.StartPoint);
  2. EndParameter = pipe.GetParameterAtPoint(pipe.EndPoint);
  3. MidPoint = pipe.GetPointAtParameter((StartParameter + EndParameter) / 2);
  4.  
0.0
1.0
(0,0,0.5)
7
Да, действительно работает. Значит я неправильно настраивал параметры объекта Options.
Спасибо еще раз!
8
Код - C# [Выбрать]
  1. Options options = new Options
  2. {
  3.     ComputeReferences = true,
  4.     View = _uiApplication.ActiveUIDocument.Document.ActiveView,
  5.     IncludeNonVisibleObjects = true
  6. };
  7. var geometry = grid.get_Geometry(options);
  8. foreach (GeometryObject geometryObject in geometry)
  9. {
  10.     if (geometryObject is Line line)
  11.     {
  12.         if (getVerticals && line.IsVertical() && line.Reference != null)
  13.             if (line.IntersectToByMovingZ(workLine))
  14.                 references.Add(line.Reference);
  15.         if (getHorizontals && line.IsHorizontal() && line.Reference != null)
  16.             if (line.IntersectToByMovingZ(workLine))
  17.                 references.Add(line.Reference);
  18.     }
  19. }
Кусок из кода - все работает и все получается (геометрия получается)
9
Александр, огромное спасибо!

Все работает не совсем так, как вы сказали. Нужно уточнить:
Насколько я могу судить, get_Geometry возвращает null как для просто Grid, так и для MultiSegmentGrid, но у Grid есть свойства IsCurved и Curve, благодаря которым можно получить данные о геометрии.
10
Civil 3D API / Re: Получить геометрию PressurePipe.
« Последний ответ от Дмитрий Загорулькин 18-10-2017, 17:06:45 »
Для безнапорных труб "прокатывал" такой способ: определяем среднюю точку трубы и проверяем, лежит ли она на прямой между начальной точкой и конечной. Среднюю точку определял через параметры кривой. Если они работают, то как-то так:
Код - C# [Выбрать]
  1. StartParameter = pipe.GetParameterAtPoint(pipe.StartPoint);
  2. EndParameter = pipe.GetParameterAtPoint(pipe.EndPoint);
  3. MidPoint = pipe.GetPointAtParameter((StartParameter + EndParameter) / 2);
Страницы: [1] 2 3 ... 10