Teste, om et objekt kan være i et rum, ved hjælp af mixed reality
Du kan bruge kontrolelementet Målekamera til at bestemme, om et objekt med en kendt størrelse kan være i et bestemt rum. I denne artikel opretter vi en lærredsapp, så du kan gøre netop det.
Tip
Kontrolelementer til mixed-reality (MR) fungerer bedst i veloplyste miljøer med overflader med flade strukturer. Sporing er bedre på LIDAR-baserede enheder.
Føje inputfelter med minimummål til en lærredsapp
Vi skal først oprette en tom lærredsapp. Derefter skal vi give brugeren mulighed for at angive de minimummål, der skal testes imod (den mindste plads, der kan indeholde det objekt, som vi vil indpasse).
Vælg fanen Indsæt. Indsæt og placer tre Tekstmærkat-kontrolelementer på skærmen.
Rediger egenskaben Text for labels til henholdsvis Minimumbredde, Minimumdybde og Minimumhøjde.
Vælg fanen Indsæt. Indsæt tre kontrolelementer Tekstinput, og placer dem til højre for de tre labels.
Omdøb tekstinputkontrolelementerne til henholdsvis minWidth, minDepth og minHeight.
Markér alle tre tekstinputkontrolelementer. Rediger gruppens egenskab Format til Nummer, og angiv egenskaben Default til 1.0.
Indsætte og binde kontrolelement Målekamera
Nu skal vi tilføje kontrolelementet Målekamera, så brugeren kan måle et tredimensionalt rum. Vi binder målingerne til en datatabel til senere brug.
Vælg fanen Indsæt, og udvid Medier.
Vælg Målekamera for at placere kontrolelementet i appskærmbilledet. Træk kontrolelementet tæt på bunden af skærmen.
Rediger kontrolelementets egenskaber som følger:
Egenskabsnavn Værdi Hvor Måleenhed Fod eller meter Vælg under fanen Egenskaber Måletype Volumen Vælg under fanen Egenskaber Tegning af boks Til Vælg under fanen Egenskaber Items Table({label:"Test Volume"}) Angiv under fanen Avanceret ItemsLabels "label" Angiv under fanen Avanceret OnMixedRealitySelect Set(testVolume, LookUp(MeasureInMR1.Measurements, Label = "Test Volume")); Angiv under fanen Avanceret
Egenskaberne Items, ItemsLabels og OnMixedRealitySelect for kontrolelementet Målekamera skal se ud som følgende eksempler, når du er færdig:
Formlen i Items registrerer dimensionerne af det målte rum i en datatabel med navnet "Test Volume". Formlen i OnMixedRealitySelect angiver en variabel med navnet "testVolume" til de værdier, der registreres i tabellen "Test Volume".
Vise resultaterne
Til sidst skal vi tilføje tekstlabels for at få vist de målinger, der er foretaget, og resultatet af testen (med andre ord, om objektet kan være i det opmålte rum).
Vælg fanen Indsæt. Indsæt og placer fire Tekstmærkat-kontrolelementer på skærmen.
Rediger egenskaben Text for labelkontrolelementerne på følgende måde. (Tip: Kopiér hver formel, og indsæt den i formellinjen eller på fanen Avancerede egenskaber, alt efter hvad du foretrækker.)
Første label:
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 formel angiver labelteksten efter, om testen lykkedes eller mislykkedes, på basis af de minimummål, der kræves for at opbevare det objekt, der skal indpasses. Hvis testen ikke blev kørt, enten fordi der ikke blev hentet nogen målinger, eller der opstod en fejl, afspejles det i labelteksten.
Anden label:
Concatenate("Bounding Width: ", Text(testVolume.BoundingWidth))
Denne formel angiver labelteksten til "Afgrænsningsbredde:" efterfulgt af bredden på den målte plads.
Tredje label:
Concatenate("Bounding Depth: ", Text(testVolume.BoundingDepth))
Denne formel angiver labelteksten til "Afgrænsningsdybde:" efterfulgt af dybden på den målte plads.
Fjerde label:
Concatenate("Bounding Height: ", Text(testVolume.Height))
Denne formel angiver labelteksten til "Afgrænsningshøjde:" efterfulgt af højden på den målte plads.
Appskærmen skulle nu se sådan ud:
Teste appen
Vælg eksempelknappen for at køre appen i eksempeltilstand. Vælg Målekamera for at udfylde labels med data. Du kan kontrollere, at labelbindingerne virker, ved at angive nye værdier i tekstinputfelterne.
Værdierne for Afgrænsningsbredde og Afgrænsningsdybde kan udskiftes, når du udfører testen.
Gem og publicer din app. Åbn den på en enhed med mixed reality-funktionalitet for at teste, om et objekt med de angivne dimensioner kan være inden for grænserne af de målinger, der registreres.
Filtrering af datakilde
Den app, vi har oprettet, tester et enkelt sæt dimensioner, som angives af brugeren, når appen kører. Men du kan udvide den til at teste enhver datakilde ved at anvende formlen som et Filter-prædikat.
Lad os f.eks. sige, at vores app indeholder en reference til en Dataverse-tabel med navnet Produkter, der indeholder tre kolonner: Bredde, Dybde og Højde (svarende til de enkelte produkters mål). Hvis du vil filtrere samlingen til kun at vise de målinger, der passer ind i en målt volumen, kan du anvende 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å
Bemærk
Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)
Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).