溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

讀STL文件的工具該怎么分析

發(fā)布時間:2021-12-29 15:06:34 來源:億速云 閱讀:160 作者:柒染 欄目:大數(shù)據(jù)

讀STL文件的工具該怎么分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

本工具僅僅是讀取和展示模型(有點雞肋),不涉及分析啥的。

先展示一下:

1. 先在主界面中點擊這個按鈕

讀STL文件的工具該怎么分析

2.到了這個讀STL文件工具的界面

讀STL文件的工具該怎么分析

3.點擊那個打開按鈕后,右邊方框內(nèi)會有一個加載的動畫

讀STL文件的工具該怎么分析

4.當文件加載好了,會有一個提示

讀STL文件的工具該怎么分析

5.過了兩秒后展示模型

讀STL文件的工具該怎么分析

6.在這個模型被展示之前左半邊我隱藏的工具欄,當你模型展示完成后,把鼠標移動到大概左半邊的區(qū)域內(nèi)才會展示工具欄,如下:

讀STL文件的工具該怎么分析

1. 當我們從首界面中打開子界面,就一定會有返回首界面的需求。

可以用兩種方式來返回主界面:點擊右上角的 ‘X’,或者點擊界面內(nèi)左上角的那個 home 按鈕。

如果是點擊左上角返回首界面的話就需要用figure的CloseRequestFcn這個回調(diào)函數(shù),

在這個回調(diào)里面先把首界面的Visible設(shè)置為on,在delete當前的figure,

home按鈕的回調(diào)callback也是同樣的思路。

2. 怎么選擇需要打開的文件并展示到坐標系中?

當我們點擊打開文件的按鈕后,

* 希望彈出一個文件選擇對話框,采用uigetfile函數(shù);

選中相應(yīng)的文件后,開始讀取文件中的頂點,這可能會花費一小會。所以期間可以整一個正在加載的動畫;

展示這個動畫可以用循環(huán),也可以用定時器timer。我用的是定時器,你們可以先查一下定時器的用法,再去看一下我的代碼。動畫實際上就是若干個圖片連續(xù)顯示,所以我們可以上網(wǎng)去找?guī)讖垐D片,然后讓這個定時器每隔0.5秒顯示一張圖片;

我這里的加載動畫是由5張圖片構(gòu)成的,當5張圖片放完后怎么從頭再放呢?這個很簡單:拿當前是第幾張圖片來對5取余再加1,就得到了當前是第幾張圖片了;

文件加載好后,需要關(guān)掉動畫圖片,設(shè)置Visible為off就行;

然后提示用戶文件導(dǎo)入完畢,即將展示模型;

關(guān)閉提示

使用之前寫的推文中讀STL文件的方法來展示模型;

需要注意的地方:這里的動畫圖片是單獨的放在一個小坐標系中的,這樣很方便。

3. 當我鼠標在右側(cè)縮放圖像時,希望能隱藏左側(cè)的那些工具

這很簡單,在WindowButtonMotionFcn中判斷鼠標在當前窗口的x方向像素坐標是否在左半邊(大約窗口寬度的一半),如果是就顯示,不是就隱藏唄;

當模型沒有展示前這些工具是需要隱藏的,因為當前還沒有模型,你去點他們,很可能會報錯(當然你可以使用try-catch-end來處理這些報錯,但是隱藏起來會更方便)。這個你在一開始把它們的Visible設(shè)置為off就行,當模型展示好后立即顯示這些控件。

4. 由于我把figure的toolbar去掉了,沒法旋轉(zhuǎn),需要改變坐標系的視角

可以采用view函數(shù)或者坐標系的View屬性,再配合兩個Slider來調(diào)節(jié)方位角和仰角啊,這樣就間接實現(xiàn)了旋轉(zhuǎn);

在Slider的callback里面獲得當前的Value值,然后把方位角和仰角的Value構(gòu)成一個1x2的向量傳給坐標系的View,這樣每動一次相應(yīng)的Slider就能轉(zhuǎn)一下模型了

5. 模型默認是不透明的,所以可以添加一個調(diào)節(jié)透明度的Slider

具體做法和上面 第4個 是類似的,可以采用findobj函數(shù)找到patch對象,然后使用set來把當前Slider的Value值傳給patch對象的FaceAlpha屬性。

6.修改網(wǎng)格線和片體的顏色

網(wǎng)格線的顏色是patch的EdgeColor屬性來控制的,片體的顏色是patch的FaceColor屬性來控制的;

這個顏色可以是一個1x3的向量,代表R,G,B,每個元素值在0-1之間,而實際的RGB值一般在0-255之間,所以要對輸入的值除以255轉(zhuǎn)化到0-1之間;

可以在edit控件的callback中對patch的那兩個屬性進行修改。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

stl
AI