吳芬芬 劉利剛
(中國科學技術大學數學科學學院 合肥 230026) (lgliu@mail.ustc.edu.cn)
3D打印物體的穩定平衡優化
吳芬芬 劉利剛
(中國科學技術大學數學科學學院 合肥 230026) (lgliu@mail.ustc.edu.cn)
3D打印日漸流行,賦予大眾創造物體的能力.首先通過計算機中3D建模軟件構造3D數字模型,再借助3D打印加以制造.虛擬環境中無物理規則的特點使得模型千姿百態,但是通過3D打印之后發現物體無法平衡站立.首次提出3D打印物體的穩定平衡優化問題,針對這一問題,研究不倒翁的原理,提出穩定平衡優化算法,使得物體達到穩定平衡.具體做法為先將物體體素化,迭代式從水平、垂直方向進行逐體素的挖空,選取最佳的挖空方式;對于個別極端例子,再通過對底部小范圍內的修改來達到穩定平衡.逐體素的啟發式挖空策略避免了挖空可能出現的懸浮、自相交等問題;底部局部小范圍的修改也保證了物體的形狀基本不變,該方法的可行性通過多個例子的成功優化得到證明.
穩定平衡;優化;3D打印;體素化;不倒翁
不倒翁自古以來就受到廣大老百姓的喜愛,尤其是兒童愛不釋手的玩具.常見的不倒翁上身由空殼組成,下底由填滿固體的半圓球,具有上輕下重的特點.不倒翁在受到外力時傾倒,當撤去外力時,不倒翁自行恢復到初始位置,這種性質在物理中稱之為穩定平衡(stable equilibrium).穩定平衡原理在人們的生活中有著廣泛的應用,帶給了人們更多的樂趣與便利,如不倒翁娃娃(如圖1(a)所示),不倒翁牙刷(如圖1(b)所示)、不倒翁沙袋(如圖1(c)所示)、平衡鳥等.

Fig. 1 Stable equilibrium objects圖1 利用穩定平衡原理的物體(來源網絡)
近幾年,3D打印技術快速發展,引起了人們對該科技的關注.3D打印是增材制造技術(additive manufacturing, AM)的俗稱,它依據CAD設計數據(3D數字模型),采用離散材料(液體、粉末、絲、片、板塊等)逐層累加制造物體的技術[1].這種增材制造方式相對于傳統的減材制造有著得天獨厚的優勢:減少材料的浪費、可制造非常復雜的物體、大大縮小制作周期、設計空間無限等.
3D打印被稱為是第3次工業革命的導火線.它給人們帶來機遇的同時也帶來了挑戰,針對于3D打印的問題層出不窮.這引發了科研前沿學者們的關注和研究[2-3],將問題一一攻破.Wang等人[4]提出一種基于“蒙皮-鋼架”(skin-frame)的輕質結構大大節約了3D打印材料的使用,節省了時間和成本;針對于強度問題,Stava等人[5]提出自動檢測脆弱部分,使用內部挖空、局部加厚、加支撐這3種方法對物體進行修改;Vanek等人[6]提出自動生成樹狀支撐結構的方式,解決沉積熔融式(FDM)3D打印機不可避免的懸空部分打印失敗問題;由于3D打印機尺寸的限制,無法一次性打印大于設備本身尺寸的物體,Luo等人[7]考慮可組裝性、可打印性、結構穩定性、美觀性提出了自動切割分別打印最后拼裝組合的策略.
在計算機中,3D數字模型無需遵守物理規律,比如重力、摩擦力等,但若要3D打印,違反物理規則的物體就不能在現實世界中得到相同的效果.實際制造的需求使得如何讓計算中的3D虛擬物體打印出來之后平衡也成為計算機圖形學研究領域學者們關注的問題.Prévost等人[8]提出了交互調整修改模型的方式達到物體平衡的目的,他們采取的策略分為2步:1)通過模型內部的挖空調整質心位置;2)在保證模型整體形態的基礎上對模型進行局部的微小變形.Musialski等人[9]采取對模型外表面進行偏移得到內表面從而挖空物體內部的方法,結果表明該方式能有更大的拓展和延伸;Yamanaka等人[10]通過改變物體的密度分布和內部結構來達到平衡的目的.
物體靜止時保持穩定狀態的平衡稱之為靜力平衡.文獻[8-10]研究更多的是物體保持靜力平衡.如果物體受到外界輕微的擾動,物體即刻失去平衡,效果很不理想.B?cher等人[11]改進Prévost等人[8]的方法不僅達到靜力平衡,還將物體做成動態平衡的物體,即旋轉陀螺.本文第1次提出物體的穩定平衡優化問題,深入研究不倒翁的原理[12-13],針對底面與水平接觸面只有1個接觸點的物體,將原本不能保持平衡的3D打印物體變成穩定平衡的物體.將模型內部挖空使得物體的質心在接觸點的正上方,同時將質心的高度降到盡量低,讓物體達到平衡的同時還能穩定;對于極端例子,再通過修改物體底部一定范圍內的形狀實現穩定平衡.
1.1 靜力平衡
根據牛頓力學,物體在幾個力的作用下處于靜止或者勻速直線運動狀態叫作平衡狀態.當物體放在水平面上時,物體受到的重力G以及水平面對它垂直向上的支持力N等大反向共線,物體所受合力為零,故保持平衡,如圖2(a)左圖所示.當物體換個方向放置,物體是否也能保持平衡?如圖2(a)右圖所示,由于支持力的受力點為接觸面,重力和支持力不共線,故此時二力不能相互抵消,物體不平衡.

Fig. 2 Analysis of the principle of stable equilibrium圖2 物體穩定平衡原理分析
那物體在什么情況下能保持平衡呢?如上所述,當重力的方向與支持力的方向一致時,二力能相互抵消,即物體達到平衡.物體受的重力集中于質量中心(center of mass),簡稱質心.物體與地面的接觸點所形成的凸包,稱之為支撐多邊形(support polygon).根據力矩平衡,若物體在某個姿勢下保持平衡(無人為外力下),物體的質心在重力方向上的投影必須要落在支撐多邊形內.如圖3中白色多邊形就是該物體的支撐多邊形,物體上的白色圓點表示質心,白色多邊形中的黑色圓點表示質心在重力方向上的投影,可見落在支撐多邊形,故物體能保持平衡.本文針對的是與地面只有1個接觸點的物體,故該物體的質心必須落在地面接觸點的正上方,如圖2(a)左圖所示.

Fig. 3 Projection of center of mass falls within the polygon圖3 物體質心投影落在支撐多邊形內
1.2 穩定平衡
那穩定平衡的物體是怎么樣的?當物體受到外力F時,物體偏離初始位置;當撤去外力F時,物體又自行恢復到初始位置.穩定平衡的嚴格定義為,處于平衡狀態的物體,當受到外界的擾動而偏離平衡位置時,外力或外力矩促使物體回到原平衡位置[14].如圖2(a)所示的物體發生傾斜時,重力和支持力的合力矩驅使物體恢復初始位置,而圖2(b)所示則相反,力矩使得物體更加偏移初始位置.這是穩定平衡的本質.
從能量角度考慮,勢能低的物體比較穩定,物體一定會向著勢能低的狀態變化.在圖2(a)中,物體質心較低,當物體傾斜時質心被抬高,造成勢能增加,所以物體具有回復初始位置的趨勢,這也是不倒翁的原理;而在圖2(b)中,物體質心較高,當物體傾斜時質心下降,造成勢能減少,此時物體更加穩定,具有繼續傾斜的趨勢.
給定1個3D數字模型,目標是通過對該模型進行適當的調整變形,使得模型3D打印出來之后能穩定平衡.通過挖空模型內部優化質量分布以調整質心位置,同時允許網格變形.將物體進行體素化,并將每個體素標記為1或0(1代表保留,0代表挖空),最終得到1個二值向量表示物體內部的挖空情況.若此時物體還不能達到穩定平衡,再對物體外表面底面局部范圍內進行形狀的微小修改.
2.1 數學建模
輸入1個三角網格M表示待平衡的模型,輸出2個三角網格MO和MI定義已穩定平衡物體的內、外表面.MO表示初始網格M變形后的效果,而MI代表內部空缺部分形成的邊界.給出物體最低點c*和傾斜角度θ,c*為物體放置時與水平面接觸的那點,確定物體的放置方向.Cone(θ)表示以初始質心c0在截平面的投影點為頂點,頂角為2θ,平行于重力方向的圓錐;p(θ)為Cone(θ)與物體外表面MO相交的所有點,如圖4所示.
根據1.2節分析,若要物體在外力作用下擺動θ角度,撤去外力之后仍能恢復在初始位置,需要滿足質心高度隨著傾斜角度的增加而增加的條件.如圖5所示,當物體平衡放置時,當前質心c離最低點c*的高度為h0,當物體擺動θ角度后,由于最低點的變化質心此時為h1,則有h0
(1)
則有:

(2)
其中,h(θ)表示物體擺動θ角度后質心的高度,具體的表達式為h(θ)=(p(θ)-c)·n(p(θ)).

Fig. 4 Definition of stable angle and other notations concerned圖4 穩定平衡角度定義及相關符號說明

Fig. 5 Analysis of the principle of stable equilibrium圖5 穩定平衡原理分析
考慮物體的穩定性和保型性,建立數學模型:

(3)
其中,EM(MO)是保型項,即衡量外表面MO和輸入網格M的偏差;ECOM(MI,MO)測量質心離理想位置的差距:
ECOM(MI,MO)=λ1‖(c(MI,MO)-c*)⊥g‖2+

(4)
其中,向量g是重力方向(‖g‖=1),αg表示向量α在重力方向上的投影.權重λ1?λ2,μ用于平衡2個目標函數.



其中,F是MO和MI所有三角面的集合,f=(i,j,k)是1個三角面,v是頂點的坐標,*表示按分量逐個乘積.
g(vi,vj,vk)=vi*vj+vi*vk+
vj*vk+vi*vi+vj*vj+vk*vk.
2.2 挖空算法
為了更加直觀地感受挖空物體內部對物體質心帶來的影響,將物體內部用體素來表示,即體素化物體[15].體素的表達避免了挖空內部可能產生的懸空、自交等情況.賦予每個體素1個二值變量αi(0表示挖空,1表示保留),所有體素的值構成1個向量α.挖空之后,物體內部輪廓由體素的邊界組成,如圖6所示:

Fig. 6 The sectional view after carving圖6 挖空后物體的截面圖
首先設置初值α0為所有的體素都保留,即α0=(1,1,…,1).為了避免將物體挖空到很薄,將預留tmin的壁厚,即離物體外表面MO距離tmin是不被挖空的.tmin由用戶根據物體的材料屬性輸入.
此處采用快速啟發式的挖空算法來近似最優的體素挖空.首先,從物體的平衡性考慮,給定物體的當前質心c0=c(α0),假設有1個截平面經過最低點c*并且垂直于(c0-c*)⊥g,如圖7所示.若想將質心c0調整至c*的正上方,需挖空截平面包含c0的一側,反之質心會更加偏離c*.將體素依照距離截平面的遠近降序排列:
(5)
其中,ri為第i個體素的中心.距離為負數的體素直接忽略.為方便說明,將能量函數ECOM(MI,MO)分成2項:

(6)

(7)


Fig. 7 A heuristic carving strategy圖7 啟發式挖空策略
挖空的具體算法如下:
算法1. 挖空算法 Carving Algorithm.
輸入:物體的三角網格表示M、放置時的最低點c*、最小壁厚tmin、閾值τ,ζ;
輸出:挖空后內部形成的內表面網格MI.
Step1. 在最小壁厚tmin的限制下,將物體體素化;
Step2. 計算每個體素的di,并將體素降序排列;
Step3. 逐體素挖空(用向量α表示),直到ECOM不再減少為止;
DO
{

跳出本次循環;
END IF
END WHILE

跳出本次循環;
END IF
END WHILE
} WHILEECOM不再減少為止
Step4. 根據α計算出物體內表面網格MI.
該啟發式算法避免了挖空之后懸空部分的存在.另外,每次挖空之后要更新能量值,逐體素挖空的方法使質心的計算更加有效,只要增加新三角面對應的值減去覆蓋的三角面對應的值即可.
2.3 形狀修改
若挖空還不能讓物體達到θ角度范圍內的穩定平衡,由于穩定平衡與底部形狀相關性最大,而且底部的形變對物體整體形狀視覺上的影響最小,允許物體底部微小范圍內進行修改.為了將問題簡單化,規定物體外表面形狀的改變由點的移動來描述,并且頂點只在它的法線方向移動.此時有:

(8)
其中,ξ(p)為頂點的移動距離.
2.4 穩定平衡優化算法
結合式(3)(4)(8)可將能量函數具體化為



(9)
目標函數式(9)相當復雜:它有1個描述體素挖空狀態的離散變量α以及1個表達物體底面形狀修改的距離ξ(p).本文采取迭代優化的方法進行穩定平衡優化,如圖8所示:

Fig. 8 Flow chart of optimization algorithm圖8 優化算法流程圖
穩定平衡優化算法具體如下:
算法2. 優化算法(optimization algorithm).
輸入:物體的三角網格表示M、放置時的最低點c*、最小壁厚tmin、傾斜角度θ、閾值τ,ζ;
輸出:挖空后內部形成的內表面網格MI、形變之后的外表面MO.
Step1. 固定外表面網格MO,即固定ξ(p),利用算法1尋找物體內部最優的質量分布即α;
Step2. 在內表面網格MI不變的情況下,即固定α,尋找最優的外表面網格變形ξ(p);
Step3. 計算式(9)中目標函數的值;
Step4. 重復上述步驟,更新α和ξ(p),直到目標函數式(9)不再減少.
本文方法能讓物體在原本不能靜止放置的方位平衡放置,并且在小范圍的擺動內仍不倒.本文測試了多個例子驗證了該方法的可行性.
我們通過1個二維拉伸物體的例子來具體說明
本文的方法.如圖9所示,1個蘑菇形狀的截面圖(如圖9(a)所示),圖9(e)所示“+”表示物體初始的質心,“○”表示迭代過程中的質心位置變化.由第1節可知,物體的質心不在物體與水平面唯一接觸點的正上方,故該物體不平衡.首先對物體的外表面進行偏移并且體素化,設置tmin=0.04,以免挖空之后的壁厚過薄.第1步,對物體進行挖空,設置挖空分辨率為25,ζ=0.01,τ=0.03,挖空情況如圖9(a)~(d)所示,質心的變化如圖9(e)所示.此時物體已達到平衡.

Fig. 9 The process of iteratively carving and change of center of mass圖9 物體迭代挖空優化過程以及質心變化
第2步我們通過修改底部形狀來實現θ=10°范圍內的穩定平衡.經過優化計算,修改后的形狀如圖10所示.對于算法2,在實際操作中,只要1次迭代就能達到很好的效果.

Fig. 10 The result of modifying圖10 底面修改結果
通過FDM 3D打印機將物體進行打印制造.由于FDM的特點,物體內部挖空后形成的懸空部分會出現不好的效果.慶幸的是,我們不能看到內部的構造,打印產生的瑕疵可被隱藏.對打印材料的部分懸掛可能會對物體的質量分布產生影響,因為影響太小忽略不計.
圖11(a)顯示的是該測試例子打印實物在受到外力之后自我擺動的效果(視頻截圖),圖11(b)是倒立不倒翁物體在穩定平衡過程中的視頻截圖,可發現本來很難平衡的2個物體經過本文方法之后變得像不倒翁一樣分別在傾斜角度θ=10°和θ=15°內仍能回到初始位置.

Fig. 11 The object reached stable equilibrium (video screenshot)圖11 已穩定平衡的物體(視頻截圖)
由于針對與水平面只有1個接觸點的物體,質心在水平方向上的容差很低.這導致了一些極端的物體是無法通過挖空來達到平衡,有些不能達到穩定平衡.如圖12所示的物體均能倒立,至于穩定平衡只能做到很小角度內的.實際操作中,物體被觸碰的角度往往會超過這個角度范圍.同一個物體通過不同挖空可停留在不同的姿勢,如圖13所示.

Fig. 12 Balanced objects (static photo)圖12 平衡物體(靜態照片)

Fig. 13 Same objects with different gesture (static photo)圖13 同一物體不同放置姿勢(靜態照片)
本文只針對采用同種材料進行物體質量分布的調整,多材料的填充可以讓更多的物體達到平衡狀態.由于目前3D打印技術的局限,我們將這項工作列為未來規劃.對于3D打印制造物體時內部出現的懸空問題,可以通過將物體一分為二分別打印再粘合的方法來解決.不過這又會帶來新的問題:物體表面會顯得不美觀,因此本文沒有采取這種方法.
對于多組件物體的穩定平衡優化,分為2種情況考慮:
1) 相對簡單的靜態多組件物體,即組件之間不考慮相對運動.此種情況下,可將多組件物體等同于1個組件物體來考慮,但由于成為組件的邊緣部分不可被挖空,在挖空中需要考慮.具體的做法如下:對多組件進行求并運算,得到2.1節中的最初輸入M,同時記錄原多個組件的外表面;結合給定的最小壁厚tmin,將表示物體挖空情況的向量α0做出一些標記,將組件的邊緣標記為不可挖空;在優化過程中不挖空組件的邊緣部分,將挖空結果和原多組件求交運算即可得到每個組件的挖空結果,從而達到整個靜態多組件的穩定平衡狀態.
2) 動態多組件物體,由于物體在挖空的過程中,由于重心不斷變化而引起物體的形態變化,從而再次引起重心變化.該過程涉及力學、時間變化,本文很難用類似的算法給出很好的方案去優化此類物體.但該問題必定是個有趣且值得考慮的問題,我們將其列為又一項未來工作.
本文實現了如何將待打印的模型變成可穩定平衡的物體.本文的方法結合了平衡的能量函數和保持物體大部分外表面不變的保型措施,也避免了直接在物體底部加上1個底座這樣直接的做法.介紹了一個啟發式的體素挖空算法,讓物體達到平衡的同時最穩定;然后通過不倒翁的原理對底面進行變形使得物體達到最佳的穩定狀態.通過多個測試例子,驗證了本文方法的有效性.
[1]Wu Huaiyu. 3D Printing: 3D Creation via Intelligent Digitization[M]. Beijing: Publishing House of Electronics Industry, 2014 (in Chinese)(吳懷宇. 3D打印:三維智能數字化創造[M]. 北京: 電子工業出版社, 2014)
[2]Liu Ligang, Xu Wenpeng, Wang Weiming, et al. Survey on geometric computing in 3D printing [J]. Chinese Journal of Computers, 2015, 38(6): 1243-1267 (in Chinese)(劉利剛, 徐文鵬, 王偉明, 等. 3D打印中的幾何計算研究進展 [J]. 計算機學報, 2015, 38(6): 1243-1267)
[3]Hu Ruizhen, Huang Hui. Recent progress in 3D printing inspired fabrication optimization [J]. Journal of Computer-Aided Design & Computer Graphics, 2015, 27(6): 961-967 (in Chinese)(胡瑞珍, 黃惠. 3D打印啟發下的模型實例化優化研究綜述 [J]. 計算機輔助設計與圖形學學報, 2015, 27(6): 961-967)
[4]Wang Weiming, Wang Tuanfen Y, Yang Zhouwang, et al. Cost-effective printing of 3D objects with skin-frame structures [J]. ACM Trans on Graphics, 2013, 32(6): Article No 177
[5]Stava O, Vanek J, Benes B, et al. Stress relief: Improving structural strength of 3D printable objects [J]. ACM Trans on Graphics, 2012, 31(4): Article No 48
[6]Vanek J, Galicia J A G, Benes B. Clever support: Efficient support structure generation for digital fabrication [J]. Computer Graphics Forum, 2014, 33(5): 117-125
[7]Luo Linjie, Baran I, Rusinkiewicz S, et al. Chopper: Partitioning models into 3D-printable parts [J]. ACM Trans on Graphics, 2012, 31(6): Article No 129
[8]Prévost R, Whiting E, Lefebvre S, et al. Make it stand: Balancing shapes for 3D fabrication[J]. ACM Trans on Graphics, 2013, 32(4): Article No 81
[9]Przemyslaw M, Thomas A, Michael B, et al. Reduced-order shape optimization using offset surfaces[J]. ACM Trans on Graphics, 2015, 34(4): Article No 81
[10]Yamanaka D, Suzuki H, Ohtake Y. Density aware shape modeling to control mass properties of 3D printed objects[C]Proc of SIGGRAPH Asia 2014 Technical Briefs. New York: ACM, 2014: 7-10
[11]B?cher M, Whiting E, Bickel B, et al. Spin-it: Optimizing moment of inertia for spinnable objects [J]. ACM Trans on Graphics, 2014, 33(4): Article No 96
[12]Liu Yanzhu. Tumbler, turn-over tortoise and Gomboc [J]. Mechanics in Engineering, 2010, 32(2): 147-149 (in Chinese)(劉延柱. 不倒翁、烏龜翻身和岡布茨[J]. 力學和實踐, 2010, 32(2): 147-149)
[13]Cao Chunmei, Zhang Xiaohong. Mechanics analysis of tumbler [J]. Physics and Engineering, 2002, 12(1): 10-11 (in Chinese)(曹春梅, 張曉宏. 不倒翁的力學分析[J]. 物理與工程, 2002, 12(1): 10-11)
[14]Fan Qinshan, Guo Guanglin. Engineering Mechanics 2[M]. Beijing: Higher Education Press, 2011 (in Chinese)(范欽珊, 郭光林. 工程力學2[M]. 北京: 高等教育出版社, 2011)
[15]Wu Xiaojun, Liu Weijun, Wang Tianran, et al. Modified polygonal mesh voxelization based on Euclidean distance measurement [J]. Journal of Computer-Aided Design & Computer Graphics, 2004,16(4): 592-597 (in Chinese)(吳曉軍, 劉偉軍, 王天然, 等. 改進的基于歐氏距離測度網格模型體素化算法 [J]. 計算機輔助設計與圖形學學報, 2004,16(4): 592-597)

Wu Fenfen, born in 1992. Master. Her main research interests include computer graphics, geometric processing and modelling.

Liu Ligang, born in 1975. Professor and PhD supervisor in the University of Science and Technology of China. His main research interests include geometric processing, computer graphics, and image processing.
Stable Equilibrium Optimization for 3D Printed Objects
Wu Fenfen and Liu Ligang
(SchoolofMathematicalSciences,UniversityofScienceandTechnologyofChina,Hefei230026)
3D printing is increasingly popular, giving the public the ability to create objects. First of all, a 3D digital model is constructed by 3D modeling software, and then manufactured via 3D printer. Virtual environment with no physical rules makes the model stand with diverse gesture, but failed in the real world. We put forward the stable equilibrium optimization problem for 3D printed object for the first time. To solve this problem, we propose a stable equilibrium optimization algorithm based on the principle of the tumbler, which can make the object achieve stable equilibrium. Specifically, we voxelize the object iteratively from horizontal and vertical direction voxel by voxel until obtaining the best carving result, measured by an equation; for some exceptions, we continue to modify the bottom within an acceptable small range to achieve stable equilibrium. This novel heuristic carving strategy avoids possible problems such as suspension, self-intersection, etc. Modification of the bottom part within the small range also ensures that the shape of the object is basically unchanged. The feasibility of the proposed method is demonstrated by several examples of successful optimization. The limitation is that multiple material is not considered in this paper for the complexity of operation, which is to be explored in the future.
stable equilibrium; optimization; 3D printing; voxelization; tumbler
2015-10-13;
2016-04-19
國家自然科學基金項目(61672482,11626253);中國科學院“百人計劃”項目 This work was supported by the National Natural Science Foundation of China (61672482, 11626253) and the Hundred Talents Program of Chinese Academy of Sciences
劉利剛(lgliu@ustc.edu.cn)
TP391.41