Добавление процесса измерения углов

Этот процесс является интерактивным и позволяет добавить в модель новый угловой размер 3D, выбрав три точки.

Обобщенный тип процесса (TypeScript):

export type AddAngleDimensionProcess = {
    name: "AddAngleDimension"
    surfaceInterpretation?: boolean
    snap?: SnapOptions
    options: C3DViewDimensionOptions
    events: {
        onNew?: () => string
        onCreate?: (uuid: string) => C3DUserData
        onValue?: (value: number) => string
    }
}

Опция snap позволяет переместить точки, указанные курсором мыши пользователя, в ближайшие вершины треугольника. Подробности в разделе Опция Snap. Эта опция отключена по умолчанию.

Режим поверхности

Режим доступен, если для свойства surfaceInterpretation установлено значение true. В этом режиме размеры строятся по 2 точкам, заданным пользователем. Для каждой точки определяется система координат поверхности, на которой она лежит. Если системы координат не параллельны друг другу, то добавляется новый размер угла, в противном случае добавление отменяется.

Параметры

Этот процесс использует те же параметры, что и соответствующий объект PMI. Они описаны здесь.

Обратные вызовы

Доступные события.

  1. onNew() генерируется перед созданием нового измерения. Возвращает строку, которая используется в качестве текста метки размера вместо значения по умолчанию.

  2. onCreate(uuid) генерируется после создания нового измерения. Он получает UUID нового объекта и позволяет устанавливать пользовательские свойства измерения, возвращая их как объект.

  3. onValue(value) генерируется при вычислении угла в градусах между двумя векторами, получает вычисленное значение и возвращает строку текста метки размера.

Примечание

Текст метки по умолчанию при отсутствии options.text, events.New и events.onValue представляет собой просто цифру рассчитанного угла в градусах между двумя векторами.

Запуск

Чтобы запустить процесс, вам следует вызвать команду RunProcessCommand с именем процесса AddAngleDimension.

Пример запуска процесса (TypeScript):

view.runCommand({
    name: "RunProcessCommand",
    process: {
        name: "AddAngleDimension", 
        options: {},
        events: {
            onValue: (value: number) => `${value.toFixed(2)}°`
        }
    }
})

Обновление

Обновление позволяет изменить любые опции, которые устанавливаются при запуске процесса.

Обобщенный тип команды обновления (TypeScript):

type UpdateProcess = {
    name: "UpdateProcessCommand"
    options: {
        name: "AddAngleDimension"
        text?: string
        underlineText?: boolean
        font?: {
            family?: string,
            size?: number,
        }
        colors?: {
            text?: C3DViewRGB
            textBkg?: C3DViewRGB
            lines?: C3DViewRGB
        }
    }
}

Пример команды для обновления размера шрифта углового размера (TypeScript):

view.runCommand({
    name: "UpdateProcessCommand",
    options: {
        name: "AddAngleDimension",
        font: {
            size: 20
        }
    }
})