Добавление процесса линейного размера
Этот процесс является интерактивным и позволяет добавить в модель новый 3D-линейный размер, выбрав две точки.
Обобщенный тип процесса (TypeScript):
export type AddLinearDimensionProcess = {
name: "AddLinearDimension"
surfaceInterpretation?: boolean
snap?: SnapOptions
direction?: C3DViewPoint
options: C3DViewDimensionOptions
events:{
onNew?: () => string
onCreate?:(uuid: string) => C3DUserData
onStartPoint?: (p: C3DViewPoint) => C3DViewPoint | void
onUpdatePoint?: (p: C3DViewPoint) => C3DViewPoint | void
onEndPoint?: (p: C3DViewPoint) => C3DViewPoint | void
onValue?:(value: number, p1: C3DViewPoint, p2: C3DViewPoint) => string
}
}
Опция snap позволяет переместить точки, указанные курсором мыши пользователя, в ближайшие вершины треугольника. Подробности в разделе Опция Snap. Эта опция отключена по умолчанию.
Опция direction позволяет установить вдоль и параллельно направлению роста размера. Значением этого свойства являются координаты обычной точки, поэтому вы можете указать направление по одной, двум или даже трем основным осям (X, Y, Z). Чтобы указать, направлен ли размер вдоль соответствующей оси, рекомендуем использовать цифры 1 (направление задано) и 0 (направление нет).
Режим поверхности
Режим доступен, если для свойства surfaceInterpretation установлено значение true. В этом режиме размеры строятся по 2 точкам, заданным пользователем. Для каждой точки определяется система координат поверхности, на которой она лежит. Если размещения параллельны друг другу, то добавляется новый линейный размер, в противном случае добавление отменяется.
Параметры
Этот процесс использует те же параметры, что и соответствующий объект PMI. Они описаны здесь.
Обратные вызовы
Доступные события.
onNew() генерируется перед созданием нового измерения. Возвращает строку, которая используется в качестве текста метки размера вместо значения по умолчанию.
onCreate(uuid) генерируется после создания нового измерения. Он получает UUID нового объекта и позволяет устанавливать пользовательские свойства измерения, возвращая их как объект.
onValue(value) генерируется при вычислении длины между двумя выбранными точками. Он получает вычисленное значение и возвращает строку текста метки размера.
onStartPoint(pnt) генерируется, когда пользователь указывает первую точку размера, щелкнув геометрию.
onUpdatePoint(pnt) генерируется, когда пользователь наводит курсор на геометрию. Можно вызвать, только если первая точка уже указана.
onEndPoint(pnt) генерируется, когда пользователь указывает вторую точку измерения, щелкнув геометрию. Можно вызвать, только если первая точка уже указана.
Примечание
Текст метки по умолчанию при отсутствии options.text, events.New и events.onValue представляет собой просто значение рассчитанной длины между двумя выбранными точками.
Добавлено в версии 1.8.0: Добавлены обратные вызовы onStartPoint, onUpdatePoint и onEndPoint.
Запуск
Чтобы запустить процесс, вам следует вызвать команду RunProcessCommand с именем процесса AddLinearDimension.
Пример запуска процесса (TypeScript):
view.runCommand({
name: "RunProcessCommand",
process: {
name: "AddLinearDimension",
options: {},
events: {
onValue: (value: number) => `${value.toFixed(2)} mm`
}
}
})
Обновление
Обновление позволяет изменить любые опции, которые устанавливаются при запуске процесса.
Обобщенный тип команды обновления (TypeScript):
type UpdateProcess = {
name: "UpdateProcessCommand"
options: {
name: "AddLinearDimension"
text?: string
underlineText?: boolean
font?: {
family?: string,
size?: number,
}
colors?: {
text?: C3DViewRGB
textBkg?: C3DViewRGB
lines?: C3DViewRGB
}
}
}
Пример команды для обновления размера шрифта линейного размера (TypeScript):
view.runCommand({
name: "UpdateProcessCommand",
options: {
name: "AddLinearDimension",
font: {
size: 20
}
}
})