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

ADN Club => AutoCAD .NET API => Тема начата: RevitTormentor от 01-10-2017, 21:25:34

Название: Пересечение линии и размера
Отправлено: RevitTormentor от 01-10-2017, 21:25:34
Доброго вечера
Вот такая штука не работает с пересечением линии с размерами.
Код - C# [Выбрать]
  1.  bool isIntersect = false;
  2.  
  3.                                     using (var pts = new Point3dCollection())
  4.                                     {
  5.                                         //poly.IntersectWith(blRef, Intersect.ExtendBoth, pts, IntPtr.Zero, IntPtr.Zero);
  6.                                        
  7.                                         //Решилось, добавлением параметра Plane в метод IntersectWith
  8.  
  9.                                         if (_poly != null)
  10.                                         {
  11.                                             Plane plane = _poly.GetPlane();
  12.                                             _poly.IntersectWith(dim, Intersect.OnBothOperands, plane, pts, IntPtr.Zero, IntPtr.Zero);
  13.  
  14.                                             isIntersect = pts.Count > 0;
  15.  
  16.                                             ed.WriteMessage("\nisIntersect {0}", isIntersect);
  17.                                         }
  18.                                     }
  19.  
  20.                                     if (isIntersect)
  21.                                     {
  22.                                         ...
  23.                                     }
  24.  

dim - это dim = obj as RotatedDimension;

Intersect.OnBothOperands все перепробовал
Чего не так?

Autocad 2017 64 rus
Название: Re: Пересечение линии и размера
Отправлено: avc от 01-10-2017, 21:28:14
Я бы взорвал размер и искал пересечения с нужными запчастями
Название: Re: Пересечение линии и размера
Отправлено: Александр Ривилис от 01-10-2017, 23:08:11
Intersect.OnBothOperands все перепробовал
Чего не так?
И не будет. Далеко не со всеми примитивами AutoCAD работает метод IntersectWith. В частности не работает с текстами, размерами, вставками блоков.
avc прав. Единственный способ это искать пересечение с расчленённым размером.
Название: Re: Пересечение линии и размера
Отправлено: RevitTormentor от 02-10-2017, 04:21:48
А потом размер склеивать обратно?
Название: Re: Пересечение линии и размера
Отправлено: Александр Ривилис от 02-10-2017, 05:41:46
А потом размер склеивать обратно?
Почитай чем отличается метод Entity.Explode от команды _EXPLODE.