Share via


Met mixed reality testen of een object in een ruimte past

U kunt het besturingselement Camerameting gebruiken om te bepalen of een object van een bekende grootte in een bepaalde ruimte past. In dit artikel maken we een canvas-app om precies dat te doen.

Tip

De mixed reality-besturingselementen (MR) werken het beste in goed verlichte omgevingen met vlak gestructureerde oppervlakken. Tracking is beter op LIDAR-compatibele apparaten.

Invoervelden voor minimale afmetingen toevoegen aan een canvas-app

Eerst maken we een lege canvas-app. Vervolgens voegen we een manier toe waarop de gebruiker de minimale afmetingen kan invoeren om te testen (dat wil zeggen: de kleinste ruimte voor het object dat we willen laten passen).

  1. Maak een lege canvas-app.

  2. Selecteer het tabblad Invoegen. Plaats drie Tekstlabel-besturingselementen op het scherm.

  3. Wijzig de eigenschap Text van de labels in respectievelijk Minimale breedte, Minimale diepte en Minimale hoogte.

    Een schermopname van een tekstlabel in aanbouw in Microsoft Power Apps Studio, dat samen met de bijbehorende eigenschappen wordt weergegeven.

  4. Selecteer het tabblad Invoegen. Voeg drie Tekstinvoer-besturingselementen in en plaats ze rechts van de drie labels.

  5. Hernoem de Tekstinvoer-besturingselementen respectievelijk in minWidth, minDepth en minHeight.

    Een schermopname van een Tekstinvoer-besturingselement in aanbouw in Microsoft Power Apps Studio, dat samen met de bijbehorende eigenschappen wordt weergegeven.

  6. Selecteer alle drie de Tekstinvoer-besturingselementen. Wijzig de eigenschap Format van de groep in Getal en de eigenschap Standaard in 1,0.

    Een schermopname van drie besturingselementen Tekstinvoer in aanbouw in Microsoft Power Apps Studio, samen met de eigenschappen van de geselecteerde groep.

Het besturingselement Camerameting toevoegen en verbinden

Vervolgens voegen we het besturingselement Camerameting toe om de gebruiker toe te staan een driedimensionale ruimte te meten. We verbinden de metingen met een gegevenstabel voor later gebruik.

  1. Selecteer het tabblad Invoegen en vouw Media uit.

  2. Selecteer Camerameting om het besturingselement in het app-scherm te plaatsen. Sleep het besturingselement onderaan in het scherm.

  3. Wijzig de eigenschappen van het besturingselement als volgt:

    Eigenschapsnaam Waarde Waar
    Unit of measurement Voet of meter Selecteren op het tabblad Eigenschappen
    Type meting Volume Selecteren op het tabblad Eigenschappen
    Tekenvak Ingeschakeld Selecteren op het tabblad Eigenschappen
    Items Table({label:"Test Volume"}) Invoeren op het tabblad Geavanceerd
    ItemsLabels "label" Invoeren op het tabblad Geavanceerd
    OnMixedRealitySelect Set(testVolume, LookUp(MeasureInMR1.Measurements, Label = "Test Volume")); Invoeren op het tabblad Geavanceerd

De eigenschappen Items, ItemsLabels en OnMixedRealitySelect van het besturingselement Camerameting moeten eruit zien als de volgende voorbeelden wanneer u klaar bent:

Een schermopname van het besturingselement Measure in 3D in aanbouw in Microsoft Power Apps Studio, dat samen met de bijbehorende eigenschappen Items en ItemsLabels wordt weergegeven.

Een schermopname van het besturingselement Measure in 3D in aanbouw in Microsoft Power Apps Studio, dat samen met de bijbehorende eigenschap OnMixedRealitySelect wordt weergegeven.

Met de formule in Items worden de afmetingen van de gemeten ruimte vastgelegd in een gegevenstabel met de naam "Testvolume". Met de formule in OnMixedRealitySelect wordt een variabele met de naam "testVolume" ingesteld op de waarden die zijn vastgelegd in de tabel "Testvolume".

De resultaten weergeven

Ten slotte voegen we tekstlabels toe om de uitgevoerde metingen en het resultaat van de test weer te geven (dat wil zeggen of het object in de gemeten ruimte past).

  1. Selecteer het tabblad Invoegen. Plaats vier Tekstlabel-besturingselementen op het scherm.

  2. Wijzig de eigenschap Text van het labelbesturingselement als volgt. (Hint: kopieer elke formule en plak deze in de formulebalk of op het tabblad Geavanceerde eigenschappen, wat u maar wilt.)

    • Eerste 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"))
      

      Met deze formule wordt de labeltekst ingesteld op basis van de vraag of de test is geslaagd of mislukt, gebaseerd op de minimale afmetingen die nodig zijn om het object te laten passen. Als de test niet is uitgevoerd, ofwel omdat er geen metingen zijn vastgelegd of omdat er een fout is opgetreden, geeft de labeltekst dat weer.

      Een schermopname van een tekstlabelbesturingselement in aanbouw in Microsoft Power Apps Studio, dat wordt weergegeven met de eigenschap Text in de formulebalk en het tabblad met geavanceerde eigenschappen.

    • Tweede label:

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

      Met deze formule wordt de labeltekst ingesteld op "Begrenzingsbreedte:" gevolgd door de breedtemaat van de gemeten ruimte.

    • Derde label:

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

      Met deze formule wordt de labeltekst ingesteld op "Begrenzingsdiepte:" gevolgd door de dieptemaat van de gemeten ruimte.

    • Vierde label:

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

      Met deze formule wordt de labeltekst ingesteld op "Begrenzingshoogte:" gevolgd door de hoogtemaat van de gemeten ruimte.

Het app-scherm moet er nu als volgt uitzien:

Een schermopname van het definitieve app-scherm.

De app testen

Selecteer de voorbeeldknop om de app in de voorbeeldmodus uit te voeren. Selecteer Camerameting om de labels te vullen met gegevens. Om te controleren of de labelbindingen werken, voert u nieuwe waarden in de tekstinvoervelden in.

Een schermopname van het app-scherm in voorbeeldmodus nadat nieuwe minimumafmetingen zijn ingevoerd.

De waarden voor Begrenzingsbreedte en Begrenzingsdiepte kunnen worden verwisseld wanneer u de test uitvoert.

Sla uw app op en publiceer deze. Open de app op een mixed reality-apparaat om te testen of een object met de opgegeven afmetingen binnen de grenzen van een vastgelegde meting past.

Een gegevensbron filteren

Met de app die we hebben gemaakt, wordt een enkele set afmetingen getest die door de gebruiker worden opgegeven wanneer de app wordt uitgevoerd. U kunt de set echter uitbreiden om te testen ten opzichte van elke gegevensbron door de formule toe te passen als een Filter-predicaat.

Stel bijvoorbeeld dat onze app een verwijzing bevat naar een Dataverse-tabel met de naam Producten die drie kolommen bevat: Breedte, Diepte en Hoogte (overeenkomend met de afmetingen van elk product). Om de verzameling te filteren zodat alleen de metingen die binnen een gemeten volume passen worden weergegeven, kunnen we de volgende formule toepassen.

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

Zie ook

Notitie

Laat ons uw taalvoorkeuren voor documentatie weten! Beantwoord een korte enquête. (houd er rekening mee dat deze in het Engels is)

De enquête duurt ongeveer zeven minuten. Er worden geen persoonlijke gegevens verzameld (privacyverklaring).