Я пытался получить линию пересечения для вертикального столбца, сплошной и центральной линии балки, но результат менялся, когда менялся порядок создания этих элементов.
Случай 1: когда я создал 2 вертикалиЗатем в столбцы добавьте балку между ними, я получил правильный результат.
Случай 2: Когда я сначала создал их балку, а затем добавил 2 вертикальных столбца к каждому концу балки, результат был бы смешным:
Порядок соединения по умолчанию (предпочтение отдается столбцам): пересечение не найдено
переключение порядка соединения 1-й раз (предпочтение отдается лучам): пересечение не найдено
изменить порядок соединения 2 раза (столбцы снова имеют предпочтения): правильный результат
Как порядок создания элементов влияет на мой код?как это исправить?
private static double GetIntersectionLength ( Solid solid, Line line )
{
SolidCurveIntersectionOptions opntions = new SolidCurveIntersectionOptions ();
SolidCurveIntersection intersection = solid.IntersectWithCurve ( line, opntions );
for ( int index = 0; index < intersection.SegmentCount; index++ )
{
Curve segment = intersection.GetCurveSegment ( index );
if ( segment.Length > 0 )
return ( segment as Line ).Length;
}
return 0;
}
Ожидаемый результат: intersection.SegmentCount = 1 и получить длину линии отрезка пересечения, но я при отладке intersection.SegmentCount = 0.