Событие для рисования разметки

#events #autodesk-forge #markup

#Мероприятия #autodesk-forge #разметка

Вопрос:

Как называется событие, когда мы начинаем рисовать разметку (круг, стрелку, прямоугольник и т.д.) На фигуре в режиме редактирования? И можем ли мы изменить тип разметки в этом событии?

Проблема в том, что когда мы находимся в режиме редактирования и выбрали определенную форму и цвет для рисования разметки, а в промежутке между ними, если мы выбираем любую разметку, инструмент рисования принимает эту форму и цвет для следующей разметки, которую нужно нарисовать, игнорируя тип и цвет разметки, которые мы выбрали ранее. Это нормальное поведение. Почему инструмент рисования использует конфигурацию последней выбранной разметки и переопределяет тип, который мы определяем через — new Autodesk.Просмотр.Расширения.Markups.Core.EditModeCloud(markupExt); Спасибо!

Ответ №1:

Это интересный вопрос. Я считаю, что текущее поведение разметок является разработанным, потому что обычно можно выбирать разметку только в том случае, если они хотят ее перемещать, масштабировать и т. Д. Вот почему в текущей реализации выбор разметки автоматически переходит в режим ее редактирования.

В то же время я понимаю ваше мнение, согласно которому, если я уже активировал определенный режим редактирования, кажется странным, что этот режим редактирования изменится после простого выбора другой разметки.

Позвольте мне обсудить это с командой инженеров, а пока я бы предложил использовать Autodesk.Viewing.Extensions.Markups.Core.EVENT_EDITMODE_CHANGED событие для обнаружения изменения режима редактирования и, при необходимости, сброса режима на тот, который вы хотите.

Комментарии:

1. Большое спасибо за рассмотрение этого запроса. Обязательно изучит предлагаемое событие, чтобы сбросить выбранный режим разметки. Хотя с нетерпением ждем ваших выводов по этой теме. Большое спасибо.

2. Когда мы используем Autodesk.Просмотр. Расширения. Markups.Core.EVENT_EDITMODE_CHANGED чтобы обнаружить изменение и изменить режим редактирования в этом событии, он выдает ошибку стека вызовов в developer.api.autodesk.com/modelderivative/v2/viewers/7 .*/extensions/Markup/Markup.min.js . Пожалуйста, предложите. markupExt.addEventListener(Autodesk.Просмотр. Расширения. Markups.Core.EVENT_EDITMODE_CHANGED, (результат)=>{if(result.target.type !== _self._markupType) { markupExt.changeEditMode(markupDrawType); markupExt.setStyle(this._styleObject); }});

3. Я не смог воспроизвести проблему. Я предполагаю, что _self._markupType оно не обновляется должным образом до нового стиля, который вы хотите использовать перед вызовом markupExt.changeEditMode() , который сразу вызовет тот же обработчик событий, что приведет к бесконечной рекурсии.