一、題目的提出
+ J5 ]7 E' _8 t( w
7 P4 _) c8 k( \6 J: f n" F7 XAutodesk Inventor 2011數字樣機制造解決方案集成來自產品開發流程所有階段的設計數據,用以創建單一的數字模型。這個單一的數字模型能夠仿真完整的產品,并可以對數字模型進行CAE有限元分析,幫助工程設計職員在制造物理樣機前更好地可視化、優化和治理其設計。我們在做大型裝配時比較耗資源,某些時候,當打開較大的模型時,Inventor會由于內存不足而退出。如圖1所示的“挖掘機”模型,文件比較龐大,零部件數目非常多。用Inventor打開這樣的模型,進行修改和編輯,往往需要花費了比較長的時間,假如機器配置不高,可能常出現內存不足的提示。Inventor本身消耗的資源比較大,當碰到大型裝配時,資源的消耗將會大大地增加以至內存顯示為“黃色”,嚴重時內存會顯示為“紅色”,幾乎是已經到達崩潰的邊沿。 二、計算機的軟件優化辦法
' x, U# O1 n( |$ b/ @6 G/ Y2 _: [* `) f; }
對運行Inventor的計算機,優化其Windows操縱系統和Inventor軟件都應該是一個不錯的辦法。
, l0 v8 T' ~5 U* f0 b: |% t
: _, L* `8 Y+ }2 I! n1.操縱系統的優化辦法* b8 o Z0 m) R2 s
4 v; s( a6 [( H& C* @1 \, a, U0 S
(1)Inventor 2011完全兼容Windows XP SP3,Windows Vista和Windows7系統,根據用戶目前電腦配置情況,一般配置(CPU不低于:Intel P4 2.8GHZ,內存不低于:1GB,獨立顯卡,硬盤不要低于:40GB)的計算機可采用Windows XP SP3,高于一般配置且內存在2GB或更大的配置,可采用Windows Vista或Windows7系統。
) r7 E+ L% h% Z6 o! ~$ Q, T M* {$ Q( |! d6 ]- h- j; j: R
(2)以Windows XP為例,我們在“系統選項”中設置“調整為最佳性能”,這樣可以使操縱系統少占用虛擬內存資源。再在“系統選項”中選擇“高級”,并對虛擬內存的頁面文件大小進行設置。這里建議將虛擬內存設置為物理內存的二倍左右。: `! k4 {+ I2 v: x
- `! J) S! X! D; P Q" K: B
(3)運行“msconfig”,把Windows操縱系統在開機啟動時不需要自動運行的選項勾選往掉,不同的個人電腦,該啟動配置和啟動執行個數都不一樣。該方法既可以節省虛擬內存資源,還可以進步操縱系統的啟動速度。
1 X/ f, D% ~! X: ^) @7 v, N5 N0 H4 R) @& M3 e6 H
(4)運行“regedit”,啟動注冊表編輯器,然后找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\& Z1 a$ S2 t9 R( i& I
MemoryManagement\。選擇“DisablePagingExecutive(禁止頁面文件的執行)”,設置鍵值為“1”,這樣可以從一定程度上改善內存的性能,進步系統的運行速度,究竟內存運行速度比硬盤快得多。
$ e# J6 H1 P" V! P: h0 q
. U9 a4 u* \5 K' o3 a2.Inventor 軟件的優化辦法
1 W- P8 P& r" T$ ~! Q8 Q" j/ D
+ k1 X" \" ]$ F& S4 [(1)在使用大型部件文件時,請封閉無需打開的所有應用程序,以減少內存與硬盤的頁面置換。
0 Y! _5 w, c+ \5 i+ E+ e
0 H. E' q1 c b7 d ]! O(2)在零件文件中,盡可能封閉標準庫零件、螺旋和彈簧等的可見性;在裝配文件中,盡可能封閉不需要顯示的零件和部件,或在總裝配中使其不可見;在工程圖中,盡量封閉或最小化工程圖中不需要的文件。
+ H$ J4 C& n4 ]( D& D# n% K/ C- N/ X' ]! u4 L
(3)進步內存的空閑使用空間。
3 y( |9 h9 F: }; Q; {+ b( X2 |
% O( V) v8 f/ ~0 E0 h5 P K4 ~(4)在裝配的過程中,有些時候有重復使用的零件或標準件,我們可以考慮僅放置一個。并且對BOM表和明細欄執行數目替換,以正確捕捉設計中所需的零件或標準件數目。
: \# v) H4 q$ d) B+ S1 x7 f/ Y
( c7 Y2 Y3 C* k) D(5)在“工具”菜單下點擊“應用程序選項”,并打開“工程圖”選項卡,往掉“顯示線寬”并啟用“內存節約模式”,還可以設置預覽顯示為“所有零部件”或“邊框”,如圖2所示設置。內存節約模式 (Memory Saving Mode)指Inventor在視圖計算之前或視圖計算過程中保存性地使用內存,但經常導致性能損失。它通過更改加載和卸載零部件的方式來保存內存。在設計時可以往掉“顯示線寬”模式,出圖打印時可以再把它設置回來。還可以把“預覽顯示為”設置成“部分(Partial)”或“邊框(Boundingbox)”。除了以上設置,還可以設置“常規(General)”選項卡,在大型裝配時,將“撤銷文件大小(Undo filesize)”設置為“512MB”,這個設置可根據內存大小和裝配用量進行設置。還可以設置“顯示(Display)”選項卡,在大型裝配時將“顯示質量(Display quality)”設置為“粗糙(Rough)”,以減少內存和顯存的使用量。 三、Inventor軟件輕量化裝配的優化辦法- n$ O: a. L! z* `; g0 |# c9 I
8 j6 X3 U/ Y+ W" a7 S
事實上,運用Inventor自身功能對大型裝配進行優化(一個裝配由零件和子裝配構成),可以從優化零件和優化子裝配的角度著手。優化的方法有:簡化設計的零部件、抑制設計的零部件、衍生設計的零部件、裝配替換和衍生裝配。
b6 ?" v: e4 l0 ?
+ Z& z8 x! R& Q x0 Y) |1.簡化設計零部件7 H' O3 r* K" N2 ^5 D
1 Y- ~8 w# ?+ D. |" z* i
零部件越復雜,創建的模型細節的數目越多,文件就越大。而在大型的裝配中,會有很多大的零部件文件進行裝配,再好的計算機也會被“拖垮”,能不能在不影響裝配關系的情況下簡化零部件模型結構方法呢?如圖3所示,就是齒輪原始結構和經過簡化后的文件大小。
u* z# A2 n# E4 t$ Q5 \% H8 r$ `+ O- A7 F7 n" s
簡化模型通過往除圓角、倒角和漸開線齒,使得簡化結構的模型與原始結構模型的文件大小相差341.5KB。因此若從零件角度對裝配進行輕量化,就必須對一些復雜零件的特征進行篩選,將零件不影響裝配關系的特征做抑制或造型終止處理,使某些結構造型不帶進到裝配中。如一些零件的工藝倒角、倒圓,退刀槽,齒形和螺紋等。通常,簡化特征結構和簡化裝配有以下幾種方法。 (1)抑制特征處理。抑制特征功能既可以對零件模型特征進行抑制,還可以對裝配部件進行抑制。在完成零件構建和裝配設計后,將某些特征或裝配部件做抑制處理。具體的方法是:在模型瀏覽器中,選擇不需要帶進裝配的特征,將鼠標放置到特征上點擊右鍵菜單并選擇“抑制特征”,留意選擇的特征必須不是其他特征的父特征。
% o$ c" e& p& H5 f) d2 x4 q: X7 R% |7 e
(2)造型終止處理。構建零件模型之前,我們可以考慮把倒角、倒圓、退刀槽、齒形和螺紋等模型特征放在模型瀏覽器(也稱“特征樹”或“模型樹”)的最后構建,而這些模型特征是可以不需要帶進到裝配中的。在瀏覽器中,將“造型終止”拖到這些模型特征的前面,這些特征就會被過濾出來,功能和零件抑制特征很相似。% S. k9 m) B- e$ d
9 P# J0 L/ Z5 M; p$ g' ~(3)裝配環境中的不可見處理。不可見處理和抑制特征處理在作用上有些相似,抑制就相當于把模型從裝配中移除掉了;而不可見的模型還存在于裝配之中,內存仍然加載該模型,只是把不可見的模型隱躲掉了,這樣可以節約顯存空間,進步文件打開和文件更新速度。在完成零件構建和裝配設計后,將某些特征或裝配部件做不可見處理。具體的方法是:在模型瀏覽器中,選擇不需要顯示的裝配的特征,將鼠標放置到特征上點擊右鍵菜單并選擇“不可見”,將零件勾選往掉。0 B9 k% s9 m+ p1 p2 @
, D# s! i. Q& j+ M(4)裝配環境中的啟用處理。啟用處理和不可見處理在功能上有些相似,不可見就相當于把模型從裝配中隱躲掉;而啟用是把零部件半透明化地顯示在裝配中,但模型仍然被裝配引用,這樣可以進步文件打開和文件更新速度。可以在完成零件構建和裝配設計后,將某些特征或裝配部件做啟用處理。具體的方法是:在模型瀏覽器中,選擇不需要啟用的裝配特征,將鼠標放置到特征上點擊右鍵菜單并選擇“啟用”,使零件勾選往掉,如圖所示。 # E3 n; | t1 G/ Q( @
以上介紹的這4種方法是用來簡化零件設計的,前面2種用抑制特征處理和造型終止處理來簡化模型,區別不是太大,它們都能有效地減小零部件文件大小,節省內存使用空間。后面2種用裝配環境中的不可見處理和啟用處理,在作用上也沒有太大的區別,它們可以節約顯卡的顯存空間,進步文件打開和文件更新的速度。這4種方法是最常見的輕量化設計辦法,我們還可以在某些情況下通過隔離(Isolste)、i Mate圖示符可見性(iMate Giyph Visibility)、自適應(Adaptive)和接觸集合(Contact Set)等方法來簡化零件的設計。
' C" N4 o$ V$ h- \
: Q( x* H. [* d b$ V* _+ K" k事實上,簡化設計零部件也有其一定的局限性,首先,由于對模型特征進行了抑制,也就是改變了模型本來的特征,這必然會改變零件的物理屬性。例如零件的質量、中心和表面積等。但這些變化大多數情況下比較微小,可以忽略不計。第二,由于零件的本來特征被改變了,在后期出工程圖時也將不能真實反映模型外形。因此在出工程圖前還需要解除對簡化特征的抑制。而工程圖和裝配都是和零件關聯的,并會隨時更新,這就產生了矛盾。因此可以考慮采用裝配環境中的不可見處理和啟用處理,固然在裝配中零部件被處理成不可見或半透明顯示,但它們仍然被裝配所引用,存在于內存之中。 2.衍生零部件設計
9 p. s1 t8 x7 v) f* H
% L9 n9 g8 L& m2 c1 K7 X& ~+ C% y1 o衍生零件是引用現有零件以關聯復制實體、曲面和其他信息(例如草圖、定位特征、模型特征和參數)的新零件。衍生部件可以過濾掉我們不需要帶進到新零件中的特征方法。當新特征添加到基礎零部件或編輯衍生特征時,衍生零件將隨這些變化而更新。通過衍生的方式,將子裝配轉換成一個零件代替原來的子裝配裝進到總裝配中。其中,零件級和裝配級文件都可以衍生。
% N$ q8 T, S) B! [) i2 V4 U
2 N" Z. |0 E. @+ L2 A用戶可以將自己所設計的裝配文件看成是一個子裝配,并將其轉換成一個零件。具體的操縱步驟如下:
% h' t& D/ _4 _' w& g! q6 r) D% u
5 r, y7 d4 D" \3 G(1)新建一個零件,退出默認的草圖環境,切換到模型環境并刪除“草圖1” (Sketch1)。) s9 @# u, p3 W9 ]( b$ k2 K+ ~
/ {1 I& o% [9 w* n/ Q6 _
(2)在軟件面板中選擇“治理(Manage)”標題欄,點擊“衍生”按鈕。選擇要衍生的裝配文件。" [/ D4 I$ ~. S
7 u) F% H# C( u, E9 F+ I$ E6 t9 F/ y
(3)系統會彈出“衍生部件”對話框。為了能更好地減少資源消耗,可以在對話框中選擇不需要帶進到總裝配的零件。
% X. i4 K6 D. x+ J, q; _; ^+ M3 Q! O- P1 o0 E9 G
把沒有被變更的子組件和載進的組件、在設計上不需要的特征和派生組件作為一個零件來處理,這樣就將一個子裝配轉換成了零件,而這個零件會與子裝配跟隨關聯。很明顯,除了能夠減少內存的消耗,衍生(Derived)對子裝配也存在一定的影響。
+ e" D( ~6 h+ L* L& u
) C4 m8 \$ m: J(1)對于物理特性來說,子裝配的衍生體是一個零件,對于一個零件來說只有一種材料,而子裝配中卻可能有多種材料。因此衍生體不能在材料特性方面正確地反映子裝配。假如在衍生的設置過程中排除了一些零件,不僅材料不完整,而且衍生體的重力和重心等物理特性也都與原來的子裝配不同。衍生不能夠把本體的“iProperties”帶進到衍生體中,因此除了物理特性外,其他的特性也只能手動輸進,不能與原子裝配關聯。. S$ S; i8 }( @4 t$ T
0 ]' r, V' b' p(2)在工程圖方面,子裝配的工程圖不會改變,而總裝配的工程圖有一些變化。前面說過,衍生體的“iProperties”與原子裝配不能關聯,而在總裝配明細表中的子裝配(即衍生體)的特性是不會隨原子裝配改變而改變的。正常情況下,將原子裝配裝進總裝配中,在BOM表和明細表中可以顯示子裝配下的各個零件。而將衍生體裝進總裝配中,卻做不到這一點,究竟它只是一個零件。這對于總裝配工程圖來說影響并不是很大,由于在大多數總裝配工程圖中,并不會把子裝配的零件標識出來,一般使用明細表的第一級即可。
; y: _( D) n* l% u; S4 B
; w3 i! ?# g' u+ u通過上面的分析,衍生功能在輕量化裝配中還存在一些缺點。衍生功能只能夠把模型大多數幾何屬性帶到新的模型中,而不能把模型的“iProperties”帶進到新的模型中,衍生機制不能治理到零件的特征級別,也不能夠在衍生的時候抑制零件特征,在使用時要留意揚長避短。; d2 a# l3 n. J
; d, L0 X) g, x5 a# I
3.裝配替換
( K% o+ ^: f0 a8 K2 _8 B- q
) `0 i/ s: R! c. V4 d$ R7 x9 D/ A當操縱者不需要訪問整個裝配圖,但必須要查看零部件與裝配之間的相互關系時,可以使用新的簡化零部件來替換原始零件表示某個裝配關系。假如想隱躲大量細節,就可以使用簡單的零件來表示裝配。也可以使用“衍生裝配”(Derived Assembly)工具天生一個替換零件,該替換零件線條簡潔,能夠精確地表示主裝配的位置關系。此外,“衍生(Derived)”功能是一個低內存消耗模式的工具,因此基于衍生零部件的替換零部件消耗的內存更少,自適應更新速度更快。圖為把復雜的原始模型替換為簡單模型。 “替換(Replace)”和“替換所有(Replace All)”功能可以替換零件和子裝配,操縱方法很簡單,在模型瀏覽器中選擇某個要被替換的零件或子裝配并點擊鼠標右鍵,在下拉菜單中選擇“零部件(Component)→替換(Replace)”,之后在出現的裝進零部件(Place Component)對話框中選擇要替換的文件,接著點擊“打開(Open)”,系統會出現一個警告對話框,提示約束可能丟失(Possible Constraint Loss),點擊“確定”即可。在這里,操縱者需要重新匹配零件的約束位置,假如匹配找不到或出錯,接著又會出現替換零部件對話框,操縱者必須再次對零部件約束進行引導并重新裝配約束關系。事實上,替換(Replace)對子裝配也存在一定的影響,具體如下。. ]; G- |+ I& T
: O. X+ B: s5 n( f$ I7 k(1)通過具體等級具體表達控制“替換零件”文件,裝配中的其他所有零部件將被抑制并隱躲在瀏覽器中,“iProperties”仍將反映父裝配的主具體等級(Master Level ofDetail)。裝配的所有約束、質量屬性和材料清單的數據全部保存在主裝配中,因此使用裝配替換零件不會對材料清單或工程圖產生任何影響。
# s3 Q4 J# ?' }1 b
0 ]% J8 E, \# y1 }! D: l, d; d(2)創建基于衍生零部件的替換零部件,利用較大的衍生裝配減少內存消耗,而該子裝配是以零件的身份出現在總裝配中,因此被替換的零件在總裝配瀏覽器中沒有任何特征節點,因此不便于特征的編輯修改。# r% ^9 \8 D1 i( X( ]! z( x" B( C) l6 d
7 p8 ?, y% Q5 ~2 z( `' W0 |0 b4.使用“具體等級”對子裝配進行修改/ C# E* m$ ^3 x" j( j' `! d; O
6 c0 y# j: W" a/ i
大型裝配中一般會有比較復雜的子裝配,而在總裝配中,子裝配的內部結構對于總裝配來說并不是很重要,因此可以采用簡化子裝配的方法來減少資源的消耗。要簡化子裝配可以通過“具體等級”來完成,將子裝配中的內部零件和不影響總裝配的零件抑制或衍生部件。這樣在調進總裝配時,那些被抑制和衍生的零部件將不會占用很大的內存,從而達到減少消耗資源的目的。另外一個方法就是采用包覆面提取和包覆面替換,這種方法由于能夠保存BOM的零部件結構,繼續零件的物理特征,因此在裝配中被工程師大量使用。
G$ U# k3 z h4 {3 W
m1 Q0 `6 d: r% F在瀏覽器中,選擇“具體等級(Level of Detail)”,在右鍵菜單中選擇“新建替換(New Substitute)”。
t& G7 P9 D0 i* f: h6 I/ a3 D, ^9 ?5 t/ y# h3 \0 F/ w% \9 K
(1)衍生部件(DeriveAssembly)。和前面的衍生一樣,不同之處在于,這里的衍生部件只是基于具體等級下進行零部件的衍生來治理零部件裝配。具體的操縱步驟為:打開一個裝配文件,在瀏覽器中,選擇“具體等級(Level of Detail)”,在右鍵菜單中選擇“新建具體等級(New Levelof Detail)”。這時系統會產生一個新的具體等級,重命名并自動將其激活。在下拉菜單中選擇“新建替換(NewSubstitute)→衍生部件(Derive Assembly)”,系統將出現保存更新提示對話框,點擊“是(Yes)”,代表對具體等級中的文件進行保存更新,接著出現“新建衍生替換零件(NewDerived Substitute Part)”對話框,操縱者需要對新零件的命名、模板和新文件的位置進行定義,點擊“確定(OK)”即可。接下來,就是如上所述的“衍生部件設置”,在此不再贅述。設置完后點擊“確定(OK)”并返回到模型環境,系統將自動保存該衍生提取的文件。
" ?4 u1 O6 s2 Q- H6 U* @$ P. c0 E) n9 d4 p
(2)包覆面提取(Skrinkwrap)。包覆面提取是衍生的一個加強機制,也是基于具體等級下進行零部件的衍生機制,該功能在治理零部件裝配時比衍生部件徹底,消耗的內存和顯存也最小。具體的操縱步驟和上面衍生部件一樣,這里不做贅述,只是包覆面提取對話框和前面有所區別。; J$ ~! W+ a" r9 C+ b( o T
* p2 _7 _. U) W& \' d0 v' {. Y(3)選擇零件文件(SelectPart File)。選擇零件文件是基于具體等級下的對子裝配文件的替換,它可以把一個原子裝配替換為一個與之不相干的簡單零件。具體的操縱步驟與之前的衍生部件操縱一樣,操縱者需要執行“選擇零件文件”,系統將出現“裝進零部件(Place Component)”對話框,選擇要替換的文件,接著點擊“打開(Open)”系統會出現一個警告對話框,點擊“是(Yes)”,系統提示選定的零件將被標記為“替換”——零件標記為“替換”意味著將禁用所有外部參照鏈接,所有鏈接都將返回至原始狀態。返回到裝配級環境,最后保存裝配文件即可。
, y6 e7 `# N% H% c+ N. k% E, i/ P- P' X; r& S
在“具體等級”輕量化裝配的3種方法中,采用具體等級的衍生部件處理方法,和前面的衍生零部件設計方法沒什么太大區別,它針對整個零部件,衍生后只是一個實體,無法保存零件外表面特征和“iProperties”物理特性,無法直接進進下一級裝配,內部結構全部被保存,導致輕量化裝配不徹底,且質量屬性不能動態關聯。我們也可以選擇盡不相干的零件來替換(即選擇零件文件),但沒辦法按照原部件方式直接進進裝配,而且原部件的外形和物理特性也無法保證,這也是輕量化不徹底的一種方式。而采用包覆面提取(Skrinkwrap)或覆面提取替換(Skrinkwrap Substitute),可以直接進進上一級的裝配,不僅便于對零部件的治理,不影響BOM表的數據結構,而且可以進步冷容量的利用和性能,大大節約內存和顯存容量,還有就是不影響工程圖的表達,是一種比較理想的輕量化處理模式,因而被廣泛應用。3 X) M7 t& c. ^5 @3 |7 I
q) w. D+ H# P& n另外,必須提醒讀者留意的是:“包覆面提取(Skrinkwrap)”和“包覆面提取替換(Skrinkwrap Substitute)”在功能上是不一樣的。“包覆面提取”產生的是零件級的零件文件,而“包覆面提取替換”和瀏覽器中新建具體等級的包覆面提取是一樣的,產生的子裝配為裝配文件。; m2 p$ N* O; F; @& \" k/ ^2 v
+ w: o; u; r% D$ V* x# K: g; ?
五、總結
' Z' v! ?2 [- n5 g4 S! d6 E, Z' h& d9 A, [5 b: N1 i9 d$ V
在前面論述的內容中,筆者介紹了利用調整系統操縱軟件和Inventor軟件來進步計算機運行速度的方法,以及輕量化裝配中的大型裝配的優化方法,所有這些都是為了進步系統運行速度和性能,減少模型重建的時間,特別是大規模的裝配設計,能夠從優化設計角度往進步工程師的設計效率,讀者用戶可以根據具體情況選擇以上的優化方法。 經驗證確實可以提高運行速度。 , Y, o I6 D4 d% _/ ^, \
|