Как изменить положение среза?HelixToolkit.Wpf - PullRequest
0 голосов
/ 01 февраля 2019

Я успешно вырезал модель STL, но не могу изменить положение плоскости разреза.Структура: Окно просмотра -> CuttingPlaneGroup -> CuttingPlanes -> Plane3D.Модель STL находится в CuttingPlaneGroup.

Кто-нибудь знает, как динамически изменить положение плоскости резания с помощью ползунка?Если я изменю положение Плоскости, ничего не произойдет.

var nj = sender as Slider;
cutPlane.Position.Offset(0, nj.Value, 0);

Кажется, что после того, как вы отрежете STL, вы больше не сможете его изменить.Нужно ли удалять STL и перезагружать его?Это было бы резко.Модель STL не заморожена и не запечатана.

РЕДАКТИРОВАТЬ:

В исходном коде, который я обнаружил, если вы измените свойство «Operation» или «IsEnabled», он вызываетмодель для обновления.Изменение нормального режима и операции выполняется почти в 2 раза быстрее, чем изменение IsEnabled.Тем не менее, обновление занимает 400-500 мс.

EDIT2:

Я взял исходный код и выставил private void ApplyCuttingGeometries(bool forceUpdate = false) на public void.Результат аналогичен изменению операции (~ 400 мс).

Код теперь выглядит следующим образом:

var nj = sender as Slider;
cp.Position = new Point3D(0, nj.Value, 0); // cp = Plane3D
ctp.ApplyCuttingGeometries(true); //ctp = CuttingPlaneGroup

Есть ли лучшее решение?

1 Ответ

0 голосов
/ 02 февраля 2019

Плоскость среза в версии wpf в основном создает новую модель среза каждый раз.

Вам не нужно использовать группу срезов.Вы можете посмотреть исходный код группы разрезов и реализовать обновление модели самостоятельно.

...