使用混合现实测试对象是否适合空间

可以使用 度量相机 控件确定已知大小的对象是否适合特定空间。 在本文中,我们将创建一个画布应用来执行此操作。

提示

混合现实 (MR) 控件在光线充足、表面平坦的环境中效果最佳。 在支持 LIDAR 的设备上进行跟踪更好。

将最小维度输入字段添加到画布应用中

首先,我们将创建一个空白画布应用。 然后,我们将为用户添加一种方法来输入测试所按照的最小维度(即,容纳我们想要放入的对象的最小空间)。

  1. 创建空白画布应用

  2. 选择插入选项卡。在屏幕上插入并放置三个 文本标签 控件。

  3. 将标签的 Text 属性分别更改为最小宽度最小深度最小高度

    Microsoft Power Apps Studio 中正在构建的文本标签的屏幕截图,并排显示了其属性。

  4. 选择插入选项卡。插入三个 文本输入 控件,将它们放在三个标签的右边。

  5. 将 文本输入 控件分别重命名为 minWidthminDepthminHeight

    Microsoft Power Apps Studio 中正在构建的 文本输入 控件的屏幕截图,并排显示了其属性。

  6. 选择所有三个 文本输入 控件。 将组的 Format 属性更改为数字,将 Default 属性设置为 1.0

    Microsoft Power Apps Studio 中正在构建的三个 文本输入 控件的屏幕截图,并排显示了选定组的属性。

添加并绑定 度量相机 控件

接下来,我们将添加 度量相机 控件,以允许用户度量三维空间。 我们将度量绑定到数据表供以后使用。

  1. 选择插入选项卡,展开媒体

  2. 选择 度量相机 将此控件放在应用屏幕中。 将此控件拖到屏幕底部附近。

  3. 按以下方式更改控件的属性:

    属性名称 位置
    Unit of measurement Feet 或 Meters 属性选项卡上进行选择
    Measurement type Volume 属性选项卡上进行选择
    Box draw On 属性选项卡上进行选择
    Items Table({label:"Test Volume"}) 高级选项卡上输入
    ItemsLabels "标签" 高级选项卡上输入
    OnMixedRealitySelect Set(testVolume, LookUp(MeasureInMR1.Measurements, Label = "Test Volume")); 高级选项卡上输入

完成后,度量相机 控件的 ItemsItemsLabelsOnMixedRealitySelect 属性应类似于以下示例:

Microsoft Power Apps Studio 中正在构建的 Measure in 3D 控件的屏幕截图,并排显示的是其 Items 和 ItemsLabels 属性。

Microsoft Power Apps Studio 中正在构建的 Measure in 3D 控件的屏幕截图,并排显示了其 OnMixedRealitySelect 属性。

Items 中的公式在名为“测试体积”的数据表中捕获测量空间的维度。 OnMixedRealitySelect 中的公式将名为“testVolume”的变量设置为“测试体积”表中捕获的值。

显示结果

最后,我们将添加文本标签以显示进行的度量和测试结果(即对象是否适合度量的空间)。

  1. 选择插入选项卡。在屏幕上插入并放置四个 文本标签 控件。

  2. 更改 label 控件的 Text 属性,如下所示。 (提示:复制每个公式并将其粘贴到编辑栏中或高级属性选项卡上,具体取决于您喜欢粘贴到哪个。)

    • 第一个标签:

          If(IsBlankOrError(testVolume), "No Measurement captured",
              If(testVolume.Height >= Value(minHeight.Text) &&
              ((testVolume.BoundingWidth >= Value(minWidth.Text) && testVolume.BoundingDepth >= Value(minDepth.Text)) ||
              (testVolume.BoundingWidth >= Value(minDepth.Text) && testVolume.BoundingDepth >= Value(minWidth.Text))),
              "Fit Test Succeeded", "Fit Test Failed"))
      

      此公式根据测试是成功还是失败以及保存我们想要调整的对象所需的最小维度来设置标签文本。 如果因为未捕获度量或出现错误而未运行测试,则标签文本会反映出这一点。

      Microsoft Power Apps Studio 中正在构建的 文本标签 控件的屏幕截图,一起显示的还有编辑栏和高级属性选项卡中的其 Text 属性。

    • 第二个标签:

          Concatenate("Bounding Width: ", Text(testVolume.BoundingWidth))
      

      此公式将标签文本设置为“边界宽度:”,后跟测量空间的宽度尺寸。

    • 第三个标签:

          Concatenate("Bounding Depth: ", Text(testVolume.BoundingDepth))
      

      此公式将标签文本设置为“边界深度:”,后跟测量空间的深度尺寸。

    • 第四个标签:

          Concatenate("Bounding Height: ", Text(testVolume.Height))
      

      此公式将标签文本设置为“边界高度:”,后跟测量空间的高度尺寸。

应用屏幕现在应如下所示:

最终应用屏幕的屏幕截图。

测试应用

选择“预览”按钮以在预览模式下运行应用。 选择度量相机使用数据填充标签。 若要验证标签绑定是否正常工作,请在文本输入字段中输入新值。

输入新的最小维度后预览模式下的应用屏幕截图。

在执行测试时,Bounding WidthBounding Depth 的值可以互换。

保存并发布您的应用。 在支持混合现实的设备上打开它,以测试具有指定维度的对象是否适合捕获的任何度量值的范围。

筛选数据源

我们创建的应用测试用户在应用运行时指定的一组维度。 但是,您可以通过将公式应用为筛选器谓词,对其进行扩展以对任何数据源进行测试。

例如,假设我们的应用包含对名为产品的 Dataverse 表的引用,该表包含三个列: 宽度深度高度(对应于每个产品的维度)。 要将集合筛选为仅显示适合度量体积的度量值,我们可以应用以下公式。

    If(IsBlankOrError(testVolume), Products,
    Filter(Products, testVolume.Height >= Height &&
        ((testVolume.BoundingWidth >= Width && testVolume.BoundingDepth >= Depth) ||
        (testVolume.BoundingWidth >= Depth && testVolume.BoundingDepth >= Width))))

另请参见

备注

您能告诉我们您的文档语言首选项吗? 进行简短调查。(请注意,此调查是英文版调查)

此调查大约需要七分钟。 不会收集个人数据(隐私声明)。