機械拆裝-基于Unity-總體設計

前言

? 在工業設計和制造領域,零部件的拆裝技術是一個重要的應用場景,比如我們在工程訓練課程中經歷的摩托車發動機拆裝課程,是機械類學生的必修課程。虛擬拆裝系統模擬和仿真了模型的拆裝過程,雖然SolidWorks等機械設計軟件能夠解決特征配合的裝配方式,但交互性不足。我們在Unity虛擬引擎中建立一個交互式拆裝訓練系統,拆裝操作簡單,并有圖文引導提示,適合學習者了解拆裝過程。

? 如果一個拆裝項目要實現比較完善仿真功能,比如需要仿真實體特征、裝配精度等,則需要進行更加詳盡的架構設計。但如果僅僅實現基本功能,且項目要在短時間(一周)內完成,那么按我目前的想法寫下本專欄的筆記,大致可以完成。

1. 系統總體設計

? 完成整個系統大約要完成下圖中這些工作,*為加分項。核心模塊為3D模型的準備以及拆裝功能的實現,這兩個部分后面會詳細說明。

2. 裝配功能實現的詳細設計

? 2.1 裝配順序

??發動機模型的包括活塞、曲柄、離合器等幾大部分,零件數量有200多個,彼此存在依賴關系,因此需要根據其構造和原理,安排拆裝工序。按發動機功能區域分,可以講拆裝順序分為如下圖的裝配分組,其中每個子裝配體都包含了若干零件,因篇幅有限,僅展開比較重要的變速箱裝配體:

? 在系統設計過程中,模型按上圖的分組建立子裝配體,并先分別完成每個子裝配體,最后總裝。

? 2.2 裝配思想實現的難點

? (1)碰撞干涉問題

? ? ?虛擬世界中需要模擬實體零件的特性,否則容易發生零件穿透失去真實的效果。可以旋轉Unity系統中較常用的幾種碰撞器來制造碰撞效果,但這里需要注意幾個問題:

? ? 1)如果使用MeshCollider包圍整個零件表面,碰撞效果比較真實,但是系統資源占用較大,尤其是齒輪這些三角面較多的模型;

? ? 2)如果使用BoxCollider這類碰撞器時,容易造成視覺上還未碰到模型,而已經產生碰撞效果的現象,不復合現實世界客觀規律。可以使用下圖分段式碰撞器包裹物體的方式,系統資源消耗較少,又有MeshCollider的效果。

??

? (2)裝配路徑約束

? ? 發動機裝配中,大部分都是軸向裝配路徑,因此需要對孔和軸之間的配合進行約束,以體現實際裝配中的方位和路徑。考慮用采用以下方法:零件在當前位置O時,可以自由移動;當拖拽到軸端面位置時,制定一個零時位置T,從這個位置向目標位置P移動時,鎖定y,z方向,約束零件在軸方向上移動。

? (3)零件裝配過程的流程設置

? ? 下圖是大致的裝配動作實現過程,其中沒有考慮的問題有:

? ? 1)判斷裝配方向;

? ? 2)裝配完成后,父子關系改變(如果后續需要通過運動執行來演示裝配效果,就需要考慮這個問題);

? ? 3)裝配工具選擇(背包);? ? 4)游戲獎勵制度。

? ? 這些可以在制作過程中預留接口,以便于后期擴展。

? ??

3. 場景實現中的難點與解決

? 3.1 相機控制

? ? 在場景中,相機會有多種應用要求,比如在實現場景漫游功能時,需要以第一或第三人控制的方式,讓相機實現360°場景旋轉。但在裝配過程、教學認知過程中,都需要相機在小范圍移動,或干脆固定不動,解決的方法有很多種,比如:

? ? 1. 載入不同場景實現不同功能

? ? 比如漫游為一個場景,裝配功能放在另一個場景,通過場景間的切換實現不同功能。

? ? 2. 建立多個相機,通過改變相機的Depth數值,切換主副相機。UI可以建立專門的UI相機。

? ??

? ? 另外,在裝配場景中,可以將相機旋轉中心設置為裝配體的位置,讓相機始終跟隨裝配體旋轉和移動。

? 3.2 零件的拖拽和旋轉

? ? 首先要建立零件的層(Layer),只有在這個層里的物體才會被鼠標射線選中拖拽,防止其他物體干擾;其次,使用鼠標射線拖動和旋轉的代碼很多,借鑒一下大神們的基本都沒有問題。

? 3.3 裝配位置提示

? 考慮實現是功能是:當選中一個零件準備裝配時,這個零件的正確裝配位置會有一個同樣的零件形象忽明忽暗地提示,如下圖1。大致的思想如下圖2。

?? ??

總結

? 在制作過程中還有一些小細節需要不斷完善,比如需要規范管理那么多種類的文件、UI的層疊結構等,在本專欄中的后續文章會有過程記錄。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38225.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38225.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38225.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

性能調優 性能監控

1.影響性能考慮點包括: 數據庫、應用程序、中間件(tomcat、nginx)、網絡和操作系統等方面。 首先考慮自己的應用屬于 CPU密集型 還是 IO密集型 cpu密集型 計算,排序,分組查詢,各種算法 IO密集型 網絡傳輸,磁盤讀…

大創項目推薦 題目:基于機器視覺opencv的手勢檢測 手勢識別 算法 - 深度學習 卷積神經網絡 opencv python

文章目錄 1 簡介2 傳統機器視覺的手勢檢測2.1 輪廓檢測法2.2 算法結果2.3 整體代碼實現2.3.1 算法流程 3 深度學習方法做手勢識別3.1 經典的卷積神經網絡3.2 YOLO系列3.3 SSD3.4 實現步驟3.4.1 數據集3.4.2 圖像預處理3.4.3 構建卷積神經網絡結構3.4.4 實驗訓練過程及結果 3.5 …

zabbix報警機制,主動監控

zabbix思路流程 主動監控 默認zabbix使用的是被動監控,主被動監控都是針對被監控主機而言的。被動監控:Server向Agent發起請求,索取監控數據。此種模式常用主動監控:Agent向Server發起連接,向Server匯報 配置web2使用…

STM32智能家居掌上屏實戰:從WiFi連接到MQTT通信,打造你的家庭物聯網網關

摘要: 本文深入探討一種基于STM32的智能家居掌上屏設計方案,詳細闡述其硬件架構、軟件設計以及通信協議等關鍵技術細節。該方案利用WiFi構建局域網,實現與各類傳感器、執行器的便捷交互,并通過TFT彩屏提供直觀的控制和數據展示,旨…

[數據庫原理]事務

如有錯誤,歡迎指正!!! 期末考了沖突可串行化

動態順序表實現通訊錄

系列文章目錄 【數據結構】順序表 文章目錄 系列文章目錄前言一、通訊錄的功能要求二、通訊錄的代碼實現1. 新建文件2. 創建通訊錄的結構體3. 對順序表文件進行修改4. 通訊錄具體功能實現4.1. 通訊錄的初始化和銷毀4.2. 增加聯系人信息(尾插)4.3. 查找指…

SpringBoot + 虛擬線程,性能炸裂!

一、什么是虛擬線程 虛擬線程是Java19開始增加的一個特性,和Golang的攜程類似,一個其它語言早就提供的、且如此實用且好用的功能,作為一個Java開發者,早就已經望眼欲穿了。 二、虛擬線程和普通線程的區別 “虛擬”線程&#xf…

一些硬件知識(十二)

X電容是接在火線和零線之間,Y電容是接在火零線和地之間。X電容濾除差模干擾,Y電容濾除共模干擾: 高頻干擾信號經過X電容后幅度沒有變化,相位相差180度: DW01電池管理芯片: M1、M2:這兩個為N溝道…

【關于C/C++中的scanf不能使用問題】

方法1:scanf_s 方法2:看見后面的日志了嗎 CRT……?在第一行加上#define 日志 方法3:#pragma warning(disable:4996) 4996是我們的報錯序號

開發筆記:vue3+ts+vant 卡片數據分頁,下拉加載,卡片左滑可刪除

效果: 實現 使用vantui組件 van-swipe-cell van-card (商品卡片) 核心代碼 const currentPage ref(1) const pageSize ref(4) const totalSize ref(10) const loading ref(false) const finished ref(false) const refreshing ref(…

Git新倉庫創建流程

平時需要創建新倉庫,老要去查代碼特別煩,在此寫下流程方便備用. 1.創建新的云倉庫 無論使用GitHub還是Gitee,首先要創建一個云倉庫,這里就直接用國內的gitee做演示了,githup老掛加速器太煩,偷個懶. 我這里創建的是一個空倉庫&…

java- Lambda表達式的實際應用

### 12. Lambda 表達式的實際應用 為了更好地理解和應用 Lambda 表達式,我們可以通過一些實際案例來展示其用法和優勢。 #### 12.1 使用 Lambda 表達式進行事件處理 在 GUI 編程中,事件處理是一個常見的任務。使用 Lambda 表達式可以簡化事件處理代碼…

Nginx主配置文件---Nginx.conf

nginx主配置文件的模塊介紹 全局塊: 全局塊是配置文件從開始到 events 塊之間的部分,其中指令的作用域是 Nginx 服務器全局。主要指令包括: user:指定可以運行 Nginx 服務的用戶和用戶組,只能在全局塊配置。例如&…

軟考《信息系統運行管理員》-2.2 信息系統運維的組織

2.2 信息系統運維的組織 信息系統運維的任務 數據資源管理 數據收集、數據校驗、數據錄入、數據處理 軟件資源管理 采購、保存、相關文檔保管、分發、安裝、支持、評價、培訓 硬件資源管理 檢查、維護、故障處理、更新、修復、擴充 系統安全管理 可用性、完整性、保密性、可控…

USB PD+TYPE -C快充電源中MOSFET選型,USB PD應用市場包含智能手機,平板電腦,筆記本電腦,游戲本,移動硬盤,數碼相機,電動工具等傳統領域

USB PD全稱為USB Power Delivery,是由USB-IF組織制定的一種快速充電協議,也是目前市場非常看好的一種協議,可以支持輸出功率高達100W;Type-C是一種接口規范,能夠支持傳輸更大的電流。USB PD應用市場不僅包含智能手機&a…

虛擬紀念展館建設的重大意義:重新定義紀念活動的未來

一、什么是虛擬紀念展館? 虛擬紀念展館是一種利用3D、VR等技術在線展示歷史事件、人物或文化遺產的數字化空間。這些展館通過虛擬現實、增強現實和3D建模等技術手段,創建出身臨其境的體驗,使參觀者可以在互聯網上以互動方式探索和學習。 二、…

【FPGA 學習與實踐】<初階> 項目周計劃

第1-2周:基礎項目 - 4位加法器和計數器 目標:掌握Verilog基本語法和模塊設計。 第1周: 學習Verilog的基本語法和結構(模塊、端口、數據類型)。設計并實現一個4位加法器。編寫測試平臺(Testbench&#xff0…

提升效率就靠它們啦

Hey小伙伴們~👋 知道你們都在忙碌的工作中尋求高效的秘訣,今天就給大家安利五款超實用的國產工作App,讓你的工作生活更加得心應手哦!💼? 1??【億可達】 作為一款自動化工具,億可達被譽為國內…

firewalld(5)--direct

簡介 direct 是 firewalld 服務的一個功能,它允許用戶以更直接的方式配置防火墻規則,繞過通常的 firewalld 區域(zone)和服務的抽象層。然而,這個功能已經被棄用(deprecated),并將…

詳解位運算(、|、^、^、>>、<<)

十六進制與二進制對應關系 十六進制和二進制之間的轉換非常直接,每個十六進制數字直接對應四個二進制位,并且十六進制相對二進制要更加簡潔,因此通常書寫位操作的代碼時會選擇使用十六進制來表示數值。 為了方便快速閱讀涉及位運算的源碼&a…