SectionView => Normal

Автор Тема: SectionView => Normal  (Прочитано 1871 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
SectionView => Normal
« : 13-02-2019, 10:49:20 »
как определить Normal для ViewSection?

Насколько я понимаю, если на плане делаем горизонтальный, либо вертикальный разрез , то у него Normal будет XYZ.BasisX , либо XYZ.BasisY  (но если сделать произвольный по диагонали разрез - какой у него тогда будет Normal ?)

Пробовал как то так:
var View_Normal = doc.ActiveView.ViewDirection.Normalize()
но что то не то получается

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: SectionView => Normal
« Ответ #1 : 13-02-2019, 11:16:53 »


ViewDirection - вектор, который показывает направление вашего взгляда на модель на текущем виде. Но ИЗ монитора на НАС
UpDirection - вектор, показывающий направление вверх в модели. По идее везде должен быть одинаков
RightDirection - направление вправо относительно вида

Вот смотрите план с разрезом, свойства которого на первом скриншоте:



Разрез сделан горизонтально на плане и смотрю я "снизу вверх" относительно плана. Т.е. направление направо - это вдоль оси Х (как видим значение RightDirection == (1, 0, 0)). При этом мой взгляд на разрезе будет направлен вдоль оси Y. А так как значение ViewDirection показывает направление ИЗ монитора на НАС, то и значение ViewDirection == (0, -1, 0)

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: SectionView => Normal
« Ответ #2 : 13-02-2019, 11:31:16 »
ViewDirection всегда направлен в сторону пользователя, как указал Александр. CropBox.Transform.BasisZ - куда указывает разрез, в данном случае, они всегда в противоположных направлениях.

У разрезов есть ограничения, направление либо произвольное в плоскости X0Y, либо XYZ.BasisZ, либо -1*XYZ.BasisZ

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: SectionView => Normal
« Ответ #3 : 13-02-2019, 11:34:10 »
ViewDirection - вектор, который показывает направление вашего взгляда на модель на текущем виде. Но ИЗ монитора на НАС
Это понимание мне и было нужно
Соответственно, на разрезе вектор от нас это
 var View_Normal = doc.ActiveView.ViewDirection.Negate() ! )

направление либо произвольное в плоскости X0Y
здесь имеется ввиду (выделенное жирным) :
Насколько я понимаю, если на плане делаем горизонтальный, либо вертикальный разрез , то у него Normal будет XYZ.BasisX , либо XYZ.BasisY  (но если сделать произвольный по диагонали разрез - какой у него тогда будет Normal ?)