整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          清華黑科技登Science子刊封面:圓管上貼個膜,秒

          清華黑科技登Science子刊封面:圓管上貼個膜,秒變3D復雜結構

          輯:David

          【新智元導讀】要把復雜3D零件裝在曲面上,怎么裝最方便?清華團隊新研究登上Science子刊


          在工業實踐中,零件和電子設備的裝配,是復雜機械設備正常運轉的關鍵環節。過去,這些部件裝配的基板以平面為主,少數曲面裝配的零件,也多半僅限于簡單結構,而且不好改裝。


          對于復雜的三維結構零件,能不能在曲面基板上安裝,同時實現安裝方便,改裝也方便呢?


          最近,清華大學張一慧教授團隊提出一種新的組裝策略,解決了這個問題,并將成果發表在最近一期的Science Advance上 。


          論文鏈接:https://www.science.org/doi/10.1126/sciadv.abm6922


          論文提到,具有工程化三維結構的電子設備,對于摩擦力傳感、寬視場光學成像和流速測量是必不可少的。


          最近在機械引導裝配方面的進展,通過控制滾動/折疊/彎曲變形,在高性能材料中建立了確定的三維結構路線。然而,所產生的三維結構大多是在平面基底上形成的,不能直接轉移到另一個彎曲的基底上。


          本研究介紹了一種有序的組裝策略,可以在不同的彎曲表面上將二維薄膜轉化為復雜的三維結構。該策略利用預定機械負載,使彎曲的彈性體基底變形為平面/圓柱形結構,然后通過額外的單軸/雙軸預拉伸來驅動扣弦引導的組裝。


          通過力學建模,可以準確釋放預定的載荷,實現在曲面上有序組裝復雜三維結構的零件,本文中實例在彎曲基底上組裝了幾十個這類結構的零件。包括可調諧偶極子天線、水管內的流量傳感器、能夠與心臟共形整合的集成電子系統等。



          上圖為復雜三維結構在曲面上的有序裝配策略的概念圖。


          (A) 用人臉的三維裝飾面具的形成來說明有序裝配策略。右邊的兩張圖片對應的是銀(5米)和PET(75米)雙層中三維結構的有限元分析預測和光學圖像。


          (B) 上圖是一個螺旋形基底和螺旋形基底的有限元分析結果,它可以被扭轉和拉伸載荷壓平。底部面板展示了三維葉狀結構在螺旋形基底上的有序組裝過程,以及有限元分析預測和光學成像圖。


          (C) 在圓柱形管子的內表面組裝三維結構的概念圖,在與二維前驅體整合之前,基材被斜著裁剪,通過彎曲變形壓平,然后預拉伸。底部面板展示了圓柱形管內分層三維螺旋結構[鋁(2.5米)/PET(30米)]的有序組裝過程,并附有有限元分析預測和光學圖像。


          (D) 三維結構在具有莫比烏斯帶形狀的基底上的組裝過程的說明,以及在基底上組裝的蟻狀結構[Al (2.5 m)/PET (30 m)]的有限元分析預測和光學圖像。



          上圖為在可被壓平的彎曲表面上組裝的復雜的三維結構。


          其中(A) 為馬蹄形彎曲基底的示意圖,它可以通過單軸拉伸壓平。(B) 說明馬蹄形基板上三維帶狀結構組裝過程的光學圖像。(C) 在不同程度的雙軸拉伸下,半球形彈性體基底的生成矩陣輪廓的有限元分析和體驗結果。R0表示初始半球的半徑。(D) 在不同程度的雙軸拉伸下,半球形基體的最大主應變輪廓的有限元分析預測。


          (E) 為通過有限元分析預測,不同長度的直帶(Lribbon)裝配在半球形基底上的比較。(F) 組裝在半球形基底的凸面和凹面上的各種三維結構的2D幾何圖形、FEA預測以及實驗圖像。


          G到J:裝配在半球形基底上的半橢圓形表面的逆向設計。(K到N)在半球形基底上不同空間位置組裝的具有相同高度(hi)的小半球形的逆向設計。(O和P) 組裝在類腦表面的螺旋形微尺度結構網絡和微小的三維斜方體帶狀微尺度結構的光學圖像。



          上圖為復雜三維結構在圓柱/類圓柱形表面的組裝。


          (A) 用作彎曲基底的主動脈模型的示意圖,以及通過壓縮屈曲在該基底上的螺旋和雙螺旋結構的組裝過程。


          (B) 通過拉伸屈曲在圓柱形基底上裝配不同長度的直條帶的過程。


          (C) 各種三維結構組裝在圓柱形基底上的二維幾何圖形、有限元分析預測和實驗圖像。


          (D)二維前體、有限元分析預測和通過拉伸屈曲形成的kirigami-inspired鱗片狀三維結構的實驗圖像。


          (E) 有限元分析預測和實驗圖像表明,在阿基米德螺旋纖維上的kirigami啟發的尺度結構陣列的有序組裝過程。


          (F至H)在螺旋纖維上的不同空間區域組裝具有相同高度和間距的螺旋結構的逆向設計。


          作者團隊



          本文通訊作者為張一慧博士,清華大學航天航空學院工程力學系長聘教授。


          2011年在清華大學航天航天學院工程力學系獲博士學位。2011年至2015年在美國西北大學土木與環境工程系先后擔任Postdoctoral Fellow和Research Assistant Professor。2015年加入清華大學工程力學系,歷任副教授、長聘副教授、長聘教授。


          主要研究領域為力學引導的三維微結構組裝,非常規軟材料,柔性可延展電子器件,智能材料與結構力學


          至今已獲得授權的中國發明專利5項、美國發明專利3項,出版學術專著1部,發表SCI論文150余篇,其中以通訊作者在《Science》、《Nature》、《Nature Materials》、《Nature Electronics》、《Nature Reviews Materials》、《Nature Communications》、《Science Advances》、《PNAS》、《JMPS》、《Advanced Materials》、《ACS Nano》等期刊發表高水平學術論文80余篇。


          兩位共同一作Xue Zhaoguo和Jin Tianqi均來自清華大學工程力學系應用力學實驗室。


          Xue Zhaoguo主要負責概念化,數據整理,形式分析,資金獲取,調查,方法學,項目管理,資源,軟件,驗證,可視化,論文寫作、審查和編輯。


          Jin Tianqi主要負責概念化、數據管理、形式分析、調查、方法論、軟件、可視化和論文寫作。


          參考資料:

          https://www.science.org/doi/10.1126/sciadv.abm6922、

          http://yihuizhang.org/research.html

          融界8月16日消息,有投資者在互動平臺向瀚川智能提問:公司對4680大圓柱電池設備發展有何預判?

          公司回答表示:4680大圓柱電池行業已出現新進展。公司將根據行業趨勢與目標客戶的投資擴產情況進行業務籌劃。

          本文源自金融界AI電報

          一次看到在網上看到一個HTML5的VR街道的應用,印象比較深刻,覺得還挺有意思的。正好最近項目間隙,找點事情搞搞,所以找到一個WebVR的網頁開發框架A-Frame。以下內容整理來自于踏得網的A-Frame中文教程。

          簡介

          虛擬現實(VR)是一種技術,使用頭顯設備產生逼真的圖像,聲音和其他感覺,使得用戶進入身臨其境的虛擬環境。VR允許我們創建無界的世界,人們可以使用手來控制虛擬世界中的行走和互動,仿佛他們被時空傳送到另一個地方。如果說互聯網打破了時空界限,那么虛擬實現將打破虛擬和現實的界限。

          A-Frame是一款用來構建虛擬現實(VR)的網頁開發框架,屬于當下流行的開發WebVR解決方案。A-Frame是完全開源的框架,核心思想來自three.js,提供聲明式、可拓展、組件化的編程結構,并且支持主流VR頭顯。

          個人理解:通過A-Frame框架,將3D、VR、AR設計中的元素進行標簽化,類似html里面的標簽或者元素。常見到到標簽有:

          • a-scene(屏幕)
          • a-entity(實體)
          • a-assets(資源)
          • a-light(光照)
          • a-animation(動畫)
          • a-camera(相機)
          • a-cursor(光標)
          • a-sound(聲音)
          • a-text(文字)

          有些常用的實體標簽進行封裝,比如正方體、圓柱體、球之類。

          • a-sky(天空/背景)
          • a-plane(地面)
          • a-box(方體)
          • a-sphere(球)
          • a-cylinder(圓柱)

          有標簽,就有標簽的屬性了。常見的屬性值有:

          • position(定位:x,y,z軸值)
          • rotation(旋轉:x,y,z軸角度)
          • geometry(幾何數據)
          • material(表面材質)
          • scale(縮放)
          • particle-system(粒子系統)
          • color(顏色)
          • radius(半徑:圓的會用)
          • height(高)
          • width(寬)

          然后就是各種類型的屬性值了。開發的時候就是寫各種元素根據需要向屏幕中進行堆疊就可以了。是不是跟你平時做的html開發沒啥區別。

          后面根據你項目需要可以自己寫組件,根據特殊的需求,可以引入各種各樣寫好的插件,滿足你的天馬行空的想象。

          舉個栗子

          就拿上面提到的元素標簽來幾段代碼,做個效果。

          <html>
           <head>
           <script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
           </head>
           <body>
           <a-scene>
           <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box>
           <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere>
           <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder>
           <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane>
           <a-sky color="#ECECEC"></a-sky>
           </a-scene>
           </body>
          </html>
          

          效果預覽1

          <html>
           <head>
           <script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
           <script src="https://unpkg.com/aframe-physics-system@1.4.0/dist/aframe-physics-system.min.js"></script>
           </head>
           <body>
           <a-scene physics>
           <a-box position="-1 4 -3" rotation="0 45 0" color="#4CC3D9" dynamic-body></a-box>
           <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4" static-body></a-plane>
           <a-sky color="#ECECEC"></a-sky>
           </a-scene>
           </body>
          </html>
          

          效果預覽2

          <html>
           <head>
           <script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
           <script src="https://unpkg.com/aframe-animation-component@3.2.1/dist/aframe-animation-component.min.js"></script>
           <script src="https://unpkg.com/aframe-particle-system-component@1.0.x/dist/aframe-particle-system-component.min.js"></script>
           <script src="https://unpkg.com/aframe-extras.ocean@%5E3.5.x/dist/aframe-extras.ocean.min.js"></script>
           <script src="https://unpkg.com/aframe-gradient-sky@1.0.4/dist/gradientsky.min.js"></script>
           </head>
           <body>
           <a-scene>
           <a-entity id="rain" particle-system="preset: rain; color: #24CAFF; particleCount: 5000"></a-entity>
           <a-entity id="sphere" geometry="primitive: sphere"
           material="color: #EFEFEF; shader: flat"
           position="0 0.15 -5"
           light="type: point; intensity: 5"
           animation="property: position; easing: easeInOutQuad; dir: alternate; dur: 1000; to: 0 -0.10 -5; loop: true"></a-entity>
           <a-entity id="ocean" ocean="density: 20; width: 50; depth: 50; speed: 4"
           material="color: #9CE3F9; opacity: 0.75; metalness: 0; roughness: 1"
           rotation="-90 0 0"></a-entity>
           <a-entity id="sky" geometry="primitive: sphere; radius: 5000"
           material="shader: gradient; topColor: 235 235 245; bottomColor: 185 185 210"
           scale="-1 1 1"></a-entity>
           <a-entity id="light" light="type: ambient; color: #888"></a-entity>
           </a-scene>
           </body>
          </html>
          

          效果預覽3

          如何使用

          自行運行上述代碼試試。真正項目運行當然就需要web服務器了,前面引入JS,中間不斷堆疊需要的實體、特效、交互、動畫就可以了。不需要編譯,直接預覽就可以。

          <!-- Production Version, Minified -->
          <script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
          <!-- Development Version, Uncompressed with Source Maps -->
          <script src="https://aframe.io/releases/0.5.0/aframe.js"></script>
          

          遇到一個小問題,本地html文件引入同文件資源,居然還產生跨域問題。

          設備和平臺支持

          A-Frame支持的通用平臺包括:

          • 桌面電腦上的虛擬現實和頭戴設備
          • 移動設備上的虛擬現實和頭戴設備
          • 平面桌面設備(也就是普通電腦顯示器、鼠標和鍵盤)
          • 智能手機(比如magic window)

          一些其他的平臺包括:

          • 增強現實(AR)頭戴設備(比如HoloLens, Windows Mixed Reality)。
          • 移動設備上的增強現實(AR) (比如magic window)
          • AltSpaceVR,通過本地SDK

          當然前端開發要關心支持那些瀏覽器了,https://webvr.rocks維護最新列表。目前

          • Firefox Nightly (Firefox 55)
          • Chromium的實驗版本
          • Chrome for Android (Daydream)
          • Oculus Carmel (GearVR)
          • Samsung Internet (GearVR)
          • Microsoft Edge

          A-Frame嘗試通過WebVR polyfill來支持那些未實現WebVR接口的現代瀏覽器,但是由于不是官方支持,所以體驗可能會不佳:

          • Safari for iOS
          • Chrome for Android
          • Firefox for iOS
          • Samsung Internet
          • UC Browser

          對于平面的3D渲染,A-Frame支持所有實現了WebGL接口的現代瀏覽器:

          • Firefox
          • Chrome
          • Safari

          總之,萬惡的IE

          Primitives

          踏得網翻譯是原語,百度翻譯是基元。實際就是個語法糖,把一些常用的實體進行封裝。方便理解學習,降低開發難度,本身也是實體。

          比如 <a-box></a-box>實際是<a-entity geometry=”primitive: box;”></a-entity> 并且a-box增加屬性,映射到a-entity的具體屬性值中。

          <a-box color="red" width="3"></a-box>
          //效果跟下方相同
          <a-entity geometry="primitive: box; width: 3" material="color: red"></a-entity>
          

          這種語法糖可以通過AFRAME.registerPrimitive(name, definition)進行注冊,方法也很簡單。舉例:

          AFRAME.registerPrimitive('a-ocean', {
           defaultComponents: {
           ocean: {},
           rotation: {x: -90, y: 0, z: 0}
           },
           mappings: {
           width: 'ocean.width',
           depth: 'ocean.depth',
           density: 'ocean.density',
           color: 'ocean.color',
           opacity: 'ocean.opacity'
           }
          });
          

          其中,name是對應生成的新實體的名字,definition是新實體需要的參數對象。definition參數對象中包含defaultComponents和mappings,defaultComponents是新實體的默認參數,比如先指定下幾何圖形等等,mappings是對外暴露的屬性值及在默認對象中的對應關系。

          有沒有一種面向對象開發中,a-entity是基礎類,注冊一個子類,繼承父類,對外暴露特定接口的概念。

          ECS架構

          實體-組件-系統(entity-component-system),ECS架構是三維游戲中常見且理想的設計模式,Unity就是ECS架構的游戲引擎。A-Frame是基于three.js,并且使用了ECS架構。

          ECS的基本定義包括:

          • 實體(Entities)是容器對象,用來包含組件。實體是場景中所有對象的基礎。沒有附加組件的實體不會渲染任何東西,類似于空的div標簽。對應的是<a-entity> 元素和原型
          • 組件(Components)是可重用的模塊或數據容器,可以依附于實體以提供外觀、行為和/或 功能。組件就像即插即用的對象。所有的邏輯都是通過組件實現,并通過混合、匹配和配置組件來定義不同類型的對象。通過<a-entity>的HTML屬性來表示。底層實現上, 組件是包含模式(schema)、生命周期處理器和方法的對象。組件通過AFRAME.registerComponent (name, definition)API來注冊。
          • 系統(Systems) 為組件類提供全局范圍、管理和服務。系統通常是可選的,但我們可以使用它們 來分離邏輯和數據;系統處理邏輯,組件充當數據。通過<a-scene>的HTML屬性來表示。系統在定義上和組件類似,系統通過AFRAME.registerSystem (name, definition) API來注冊。

          對應aframe框架,類比HTML結構理解,就是 systems是html/body標簽,Entities是div標簽,Component是div標簽上的style屬性。

          組件上的語法屬性值和style的樣式一樣,可以添加很多。

          <a-entity geometry="primitive: sphere; radius: 1.5"
           light="type: point; color: white; intensity: 2"
           material="color: white; shader: flat; src: glow.jpg"
           position="0 0 -5"></a-entity>
          

          JavaScript, Events 和 DOM APIs

          把元素堆疊起來是顯示效果,當然我們還需要控制場景中的元素為我們所用。這里還是進行的DOM操作,

          查詢遍歷方法

          querySelector()和querySelectorAll(),借鑒Jquery。

          <html>
           <a-scene>
           <a-box id="redBox" class="clickable" color="red"></a-box>
           <a-sphere class="clickable" color="blue"></a-sphere>
           <a-box color="green"></a-box>
           <a-entity light="type: ambient"></a-entity>
           <a-entity light="type: directional"></a-entity>
           </a-scene>
          </html>
          

          聲明對象可以使用下面一些方式進行聲明。

          var sceneEl=document.querySelector('a-scene'); //指定一個對象
          var redBox=sceneEl.querySelector('#redBox'); //使用ID值
          var boxs=sceneEl.querySelectorAll('a-box'); //選擇一類實體
          var btns=sceneEl.querySelectorAll('.clickable'); //使用class值
          var lights=sceneEl.querySelectorAll('[light]'); //使用屬性值
          var els=sceneEl.querySelectorAll('*'); //使用通配符
          

          對象屬性操作

          后續整個理解其實和正常的操作dom,使用的一樣的方法和接口。

          • createElement(創建對象)
          • appendChild(追加對象)
          • removeChild(刪除對象)
          • setAttribute(設置屬性)
          • removeAttribute(刪除屬性)

          事件和偵聽器

          和瀏覽器事件相同,增加的事件可以通過.emit向外發射,.addEventListener進行偵聽,.removeEventListener刪除偵聽。舉例,空間里面兩個對象碰到了就叫一聲(emit),空間里面管理員聽到了就會去處理。addEventListener就是增加管理員,里面代碼是聽到叫聲要操作的事情。

          entityEl.emit('physicscollided', {collidingEntity: anotherEntityEl}, false); //碰了就叫一聲
          function collisionHandler (event) {
           console.log('Entity collided with', event.detail.collidingEntity);
          }); //要做的時事情
          entityEl.addEventListener('physicscollided', collisionHandler); //放偵聽器處理
          entityEl.removeEventListener('physicscollided', collisionHandler); //刪除偵聽器
          

          父子關系與坐標轉換

          A-Frame中元素也存在父子關系的嵌套,并且父子元素之間的空間關系也是相互影響的。

          <a-scene>
           <a-box>
           <a-sphere></a-sphere>
           <a-light></a-light>
           </a-box>
           <a-entity id="foo" position="1 2 3">
           <a-entity id="bar" position="2 3 4"></a-entity>
           </a-entity>
          </a-scene>
          

          其中id為bar的實體的實際空間坐標就變成了(3, 5, 7)。最外層坐標叫世界坐標,元素里面的坐標是相對于父坐標的坐標。

          可視化查看器和開發工具

          A-Frame查看器是一個用來檢測和修改場景元素的可視化工具。使用<ctrl> + <alt> + i組合快捷鍵來打開/關閉查看器,使用該工具,我們可以:

          • 使用句柄和助手拖動、旋轉和縮放實體
          • 使用小部件(widgets)調整實體的組件及其屬性
          • 立即看到更改結果,而無需在代碼和瀏覽器之間來回切換

          查看器類似于瀏覽器的DOM查看器,但面向的是3D上下文和A-Frame。

          生命周期

          • init 初始化組件時調用一次。用于設置初始狀態和實例化變量。
          • update 在組件初始化和任何組件屬性更新(例如,通過setAttribute)修改屬性)時被調用來更新該實體。
          • remove 在組件被從實體中刪除時(比如,通過removeAttribute)或者當實體從場景中分離時被調用。用于撤消以前所有的實體修改。
          • tick 在每個場景渲染循環被調用。用于連續的改變或檢查。
          • play 每當場景或實體播放來添加任意背景或動態行為時被調用。組件初始化時也會被調用一次。用于啟動或恢復動態行為。
          • pause 每當場景或實體暫停來刪除任意背景或動態行為時被調用。當組件從實體中移除或實體脫離場景時也會被調用。用于暫停動態行為。
          • updateSchema 當組件的任意屬性更新時被調用。可用來動態修改模式(schema)。

          文末

          本文算是一個初期的入門理解,更加深入的理解肯定要實戰中去增強理解,好多問題只有在多次實戰運用之后才會又更深入的了解。而且像這種3D內容的開發,更多的其實是空間設計能力,這個才是重點。

          人們,技術,未來和進步——未來的3d眼鏡和微芯片植入物或藍色背景的傳感器與網絡聯系圖標


          主站蜘蛛池模板: 乱色熟女综合一区二区三区| 亚洲熟女少妇一区二区| 国产av一区二区精品久久凹凸 | 日韩精品一区二区三区中文| 国产未成女一区二区三区| 欧洲精品无码一区二区三区在线播放| 国产伦精品一区二区三区女| 中文字幕一区二区视频| 一级特黄性色生活片一区二区| 亚洲第一区二区快射影院| 男女久久久国产一区二区三区| 亚洲一区二区女搞男| 亚洲爽爽一区二区三区| 日本精品一区二区三区在线视频| 国产精品亚洲一区二区麻豆| 亚洲一区二区三区91| 蜜臀AV一区二区| 色欲综合一区二区三区| 亚洲国产精品一区二区久久hs| 中文字幕一区二区三区四区 | 国产成人精品无人区一区| 国产一区韩国女主播| 国产综合精品一区二区| 日韩高清一区二区| 激情爆乳一区二区三区| 日韩精品无码久久一区二区三| 免费观看日本污污ww网站一区 | 国产激情一区二区三区四区 | 色狠狠一区二区三区香蕉蜜桃| 国产精品被窝福利一区 | 竹菊影视欧美日韩一区二区三区四区五区 | 麻豆国产在线不卡一区二区 | 一区二区三区无码高清视频| 成人在线一区二区| 国产成人无码一区二区在线观看| 亚洲综合av永久无码精品一区二区| 日本高清不卡一区| ...91久久精品一区二区三区 | 任你躁国产自任一区二区三区| 国产成人一区二区三区视频免费 | 久夜色精品国产一区二区三区|