第一篇:常見(jiàn)問(wèn)題總結(jié)
如何降低Noise
方法一:普通亮度下,犧牲幀率
方法:在pline_table中修改,降低shutter,Gain值略做減小。
方法二:低亮度下,犧牲圖片亮度
方法:在Pline table中修改,shutter值不變,gain值降低
方法三:調(diào)整對(duì)應(yīng)的EE和ANR參數(shù)
方法四:降低當(dāng)前圖片的飽和度
降低PCA或CCR
照片ISO小暗環(huán)境才400左右這個(gè)問(wèn)題有兩個(gè)原因?qū)е拢?/p>
1.Mini ISO 低
2.capture AE Pline table最大的gain 為6倍。
基于上面兩個(gè)原因,暗處計(jì)算出來(lái)的ISO 就低。
因?yàn)樾薷腁E pline table 會(huì)影響capture 的noise表現(xiàn)。我這邊建議修改Mini ISO(這個(gè)值反應(yīng)sensor的敏感度,但目前只是用來(lái)計(jì)算ISO 值)。建議修改到100.修改文件: camera_tuning_para_xxx.cpp
56-->100, // u4MiniISOGain, ISOxx
使用82 CCT做CCM時(shí)只生成一組參數(shù)
貴司的操作 是 Muti CCM。也就是說(shuō),貴司的操作 CCM 生效的在 camera_tuning_para_ov8858raw.cpp文件中的 CAMERA_ISP_DEFAULT_VALUE 里面的ISPCcmPoly22 這個(gè)結(jié)構(gòu)體。
而 camera_isp_regs_ov8858raw.cpp 中的 CCM 部分 是 Dynamic CCM。
如果需要使用 Dynamic CCM 的參數(shù)。因?yàn)?82 的 cct tools 并沒(méi)有把 gen Dynamic CCM 的功能打開(kāi)。
可以使用 92 的 cct tools,在 CCM 頁(yè)面 按照相同的操作,在每次 add new poly data 之前 使用 右上角的 矩陣下拉菜單 保存到對(duì)應(yīng)的色溫下。
如何開(kāi)啟 Dynamic CCM 的功能,請(qǐng)參考 isp_tuning_customer.cpp 檔案中的is_to_invoke_dynamic_ccm 函數(shù)
返回值是 MTRUE 表示 使用Muti CCM。
返回值是MFALSE 表示使用Dynamic CCM。
默認(rèn)使用的是 Muti CCM。
因此貴司反饋 camera_isp_regs_ov8858raw.cpp文件中只產(chǎn)生D65一組參數(shù),CWF,TL84,A對(duì)應(yīng)的參數(shù)都是0.電話:+86 755 2663 0099 分機(jī):85016
Camera 快速入門MediatekSupportCamera Support
Camera器件選2擇
Camera概述Camera HW介紹
Camera軟件架4構(gòu)
Camera DriverDriver的配置Porting Guide
常見(jiàn)問(wèn)題及7Debug
Camera TuningTuning Tool及設(shè)備介紹Tuning Guide常見(jiàn)問(wèn)題及Debug
Camera 應(yīng)用Camera 應(yīng)用簡(jiǎn)介Camera 應(yīng)用常見(jiàn)問(wèn)題
Camera Feature
Feature介紹/常見(jiàn)問(wèn) 題Feature開(kāi)關(guān)/常用配 13
置Feature API調(diào)用
Camera進(jìn)階實(shí)作
添加三方feature/算 法添加External ISPPerformance問(wèn)題分析16
學(xué)習(xí)天地學(xué)習(xí)資料鏈接ApplicationNote
MediaTek support
1,Camera HW Design
平臺(tái)通用的注意事項(xiàng)請(qǐng)參考DCC文件:
MediaTek DCC > External Document > HW > Common Design Notes > Camera > Common
各平臺(tái)的注意事項(xiàng)請(qǐng)參考各平臺(tái)Design Notes的camera 章節(jié)
2,申請(qǐng)驅(qū)動(dòng)代碼:
需要使用的sensor請(qǐng)到Camera器件查找對(duì)應(yīng)平臺(tái)是否已經(jīng)上DRL,表格里面沒(méi)有的器件,請(qǐng)找HW CPM商討對(duì)策。表格里support的器件release的代碼包里會(huì)有,如果沒(méi)有或者不確定是否為最新版本,請(qǐng)?zhí)酔Service申請(qǐng)并在拿到驅(qū)動(dòng)代碼后驗(yàn)證
3,申請(qǐng)調(diào)試:
確認(rèn)驅(qū)動(dòng)ok后,如需我司調(diào)試,請(qǐng)?zhí)釋?duì)應(yīng)的Eservice過(guò)來(lái),格式請(qǐng)參考
[FAQ03734]如何提交Camera調(diào)試效果需求
4,遇到問(wèn)題
上搜索是否有答案,可以查到對(duì)應(yīng)問(wèn)題的文檔,請(qǐng)先在FAQ,Ecource等,如果搜索的內(nèi)容不佳,可以對(duì)搜索內(nèi)容加上英文雙引號(hào)""會(huì)更加精準(zhǔn),如果沒(méi)有解決,請(qǐng)?zhí)酔Service給我司,并請(qǐng)按照以下規(guī)范
5,提E_service的規(guī)范:
Camera Function性質(zhì)問(wèn)題(例如死機(jī),花屏,黑屏,卡屏等)a)標(biāo)題中需要注明是哪顆image sensor,提交時(shí)需正確填寫(xiě)復(fù)現(xiàn)概率,復(fù)現(xiàn)步驟,以及現(xiàn)象描述。并提供復(fù)現(xiàn)問(wèn)題時(shí)的mobile log和驅(qū)動(dòng)代碼 Camera圖像效果方面的問(wèn)題(例如shading,飽和度,噪點(diǎn),清晰度等)a)請(qǐng)注意在note中注明該項(xiàng)目是否有人調(diào)試過(guò)并說(shuō)明調(diào)試人員,如果是我司調(diào)試過(guò)的項(xiàng)目,請(qǐng)同時(shí)提供eservice ID
b)請(qǐng)?zhí)峤粏?wèn)題時(shí)提供對(duì)應(yīng)的問(wèn)題圖片和對(duì)比機(jī)圖片,同時(shí)將Tuning參數(shù)發(fā)過(guò)來(lái)
其他Camera問(wèn)題
a)其他camera問(wèn)題,需注意描述正確,提交mobile log,不好描述時(shí)請(qǐng)?zhí)峁┮曨l
Camera器件選擇
1,查看Mediatek support的Image Sensor型號(hào)
在MOL上QVL/DRL ListCamera部分可以查看目前我們各個(gè)平臺(tái)支持的Camera?的型號(hào)(一般四周更新一次)
Excel表格Name:MTK_Camera_Sensor_DRL_W****.xlsx(W***表示是哪一周更新的表格)
第二篇:鋼筋常見(jiàn)問(wèn)題總結(jié)
1.剪力墻水平筋用不用伸至暗柱柱邊?(在水平方向暗柱長(zhǎng)度遠(yuǎn)大于lae時(shí))
答:要伸至柱對(duì)邊,其構(gòu)造03G101-1已表達(dá)清楚,其原理就是剪力強(qiáng)暗柱與墻身本身是一個(gè)共同工作的整體,不是幾個(gè)構(gòu)件的連接組合,暗柱不是柱,它是剪力墻的豎向加強(qiáng)帶;暗柱與墻等厚,其剛度與墻一致。不能套用梁與柱兩種不同構(gòu)件的連接概念。剪力墻遇暗柱是收邊而不是錨固。
2.剪力墻端部有暗柱時(shí),剪力墻水平鋼筋應(yīng)該伸入柱鋼筋內(nèi)側(cè)還是外側(cè),現(xiàn)實(shí)中大多數(shù)工地都是伸入暗柱主筋外側(cè),我覺(jué)得這樣不妥,但圖集上沒(méi)有詳細(xì)規(guī)定,正確的做法應(yīng)該是怎么樣的?
答: 通常剪力墻水平鋼筋放在外側(cè),如果伸入端柱豎向鋼筋內(nèi)側(cè)時(shí),需要向內(nèi)彎折,這樣做會(huì)形成鋼筋籠“頸縮”,因此,水平鋼筋走暗柱主筋外側(cè)即可。剪力墻盡端不存在水平鋼筋的支座,只存在“收邊”問(wèn)題。請(qǐng)參看03G101勘誤:
6、第47頁(yè)端部暗柱墻構(gòu)造中剪力墻水平筋彎鉤位置稍往后退,在暗柱端部縱筋后“扎進(jìn)”暗柱。
3.《03G101-1圖集》第17頁(yè)的第(5)條規(guī)定:洞口上下左右每邊都設(shè)置補(bǔ)強(qiáng)鋼筋;但第(4)條只在上下設(shè)置、而不在左右設(shè)置?
答: 03G101-1的洞口規(guī)則與構(gòu)造僅適用于剪力墻上(含墻身、墻梁與墻柱)開(kāi)洞,如果在框架梁或非框架梁上開(kāi)洞,其構(gòu)造方式就有所不同了。梁與墻梁的主要受力機(jī)理不同,梁的主要功能是承受豎向荷載,連梁的主要功能是協(xié)助剪力墻承受橫向地震荷載;梁的箍筋主要為保證梁的(受剪)強(qiáng)度而設(shè),連梁的箍筋主要為保證連梁的剛度而設(shè)。所以,當(dāng)設(shè)置在連梁中部且直徑不大于1/3梁高的圓洞切斷了連梁的箍筋時(shí),并不會(huì)使連梁的受剪強(qiáng)度減弱到不安全的程度,但卻會(huì)影響連梁的剛度。所以,第(4)條規(guī)定僅需在洞口上下設(shè)置“補(bǔ)強(qiáng)鋼筋”(嚴(yán)格的說(shuō)法應(yīng)是“補(bǔ)剛鋼筋”)。
4.當(dāng)框架柱的上層鋼筋直徑小于下層鋼筋直徑時(shí)(柱截面不變),能否采用將下 層鋼筋在樓板板厚范圍內(nèi)彎折收頭,而上層鋼筋重新插筋的方式施工?若可以,上 層鋼筋的插入長(zhǎng)度應(yīng)為多少?
答:可以,上層鋼筋的插入長(zhǎng)度應(yīng)大于1.5la,但是如此施工過(guò)于浪費(fèi)。一般,此情況宜采用上下層鋼筋連接的做法,搭接、機(jī)械連接或?qū)妇伞?/p>
柱
● 柱問(wèn)題(1):柱縱筋錨入基礎(chǔ)的問(wèn)題
《03G101-1圖集》對(duì)基礎(chǔ)頂面以上的柱縱筋的構(gòu)造要求講得比較詳細(xì),但是對(duì)柱縱筋錨入基礎(chǔ)的問(wèn)題,圖集中沒(méi)有介紹,而且,此類問(wèn)題查看了一些混凝土構(gòu)造手冊(cè)之類也找不到詳細(xì)的介紹,所以,很有必要在此向?qū)<艺?qǐng)教,這些問(wèn)題也是不少工程技術(shù)人員共同的問(wèn)題。① 柱縱筋伸入基礎(chǔ)(承臺(tái)梁,或有梁式筏板基礎(chǔ)的基礎(chǔ)梁)的錨固長(zhǎng)度是多少?是一個(gè) laE 還是更多?(甚至有人提出 1.5 倍的 laE)
② 當(dāng)柱縱筋伸入基礎(chǔ)的直錨長(zhǎng)度滿足“錨固長(zhǎng)度”的要求,是否可以“直錨”而不必進(jìn)行彎錨?有的人說(shuō)可以“直錨”;但又有人說(shuō)必須拐一個(gè)直角彎。
③ 如果柱縱筋伸入基礎(chǔ)必須“彎錨”的話,彎折部分長(zhǎng)度是多少?有人說(shuō)是 10d ,而在《03G101-1圖集》第39頁(yè)“梁上柱LZ縱筋構(gòu)造”中彎折長(zhǎng)度為 12d,這個(gè)規(guī)定是否可用于基礎(chǔ)?
④ 同樣在《03G101-1圖集》第39頁(yè)“梁上柱LZ縱筋構(gòu)造”中,規(guī)定“直錨部分長(zhǎng)度”不小于 0.5 laE,這個(gè)規(guī)定是否可用于基礎(chǔ)?
⑤ 當(dāng)基礎(chǔ)梁的梁高大于柱縱筋的錨固長(zhǎng)度時(shí),柱縱筋可以不伸到梁的底部。是這樣的嗎?⑥ 當(dāng)基礎(chǔ)梁的梁高小于柱縱筋的錨固長(zhǎng)度時(shí),柱縱筋必須伸到梁的底部,然后拐一個(gè)直角彎。其彎折部分長(zhǎng)度,“剩多少拐過(guò)去多少”,顯然不合適。這時(shí)候,應(yīng)該用上前面第③條,即規(guī)定一個(gè)彎折部分長(zhǎng)度;同時(shí),也應(yīng)該檢驗(yàn)一下“直錨部分長(zhǎng)度”,看看它是否不小于前面第④條規(guī)定的“最小直錨長(zhǎng)度”。是這樣的嗎?
■ 答柱問(wèn)題(1): 所提問(wèn)題將會(huì)在“筏形、箱形、地下室基礎(chǔ)平法國(guó)家建筑標(biāo)準(zhǔn)設(shè)計(jì)03G101-
3、-4”中得到相應(yīng)答案(2003年底陸續(xù)推出)。現(xiàn)在簡(jiǎn)單答復(fù)如下:
①⑤ 柱縱筋一般要求伸至基礎(chǔ)底部縱筋位置。特厚基礎(chǔ)(2米以上)中部設(shè)有抗水化熱的鋼筋時(shí),基礎(chǔ)有飛邊的所有柱和基礎(chǔ)無(wú)飛邊的中柱的柱縱筋可伸至中層筋位置;②③ 當(dāng)柱縱筋伸入基礎(chǔ)的直錨長(zhǎng)度滿足“錨固長(zhǎng)度”的要求時(shí),要求彎折12d;④⑥ 梁上柱縱筋的錨固要求亦適用于柱在基礎(chǔ)中的錨固,但要求柱縱筋“坐底”。
● 柱問(wèn)題(2): 我們?cè)谑┕ぶ薪?jīng)常遇到柱主筋 大變小的問(wèn)題。試問(wèn):當(dāng)柱子采用電渣壓力焊時(shí)候有什么限制條件,例:25mm碰焊14mm的鋼筋的能不能?
■ 答柱問(wèn)題(2): 25mm碰焊14mm,直徑相差過(guò)大受力時(shí)會(huì)出現(xiàn)應(yīng)力集中現(xiàn)象。如果施工規(guī)范對(duì)大小直徑鋼筋對(duì)焊無(wú)限制規(guī)定的話,建議直徑相差不要超過(guò)兩級(jí)(25與20或18與
14)。
● 柱問(wèn)題(3): 柱伸入承臺(tái)梁或基礎(chǔ)梁中,是否設(shè)置箍筋?箍筋如何設(shè)置?不需加密? 此箍筋起什么作用? 這個(gè)問(wèn)題如果在施工圖中明確標(biāo)示,就沒(méi)有問(wèn)題。如果在施工圖中沒(méi)有明確表出,則施工人員如何執(zhí)行?現(xiàn)在的情況是各人有各的做法,例如,有的人設(shè)置兩根箍筋,有的人只設(shè)置一根箍筋。
■ 答柱問(wèn)題(3): 要設(shè)不少于兩道箍筋,但不需要加密。箍筋的作用是保持柱縱筋在澆筑混凝土?xí)r鋼筋之間的相對(duì)位置和鋼筋籠的定位不受擾動(dòng)。
● 柱問(wèn)題(4): 柱上端“非連接區(qū)”?
《G101圖集》規(guī)定,柱的下部,即在樓板梁的上方有一個(gè)“非連接區(qū)”(是個(gè)箍筋加密區(qū)),縱筋的接頭只能在“非連接區(qū)”以上部位(也就是柱的中部)進(jìn)行。然而,圖集沒(méi)有規(guī)定在柱的上部有沒(méi)有“非連接區(qū)”?例如,在柱上部的箍筋加密區(qū)或者在柱梁的交叉部位允許不允許縱筋連接?
事實(shí)上,有的施工人員在上述的柱上部區(qū)域進(jìn)行了鋼筋接頭。這樣,他在柱中部有一個(gè)鋼筋接頭,在柱上部又有一個(gè)鋼筋接頭,違背了“同一縱向受力鋼筋不宜設(shè)置兩個(gè)或兩個(gè)以上接頭”的規(guī)定。(見(jiàn)《混凝土結(jié)構(gòu)工程施工質(zhì)量驗(yàn)收規(guī)范》)
不過(guò),上述規(guī)范的用語(yǔ)是“不宜”,并沒(méi)有強(qiáng)制規(guī)定。因此,請(qǐng)教一下上述柱縱筋的接頭問(wèn)題如何解釋?如何執(zhí)行?其中有什么理論根據(jù)?
■ 答柱問(wèn)題(4): 提問(wèn)者可能是指00G101,03G101-1中從下層柱的上部到上層柱的下部形成的非連接區(qū)是連續(xù)的。規(guī)范對(duì)此規(guī)定是“不宜”,未做強(qiáng)制規(guī)定,國(guó)家建筑標(biāo)準(zhǔn)設(shè)計(jì)的規(guī)定偏嚴(yán),對(duì)保證質(zhì)量有好處。如果難以做到,結(jié)構(gòu)設(shè)計(jì)師可以對(duì)此規(guī)定進(jìn)行變更。規(guī)范用語(yǔ)“不宜”,反映了中國(guó)人的辨證思維。對(duì)于執(zhí)行與否,結(jié)構(gòu)設(shè)計(jì)師有抉擇權(quán)利。該規(guī)定多出于概念設(shè)計(jì)考慮,未見(jiàn)其理論根據(jù)的文章發(fā)表。
● 柱問(wèn)題(5):前在03G101第45頁(yè)中(非抗震KZ箍筋構(gòu)造非抗震QZ.LZ縱向鋼筋構(gòu)造)中注7:當(dāng)為復(fù)合箍筋時(shí),對(duì)于四邊有梁與柱相連的同一節(jié)點(diǎn),可僅在四根梁端的最高梁底
至最低梁頂范圍周邊設(shè)置矩形封閉箍筋,那么請(qǐng)問(wèn)陳教授,1、該條能否用于第36頁(yè)(抗震KZ縱向鋼筋連接構(gòu)造)中?;蛘哒f(shuō)用于四級(jí)抗震的節(jié)點(diǎn)處。因?yàn)槲易⒁獾綐?gòu)造規(guī)定中非抗震與四級(jí)抗震處理基本上一樣的。
2、對(duì)于四邊有梁與柱相連的同一節(jié)點(diǎn)能否用于邊(端)柱與梁相交處。
■ 答柱問(wèn)題(5):
1、該條不適用于(抗震KZ縱向鋼筋連接構(gòu)造),抗震結(jié)構(gòu)要求所有復(fù)合箍筋要貫通柱梁節(jié)點(diǎn),而且要按照加密間距設(shè)置。
2、只有邊柱有懸挑梁時(shí)才會(huì)形成四邊有梁的情況,該節(jié)點(diǎn)構(gòu)造要求適用于該情況。
● 柱問(wèn)題(6):有的施工單位把柱子的接頭只考慮底部的區(qū)域滿足要求 而上部卻不考慮,施工單位 認(rèn)為是受壓的,所以他們認(rèn)為 他們采取的閃光對(duì)焊上部接頭 他們就不考慮了?這樣做法對(duì)嗎?
■ 答柱問(wèn)題(6): 框架柱是偏壓構(gòu)件,受彎矩、軸向壓力和剪力的共同作用,其受彎時(shí)的反彎點(diǎn)一般在柱中稍向上的位置,抗震時(shí)柱兩端都要加密箍筋以保證實(shí)現(xiàn)“強(qiáng)剪弱彎”,因此,連接位置不考慮避開(kāi)柱上端是錯(cuò)誤的。
● 綜合問(wèn)題(1): 在混凝土結(jié)構(gòu)施工中,出現(xiàn)Ⅳ級(jí)鋼筋時(shí),它得錨固長(zhǎng)度應(yīng)該如何計(jì)算?因在混凝土結(jié)構(gòu)設(shè)計(jì)規(guī)范及混凝土驗(yàn)收規(guī)范上都沒(méi)有出現(xiàn)Ⅳ鋼筋,是否國(guó)家已經(jīng)取消了該級(jí)別的鋼筋用于建筑工程中。謝謝!
■ 答綜合問(wèn)題(1): 混凝土結(jié)構(gòu)基本理論中,受混凝土的極限應(yīng)變值的限制,強(qiáng)度過(guò)高的鋼筋發(fā)揮不出其全部作用(這正是混凝土設(shè)計(jì)規(guī)范和施工規(guī)范不設(shè)Ⅳ級(jí)鋼筋的理論依據(jù))。所以,即便是Ⅳ級(jí)鋼筋,其強(qiáng)度設(shè)計(jì)值也只能取到360N/mm2(與Ⅲ級(jí)鋼筋相同),且當(dāng)用于軸心受拉和小偏心受拉構(gòu)件時(shí)只能按300N/mm2取用。因此,高于Ⅲ級(jí)的鋼筋的錨固長(zhǎng)度取值按Ⅲ級(jí)鋼筋即可。
還有,Ⅳ級(jí)鋼筋的塑性性能和可焊性比新Ⅲ級(jí)鋼筋差,用在普通混凝土結(jié)構(gòu)中并不合適,也不經(jīng)濟(jì)。
● 綜合問(wèn)題(2): 03G101與03G329有矛盾時(shí)依誰(shuí)為準(zhǔn)?
■ 答綜合問(wèn)題(2): 03G101在編制時(shí)已經(jīng)盡可能地做到與03G329協(xié)調(diào)一致。當(dāng)設(shè)計(jì)者選用03G101時(shí),應(yīng)以03G101為準(zhǔn)。當(dāng)設(shè)計(jì)者既選用了03G101,又選用了03G329時(shí),由于03G101中的構(gòu)造是與平法施工圖配套使用的正式設(shè)計(jì)文件(詳見(jiàn)03G101總說(shuō)明第4、5兩條),如果設(shè)計(jì)者采用了平法制圖規(guī)則完成了施工圖設(shè)計(jì),其構(gòu)造應(yīng)以03G101為準(zhǔn);如果未使用平法表達(dá),則不應(yīng)以03G101為準(zhǔn)。
●綜合問(wèn)題(3): 03G101圖集中為什么把受力鋼筋的錨固長(zhǎng)度改了,這些數(shù)據(jù)不便記憶,施工中也容易出錯(cuò),為什么不采用整數(shù)呢?
■ 答綜合問(wèn)題(3): 不是03G101把受力鋼筋的錨固長(zhǎng)度改了,而是《混規(guī)》GB50010-2002把原來(lái)以5d進(jìn)位的錨固長(zhǎng)度改了?!痘煲?guī)》也是國(guó)家建筑標(biāo)準(zhǔn)設(shè)計(jì)03G101的依據(jù)之一。為了方便施工,03G101把規(guī)范第9.3條的公式根據(jù)不同的鋼筋種類、混凝土強(qiáng)度等級(jí)以及鋼筋直徑計(jì)算成表格,盡量做到目前的樣子。
● 綜合問(wèn)題(4):在“GB50010-2002”混凝土結(jié)構(gòu)設(shè)計(jì)規(guī)范第126頁(yè)10.1.5條規(guī)定板下不受力鋼筋伸入支座的錨固長(zhǎng)度不應(yīng)小于5d,我個(gè)人認(rèn)為是否還應(yīng)該滿足伸至支座的中心線位置,這也是一貫的施工做法。
■ 答綜合問(wèn)題(4):請(qǐng)注意規(guī)范用語(yǔ)“不應(yīng)小于”的意義。大學(xué)教科書(shū)中是“=”概念,而工程規(guī)范和規(guī)程是“≥”的概念,因此,可以伸至支座中心位置。
當(dāng)為非抗震設(shè)計(jì)時(shí),正常情況下板的下部鋼筋在支座部位受壓;當(dāng)為抗震設(shè)計(jì)時(shí),通常板不作為耗能構(gòu)件,因而不考慮地震作用的分配,仍然按非抗震設(shè)計(jì),板的下部鋼筋在支座部位亦受壓;在這兩種情況下,即便其伸入支座長(zhǎng)度為5d,通常也是安全的。執(zhí)行規(guī)范規(guī)定時(shí),應(yīng)特別注意“當(dāng)連續(xù)板內(nèi)溫度、收縮應(yīng)力較大時(shí),伸入支座的錨固長(zhǎng)度宜適當(dāng)增加”?!?綜合問(wèn)題(5):有梁式筏板基礎(chǔ)問(wèn)題:
① 筏板部分一般為上下兩層鋼筋網(wǎng),下層鋼筋網(wǎng)片放在最下面,基礎(chǔ)梁的整個(gè)鋼筋(箍筋及縱筋)放在下層鋼筋網(wǎng)片的上面。是這樣的嗎?
② 但是,一般圖紙?jiān)跇?biāo)注基礎(chǔ)梁的高度時(shí),梁底標(biāo)高和筏板板底標(biāo)高是在同一個(gè)高度,這樣就出現(xiàn)了“基礎(chǔ)梁的有效高度”縮減的問(wèn)題。因?yàn)?,首先是梁的下部縱筋的保護(hù)層變厚了。(最下面是筏板的保護(hù)層,然后是筏板下層鋼筋網(wǎng)片的縱橫鋼筋,然后是基礎(chǔ)梁的縱筋,最后才是基礎(chǔ)梁的下部縱筋)當(dāng)我們進(jìn)行基礎(chǔ)梁的強(qiáng)度計(jì)算時(shí),應(yīng)該采用這個(gè)“縮減后的有效高度”進(jìn)行計(jì)算。您說(shuō)對(duì)嗎?然而,有的設(shè)計(jì)院并不是這樣,甚至連基礎(chǔ)梁的箍筋高度還是采用梁高減兩倍的保護(hù)層來(lái)計(jì)算的,這顯然會(huì)造成箍筋“高度太大”。
③ 至于筏板鋼筋網(wǎng)片,縱橫兩個(gè)方向的鋼筋哪個(gè)在下面、哪個(gè)在上面?是否應(yīng)為: ⅰ“下層鋼筋網(wǎng)片”是短方向的鋼筋在下面、長(zhǎng)方向的鋼筋在上面;
ⅱ“上層鋼筋網(wǎng)片”是長(zhǎng)方向的鋼筋在下面、短方向的鋼筋在上面;
ⅲ 因?yàn)?,從“有梁式筏板”的受力結(jié)構(gòu)模型來(lái)看,正好是“樓板和梁”的受力結(jié)構(gòu)模型翻轉(zhuǎn)過(guò)來(lái)。這樣的看法對(duì)嗎?
■ 答綜合問(wèn)題(5):
1、形基礎(chǔ)的鋼筋配置包括梁(或暗梁)和板兩部分,布筋考慮一般“以梁為先”;
2、比較兩個(gè)方向上的基礎(chǔ)梁,從中判斷強(qiáng)者(等高時(shí)選跨度較小者,不等高時(shí)選高度較大者),與“強(qiáng)梁”相垂直布置第一層(最底層)板筋;
3、在第一層板筋之上并與其垂直布置“強(qiáng)梁”的底層縱筋和第二層板筋(“強(qiáng)梁”的箍筋與第一層板筋在同一層面上插空走過(guò));
4、再在其上布置另一方向上梁的底層縱筋;
5、板上部面筋的布置依據(jù)板區(qū)兩個(gè)方向的跨度。跨度相差較大時(shí),短跨面筋在上,長(zhǎng)跨面筋在下;跨度相差不大時(shí),與板底筋的上下保持一致(兩個(gè)方向的ho相等);
6、設(shè)計(jì)時(shí)應(yīng)當(dāng)充分考慮兩個(gè)方向梁相交對(duì)ho的影響,也應(yīng)當(dāng)考慮雙向板的ho與單向板不同;
7、“筏形基礎(chǔ)”相當(dāng)于“倒樓蓋”的說(shuō)法不完全正確。當(dāng)承受地震橫向作用是,柱是第一道防線,樓蓋梁是耗能構(gòu)件,所以要做到“強(qiáng)柱弱梁”“強(qiáng)剪弱彎”,梁要考慮箍筋加密區(qū)、塑性鉸等問(wèn)題;但筏形基礎(chǔ)的基礎(chǔ)梁通常不考慮參與抵抗地震作用計(jì)算。
● 綜合問(wèn)題(6): 凡是“沒(méi)有明令禁止”的連接區(qū)域,鋼筋是否就可以連接呢?■ 答綜合問(wèn)題(6): 事實(shí)上,除高抗震設(shè)防烈度的重要構(gòu)件外,沒(méi)有明令“完全”禁止的非連接部位。只要保證連接質(zhì)量和控制連接百分率,在任何位置都可以連接。需要注意的是“盡可能避開(kāi)”這個(gè)要求的含義,如盡可能避開(kāi)節(jié)點(diǎn)區(qū)、箍筋加密區(qū)、應(yīng)力(彎矩)較大區(qū)等等。
● 綜合問(wèn)題(7):框架頂層端節(jié)點(diǎn)處,可將柱外側(cè)縱向鋼筋的相應(yīng)部分彎入梁內(nèi)作梁上部縱向鋼筋使用,也可將梁上部縱向鋼筋與柱外側(cè)縱向鋼筋在頂層及附近部位搭接。請(qǐng)問(wèn)陳教授這原理是不是柱與梁是剛節(jié)點(diǎn)?那么是不是頂層主梁與柱鋼筋連接要這樣做,頂層聯(lián)系梁鋼筋與柱鋼筋連接是不是可以不這樣做的,只要保證錨固長(zhǎng)度就可以了?
■ 答綜合問(wèn)題(7): 抗震結(jié)構(gòu)柱與梁的連接節(jié)點(diǎn)為剛性連接。問(wèn)題的后半部不好答復(fù),因所提“主梁”與“聯(lián)系梁” 是否為框架梁還缺少若干判別條件。頂層框架梁與框架柱的連接必須采用該節(jié)點(diǎn)構(gòu)造,但頂層非框架梁通常不與框架柱連接,所以與該構(gòu)造無(wú)關(guān);遇特殊
情況頂層非框架梁的一端與柱相連(另一端以梁為支座)時(shí),由于未形成框架(因而不是框架梁),所以滿足錨固條件即可。
● 綜合問(wèn)題(8):有的施工單位和監(jiān)理都對(duì)關(guān)于筏片基礎(chǔ)的基礎(chǔ)梁是否要錨固如果錨固 那 又怎樣計(jì)算,還有板是否要彎勾?如果彎勾,那采取什么標(biāo)準(zhǔn)?
■ 答綜合問(wèn)題(8):
1、筏形基礎(chǔ)的基礎(chǔ)梁主要功能之一是作為框架柱的支座,因此,基礎(chǔ)主梁(直接支承框架柱的基礎(chǔ)梁)的鋼筋(縱筋與箍筋)應(yīng)在節(jié)點(diǎn)區(qū)連續(xù)布置;基礎(chǔ)次梁(以基礎(chǔ)梁為支座的基礎(chǔ)梁)的鋼筋應(yīng)錨固在基礎(chǔ)主梁中(可參考框架梁的錨固方式,但上下鋼筋受力性質(zhì)相反)。
2、筏形基礎(chǔ)板盡端鋼筋彎鉤直段≥12d,當(dāng)板的上部與下部均配置鋼筋時(shí),要采用拉筋將板封邊。
第三篇:OPNET常見(jiàn)問(wèn)題總結(jié)
OPNET常見(jiàn)問(wèn)題總結(jié)
1.如何設(shè)置全局變量?
在.h文件里定義變量,然后在process的HEAD BLOCK 里include 這個(gè)頭文件,就可以使用全局變量了。
2.OPNET中如何更方便的看程序?
1.opnet中的設(shè)置:
preferences->editor_prog
2.source insight的設(shè)置
operation->preferences->symbol Lookups->Project symbol path->Add Project to Path
(添加自己創(chuàng)建一個(gè)包含所有opnet model 和 include目錄的project)
當(dāng)然,這個(gè)有些不足,就是那個(gè)sv,tv,hb等中定義的內(nèi)容,不能進(jìn)行關(guān)聯(lián)。
3.OPNET中的函數(shù)FIN,F(xiàn)RET以及FOUT都是什么功能?
為了使一個(gè)用戶定義的函數(shù)被執(zhí)行,該函數(shù)必須與一個(gè)特殊的堆棧跟蹤代碼相連。堆棧跟蹤技術(shù)靠在函數(shù)的入口點(diǎn)和出口點(diǎn)插入預(yù)處理器宏指令完成(一個(gè)函數(shù)只有一個(gè)入口點(diǎn),但可以有多個(gè)出口點(diǎn)(由C語(yǔ)言的return聲明決定))。這些宏指令為:FIN、FOUT和FRET。FIN被插入到函數(shù)的入口點(diǎn),F(xiàn)OUT被插入到函數(shù)的出口點(diǎn),但卻不返回任何值,F(xiàn)RET被插入到函數(shù)的出口點(diǎn),返回一個(gè)值。注意這些宏指令不需要以分號(hào)結(jié)束(它們自我包含),F(xiàn)IN的參數(shù)中也不需要雙引號(hào)。
Opnet提供的所有的示例模型都包含了這些宏指令,并且建議用戶定義的函數(shù)也包含這些宏指令。如果FIN、FOUT、和FRET被正確插入了用戶代碼中,我們就可以使用op_vuerr來(lái)找出程序錯(cuò)誤的位置,哪怕是在一個(gè)嵌套的模型函數(shù)調(diào)用中。
4.local statistics和global statistics的區(qū)別?
local statistics表示的是本地的統(tǒng)計(jì)量,而global statistics是全局的統(tǒng)計(jì)量,比如你做了一個(gè)節(jié)點(diǎn)模型,此節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,然后編程把發(fā)送的數(shù)據(jù)包數(shù)分別寫(xiě)入一個(gè)local statistics和global statistics中,假如你在工程中用到了兩個(gè)這樣的節(jié)點(diǎn),那么你可以分別view result每一個(gè)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包數(shù),而global statistics則是這兩個(gè)節(jié)點(diǎn)一共發(fā)送的數(shù)據(jù)包數(shù)。
5.Objid和user id的區(qū)別?
Objid是系統(tǒng)分配的,全局唯一,整數(shù)。user id是自己可以設(shè)置的,可以不唯一。
6.如何將模塊添加到OPNET中?
edit> preferences-> mod_dirs中,新建一個(gè)路徑,并作為第一路徑即可。
8.想查找一個(gè)變量的使用場(chǎng)合,包括不同process,不同node中的header和funtion,如何做 ?
在OPNET中變量是在一個(gè)PROCESS中存在的。不同的PROCESS之間則是通過(guò)進(jìn)程之間的通信機(jī)制來(lái)共享信息的。因此你查找變量的作用范圍應(yīng)該是在一個(gè)PROCESS內(nèi)的。編譯后每個(gè)PROCESS會(huì)產(chǎn)生一個(gè)C或C++文件。在那個(gè)文件里就可以查到變量的應(yīng)用地方。不同的進(jìn)程可能具有相同的ATTRIBUTE。而為了減少NODE的ATTRIBUTE數(shù)目可以采用 MERGE/RENAME ATTRIBUTE的方式。這時(shí)這些ATTRIBUTE具體對(duì)應(yīng)到各個(gè)PROCESS 的哪個(gè)ATTRIBUTE可以通過(guò)NODE INTERFACE菜單下的MERGE/RENAME ATTRIBUTE 找到。
9.請(qǐng)問(wèn)OPNET怎樣將圖導(dǎo)出來(lái)?
一:可以從Topology->Export Topology->……導(dǎo)出Project的幾種圖形,有bitmap,html等格式。node,process都可以從file中的Export Bitmap導(dǎo)出拓?fù)鋱D。
二:對(duì)于分析出來(lái)的曲線,按鼠標(biāo)右鍵,其中有個(gè) Export Graph Data to Spreadsheet,然后會(huì)有提示 說(shuō)你文件保存在什么地方,一般缺省是保存在 c:op_admintmp 目錄下。文件你可以用 UltraEdit 打開(kāi)來(lái)看,是兩列數(shù)據(jù),一列是仿真時(shí)間,一列是 仿真數(shù)據(jù),然后你就可以想用什么工具畫(huà)圖就無(wú)所謂了。
補(bǔ)充:其實(shí)很好用的還有就是直接抓圖,效果不錯(cuò)。
10.在opnet中關(guān)于時(shí)延的問(wèn)題。
數(shù)據(jù)速率是用來(lái)和包長(zhǎng)結(jié)合計(jì)算傳輸時(shí)延的,而“delay”屬性是用來(lái)描述電波的傳播時(shí)延的。在點(diǎn)到點(diǎn)鏈路屬性里,“delay”就是總傳播時(shí)延;在多點(diǎn)鏈路里,“delay”指單位距 離的傳播時(shí)延。用戶可以修改傳播時(shí)延的計(jì)算方法,那個(gè)“Distance Related”就是表示在自定 義的傳播時(shí)延 pipeline stage里基于距離計(jì)算傳播時(shí)延。
11..在opnet中關(guān)于統(tǒng)計(jì)一些速率方面的參數(shù)。
統(tǒng)計(jì)流速率的時(shí)候,首先應(yīng)該在Local Statistics中將這個(gè)統(tǒng)計(jì)項(xiàng) 的Capture Mode設(shè)成sum/time,然后在程序中每次收到一個(gè)數(shù)據(jù)包,就將這個(gè)包的長(zhǎng)度L寫(xiě)入,比如op_stat_write(handle,L),隨后再馬上 調(diào)用一個(gè)op_stat_write(handle, 0)來(lái)結(jié)束這次寫(xiě)入,就可以了。
12.關(guān)于begin intrpt和endsim intrpt 仿真0時(shí)刻時(shí)需要進(jìn)行的初始化,則需要設(shè)begin intrpt, 仿真結(jié)束時(shí)刻需要進(jìn)行一些工組,則需要enable endsim intrpt.13.用VC調(diào)試的時(shí)候,state variable的值無(wú)法看到,怎么辦?
用op_sv_ptr這個(gè)指針。它指向了所有的狀態(tài)變量。
14.關(guān)于Elapsed time and Simulation time ? 一個(gè)是仿真程序運(yùn)行的時(shí)間,反映仿真程序執(zhí)行的速度。而另一個(gè)是所仿真的系統(tǒng)的時(shí)間進(jìn)度,反映當(dāng)前的仿真執(zhí)行的進(jìn)度。
仿真時(shí)間的修改是通過(guò)事件的發(fā)生來(lái)進(jìn)行的。譬如說(shuō)你在0s時(shí)作一件事持續(xù)時(shí)間為5秒,5秒鐘結(jié)束后會(huì)觸發(fā)一個(gè)事件,這個(gè)事件將系統(tǒng)的仿真時(shí)間改為5s。你使用OPNET的模型,它在接收到事件時(shí)會(huì)進(jìn)行相應(yīng)的仿真時(shí)間的更新。而你自己也可根據(jù)需要更新仿真時(shí)間。你采用op_intrpt_schedule_self(op_sim_time()+需要的時(shí)間,intrptcode),就可以在當(dāng)前時(shí)刻的所需的時(shí)間以后產(chǎn)生一個(gè)中斷,從而觸發(fā)一個(gè)事件,系統(tǒng)的仿真事件也就被更新為此時(shí)間。OPNET中數(shù)據(jù)的收集方式是可選的,可以選擇為逐點(diǎn)的,也可以選擇按照漏斗進(jìn)行平滑的根據(jù)自己的需要而定。
15.OPNet運(yùn)行時(shí)無(wú)法進(jìn)行C代碼編譯的解決辦法
當(dāng)你出現(xiàn)這種情況時(shí), OPNet總是提示說(shuō) comp_msvc 不能執(zhí)行, 因?yàn)閂isual C++沒(méi)有正確安裝, 這時(shí)你需要修改系統(tǒng)的環(huán)境變量。具體方法如下(Win2000): 1.正確安裝 VC++, 缺省目錄為(以下均以缺省目錄為例)C:Program FilesMicrosoft Visual Studio 2.在桌面鼠標(biāo)右擊“我的電腦”圖標(biāo), 選擇“屬性”.在出現(xiàn)的界面中, 選擇“高級(jí)”, 然后選擇“環(huán)境變量”。
3.這里需要修改用戶的“用戶變量”,而不是“系統(tǒng)變量”增加下列參數(shù): 變量名 include 變量值 C:Program FilesMicrosoft Visual Studi0VC98atlinclude;C:Program FilesMicrosoft Visual StudioVC98mfcinclude;
C:Program FilesMicrosoft Visual StudioVC98include
變量名 lib 變量值 C:Program FilesMicrosoft Visual StudioVC98mfclib C:Program FilesMicrosoft Visual StudioVC98lib
變量名 MSDevDir 變量值 C:Program FilesMicrosoft Visual StudioCommonMSDev98
變量名 path 變量值 C:Program FilesMicrosoft Visual StudioCommonToolsWinNT C:Program FilesMicrosoft Visual StudioCommonMSDev98bin C:Program FilesMicrosoft Visual StudioCommonTools Program FilesMicrosoft Visual StudioVC98bin 4.按“確定”按鈕, 退出設(shè)置.如果你在安裝 VC 的時(shí)候讓安裝程序來(lái)修改環(huán)境變量就完全可以就避免這些步驟.16..請(qǐng)問(wèn)opnet中的移動(dòng)臺(tái)的trajectory(即運(yùn)動(dòng)軌跡)能否用一個(gè)專門的代碼來(lái)生成,而不是用鼠標(biāo)事先畫(huà)出?如何實(shí)現(xiàn)opnet與此段代碼的交互?
要做到運(yùn)動(dòng)軌跡的交互性,你得修改一些process和pipeline。運(yùn)動(dòng)的結(jié)果無(wú)非是和基站的距離變化,然后利用衰落模型得到snr,ber等參數(shù),所以你可以修改dra_propdel.ps.c, umts_ue_dra_power, umts_dra_snr等process.如在dra_propdel.ps.c中把start_pro_distance用自己的距離函數(shù)代替即可。
17.前面提到的隨機(jī)性服從一些隨機(jī)分布,如高斯分布、泊松分布等等,我想問(wèn)一下,opnet 中有沒(méi)有現(xiàn)成的概率分布函數(shù)供調(diào)用?如何調(diào)用?
用op_dist_outcome這一類的函數(shù),在online document中介紹的很詳細(xì)。
18.對(duì)opnet的認(rèn)識(shí),它是在project、node以及process三個(gè)域上進(jìn)行仿真,而且好像代碼都是在process域中的進(jìn)入、退出以及轉(zhuǎn)化這些地方編寫(xiě),那么要實(shí)現(xiàn)的移動(dòng)臺(tái)隨機(jī)產(chǎn)生的代碼好像沒(méi)有一個(gè)公共的全局性的平臺(tái)可以放置(就像C語(yǔ)言中的全局變量聲明段)?這個(gè)問(wèn)題如何解決?
函數(shù)應(yīng)該在process的FB中,F(xiàn)SM只是調(diào)用而已,全局變量通常在外部.h中,也可在HB中。
19.OPNET 的輸出結(jié)果選項(xiàng)“As is”,“Average”,“Time_average”有什么區(qū)別?
在這些選項(xiàng)下得到的曲線不一樣 :
As is ,就是不做任何處理,Average 就是做平均
Time_average 就是做時(shí)間平均
20.請(qǐng)問(wèn)OPNET中的animation指什么?
21.OPNET中如何刪除一個(gè)senario,而保留工程? 在menu->senarios->manage senarios里。
22.請(qǐng)問(wèn)OPNET中的animation指什么?
激活節(jié)點(diǎn)變化過(guò)程記錄功能,并記錄statistic的變化過(guò)程,可以作為動(dòng)畫(huà)演示。
23.opnet的節(jié)點(diǎn)域中處理模塊之間如何共享變量? 可以試試以下2種方法: 1。在HB中定義全局變量
2。添加節(jié)點(diǎn)屬性,然后使用op_ima_xxx_xxx()函數(shù),就是那個(gè)IMA包。24.在node interfaces里面設(shè)置屬性為set,promoted和hidden有什么意義? hidden可以在仿真的時(shí)候看不到設(shè)置的這個(gè)參數(shù),promoted可以在仿真的過(guò)程中根據(jù)需要改變參數(shù)的值 激活節(jié)點(diǎn)變化過(guò)程記錄功能并記錄statistic的變化過(guò)程。
25.我在學(xué)習(xí)opnet的tutorial的packet switching1 時(shí)最后仿真出現(xiàn)下面的錯(cuò)誤,請(qǐng)問(wèn)如何解決? Creating library PS_pksw_net-scenario1.i0.nt.lib and object PS_pksw_net-io1.i0.nt.exp dpt_propdel.i0.ps.o : error LNK2001: unresolved external symbol _link_de PS_pksw_net-scenario1.i0.nt.so : fatal error LNK1120: 1 unresolved exter 在運(yùn)行仿真時(shí),選擇declare external file,將link_delay.h文件包含即可。26.請(qǐng)問(wèn)opnet里如何提取統(tǒng)計(jì)信息作為反饋控制變量?例如將丟失率提取出來(lái)后,通過(guò)函數(shù)將其反饋回模型中進(jìn)行控制。
可以試試stat_intrpt函數(shù)。
27.模型中的數(shù)據(jù)線中的src stream [n]和dest stream [n]中括號(hào)中的序號(hào)n分別表示什么意思?
op_pk_get(STRM NUM)的參數(shù),會(huì)根據(jù)n來(lái)選擇數(shù)據(jù)線的。
28.pipeline stage 的函數(shù)是怎么調(diào)用的啊?為什么我的數(shù)據(jù)在被接收端的時(shí)候那幾個(gè)pipeline 函數(shù)并沒(méi)有執(zhí)行完呢?只執(zhí)行了3個(gè)函數(shù),后面就沒(méi)有了,結(jié)果數(shù)據(jù)不知道扔哪去了,上層也沒(méi)有stream中斷是怎么回事呢?
pipeline state 函數(shù)體接口是規(guī)定的,由KP調(diào)用。在stage 2 有連通性的檢查,如果false,則以后的stage 都不需執(zhí)行了。
29.仔細(xì)察看了一下程序,F(xiàn)IN和FOUT都是配對(duì)的。在一個(gè)Idle的狀態(tài)中,什么操作也沒(méi)做。但是程序執(zhí)行了好長(zhǎng)時(shí)間之后,突然告訴說(shuō)Abnormal function stack function。就是在Idle狀態(tài)出的錯(cuò)??墒悄膫€(gè)狀態(tài)根本就是空操作。而在.pr.c文件中,發(fā)現(xiàn)所有的process的.pr.c文件中的那個(gè)最全的函數(shù)都是只有FIN,沒(méi)有FOUT的。請(qǐng)問(wèn)出現(xiàn)上述錯(cuò)誤還有可能是何原因?
查看事件列表,有可能是事件列表滿的緣故,你可以試著改變preference里面的一個(gè)event_speed_parameter參數(shù)出現(xiàn)該問(wèn)題的設(shè)置不同,出現(xiàn)的時(shí)間也會(huì)不同。
30.請(qǐng)問(wèn)OPNET的背景路由流量的如何配置?
三種方法:
application configi.conersation pair link load
31.怎樣在mac層獲取在pipeline stage中計(jì)算的某些參數(shù)的數(shù)值,如接收功率的數(shù)值?
可以用pwr = op_td_get_dbl(pkptr, OPC_TDA_RA_RCVD_POWER)。32.我對(duì)某個(gè)pipeline 函數(shù)做了一點(diǎn)修改然后以另外一個(gè)名字另存了一下,但是在模塊中卻不能把原來(lái)的pipeline函數(shù)改成重新命名的pipeline函數(shù)這是怎么回事?。?你修改后的文件名要與函數(shù)名相同,然后得用OPNET自帶的EXTERNAL INTERFACE提供的工具編譯就可以了。
第四篇:鋰離子電池常見(jiàn)問(wèn)題總結(jié)
鋰離子電池常見(jiàn)問(wèn)題總結(jié)
11、什么是電池的容量?
電池的額定量是指設(shè)計(jì)與制造電池時(shí)規(guī)定或保證電池在一定的放電條件下,應(yīng)該放出最低限度的電量。Li-ion規(guī)定電池在常溫、恒流(1C)恒壓(4.2V)控制的充電條件下充電3h,電池的實(shí)際容量是指電池在一定的放電條件下所放出的實(shí)際電量,主要受放電倍率和溫度的影響(故嚴(yán)格來(lái)講,電池容量應(yīng)指明充放電條件)。容量常見(jiàn)單位有:mAh、Ah=1000mAh)。
14、什么是工作電壓?
又稱端電壓,是指電池在工作狀態(tài)下即電路中有電流過(guò)時(shí)電池正負(fù)極之間電勢(shì)差。在電池放電工作狀態(tài)下,當(dāng)電流流過(guò)電池內(nèi)部時(shí),不需克服電池的內(nèi)阻所造成阻力,故工作電壓總是低于開(kāi)路電池,充電時(shí)則與之相反。Li-ion的放電工作電壓在3.6V左右。
15、什么是放電平臺(tái)?
放電平臺(tái)是恒壓充到電壓為4.2V并且電電流小于0.01C時(shí)停充電,然后擱置10分鐘,在任何們率的放電電流下下放電至3.6V時(shí)的放電時(shí)間。是衡量電池好壞的重要標(biāo)準(zhǔn)。
17、什么是自放電率?
又稱荷電保持能力。注:電池100%充電開(kāi)路擱置后,一定程度的自放電正?,F(xiàn)象。在GB標(biāo)準(zhǔn)規(guī)定LI-ion后在20±2℃條件下開(kāi)條件下開(kāi)路擱置28天??稍试S電池有容量損失。
18、什么是內(nèi)壓? 指電池的內(nèi)部氣壓,是密封電池在充放電過(guò)程中產(chǎn)生的氣體所致,主要受電池材料、制造工藝、電池結(jié)構(gòu)等因素影響。其產(chǎn)生原因主要是由于電池內(nèi)部水分及有機(jī)溶液分解產(chǎn)生的氣體于電池內(nèi)聚集所致。
高倍率的連續(xù)過(guò)充,會(huì)導(dǎo)致電池溫度升高、內(nèi)壓增大,嚴(yán)重時(shí)對(duì)電池的性能及外觀產(chǎn)生破壞性影響,如漏液、鼓底,電池內(nèi)阻增大,放電時(shí)間及循環(huán)壽命變短等。
Li-ion任何形式的過(guò)以都會(huì)導(dǎo)致電池性能受到嚴(yán)重破壞,甚至爆炸。幫Li-ion在充電過(guò)程中需采用恒流恒壓充電方式,避免對(duì)電池產(chǎn)生過(guò)充。
19、為什么電池要儲(chǔ)存一段時(shí)間后才能包裝出貨?
電池的儲(chǔ)存性能是衡量電池綜合性能穩(wěn)定程度的一個(gè)重要參數(shù)。電池經(jīng)過(guò)一定時(shí)間儲(chǔ)存后,允許電池的容量及內(nèi)阻有一定程度的變化。經(jīng)過(guò)了一段時(shí)間的儲(chǔ)存,可以讓內(nèi)部各成分的電化學(xué)性能穩(wěn)定下來(lái),可以了解該電池的自放電性能的大小,以便保證電池的品質(zhì)。21.什么是分容?
電池在制造過(guò)程中,因工藝原因使得電池的實(shí)際容量不可能完全一致,通過(guò)一定的充放電制度檢測(cè),并將電池按容量分類的過(guò)程稱為分容。22.什么是壓降?
電池按定性充電至80%以上,測(cè)量其電池空載電壓。5W/2W電池 作為負(fù)載連接電池正負(fù)極端開(kāi)關(guān)作為電池的斷路,通路的裝置進(jìn)行串聯(lián)。打開(kāi)開(kāi)關(guān)后5秒電壓下降不大于0。4V,為合格主要為測(cè)試電池負(fù)載性能。23.什么是靜態(tài)電阻?即放電時(shí)電池內(nèi)阻 24.什么是動(dòng)態(tài)電阻?即充電時(shí)電池內(nèi)阻。
25.什么是電池的負(fù)載能力? 當(dāng)電池的正負(fù)極兩端連接在用電器上時(shí),帶動(dòng)用電器工作時(shí)的輸出功率,即為電池的負(fù)載能力。26,什么是充電效率?什么是放電效率?
充電效率是指電池在充電過(guò)程中所消耗的電能轉(zhuǎn)化成電池所能儲(chǔ)蓄顧的化學(xué)能程度的量度。主要受電池工藝,配方及電池的工作環(huán)境溫度影響,一般環(huán)境溫度越高,則充電效率要低。放電效率是指在一定的放電條件下放電至終點(diǎn)電壓所放出的實(shí)際電量與額定容量之比,主要受放電倍率,環(huán)境溫度,內(nèi)阻等到因素影響,一般情況下,放電倍率越高,則放電效率越低。溫度越低,放電效率越低。27.目前常見(jiàn)的各種可充電電池之間有什么區(qū)別?
目前鎳鎘,鎳氫,鋰離子充電電池大量應(yīng)用于各種便攜式用電設(shè)備(如筆記本電腦,攝像機(jī)和移動(dòng)電話等到)中,每種充電電池都具自已獨(dú)特的化學(xué)性質(zhì)。鎳鎘和鎳氫電池之間主要差別在于:鎳氫電池能量密度比較高。與相同型號(hào)電池對(duì)比,鎳氫電池容量是鎳鎘電池的二倍。這意味著在不為用電設(shè)備增加額外重量時(shí),使用鎳氫電池能大大地延長(zhǎng)設(shè)備工作時(shí)間。鎳氫電池另一優(yōu)點(diǎn)是;A大大減少了處鎘電池中存在的:“記憶效應(yīng)”問(wèn)題,從而使得鎳氫電池可更方便地使用。鎳氫電池比鎳鎘電池更環(huán)保,因?yàn)樗鼉?nèi)部沒(méi)有有毒重金屬元素。
33、目前在使用和研究的“綠色電池”有哪些?
新型綠色環(huán)保電池是指近年來(lái)已經(jīng)投入使用或正在研制開(kāi)發(fā)的一類高性能、無(wú)污染的電池。目前已經(jīng)大量使用的鋰離子蓄電池、金屬氫化物鎳蓄電池和正在推廣使用的無(wú)汞堿性鋅錳電池以及正在研制開(kāi)發(fā)的鋰或鋰離子塑料蓄電池、燃燒電池、電化學(xué)儲(chǔ)能超級(jí)電容器都屬于新型綠色環(huán)保電池的范疇。此外,目前已經(jīng)廣泛應(yīng)用的利用太陽(yáng)能進(jìn)行光電轉(zhuǎn)換的太陽(yáng)電池。
34、什么電池將會(huì)主宰電池市場(chǎng)?
隨著照相機(jī),移動(dòng)和無(wú)繩電話,筆記本電腦,帶圖像,聲音的多媒體設(shè)備在家用電器中占據(jù)越來(lái)越重要的位置,與一次電池相比較,二次電池即可充電式電池也大量的應(yīng)用到這些領(lǐng)域中。而二次充電電池將向體積小,重量輕,容量,智能化的方向發(fā)展。
35、什么是鋰離子蓄電池?
是指以鋰離子為反應(yīng)活性物質(zhì)的可充式電池,當(dāng)電池放電到終止電壓后能夠再充電,以恢復(fù)到放電前的狀態(tài)。
36、鋰離子蓄電池的工作原理?
放電時(shí),鋰與碳的相嵌化合物中的鋰,從負(fù)極溶解形成鋰離子到電解液中,穿過(guò)電解液并在正極晶體中嵌入形成嵌入化合物.充電時(shí),在正極嵌入的鋰離子重新回到電解液中,然后在負(fù)極上與碳形成嵌入化合物,周而復(fù)始.37、鋰離子蓄電池與鎳/鎘、鎳/氫、鉛酸蓄電池相比有哪些優(yōu)點(diǎn)?
比能量高,自放電率低,高低溫性能好和充放電壽命長(zhǎng)。
38、何為電池的平均電壓?
電池放電時(shí),從開(kāi)始到放電終止時(shí)的電壓平均值。
39、何為電池的能量密度?
指電池的單位體積所含的電能。
40、何為電池的容量?
指電池內(nèi)的活性物質(zhì)參加電化學(xué)反應(yīng)所能放出的電能稱為電池的容量。
41、何為電池的設(shè)計(jì)容量?
根據(jù)電池內(nèi)所含活性物質(zhì)的量,從電化學(xué)理論計(jì)算電池的容量稱為設(shè)計(jì)容量。
42、何為電池額定容量?
指電池經(jīng)設(shè)計(jì)后,經(jīng)電池制程過(guò)程的影響,電池所能達(dá)到容量稱為額定容量。
43、鋰離子蓄電池的工作溫度范圍? 充電
-10—45℃
放電
-30—55℃
44、何為電池的倍率放電?
指放電時(shí),放電電流(A)與額定容量(A?h)的倍率關(guān)系表示。
45、何為電池的小時(shí)率放電?
按一定輸出電流放完額定容量所需的小時(shí)數(shù)數(shù),稱為放電時(shí)率。
46、鋰離子蓄電池由那些原材料組成?
正極活性物質(zhì),負(fù)極活性物質(zhì),集流片,隔膜,電解液,外殼等材料組成。
47、鋰離子蓄電池型號(hào)與電池的那些特征有關(guān)?
電池的外形長(zhǎng)、寬、高及電池的容量。
48、影響鋰離子電池循環(huán)性能的兩個(gè)最重要的因素是什么?
活性物質(zhì)的性質(zhì)和雜質(zhì)的種類、含量。
49、如何在生產(chǎn)過(guò)程中控制電池內(nèi)部的水份?
1、作好防潮、防濕處理。
2、縮短操作時(shí)間,減少極片在空氣中暴露時(shí)間。
3、合理正確地進(jìn)行烘烤作業(yè)。
4、盡量在干燥環(huán)境下進(jìn)行作業(yè)。
50、鋰離子蓄電池的活性正極材料是什么? 鋰鹽;如鈷酸鋰,錳酸鋰,鎳酸鋰等。
51、鋰離子蓄電池的活性負(fù)極材料是什么?
石墨粉
52、電極材料為何要加入導(dǎo)電劑? 在電池工作時(shí),電池的活性物質(zhì)無(wú)論充放電都不會(huì)溶解在電解液中,為加強(qiáng)活性物質(zhì)與網(wǎng)柵、集流片的接解導(dǎo)電性,而加放導(dǎo)電劑。
53、鋰離子蓄電池的電解液的組成是什么?
常用的為六氟磷酸鋰,四氟磷酸鋰(LiPF6、LiClO4)等。
54、配料的目的是什么?
使活性物質(zhì)分散均勻,便于拉漿均勻,上漿量恒定。
55、請(qǐng)簡(jiǎn)述配料的工藝流程。
56、正、負(fù)極片拉漿的三個(gè)基本參數(shù)。
拉漿溫度、速度、敷料量。
57、如何控制極片的敷料量? 根據(jù)正負(fù)極漿料的固含量、比重調(diào)節(jié)拉漿機(jī)機(jī)頭刀具間隙,控制拉漿的厚度,以達(dá)到控制。
58、如何頭判定拉漿過(guò)程中極片的質(zhì)量好壞。
極片表面平整、光滑、敷料均勻、附著力好、干燥,不脫料、不掉料、缺料、無(wú)積塵、無(wú)劃痕、無(wú) 氣泡的極片為好的極片,有缺陷的為不好的極
59、正、負(fù)極片裁片的主要的設(shè)備。
鍘紙刀、剪板機(jī)。
60、正、負(fù)極片的主要注意事項(xiàng)。1)、檢查刀口有無(wú)毛刺、不平,作業(yè)時(shí)注意用刀的安全。2)、正負(fù)極裁片用刀不可混用。3)、在裁片過(guò)程中隨時(shí)檢查極片的質(zhì)量,將不合格的分檔分開(kāi),不可混淆放置。4)、裁完的片經(jīng)檢查后極時(shí)轉(zhuǎn)入以后的工序作業(yè)中。61、正、負(fù)極正烘烤的目的是什么?
除去極片內(nèi)的水份和有機(jī)溶劑。
62、正、負(fù)極片壓片的目的? 使活性物質(zhì)與網(wǎng)柵及集流片接觸緊密,減小電子的移動(dòng)距離,降低極片的厚度,增加裝填量,提高電池體積的利用率。從而提高電池的容量。
63、壓片厚度對(duì)電池性能有什么影響?
壓片厚度太厚時(shí),容易使電池內(nèi)活性物質(zhì)量減少,單位體積的活性物質(zhì)量的減少和極化電位的增大,從而造成電池的容量降低。
壓片厚度太薄時(shí),容易造成電池內(nèi)的活性物質(zhì)量增加,極片表面有效面積減小,從而造成活性材料的浪費(fèi)和大電流的困難。64、極片稱重的目的是什么?
準(zhǔn)確了解和掌握極片的敷料量。
65、配片的目的是什么?
使正負(fù)極片上的活性物質(zhì)的量比例保持一致性。66、為什么要進(jìn)行刷片操作?
清除極片上的積塵,積料,毛刺等。67、正極片采用什么極耳?
采用鋁帶極耳。68、負(fù)極片采用什么極耳?
采用鎳帶極耳。
69、焊接極耳的設(shè)備?
正極用超聲波焊機(jī),負(fù)極用點(diǎn)焊機(jī)。70、卷繞車間的濕度對(duì)電池質(zhì)量有什么影響?
卷繞房?jī)?nèi)的濕度大時(shí),極片吸水量大,增加了極片的水份含量,在電池中產(chǎn)生氣體量增加,使電池的內(nèi)壓增加,危害電池的安全性能。水份的增加多消耗電池中的活物質(zhì),使電池容量下降。濕度小反之
71、卷繞車間中空調(diào)機(jī)和除濕系統(tǒng)的作用?
保持室內(nèi)的溫度恒度,減小室內(nèi)的濕度,以提高電池的性能。72、卷繞車間是否可用水擦地板?
不可以
73、卷繞電池芯的主要注意事項(xiàng)?
1、極片與隔膜紙鋪平對(duì)齊。用手按住極片與隔膜紙時(shí),用力大小適中均勻。電池芯卷繞松緊適當(dāng)。
2、注意極片上有無(wú)劃痕、掉料、缺料、氣孔、起泡等不良及隔膜紙有無(wú)不良,如有作廢品處理。
3、卷繞時(shí)注意手腳的諧調(diào)性,不被卷針劃傷手。73、電池芯貼膠紙的目的和位置?
電池芯貼紙的位置在電芯卷繞成型后不變形。底部貼膠紙防止電芯內(nèi)的正極片底部與電池外殼接觸電池造成短路。側(cè)面貼紙使電芯卷繞成型后不變形。底部貼膠紙防止電芯內(nèi)的正極片底部與電池外殼接觸造成電池短路。74、將極耳焊接到蓋板上采用那些設(shè)備? 超聲波、對(duì)焊機(jī)。75、電池芯電阻要求? 大于20MΩ 76、電池芯的電阻達(dá)不到要求怎么辦? 返修
77、為何極耳也要貼膠紙?
增加牢固性和防止極耳接觸產(chǎn)生短路。
78、電池蓋板在使用前需要做那些檢驗(yàn)?
外形尺寸、形狀、厚度、絕緣懷、密封性、耐腐蝕性、材持等項(xiàng)目的檢驗(yàn)。79、電池蓋板所能承受的最大壓力是多少? 0.4Mpa 80、如何防止電池漏液?
防止電池漏液應(yīng)做好以下幾方面的工作:
1、焊接電池外殼與蓋帽時(shí),應(yīng)焊接牢固、密封,焊接無(wú)漏焊、虛焊,焊縫無(wú)裂縫、裂口等不良。
2、鋼珠封口時(shí),鋼珠大小適當(dāng),鋼珠材質(zhì)與蓋帽材質(zhì)相同。焊接無(wú)裂口、裂縫并且焊接牢固。
3、蓋帽的正極柳接緊密,無(wú)間隙,并且絕緣密封墊彈性適當(dāng),耐腐蝕,不易老化。81、如何在現(xiàn)有條件下防止未封口電池在車間吸水?
1、作業(yè)電池應(yīng)少量多次??s短電池在空氣中暴露時(shí)間。
2、作業(yè)完畢的電池及時(shí)轉(zhuǎn)送到下一工序。盡量縮短電池在制程中的停滯時(shí)間。82、干燥房的濕度要求? 相對(duì)濕度在6%以下。
83、干燥房的濕度對(duì)電池的性能有什么影響? 濕度增加使電池芯的吸水量增大,使電池的容量下降,內(nèi)壓增加。84、如何盡量防止?jié)駳膺M(jìn)入干燥房? 少進(jìn)少出,少開(kāi)門,干燥房的門不能同時(shí)打開(kāi)。85、你認(rèn)為干燥房可以用水擦地板嗎? 不可以。86、電池在注液前需要做那些處理?
涂膠和真空烘烤處理。
87、電池在注液前為何要進(jìn)行真空烘烤? 盡量除去電芯內(nèi)的所含的水份和溶劑。88、電池在注液前為何要稱重?
以便準(zhǔn)確計(jì)算注液量多少。89、電池注液方法?用手動(dòng)注液機(jī)或自動(dòng)注液機(jī)進(jìn)行注液操作。
90、如何檢驗(yàn)電池是否注滿電解液? 用真空抽吸測(cè)試,在注液口上用真空吸時(shí),有電解液被抽上表示已滿,沒(méi)有表示沒(méi)滿 91、電解液中的LiOF6的作用?
導(dǎo)電的電解質(zhì)。92、電解液中的LiPF6的濃度? 1mol/L 93、電解液中溶劑的作用?溶解電解質(zhì),使電解質(zhì)離子化。94、電解液的電導(dǎo)率范圍?
8×10-3Ω-1 95、電導(dǎo)率對(duì)電池工作電流的影響?電導(dǎo)率影響倍率放電率,和電池的內(nèi)阻,和電池的電壓。
96、電池的內(nèi)阻受那些因素影響?電解液的電導(dǎo)率,電池的外殼材料性能,極片的導(dǎo)電率及極耳材料的截面積。電池焊接的質(zhì)量。
97、電池的容量受那些因素影響?正負(fù)極材料的特征的性能及材料的種類、型號(hào)和活性物質(zhì)的量。正負(fù)極活性物質(zhì)的正確比例。電解液的濃度和種類。
生產(chǎn)制程過(guò)程。
98、你認(rèn)為如何在電池生過(guò)程中控制電池內(nèi)的水份?
在生產(chǎn)制程中嚴(yán)格控制環(huán)境的濕度以及加強(qiáng)電芯的烘烤控制電池的水份。99、電池在帶電時(shí)可否用表測(cè)量電阻? 可以
100、化成機(jī)在化成大容量電池時(shí)應(yīng)該注意什么問(wèn)題? 注意電池的總功率是否超過(guò)化成機(jī)的功率。就目前國(guó)際標(biāo)準(zhǔn)電液lipf6體系而言: 1M lipf6 EC:DMC 1:1 RT(9ms)低溫性能差,-10℃EC結(jié)晶 1M lipf6 EC:DEC 1:1 低溫略好 揮發(fā)性氣體 對(duì)鋰不穩(wěn)定 改進(jìn)方向:在不影響碳電化學(xué)性能條件下,三元體系或者四元體系 例如:1M lipf6 EC:DEC:DMC 1:1:1(SONY)等等 lipf6體系優(yōu)點(diǎn):對(duì)鋁穩(wěn)定、電導(dǎo)率高、SEI容易形成......缺點(diǎn):溶劑中80度分解、水解.....總體上說(shuō),各廠家針對(duì)負(fù)極材料不同的會(huì)選擇合適配比的電解液配方.電解液與負(fù)極在形成SEI時(shí)得到質(zhì)量好的SEI同時(shí)氣體產(chǎn)生量較少,有沒(méi)有精通的???閉口化成,呵呵,保密
添加劑的種類大體有......不過(guò)不是萬(wàn)能的,看使用的目的,如果連目的都不清楚,還是不用的好 我還是想說(shuō)說(shuō),其實(shí)就負(fù)極而言,成膜的電位是比較高的,一般高于0.8V(石墨),而后才是嵌鋰階段,直到負(fù)極電位接近0V,請(qǐng)注意,千萬(wàn)要控制住不要低于0V,那樣會(huì)出現(xiàn)析鋰了。其實(shí)所謂成膜添加劑,有些就是在更高的電位成膜,來(lái)減少EC等在負(fù)極表面成膜而造成的不可逆容量。
就整個(gè)電池電壓而言,是在電壓較低的時(shí)候成膜,此時(shí)正極電位剛剛爬到3.90V以上,考慮到極化的影響,成膜電壓應(yīng)該在3.35V或更低。大家可以做試驗(yàn),用極小的電流,來(lái)觀察是否有“平臺(tái)”出現(xiàn),當(dāng)然要細(xì)心觀察。SEI并不重要!
電池在初始充電都能很好的形成,對(duì)電池的性能改善不大!原材料本身的缺陷在后天工藝上是彌補(bǔ)不了的!電池的好壞要看工藝的成熟程度和品質(zhì)的控制思維,還有原材料本身的性能和穩(wěn)定性,以及其中的合理搭配!
說(shuō)白了電池要做好和其他的產(chǎn)品一樣,需要技術(shù),品質(zhì),管理等的一切配合,能做好其他就能做好電池,能做好電池你也能做好其他,包括汽車!國(guó)產(chǎn)VC如何叩開(kāi)電解液廠的大門
VC因?yàn)槠鋵?duì)電池的循環(huán)有很好的效果所以目前很多電解液廠都使用其做添加劑制作功能電解液。但是因?yàn)橐筝^高大部份廠家就選進(jìn)口VC了,而其中日本產(chǎn)的VC因?yàn)橘|(zhì)量較好所占的分額較大。其時(shí)國(guó)產(chǎn)VC只要做好以下幾方面要叩開(kāi)電解液廠的大門可以說(shuō)是比較輕松的事。與進(jìn)口VC相比國(guó)產(chǎn)貨主要是質(zhì)量較差:
1.純度不夠高,電池工業(yè)級(jí)要求純度達(dá)到99。99%以上。2.水分太高,電解液要求VC含水量不超過(guò)10PPM,而很多國(guó)產(chǎn)VC達(dá)不到這一指標(biāo)所以被拒之門外,這是一很重要的指標(biāo)。3.穩(wěn)定性不好,一般低溫放置三個(gè)月就變色了而一般日產(chǎn)的VC可放六個(gè)月以上,一般一百公斤可用五個(gè)月左右,變色的VC無(wú)論如何電解液廠都是不敢用的。
以上三點(diǎn)是電解液廠考慮的重點(diǎn),特別是第二和第三點(diǎn)是重中之重,因?yàn)榧兌确矫骐娊庖簭S因?yàn)槭苌V柱使用 范圍的限制而無(wú)法分析,但是要想建立長(zhǎng)久的合作VC廠商就必須達(dá)到這一指標(biāo),但在前期可以吹一下牛皮的了,畢竟這年頭不吹牛連電解液都賣不掉,VC廠吹一下牛又有什么關(guān)系呢!對(duì)于第二點(diǎn)則需要VC廠商的努力了,筆者這里有相關(guān)的可行性方案,而對(duì)于第三點(diǎn)要控制變色方法還是很多的,而其對(duì)電解液的損失是頭等因數(shù),而其造成電解液的變色是無(wú)法挽回的,同時(shí)還要解決的問(wèn)題是VC與電解液穩(wěn)定劑的影響,筆者在使用過(guò)程中發(fā)現(xiàn)一個(gè)經(jīng)常被電解液廠忽視的問(wèn)題,這一點(diǎn)連日產(chǎn)VC都無(wú)法避免如果國(guó)產(chǎn)的可解決這一問(wèn)題那么其效果則不用我多說(shuō)了吧!
總之希望VC和電解液都做好,很好賣!聯(lián)系電話:0*** 對(duì)于一臺(tái)手機(jī)或一臺(tái)電腦而言,電池的作用就如同一個(gè)人的心臟一樣,而電解液就如同血液一樣。大家對(duì)電池的要求越來(lái)越高相應(yīng)的電池廠商對(duì)電解液的要求也越來(lái)越高,畢竟在一個(gè)固液反應(yīng)體系而言,溶液的作用是關(guān)鍵。那么電解液對(duì)電池有什么影響呢?
首先,電解液對(duì)電池的比容量和循環(huán)壽命有決定作用。電解液質(zhì)量的好壞直接影響電池的比容量和循環(huán),好的電解液可以使電池的循環(huán)做到700以上,而差的電解液也許連300也做不到。好的電解液可以使容量達(dá)到理想的范圍,而差的電解液會(huì)使很多工作功虧一潰。
其次,電解液會(huì)影響電池的內(nèi)阻和自放電。影響電池的內(nèi)阻包括以下幾方面:隔膜的厚度和孔隙率;正負(fù)極的密實(shí)度;電解液中的機(jī)械雜質(zhì)和沉積物。在此我僅對(duì)電解液的影響稍做討論。電解液在生產(chǎn)過(guò)程中不可避免會(huì)使用分子篩,即使過(guò)濾也會(huì)留有分子篩的碎屑。機(jī)械雜質(zhì)不僅會(huì)使離子遷移困難,還會(huì)堵塞隔膜的細(xì)孔對(duì)電極產(chǎn)生包復(fù)作用,這就造成了電池的內(nèi)阻升高,同時(shí)包復(fù)作用還會(huì)使電極的比表面減少造成電極的利用率降低。再者分子篩中帶入的鈉離子會(huì)使電池的自放電增大,同時(shí)使電池的容量衰減。
再次,對(duì)電池安全性能的影響。電解液中的雜質(zhì)會(huì)使電池發(fā)生氣漲和鼓包,嚴(yán)重的會(huì)漲裂電池而漏液,更危險(xiǎn)的會(huì)發(fā)生爆炸,具體的雜質(zhì)下文會(huì)敘及。第四,對(duì)電池穩(wěn)定性的影響。電解液的穩(wěn)定性直接影響到電池的穩(wěn)定。
第五,對(duì)電池耐候性的影響。因?yàn)榈赜虻挠绊憣?duì)電池的要求會(huì)有所不同普通的電解液在0度左右會(huì)凝固,所以在北方的冬天不適用。第六,對(duì)其他特殊性能的影響。如大電流放電和快速充電,聚合物鋰電等都與電解液的生產(chǎn)制照和其質(zhì)量密不可分。終上所述,電解液對(duì)電池的性能起決定性的作用,那么影響電解液的因數(shù)是什么呢
電解液的滲透與分布:
一、電極的比表面積加大(材料比表面積和導(dǎo)電劑的添加量及種類);
二、正負(fù)極片不要壓太實(shí);
三、注液后的擱置時(shí)間和方式(離心,加溫,延長(zhǎng)時(shí)間等);
四、化成制度,盡量延長(zhǎng)時(shí)間;
五、化成后的擱置時(shí)間和方式;材料充分被浸透,電池性能才能穩(wěn)定和正常發(fā)揮 SEI膜不重要???你不是做電池的吧?電解液和碳負(fù)極的相容性問(wèn)題,不同的電解液有不同的負(fù)極去匹配。
一般來(lái)說(shuō),天然石墨包覆的負(fù)極,不可逆容量要大一點(diǎn)。mcmb要好一點(diǎn),這是我實(shí)驗(yàn)的結(jié)果。還有一個(gè),SEI膜的成膜電位是1.2~0.8V(vs Li/Li+),嵌鋰電位是0.25~0v,這個(gè)電位中嵌入的鋰才是可逆的。如果能讓SEI膜在更高的電位下形成,它能阻止溶劑的進(jìn)一步還原,減少不可逆容量,也就是在首次充電曲線中不可逆容量的極化比較大,容易下降到嵌鋰平臺(tái),這樣形成的可逆容量要高。SEI膜對(duì)電池的循環(huán)性能有至關(guān)重要的作用,沒(méi)有良好的SEI膜,每次循環(huán)都有較大不可逆容量損失,這樣的電池通??梢詮碾娊庖何?,或電池內(nèi)部存在結(jié)晶水時(shí)可以看出來(lái)。electrodes with high power and high capacity for rechargeable lithium batteries 本研究組已經(jīng)實(shí)現(xiàn)磷酸鐵鋰的規(guī)?;a(chǎn),現(xiàn)處于保密階段.粒度超前穩(wěn)定在1-2微米,1C容量120mAh/g以上.估計(jì)今年底達(dá)到噸量級(jí)。預(yù)備自用 若想生產(chǎn)出來(lái)批次穩(wěn)定的產(chǎn)品取決于以下幾點(diǎn):
1、原材料的具有穩(wěn)定的純度,穩(wěn)定的粒徑,較少的s,Na等離子。純度不高的材料會(huì)使LiFePO4的晶格結(jié)構(gòu)。
2、穩(wěn)定的混合工藝以保證多種原料達(dá)到分子級(jí)混合狀態(tài),穩(wěn)定的燒結(jié)工藝以保證所得材料的一致性。
3、燒結(jié)后要采用先進(jìn)的粉碎技術(shù),以保證最終產(chǎn)品具有穩(wěn)定的粒徑和比表面積。鋰離子電池陰極活性材料的表面改性方法
鋰離子電池陰極活性材料的表面改性方法,先將可溶性的摻雜離子鹽配制成水溶液,然后將有機(jī)溶劑與水溶液混合,再加入需要改性的陰極活性材料粉末攪拌均勻形成懸浮液,在懸浮液中加入尿素回流,并加熱即可得到改性的陰極活性材料粉末。本發(fā)明利用尿素的水解促成沉淀劑的生成,使改性氧化物的前驅(qū)體離子發(fā)生沉淀反應(yīng),通過(guò)反應(yīng)條件的調(diào)節(jié),控制沉淀劑的釋放速度,滿足包覆前驅(qū)體在陰極活性材料表面非均勻成核的條件,讓改性氧化物全部在陰極活性材料表面成核生長(zhǎng),產(chǎn)生均勻致密的包覆前驅(qū)體,再在一定溫度下使沉淀分解為改性氧化物,最后在一定溫度下處理包覆氧化物的陰極活性材料,在其表面形成高濃度的摻雜離子,能夠顯著改善陰極材料的循環(huán)性能。
1、鋰離子電池陰極活性材料的表面改性方法,其特征在于: 1)首先將可溶性的摻雜離子鹽MxAy配制成濃度為0.01-0.2mol/l的水溶液,其中M=Mg2+、Zn2+、Ni2+、Cu2+、Al3+、Co3+、Cr3+、Fe3+或Ti4+;A=NO-
3、Cl-或 CH3COO-; 2)然后將有機(jī)溶劑與水溶液按2∶1~1∶10的體積比混合,再在該混合液中按10~300g/l加入需要改性的陰極活性材料LiBO2或LiNZMn2-ZO4、LiFePO4粉末攪拌均勻形成懸浮液,其中B=CoxNiyMn1-x-y,x=0-1,y=0-1,x+y≤1;N=Co、Ni、Ti、Cr或Cu,Z=0~0.5; 3)按摻雜離子與尿素1∶1~1∶10的摩爾比在懸浮液中加入尿素,在70 ℃-100℃回流,持續(xù)攪拌并加熱2-20h后,在空氣中60℃干燥20h,隨后在 200-600℃恒溫處理5-20h,再在600-1000℃處理1-20h,研磨后得到改性的陰極活性材料粉末
第五篇:VB常見(jiàn)問(wèn)題總結(jié)
快捷域名:http://yujimyfavorcn.programfan.com 創(chuàng)建于:2005-6-5 共 6篇文章 訪問(wèn)統(tǒng)計(jì):169
VB常見(jiàn)問(wèn)題總結(jié)
點(diǎn)擊數(shù):138 發(fā)布日期:2005-6-5 18:28:00 【字體:大 中 小】【評(píng)論】【打印】
各位朋友大家好,如果你在這里的時(shí)間夠長(zhǎng),那么你會(huì)發(fā)現(xiàn)很多帖子的問(wèn)題是相同的,既然這樣,不如總結(jié)到一起讓初學(xué)者來(lái)翻看,再熱心的大蝦也不愿意把一個(gè)答案重復(fù)幾十遍:)Ryowu制作匆忙,難免錯(cuò)漏,還請(qǐng)見(jiàn)諒。
若朋友您想要問(wèn)如何才能學(xué)好vb,或者入門需要看什么教材一類的問(wèn)題,建議你抱著一顆刻苦鉆研的心去面對(duì)這門學(xué)問(wèn),多動(dòng)腦,少提問(wèn),遇到不知道的,多查msdn,多看老貼,或者用斷點(diǎn)來(lái)親自試驗(yàn)。實(shí)在不會(huì)了,請(qǐng)?jiān)诖速N中查找您的常見(jiàn)問(wèn)題,如果還沒(méi)有,那請(qǐng)您發(fā)出新貼,向各位高手討教:)
查找方法:按ctrl+f,輸入要查找的問(wèn)題關(guān)鍵字即可
注明:本貼源于VB編程樂(lè)園網(wǎng)站,本人只是稍微編輯了一下。
每個(gè)問(wèn)題中間用///分隔,這只是一部分最常見(jiàn)到的問(wèn)題,以后會(huì)逐漸更新。
//////////////////////////////////////////////////////////////////////////////////// 如何用VB建立快捷方式
Private Declare Function fCreateShellLink Lib “STKIT432.DLL”(ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String)As Long Sub Command1_Click()Dim lReturn As Long '添加到桌面
lReturn = fCreateShellLink(“....Desktop”, “Shortcut to Calculator”, “c:windowscalc.exe”, “")'添加到程序組
lReturn = fCreateShellLink(”“, ”Shortcut to Calculator“, ”c:windowscalc.exe“, ”“)'添加到啟動(dòng)組
lReturn = fCreateShellLink(”Startup“, ”Shortcut to Calculator“, ”c:windowscalc.exe“, ”“)End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何讓程序在 Windows 啟動(dòng)時(shí)自動(dòng)執(zhí)行?
有以下二個(gè)方法:
方法1: 直接將快捷方式放到啟動(dòng)群組中。
方法2: 在注冊(cè)檔 HKEY_LOCAL_MACHINE 中找到以下機(jī)碼 SoftwareMicrosoftWindowsCurrentVersionRun 新增一個(gè)字串值,包括二個(gè)部份
1.名稱部份:自己取名,可設(shè)定為 AP 名稱。
2.資料部份:則是包含 '全路徑檔案名稱' 及 '執(zhí)行參數(shù)' 例如:
Value Name = Notepad Value Data = c:windowsnotepad.exe
//////////////////////////////////////////////////////////////////////////////////// 在 TextBox 中如何限制只能輸入數(shù)字?
參考下列程序:
Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If End Sub
//////////////////////////////////////////////////////////////////////////////////// 我希望 TextBox 中能不接受某些特定字符,例如 '@#$%”,有沒(méi)有簡(jiǎn)單一點(diǎn)的寫(xiě)法?
方法有好幾種, 以下列舉二種:
方法1: 可以使用 IF 或 Select Case 一個(gè)個(gè)判斷, 但如果不接受的字符多時(shí), 較麻煩!方法2: 將要剔除的字符統(tǒng)統(tǒng)放在一個(gè)字串中,只要一個(gè) IF 判斷即可!如下: Private Sub Text1_KeyPress(KeyAscii As Integer)Dim sTemplate As String sTemplate = “!@#$%^&*()_+-=” '用來(lái)存放不接受的字符 If InStr(1, sTemplate, Chr(KeyAscii))> 0 Then KeyAscii = 0 End If End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何讓鼠標(biāo)進(jìn)入 TextBox 時(shí)自動(dòng)選定 TextBox 中之整串文字?
這個(gè)自動(dòng)選定反白整串文字的動(dòng)作,會(huì)使得輸入的資料完全取代之前在 TextBox 中的所有字符。
Private Sub Text1_GotFocus()Text1.SelStart = 0 Text1.SelLength = Len(Text1)End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何檢查軟盤驅(qū)動(dòng)器里是否有軟盤?
使用:
Dim Flag As Boolean
Flag = Fun_FloppyDrive(“A:”)If Flag = False Then MsgBox “A:驅(qū)沒(méi)有準(zhǔn)備好,請(qǐng)將磁盤插入驅(qū)動(dòng)器!”, vbCritical
' '函數(shù):檢查軟驅(qū)中是否有盤的存在 ' Private Function Fun_FloppyDrive(sDrive As String)As Boolean On Error Resume Next Fun_FloppyDrive = Dir(sDrive)<> “" End Function
//////////////////////////////////////////////////////////////////////////////////// 如何彈出和關(guān)閉光驅(qū)托盤?
Option Explicit
Private Declare Function mciSendString Lib ”winmm.dll“ Alias ”mciSendStringA“(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long)As Long
Private Sub Command1_Click()mciExecute ”set cdaudio door open“ '彈出光驅(qū) Label2.Caption = ”彈 出“ End Sub
Private Sub Command2_Click()Label2.Caption = ”關(guān) 閉“
mciExecute ”set cdaudio door closed“ '合上光驅(qū) Unload Me End End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何讓你的程序在任務(wù)列表隱藏
Private Declare Function RegisterServiceProcess Lib ”kernel32“(ByVal ProcessID As Long, ByVal ServiceFlags As Long)As Long Private Declare Function GetCurrentProcessId Lib ”kernel32“()As Long
'請(qǐng)你試試 Ctrl+Alt+Del 是不是你的程序隱藏了 Private Sub Command1_Click()i = RegisterServiceProcess(GetCurrentProcessId, 1)End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何用程序控制滑鼠游標(biāo)(Mouse Cursor)到指定位置?
以下這個(gè)例子,當(dāng) User 在 Text1 中按下 'Enter' 鍵后,滑鼠游標(biāo)會(huì)自動(dòng)移到 Command2 按鈕上方
請(qǐng)?jiān)诼暶鲄^(qū)中加入以下聲明:
'16 位版本:(Sub 無(wú)傳回值)Declare Sub SetCursorPos Lib ”User“(ByVal X As Integer, ByVal Y As Integer)
'32 位版本:(Function 有傳回值,Integer 改成 Long)Declare Function SetCursorPos Lib ”user32“(ByVal x As Long, ByVal y As Long)As Long
'在 Form1 中加入以下程序碼:
Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then x% =(Form1.Left + Command2.Left + Command2.Width / 2 + 60)/ Screen.TwipsPerPixelX y% =(Form1.Top + Command2.Top + Command2.Height / 2 + 360)/ Screen.TwipsPerPixelY SetCursorPos x%, y% End If End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何用鼠標(biāo)移動(dòng)沒(méi)有標(biāo)題的 Form,或移動(dòng) Form 中的控制項(xiàng)?
在聲明區(qū)中放入以下聲明:
'16 位版本:(Sub 無(wú)返回值)Private Declare Sub ReleaseCapture Lib ”User“()Private Declare Sub SendMessage Lib ”User“(ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Long)
'32 位版本:(Function 有返回值,Integer 改成 Long)Private Declare Function ReleaseCapture Lib ”user32“()As Long Private Declare Function SendMessage Lib ”user32“ Alias ”SendMessageA“(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)As Long
'共用常數(shù):
Const WM_SYSCOMMAND = &H112 Const SC_MOVE = &HF012
'若要移動(dòng) Form,程序碼如下:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim i As Long i = ReleaseCapture i = SendMessage(Form1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0)End Sub
'以上功能也適用于用鼠標(biāo)在 Form 中移動(dòng)控制項(xiàng),程序碼如下:
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim i As Long i = ReleaseCapture i = SendMessage(Command1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0)End Sub
//////////////////////////////////////////////////////////////////////////////////// 檢查文件是否存在?
Function FileExists(filename As String)As Integer Dim i As Integer On Error Resume Next i = Len(Dir$(filename))If Err Or i = 0 Then FileExists = False Else FileExists = True End Function
//////////////////////////////////////////////////////////////////////////////////// 如何設(shè)置對(duì)VB數(shù)據(jù)庫(kù)連接的動(dòng)態(tài)路徑
我個(gè)人因?yàn)榻?jīng)常作一些數(shù)據(jù)庫(kù)方面的程序,對(duì)于程序間如何與數(shù)據(jù)庫(kù)進(jìn)行接口的問(wèn)題之煩是深有體會(huì),因?yàn)閂B在數(shù)據(jù)庫(kù)鏈接的時(shí)候,一般是靜態(tài),即數(shù)據(jù)庫(kù)存放的路徑是固定的,如用VB的DATA,adodc,DataEnvironment 等到作數(shù)據(jù)庫(kù)鏈接時(shí),如果存放數(shù)據(jù)庫(kù)的路徑被改變的話,就會(huì)找不到路經(jīng),真是一個(gè)特別煩的事。
筆者的解決方法是利用app.path 來(lái)解決這個(gè)問(wèn)題。
一、用data控件進(jìn)行數(shù)據(jù)庫(kù)鏈接,可以這樣: 在form_load()過(guò)程中放入: private form_load()Dim str As String '定義 str = App.Path If Right(str, 1)<> ”“ Then str = str + ”“ End If data1.databasename=str & ”數(shù)據(jù)庫(kù)名“ data1.recordsource=”數(shù)據(jù)表名“ data1.refresh sub end 這幾句話的意為,打開(kāi)當(dāng)前程序運(yùn)行的目錄下的數(shù)據(jù)庫(kù)。你只要保證你的數(shù)據(jù)庫(kù)在你程序所在的目錄之下就行了。
二、利用adodc(ADO Data Control)進(jìn)行數(shù)據(jù)庫(kù)鏈接: private form_load()Dim str As String '定義 str = App.Path If Right(str, 1)<> ”“ Then str = str + ”“ End If str = ”Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=“ & str & ”tsl.mdb“ Adodc1.ConnectionString = str Adodc1.CommandType = adCmdText
Adodc1.RecordSource = ”select * from table3“ Adodc1.Refresh end sub
三、利用DataEnvironment進(jìn)行數(shù)據(jù)庫(kù)鏈接 可在過(guò)程中放入: On Error Resume Next
If DataEnvironment1.rsCommand1.State <> adStateClosed Then DataEnvironment1.rsCommand1.Close '如果打開(kāi),則關(guān)閉 End If 'i = InputBox(”請(qǐng)輸入友人編號(hào):“, ”輸入“)'If i = ”“ Then Exit Sub
DataEnvironment1.Connection1.Open App.Path & ”userdatabasetsl.mdb“ DataEnvironment1.rsCommand1.Open ”select * from table3 where 編號(hào)='“ & i & ”'“ 'Set DataReport2.DataSource = DataEnvironment1 'DataReport2.DataMember = ”command1“ 'DataReport2.show end sub
四、利用ADO(ActiveX Data Objects)進(jìn)行編程: 建立連接:
dim conn as new adodb.connection dim rs as new adodb.recordset dim str str = App.Path If Right(str, 1)<> ”“ Then str = str + ”“ End If str = ”Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=“ & str & ”tsl.mdb“ conn.open str rs.cursorlocation=aduseclient rs.open ”數(shù)據(jù)表名“,conn,adopenkeyset.adlockpessimistic 用完之后關(guān)閉數(shù)據(jù)庫(kù): conn.close set conn=nothing
//////////////////////////////////////////////////////////////////////////////////// 如何讓用戶自行輸入方程式,并計(jì)算其結(jié)果?
假設(shè)我們要讓使用者在“方程式”欄位中自由輸入方程式,然后利用方程式進(jìn)行計(jì)算,則引用ScriptControl控件可以很方便地做到。
(ScriptControl 控件附屬于VB 6.0,如果安裝后沒(méi)有看到此一控件,可在光盤的
CommonToolsVBScript 目錄底下找此一控件,其.文件名為Msscript.ocx。)假設(shè)放在窗體上的ScriptControl控件名稱為ScriptControl1,則在“計(jì)算”按鈕的Click事件中編寫(xiě)如下代碼: Dim Statement As String Statement = ”X=“ + Text1.Text + vbCrLf + _ ”Y=“ + Text2.Text + vbCrLf + _ ”MsgBox “"計(jì)算結(jié)果=”“ & Y ” ScriptControl1.ExecuteStatement(Statement
//////////////////////////////////////////////////////////////////////////////////// 如何讓一個(gè) App 永遠(yuǎn)保持在最上層(Always on Top)
請(qǐng)?jiān)诼暶鲄^(qū)中加入以下聲明
Private Declare Function SetWindowPos Lib “user32”(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)As Long
Const SWP_NOMOVE = &H2 '不更動(dòng)目前視窗位置 Const SWP_NOSIZE = &H1 '不更動(dòng)目前視窗大小 Const HWND_TOPMOST =-1 '設(shè)定為最上層
Const HWND_NOTOPMOST =-2 '取消最上層設(shè)定 Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
'將 APP 視窗設(shè)定成永遠(yuǎn)保持在最上層
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
'取消最上層設(shè)定
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS
//////////////////////////////////////////////////////////////////////////////////// 我要如何在程序中開(kāi)啟網(wǎng)頁(yè)?
在聲明區(qū)中聲明如下(在.bas 檔中用 Public, 在 Form 中用 Private)
Private Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA”(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)As Long
在程序中
Intranet:
ShellExecute Me.hWnd, “open”, “http://Intranet主機(jī)/目錄”, “", ”“, 5 Internet:
ShellExecute Me.hWnd, ”open“, ”http://004km.cn.tw“, ”“, ”“, 5
//////////////////////////////////////////////////////////////////////////////////// VB可以產(chǎn)生四角形以外其他形狀的 Form 嗎?
這個(gè)問(wèn)題,您一定無(wú)法想像有多容易,您可以產(chǎn)生任何形狀的 Form,但必須借助 CreateEllipticRgn 及 SetWindowRgn 二個(gè) API,例如:
Private Declare Function CreateEllipticRgn Lib ”gdi32“(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long)As Long
Private Declare Function SetWindowRgn Lib ”user32“(ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean)As Long
Private Sub Form_Load()Dim lReturn As Long Me.Show lReturn = SetWindowRgn(hWnd, CreateEllipticRgn(10, 10, 340, 150), True)End Sub
執(zhí)行結(jié)果圖片
CreateEllipticRgn 之四個(gè)參數(shù)說(shuō)明如下:
X1:橢圓中心點(diǎn)之X軸位置,但以 Form 的實(shí)№邊界為限。Y1:橢圓中心點(diǎn)之Y軸位置,但以 Form 的實(shí)№邊界為限。X2:橢圓長(zhǎng)邊的長(zhǎng)度 Y2:橢圓短邊的長(zhǎng)度的
//////////////////////////////////////////////////////////////////////////////////// 如何移除 Form 右上方之『X』按鈕?
其實(shí) Form 右上方之三個(gè)按鈕分別對(duì)應(yīng)到 Form 左上方控制盒(ControlBox)中的幾個(gè)選項(xiàng)(縮到最小 / 放到最大 / 關(guān)閉),而其中的最大化(MaxButton)及最小化(Minbutton)都可以直接在 Form 的屬性中設(shè)定,但是 VB 并沒(méi)有提供設(shè)定『X』按鈕的功能!要達(dá)到這個(gè)功能,必須借助 API:
由于『X』按鈕對(duì)應(yīng)到 ControlBox 的關(guān)閉選項(xiàng),所以我們只要移除系統(tǒng) Menu(就是ControlBox)的關(guān)閉選項(xiàng)即可!您自己可以先看看您現(xiàn)在使用的 Browser 左上方的系統(tǒng) Menu,【關(guān)閉】選項(xiàng)是在第幾個(gè),不是第 6 個(gè)!是第 7 個(gè),分隔線也算一個(gè)!分隔線才是第 6 個(gè)!
當(dāng)我們移除了關(guān)閉選項(xiàng)之後,會(huì)留下一條很奇怪的分隔線,所以最好連分隔線也一并移除。而 Menu 的 Index 是從 0 開(kāi)始,分隔線是第 6 個(gè),所以 Index = 5。
修正:為了讓程序碼在 Windows NT 也能運(yùn)作正常,將各 Integer 型態(tài)改成 Long。89.05.04
'抓取系統(tǒng) Menu 的 hwnd Private Declare Function GetSystemMenu Lib ”user32“ Alias ”GetSystemMenu“(ByVal hwnd As Long, ByVal bRevert As Long)As Long '移除系統(tǒng) Menu 的 API Private Declare Function RemoveMenu Lib ”user32“ Alias ”RemoveMenu“(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long)As Long '第一個(gè)參數(shù)是系統(tǒng) Menu 的 hwnd '第二個(gè)參數(shù)是要移除選項(xiàng)的 Index
//////////////////////////////////////////////////////////////////////////////////// 如何制作透明的表單(Form)?
請(qǐng)?jiān)诼暶鲄^(qū)中放入以下聲明
Const GWL_EXSTYLE =(-20)Const WS_EX_TRANSPARENT = &H20& Const SWP_FRAMECHANGED = &H20 Const SWP_NOMOVE = &H2 Const SWP_NOSIZE = &H1 Const SWP_SHOWME = SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE Const HWND_NOTOPMOST =-2
Private Declare Function SetWindowLong Lib ”user32“ Alias ”SetWindowLongA“(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)As Long Private Declare Function SetWindowPos Lib ”user32“(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)As Long
在 Form_Load 使用的范例如下:
Private Sub Form_Load()SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, SWP_SHOWME Me.Refresh End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何在 Menu 中加入美美的圖案?
在模組中加入以下程序碼:
Declare Function GetMenu Lib ”user32“(ByVal hwnd As Long)As Long
Declare Function GetSubMenu Lib ”user32“(ByVal hMenu As Long, ByVal nPos As Long)As Long
Declare Function GetMenuItemID Lib ”user32“(ByVal hMenu As Long, ByVal nPos As Long)As Long
Declare Function SetMenuItemBitmaps Lib ”user32“(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long)As Long
Public Const MF_BITMAP = &H4&
Type MENUITEMINFO cbSize As Long fMask As Long fType As Long fState As Long wID As Long hSubMenu As Long hbmpChecked As Long hbmpUnchecked As Long dwItemData As Long dwTypeData As String cch As Long End Type
Declare Function GetMenuItemCount Lib ”user32“(ByVal hMenu As Long)As Long
Declare Function GetMenuItemInfo Lib ”user32“ Alias ”GetMenuItemInfoA“(ByVal hMenu As Long, ByVal un As Long, _ ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO)As Boolean
Public Const MIIM_ID = &H2 Public Const MIIM_TYPE = &H10 Public Const MFT_STRING = &H0&
在 Form 中加入一個(gè) PictureBox,屬性設(shè)定為: AutoSize = True Picture =.bmp(尺寸大小為 13x13,不可設(shè)定為.ico)
在 Form_Load 中的程序碼如下:
Private Sub Form_Load()'取得程序中 Mennu 的 handle hMenu& = GetMenu(Form1.hWnd)'取得第一個(gè) submenu 的 handle hSubMenu& = GetSubMenu(hMenu&, 0)'取得 Submenu 第一個(gè)選項(xiàng)的 menuId hID& = GetMenuItemID(hSubMenu&, 0)'加入圖片
SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture '在一個(gè) Menu 選項(xiàng)中您一共可以加入二張圖片 '一張是 checked 狀態(tài)用,一張是 unchecked 狀態(tài)用 End Sub
89、如何把小圖片填滿 Form 成為背景圖?
對(duì)于這個(gè)問(wèn)題,我看過(guò)很多方法,有的方法很麻煩,要聲明一大堆 Type,用一大堆的 API,但是有一個(gè)最笨但我認(rèn)為最好的方法如下:(就好像拼磁磚一樣,不用任何 API, 不必聲明任何 Type)
在 Form 中放一個(gè) PictureBox,Picture 屬性設(shè)定為某一張小圖,AutoSize 屬性性設(shè)定 True,完成的模組如下:
Sub PictureTile(Frm As Form, Pic As PictureBox)Dim i As Integer Dim t As Integer Frm.AutoRedraw = True Pic.BorderStyle = 0 For t = 0 To Frm.Height Step Pic.ScaleHeight For i = 0 To Frm.Width Step Pic.ScaleWidth Frm.PaintPicture Pic.Picture, i, t Next i Next t End Sub
PictureTile 這個(gè)模組共有二個(gè)參數(shù),第一個(gè)是表單名稱,第二個(gè)則是 PictureBox 的名稱。以下為一應(yīng)用實(shí)例:
Private Sub Form_Load()PictureTile Me, Picture1 End Sub
90、如何把小圖片填滿 MDIForm 成為背景圖?
以下這個(gè)范例,要:
1、一個(gè) MDIForm:不必設(shè)定任何屬性。
2、一個(gè) Form1:不一定是 MDIChild,最好 MDIChild 為 False,但是 AutoRedraw 設(shè)成 True。
3、Form1 上面放一個(gè)隱藏的 PictureBox:名稱為 Picture1,不必設(shè)定 Picture 屬性。
4、一張圖片的完整路徑。
'將以下模組放入 MDIForm 的聲明區(qū)中:
Sub TileMDIBkgd(MDIForm As Form, bkgdtiler As Form, bkgdfile As String)If bkgdfile = ”“ Then Exit Sub Dim ScWidth%, ScHeight% ScWidth% = Screen.Width / Screen.TwipsPerPixelX ScHeight% = Screen.Height / Screen.TwipsPerPixelY Load bkgdtiler bkgdtiler.Height = Screen.Height bkgdtiler.Width = Screen.Width bkgdtiler.ScaleMode = 3 bkgdtiler!Picture1.Top = 0 bkgdtiler!Picture1.Left = 0 bkgdtiler!Picture1.Picture = LoadPicture(bkgdfile)bkgdtiler!Picture1.ScaleMode = 3
For n% = 0 To ScHeight% Step bkgdtiler!Picture1.ScaleHeight For o% = 0 To ScWidth% Step bkgdtiler!Picture1.ScaleWidth bkgdtiler.PaintPicture bkgdtiler!Picture1.Picture, o%, n% Next o% Next n%
MDIForm.Picture = bkgdtiler.Image Unload bkgdtiler End Sub
以下為一應(yīng)用實(shí)例:
Private Sub MDIForm_Load()TileMDIBkgd Me, Form1, ”c:windowsTiles.bmp“ End Sub
//////////////////////////////////////////////////////////////////////////////////// 關(guān)閉指定的程序
要做到像 Task Manager 一樣,可以關(guān)閉指定的程序,方法如下:
在聲明區(qū)中放入以下聲明:(16位 改成 win31 API)
Declare Function FindWindow Lib ”user32“ Alias ”FindWindowA“(ByVal lpClassName As String, ByVal lpWindowName As String)As Long
Declare Function PostMessage Lib ”user32“ Alias ”PostMessageA“(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)As Long
Public Const WM_CLOSE = &H10
以下之范例示范如何關(guān)閉一個(gè)視窗標(biāo)題(Caption)為 【小算盤】的程序:
Dim winHwnd As Long Dim RetVal As Long winHwnd = FindWindow(vbNullString, ”小算盤“)Debug.Print winHwnd If winHwnd <> 0 Then RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)If RetVal = 0 Then
MsgBox ”Error posting message.“ End If Else MsgBox ”并未開(kāi)啟小算盤程序.“ End If
//////////////////////////////////////////////////////////////////////////////////// 如何隱藏及再顯示鼠標(biāo)
很簡(jiǎn)單,只用到了一個(gè) ShowCursor API,參數(shù)也很簡(jiǎn)單,只有一個(gè) bShow,設(shè)定值如下:
True:顯示鼠標(biāo) / False:隱藏鼠標(biāo)
Declare Function ShowCursor Lib ”user32“ Alias ”ShowCursor“(ByVal bShow As Long)As Long
//////////////////////////////////////////////////////////////////////////////////// 如何從您的應(yīng)程序中結(jié)束 Windows 重開(kāi)機(jī)?
很多軟件在 Setup 完之后都會(huì)自動(dòng)關(guān)機(jī)重開(kāi)機(jī),以便讓某些設(shè)定值可以生效,其實(shí)這個(gè)功能很簡(jiǎn)單,只要幾行指令就可以做到了!
關(guān)鍵就是要使用 ExitWindowsEx 這個(gè) API,這個(gè) API 只有二個(gè)參數(shù),第一個(gè)參數(shù)是一個(gè) Flag,目的是要告訴 Windows 要以什么方式關(guān)機(jī),在下面的聲明中會(huì)列出可用的 Flag 常數(shù)值,至于第二個(gè)參數(shù)則是一個(gè)保留值,只要設(shè)定成 0 就可以了。
很重要的一點(diǎn)是:如果您想要讓關(guān)機(jī)動(dòng)作更順利,記得要 Unload 您的程序!
'在聲明區(qū)中(Bas Module / Form Module)加入以下聲明:
Public Const EWX_LOGOFF = 0 '這四個(gè)常數(shù)值可以并用 Public Const EWX_SHUTDOWN = 1 Public Const EWX_REBOOT = 2 Public Const EWX_FORCE = 4 Declare Function ExitWindowsEx Lib ”user32“ Alias ”ExitWindowsEx“(ByVal uFlags As Long, ByVal dwReserved As Long)As Long
'實(shí)例:如果您想強(qiáng)迫關(guān)機(jī)重開(kāi)機(jī),程序碼如下:
ret = ExitWindowsEx(EWX_FORCE OR EWX_REBOOT, 0)
//////////////////////////////////////////////////////////////////////////////////// 如何用 VB 啟動(dòng)其他程序或開(kāi)啟各類文件?
要在 VB 中啟動(dòng)其他程序或開(kāi)啟各類文件,最簡(jiǎn)單的方法就是使用 Shell 函數(shù),例如:要開(kāi)啟 C:Test.txt 這個(gè)文字文件,則要啟動(dòng)記事本來(lái)開(kāi)啟這個(gè)文件案,程序如下:
Dim RetVal As Long RetVal = Shell(”C:WindowsNotepad.exe C:Test.txt“, 3)'3代表視窗會(huì)最大化,并具有駐點(diǎn),細(xì)節(jié)請(qǐng)查 Help
以上的語(yǔ)法雖然很簡(jiǎn)單,但有一個(gè)風(fēng)險(xiǎn),若是我們不知道開(kāi)啟文件的執(zhí)行文件位置,則程序便會(huì)有錯(cuò)誤產(chǎn)生,尤其一般軟件在安裝的時(shí)候都可以讓使用者自行選擇安裝目錄,所以執(zhí)行文件的路徑不能寫(xiě)死在程序中,要解決這個(gè)問(wèn)題,就是在注冊(cè)文件中找到該副文件名之啟動(dòng)程序位置,再放入 Shell 中。
但是以上的作法必須熟悉注冊(cè)文件,而且必須使用 Windows API 來(lái) Call(注冊(cè)文件的存取以后會(huì)有專文來(lái)說(shuō)明),如果您對(duì)注冊(cè)文件的存取及 API 的使用都很純熟的話,當(dāng)然沒(méi)問(wèn)題,但是有些人對(duì)于注冊(cè)文件會(huì)有畏懼,這時(shí)候,您可以使用下面的方法:
Shell(”Start C:Test.txt“)
您完全不用知道這份文件的啟動(dòng)程序是什么?它放在什么地方?參數(shù) Start 便會(huì)自動(dòng)依照附文件名到注冊(cè)文件中找到啟動(dòng)程序來(lái)開(kāi)啟該份文件案!不賴吧!
注一:在 Windows 95/98/NT平臺(tái)中, 什么副文件名之文件案, 該由什么執(zhí)行文件來(lái)啟動(dòng), 都設(shè)在關(guān)聯(lián)中,代碼為 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExtensions
例如: 名稱為 ”.DOC“ 之資料為 ”C:Progra~1Micros~2OfficeWINWORD.EXE ^.DOC“
名稱為 ”.TXT“ 之資料為 ”notepad.exe ^.txt“
注二:使用 Start 之唯一缺點(diǎn)為 ”會(huì)比直接指定執(zhí)行文件稍為慢 0.5-1 秒鐘.“
//////////////////////////////////////////////////////////////////////////////////// 如何找出 Windows 目錄的正確路徑?
有時(shí)候我們?cè)诔绦蛑斜仨氂玫?Windows 的目錄,以存取 Windows 目錄下的文件,照理說(shuō),這應(yīng)該是最簡(jiǎn)單的功能,前提是每個(gè)人在 Setup Windows 必須采用 Windows 的預(yù)設(shè)目錄名稱,也就是 C:Windows,但是常常不是這樣,有時(shí)候由於要使新舊版本共存,或者其他原因,有人會(huì)將 Windows 目錄改成 c:win95、c:win98、Windows95 或 Windows98......若是程序中必須用到 Windows 目錄,要找到正確的路徑,做法如下:
'在聲明區(qū)中加入以下聲明:
Const MAX_PATH = 260
Private Declare Function GetWindowsDirectory Lib ”kernel32“ Alias ”GetWindowsDirectoryA“(ByVal lpBuffer As String, ByVal nSize As Long)As Long
Public Function GetWinPath()Dim strFolder As String Dim lngResult As Long strFolder = String(MAX_PATH, 0)lngResult = GetWindowsDirectory(strFolder, MAX_PATH)If lngResult <> 0 Then GetWinPath = Left(strFolder, InStr(strFolder, Chr(0))1 Next lNum sGetFile = Mid(sGetFile, 2)'得到文件名 MsgBox sGetFile
//////////////////////////////////////////////////////////////////////////////////// 如何防止使用者按下 CTRL + ALT + DEL
有些時(shí)候,我們的應(yīng)用程序執(zhí)行時(shí),不希望使用者按下 CTRL + ALT + DEL 來(lái)異常結(jié)束程序或關(guān)機(jī),這時(shí)候我們可以在啟動(dòng)程序時(shí),將 CTRL + ALT + DEL 功能鍵之功能取消,然后在結(jié)束程序之前,再?gòu)男禄謴?fù) CTRL + ALT + DEL 之功能。
在模組聲明區(qū)中加入以下聲明及模組:
Declare Function SystemParametersInfo Lib ”user32“ Alias ”SystemParametersInfoA“(ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long)As Long
Public Const SPI_SCREENSAVERRUNNING = 97
Public Sub Disable_Ctrl_Alt_Del()'讓 CTRL+ALT+DEL 失效 Dim AyW As Integer Dim TurFls As Boolean
AwY = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, TurFls, 0)End Sub
Public Sub Enable_Ctrl_Alt_Del()'讓 CTRL+ALT+DEL 恢復(fù)功能 Dim AwY As Integer Dim TurFls As Boolean
AwY = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, TurFls, 0)End Sub
'實(shí)際使用時(shí),在 Form 中加入以下程序碼:
Private Sub Form_Load()Disable_Ctrl_Alt_Del End Sub
Private Sub Form_Unload(Cancel As Integer)Enable_Ctrl_Alt_Del End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何取得文件大???
VB6 提供了一個(gè)新的物件模型,叫做 FSO(File System Object)物件模型,運(yùn)用它,我們可以很方便的處理磁盤、資料夾和文件的一些動(dòng)作。
FSO 物件模型含有好幾個(gè)物件,其中有一個(gè) File 物件是用來(lái)求得文件的相關(guān)資訊,在目前這個(gè)主題,我們就可以使用 File 物件!它有一個(gè)屬性是 Size,對(duì)文件來(lái)說(shuō)就是指文件的大小(單位為位元組)。(注一)
雖然使用 File 物件的 Size 屬性就可以求得文件的大小,但是它有以下二個(gè)缺點(diǎn):
1、只能用于 VB6 以后的版本。
2、它不是 VB6 內(nèi)定的功能,必須另外引用 Scrrun.dll(Microsoft Scripting Runtime)才可以!
以下的二個(gè)方法就可以使用在所有的 VB 版本中(含 VB6),而且是 VB 內(nèi)定的功能:
1、FileLen 函數(shù):返回一個(gè) Long,代表一個(gè)文件的長(zhǎng)度,單位是位元組。
語(yǔ)法:FileLen(pathname)' pathname 是全路徑之文件名稱 適用:取得一個(gè)尚未開(kāi)啟的文件的長(zhǎng)度大小(注二)
2、LOF 函數(shù):返回一個(gè) Long,單位為位元組,用來(lái)代表由 Open 陳述式所開(kāi)啟的文件之大小。
語(yǔ)法:LOF(filenumber)' filenumber 是一個(gè)文件代碼 適用:取得一個(gè)已開(kāi)啟的文件的長(zhǎng)度大小
注一:File 物件的 Size 屬性除了可以求得一個(gè)文件的大小,也可以用來(lái)取得整個(gè)目錄的所有文件大?。?/p>
注二:使用 FileLen 函數(shù)時(shí),如果所指定的文件正在開(kāi)啟中,則所返回的值是這個(gè)文件在開(kāi)啟前的大小。
//////////////////////////////////////////////////////////////////////////////////// 如何移除或更改桌面背景的底色圖案(Wallpaper)?
SystemParametersInfo 這個(gè) API 可以設(shè)定許多 Windows 系統(tǒng)的功能參數(shù),而其中一個(gè)參數(shù)就是桌面底圖!通常一般的使用者會(huì)透過(guò)控制面板中的【顯示器】來(lái)設(shè)定桌面底圖。
在底下的范例中,我們使用 SPI_SETDESKWALLPAPER 這個(gè)參數(shù)及圖片文件名稱來(lái)設(shè)定新的桌面底圖,同時(shí)使用 SPIF_SENDWININICHANGE 來(lái)通知各個(gè)視窗這個(gè)改變。
'在表單的聲明區(qū)中加入以下聲明及常數(shù):
Private Declare Function SystemParametersInfo Lib ”user32“ Alias ”SystemParametersInfoA“(ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long)As Long
Const SPI_SETDESKWALLPAPER = 20 Const SPIF_UPDATEINIFILE = &H1 Const SPIF_SENDWININICHANGE = &H2
'在表單上加入一個(gè) CommandButton(Command1)來(lái)移除桌面底圖,程序碼如下:
Private Sub Command1_Click()Dim X As Long X = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ”(None)“, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)MsgBox ”桌面底圖(Wallpaper)已經(jīng)被移除“ End Sub
'在表單上加入另一個(gè) CommandButton(Command2)來(lái)更改桌面底圖,程序碼如下:
Private Sub Command2_Click()Dim FileName As String Dim X As Long FileName = ”c:windowstest.bmp“ X = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)MsgBox ”桌面底圖(Wallpaper)已經(jīng)被更改“ End Sub
//////////////////////////////////////////////////////////////////////////////////// 一個(gè)快速注冊(cè) DLL 及 OCX 的方法
有時(shí)候我們?cè)?VB 中要引用某一個(gè) DLL 或 OCX 時(shí),會(huì)出現(xiàn)文件未注冊(cè)的訊息,這時(shí),我們可以使用人工注冊(cè)的方法,也就是直接在命令列中使用 regsvr32.exe 來(lái)做,做法如下:
文件注冊(cè):C:WindowsSystemRegsvr32.exe C:WindowsSystemTest.ocx 取消注冊(cè):C:WindowsSystemRegsvr32.exe /u C:WindowsSystemTest.ocx
這些動(dòng)作我們也可以直接寫(xiě)到程序中,使用 Shell 來(lái)執(zhí)行,但是我現(xiàn)在要說(shuō)的,都不是上面提到的方法!
注意看羅!方法如下:
1、在資源管理器中找到 C:WindowsSystemRegsvr32.exe 并【復(fù)制】(按鼠標(biāo)右鍵選復(fù)制)
2、將目錄移到 C:WindowsSendTo 后,執(zhí)行【貼上快捷方式】(按鼠標(biāo)右鍵選貼上快捷方式)
3、將快捷方式名稱改成【REGISTER】
4、OK
現(xiàn)在,如果您想替某一個(gè)文件做注冊(cè)動(dòng)作,例如:C:WindowsSystemTest.ocx,您只要打開(kāi)資源管理器,找到 C:WindowsSystemTest.ocx,按鼠標(biāo)右鍵選【傳送到】【REGISTER】即可完成注冊(cè)動(dòng)作了!
注:有一個(gè)地方要注意的是,Regsvr32.exe 只能注冊(cè) 32 位的文件!如果要用它來(lái)注冊(cè) 16 位的文件,會(huì)有錯(cuò)誤訊息產(chǎn)生。
//////////////////////////////////////////////////////////////////////////////////// 如何用TextBox打開(kāi)和保存文件
作為輕量級(jí)的控件,TextBox控件使用率很高,但相關(guān)的資料極少談及如何用TextBox控件打開(kāi)和保存文件,大都采用回避的態(tài)度,對(duì)VB初學(xué)者帶來(lái)很多不便。筆者近日為友人做一個(gè)英文朗讀軟件,按友人的要求,軟件要能象MS的記事本那樣能打開(kāi)和保存文檔。其實(shí)實(shí)現(xiàn)方法并不復(fù)雜,現(xiàn)將心得寫(xiě)出來(lái),希望對(duì)大家有幫助。如果您有更好的方法,請(qǐng)來(lái)信:handanfang@163.net。
'新建標(biāo)準(zhǔn)EXE,加入一個(gè)TextBox控件,一個(gè)公共對(duì)話框,兩個(gè)菜單。
'打開(kāi)
Private Sub mnuOpen_Click()CommonDialog1.Filter = ”文檔文件(*.txt)|*.txt|所有文件(*.*)|*.*“ CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #1 Text1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode)Close #1 End Sub
'保存
Private Sub mnuSave_Click()On Error Resume Next
CommonDialog1.Filter =”文檔文件(*.txt)|*.txt|所有文件(*.*)|*.*“ CommonDialog1.ShowSave Open CommonDialog1.FileName For Output As #1 Print #1, Text1.Text Close 1 End Sub
TextBox只支持打開(kāi)64K以下的文件,建議最好設(shè)置出錯(cuò)處理。以上程序在PWin98、VB6.0下調(diào)試通過(guò)。
//////////////////////////////////////////////////////////////////////////////////// 如何判斷目前文件資源管理器中,文件名稱之?dāng)U展文件名是顯示或隱藏?
由于我在集團(tuán)性的資訊處工作,所負(fù)責(zé)的公司系統(tǒng)有的是屬于外點(diǎn),例如潤(rùn)泰建設(shè)有個(gè)單位是行銷業(yè)務(wù)處,他們的工作是賣公司蓋的房子,所以他們的業(yè)務(wù)人員平常都是待在各工地的接待中心,我替他們開(kāi)發(fā)的銷售系統(tǒng)在工地的部份是屬于單機(jī)作業(yè)的,使用 Access 資料庫(kù),每一個(gè)星期資料回傳總公司一次。業(yè)務(wù)人員由于流動(dòng)性大,不太了解系統(tǒng),有時(shí)候,系統(tǒng)出了問(wèn)題,業(yè)務(wù)人員又搞不清楚狀況,于是我會(huì)要求他們將資料庫(kù) sale.mdb 回傳公司,結(jié)果,常鬧笑話,原來(lái)他們回傳公司的,常常不是 sale.ldb 就是 sale.exe,為什么呢?
原因很簡(jiǎn)單,因?yàn)樗麄兊奈募Y源管理器中,設(shè)定了將擴(kuò)展文件名隱藏起來(lái),結(jié)果只看到三個(gè)不同圖示的 sale 文件(分別是 Sale.mdb、Sale.ldb、Sale.exe),不太會(huì)操作的業(yè)務(wù)人員根本分不清楚那一個(gè)圖示的 sale 文件才是資料庫(kù)文件案!
我們?cè)?VB 的程序中要如何判斷,目前文件資源管理器中的設(shè)定是否顯示擴(kuò)展文件名呢?
Private Declare Function GetFileTitle Lib ”comdlg32.dll“ Alias ”GetFileTitleA"(ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer)As Integer Private Function HasExtension(sFileName As String)As Long Dim sTemp As String Dim lTemp As Long
sTemp = String(1, 0)lTemp = GetFileTitle(sFileName, sTemp, Len(sTemp))If lTemp < 0 Then HasExtension =-1: Exit Function sTemp = String(lTemp, 0)Call GetFileTitle(sFileName, sTemp, Len(sTemp))
If(Left$(Right$(Left$(sTemp, lTemp網(wǎng)站導(dǎo)航誠(chéng)邀加盟友情鏈接-贊助本站 Copyright? 1999-2004 Programfan.com.All Rights Reserved 網(wǎng)站制作&維護(hù):Hannibal Email: yaoz@163.com 網(wǎng)站合作及廣告聯(lián)系:(021)28540908