Test om et objekt får plass i et område ved hjelp av blandet virkelighet
Du kan bruke kontrollen Målekamera til å fastsette om et objekt av en kjent størrelse får plass i et bestemt område. I denne artikkelen skal vi opprette en lerretsapp som gjør nettopp dette.
Tips
Kontrollene for blandet virkelighet fungerer best i godt belyste miljøer med overflater med flat tekstur. Sporing er bedre på LIDAR-aktiverte enheter.
Legg til inndatafelter for minimumsdimensjoner i en lerretsapp
Først skal vi opprette en tom lerretsapp. Vi skal deretter gi brukeren en fremgangsmåte for å angi minimumsdimensjonene å teste mot (det vil si det minste området objektet får plass i).
Velg Sett inn-fanen. Sett inn og plasser tre Tekstetikett-kontroller på skjermen.
Endre egenskapen Text for etikettene til henholdsvis Minimum Width, Minimum Depth og Minimum Height.
Velg Sett inn-fanen. Sett inn tre Tekstinndata-kontroller, og plasser dem til høyre for de tre etikettene.
Endre navnet på kontrollene for tekstinndata til henholdsvis minWidth, minDepth og minHeight.
Velg alle tre kontrollene for tekstinndata. Endre egenskapen Format for gruppen til Tall, og angi 1.0 for egenskapen Default.
Legg til og bind kontrollen Målekamera
Vi skal nå legge til kontrollen Målekamera, slik at brukeren kan måle et tredimensjonalt område. Vi skal binde målingene til en datatabell for senere bruk.
Velg Sett inn-fanen, og utvid Medier.
Velg Målekamera for å plassere kontrollen på appskjermen. Dra kontrollen nær bunnen av skjermen.
Endre egenskapene for bildekontrollen som følger:
Egenskapsnavn Verdi Hvor Unit of measurement Fot eller meter Velg i Egenskaper-fanen Measurement type Volume Velg i Egenskaper-fanen Box draw On Velg i Egenskaper-fanen Items Table({label:"Test Volume"}) Angi i Avansert-fanen ItemsLabels "etikett" Angi i Avansert-fanen OnMixedRealitySelect Set(testVolume, LookUp(MeasureInMR1.Measurements, Label = "Test Volume")); Angi i Avansert-fanen
Egenskapene Items, ItemsLabels og OnMixedRealitySelect for kontrollen Målekamera skal se ut som i følgende eksempler når du er ferdig:
Formelen i Items registrerer dimensjonene til det målte området i en datatabell kalt «Test Volume». Formelen i OnMixedRealitySelect angir verdiene som er registrert i tabellen «Test Volume», for en variabel kalt «testVolume».
Vis resultatene
Vi skal til slutt legge til tekstetiketter for å vise målingene som ble tatt, og resultatet av testen (det vil si hvorvidt objektet får plass i det målte området).
Velg Sett inn-fanen. Sett inn og plasser fire Tekstetikett-kontroller på skjermen.
Endre egenskapen Text for etikettkontrollene som følger. (Tips: Kopier hver formel, og lim den inn på formellinjen eller i egenskapsfanen Avansert, alt etter hva du foretrekker.)
Første etikett:
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"))
Denne formelen angir etiketteksten i henhold til hvorvidt testen var vellykket eller mislykket, basert på minimumsdimensjonene som kreves for å gi plass til objektet vi vil plassere. Hvis testen ikke ble kjørt, enten fordi ingen målinger ble registrert eller det oppstod en feil, gjenspeiler etiketteksten dette.
Andre etikett:
Concatenate("Bounding Width: ", Text(testVolume.BoundingWidth))
Denne formelen angir «Bounding Width:» for etiketteksten etterfulgt av breddedimensjonen til det målte området.
Tredje etikett:
Concatenate("Bounding Depth: ", Text(testVolume.BoundingDepth))
Denne formelen angir «Bounding Depth:» for etiketteksten etterfulgt av dybdedimensjonen til det målte området.
Fjerde etikett:
Concatenate("Bounding Height: ", Text(testVolume.Height))
Denne formelen angir «Bounding Height:» for etiketteksten etterfulgt av høydedimensjonen til det målte området.
Appskjermen skal nå se slik ut:
Testing av appen
Velg forhåndsvisningsknappen for å kjøre appen i forhåndsvisningsmodus. Velg Målekamera for å fylle ut etikettene med data. Du kan kontrollere at etikettbindingene fungerer, ved å angi nye verdier i tekstinndatafeltene.
Verdiene for Bounding Width og Bounding Depth kan byttes når du utfører testen.
Lagre og publiser appen. Åpne den på en enhet med blandet virkelighet for å teste om et objekt med de angitte dimensjonene får plass innenfor grensene for alle registrerte mål.
Filtrer en datakilde
Appen vi opprettet, tester ett sett med dimensjoner som angis av brukeren når appen kjører. Du kan imidlertid utvide den slik at den tester mot enhver datakilde, ved å bruke formelen som et Filter-predikat.
La oss for eksempel si at appen vår inneholder en referanse til en Dataverse-tabell kalt Produkter som inneholder tre kolonner: Bredde, Dybde og Høyde (tilsvarende dimensjonene for hvert produkt). Vi kan filtrere samlingen slik at den bare viser målingene som hadde fått plass i et målt volum, ved å bruke følgende formel.
If(IsBlankOrError(testVolume), Products,
Filter(Products, testVolume.Height >= Height &&
((testVolume.BoundingWidth >= Width && testVolume.BoundingDepth >= Depth) ||
(testVolume.BoundingWidth >= Depth && testVolume.BoundingDepth >= Width))))
Se også
Obs!
Kan du fortelle oss om språkinnstillingene for dokumentasjonen? Ta en kort undersøkelse. (vær oppmerksom på at denne undersøkelsen er på engelsk)
Undersøkelsen tar rundt sju minutter. Det blir ikke samlet inn noen personopplysninger (personvernerklæring).