Probar si un objeto cabrá en un espacio utilizando la realidad mixta
Puede usar el control Cámara de medición para determinar si un objeto de un tamaño conocido cabe en un espacio particular. En este artículo, crearemos una aplicación de lienzo para hacer precisamente eso.
Sugerencia
Los controles mixed reality (MR) funcionan mejor en entornos bien iluminados con superficies de textura plana. El seguimiento es mejor en dispositivos habilitados para LIDAR.
Agregar campos de entrada de dimensiones mínimas a una aplicación de lienzo
En primer lugar, creaaremos una aplicación de lienzo en blanco. Luego agregaremos una forma de que el usuario introduzca las dimensiones mínimas de la prueba (es decir, el espacio más pequeño que contendrá el objeto que queremos que quepa).
Seleccione la pestaña Insertar e inserte tres controles Etiqueta de texto en la pantalla.
Cambie la propiedad Text de las etiquetas a Minimum Width, Minimum Depth, y Minimum Height respectivamente.
Seleccione la pestaña Insertar, inserte tres controles Entrada de texto y colóquelos a la derecha de las tres etiquetas.
Cambie el nombre de los controles Entrada de texto a minWidth, minDepth, y minHeight, respectivamente.
Seleccione los tres controles Entrada de texto. Cambie la propiedad Format del grupo a Número y establezca la propiedad Default en 1,0.
Agregar y vincular el control Cámara de medición
A continuación, agregaremos el control Cámara de medición para permitir al usuario medir un espacio tridimensional. Vincularemos las medidas a una tabla de datos para su uso posterior.
Seleccione la pestaña Insertar y expanda Medios.
Seleccione Cámara de medición para colocar el control en la pantalla de la aplicación. Arrastre el control cerca de la parte inferior de la pantalla.
Cambie las propiedades del control como se indica a continuación:
Nombre de la propiedad Valor Donde Unit of measurement Pies o metros Seleccionar en la pestaña Propiedades Measurement type Volumen Seleccionar en la pestaña Propiedades Box draw Activado Seleccionar en la pestaña Propiedades Items Tabla({label:"Test Volume"}) Introducir en la pestaña Avanzadas ItemsLabels etiqueta Introducir en la pestaña Avanzadas OnMixedRealitySelect Set(testVolume, LookUp(MeasureInMR1.Measurements, Label = "Test Volume")); Introducir en la pestaña Avanzadas
Las propiedades Items, ItemsLabels y OnMixedRealitySelect del control Cámara de medición deben parecerse a los ejemplos siguientes cuando acabe:
La fórmula de Items captura las dimensiones del espacio medido en una tabla de datos denominada "Test Volume". La fórmula de OnMixedRealitySelect establece una variable denominada "testVolume" en los valores capturados en la tabla "Test Volume".
Mostrar los resultados
Finalmente, agregaremos etiquetas de texto para mostrar las medidas que se tomaron y el resultado de la prueba (es decir, si el objeto cabe en el espacio medido).
Seleccione la pestaña Insertar e inserte cuatro controles Etiqueta de texto en la pantalla.
Cambie la propiedad Text de los controles de etiqueta de la siguiente manera. (Sugerencia: copie cada fórmula y péguela en la barra de fórmulas o en la pestaña de propiedades Avanzadas, lo que prefiera).
Primera etiqueta:
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"))
Esta fórmula establece el texto de la etiqueta según si la prueba tuvo éxito o no, en función de las dimensiones mínimas necesarias para sostener el objeto que queremos ajustar. Si la prueba no se ejecutó, ya sea porque no se capturaron mediciones o porque ocurrió un error, el texto de la etiqueta lo refleja.
Segunda etiqueta:
Concatenate("Bounding Width: ", Text(testVolume.BoundingWidth))
Esta fórmula establece el texto de la etiqueta en "Bounding Width:" seguido de la dimensión del ancho del espacio medido.
Tercera etiqueta:
Concatenate("Bounding Depth: ", Text(testVolume.BoundingDepth))
Esta fórmula establece el texto de la etiqueta en "Bounding Depth:" seguido de la dimensión de la profundidad del espacio medido.
Cuarta etiqueta:
Concatenate("Bounding Height: ", Text(testVolume.Height))
Esta fórmula establece el texto de la etiqueta en "Bounding Height:" seguido de la dimensión de la altura del espacio medido.
La pantalla de la aplicación ahora debería tener este aspecto:
Probar la aplicación
Seleccione el botón de vista previa para ejecutar la aplicación en modo de vista previa. Seleccione Measuring camera para rellenar las etiquetas con datos. Para verificar que los enlaces de etiquetas funcionan, ingrese nuevos valores en los campos de text input.
Los valores para Bounding Width y Bounding Depth se puede cambiar al realizar la prueba.
Guarde y publique su aplicación. Ábrala en un dispositivo habilitado para realidad mixta para probar si un objeto con las dimensiones especificadas encajará dentro de los límites de cualquier medida capturada.
Filtrado de un origen de datos
La aplicación que creamos prueba un único conjunto de dimensiones que el usuario especifica cuando se ejecuta la aplicación. Sin embargo, puede ampliarlo para probarlo con cualquier origen de datos aplicando la fórmula como un predicado Filtrar.
Por ejemplo, digamos que nuestra aplicación contiene una referencia a una tabla de Dataverse con el nombre Productos que incluye tres columnas: Ancho, Profundidad, y Altura (correspondientes a las dimensiones de cada producto). Para filtrar la colección para mostrar solo aquellas medidas que encajarían dentro de un volumen medido, podemos aplicar la siguiente fórmula.
If(IsBlankOrError(testVolume), Products,
Filter(Products, testVolume.Height >= Height &&
((testVolume.BoundingWidth >= Width && testVolume.BoundingDepth >= Depth) ||
(testVolume.BoundingWidth >= Depth && testVolume.BoundingDepth >= Width))))
Consulte también
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).