使用混合實境測試物件是否適合在空間中
您可以使用觀測相機控制項來確定已知大小的物件是否適合特定空間。 在本文中,我們將建立一個畫布應用程式來執行這項作業。
提示
混合實境 (MR) 控制項最適用於具有平面紋理的曲面的良好環境。 在支援 LIDAR 的裝置上進行追蹤效果更好。
將最小尺寸輸入欄位新增至畫布應用程式
首先,建立空白畫布應用程式。 然後,我們將新增一種方法,讓使用者輸入要測試的最小尺寸 (即容納要調整之物件的最小空間)。
選取插入索引標籤。在畫面上插入並放置三個 文字標籤。
將標籤的 Text 屬性分別變更為最小寬度、最小深度和最小高度。
選取插入索引標籤。插入三個文字輸入控制項,並將它們放置在三個標籤右側。
將文字輸入控制項分別重命名為 minWidth、minDepth 和 minHeight。
選取全部三個文字輸入控制項。 將群組的 Format 屬性變更為數字,並將 Default 屬性設定為 1.0。
新增並綁定觀測相機控制項
接下來,新增觀測相機控制項以允許使用者測量三維空間。 我們會將測量結果繫結到資料表,以備後用。
選取插入索引標籤,然後展開媒體。
選取觀測相機,以將控制項放置在應用程式畫面中。 將控制項拖曳至畫面底部附近。
變更控制項的屬性,如下所示:
屬性名稱 值 地點 測量單位 英尺或公尺 在屬性索引標籤上選取項目 測量類型 體積 在屬性索引標籤上選取項目 方塊繪製 開 在屬性索引標籤上選取項目 項目 Table({label:"Test Volume"}) 在進階索引標籤上輸入 ItemsLabels 「標籤」 在進階索引標籤上輸入 OnMixedRealitySelect Set(testVolume, LookUp(MeasureInMR1.Measurements, Label = "Test Volume")); 在進階索引標籤上輸入
完成後,觀測相機控制項的 Items、ItemsLabels 和 OnMixedRealitySelect 屬性應類似以下範例:
Items 中的公式在名為「測試體積」的資料表中擷取測量空間的維度。 OnMixedRealitySelect 中的公式會將名為「testVolume」的變數設為「測試體積」資料表中所擷取的值。
顯示結果
最後,我們將新增文字標籤以顯示所進行的測量以及測試結果 (即物件是否適合測量空間)。
選取插入索引標籤。在畫面上插入並放置四個 文字標籤。
變更標籤控制項的 Text 屬性,如下所示。 (提示:複製每個公式,並將其貼上到公式列或 Advanced 屬性索引標籤上,不論您喜歡哪種)
第一個標籤:
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"))
此公式會根據您要容納的物件所需的最小尺寸,根據測試是否成功或失敗來設定標籤文字。 如果測試沒有執行,可能是因為未擷取任何測量值或發生錯誤,標籤文字會反映這一點。
第二個標籤:
Concatenate("Bounding Width: ", Text(testVolume.BoundingWidth))
此公式會將標籤文字設定為「邊界寬度:」,後接所測量空間的寬度尺寸。
第三個標籤:
Concatenate("Bounding Depth: ", Text(testVolume.BoundingDepth))
此公式會將標籤文字設定為「邊界深度:」,後接所測量空間的深度尺寸。
第四個標籤:
Concatenate("Bounding Height: ", Text(testVolume.Height))
此公式會將標籤文字設定為「邊界高度:」,後接所測量空間的高度尺寸。
應用程式畫面現在看起來應該像這樣:
測試應用程式
選取 [預覽] 按鈕,以預覽模式執行應用程式。 選取 Measuring camera 以使用資料填入標籤。 若要驗證標籤繫結可以正常運作,請在文字輸入欄位中輸入新的值。
繫結寬度和繫結深度的值可以在執行測試時互換。
儲存並發佈 您的應用程式。 在支援混合實境的裝置上開啟應用程式,以測試具有指定尺寸的物件是否適合所擷取的任何量值範圍。
篩選資料來源
我們建立的應用程式會測試使用者在執行應用程式時指定的單一尺寸組。 但是,您可以透過將公式套用為篩選述詞,來擴大它對任何資料來源進行測試。
例如,假設應用程式包含參考名為產品的 Dataverse 資料表,其包含三行:寬度、深度和高度 (對應於每個產品的維度)。 若要將集合篩選以僅顯示適合測量體積的測量值,我們可以套用以下公式。
If(IsBlankOrError(testVolume), Products,
Filter(Products, testVolume.Height >= Height &&
((testVolume.BoundingWidth >= Width && testVolume.BoundingDepth >= Depth) ||
(testVolume.BoundingWidth >= Depth && testVolume.BoundingDepth >= Width))))