在AutoCAD R14的時候,SDI模式下,打開文檔很多時候直接用ads_command(RTSTR, "_open", RTSTR, sFileName, RTNONE)這樣的方法去打開,基于有些時候我們需要程序控制原文檔是否保存(往往是放棄保存),因此往往需要檢查當前文檔是否已經被修改,是否會提示用戶保存,否則,傳入的sFileName往往就被當作了系統提問是否保存Yes/No的回答,然后就亂七八糟了。判斷當前文檔是否處于被修改狀態可以通過ads_getvar("DBMOD",&rb)進行查詢,如果發現文檔被修改,這時就有3個解決方法:要么欺騙系統,讓系統認為該文檔在保存后沒有被修改,要么把當前文件save到一個tmp.dwg中,要么就是在ads_command執行open后,系統提示是否存盤時再傳入一個"N"。關于第一個方案,正常情況下,DBMOD是只讀的,AutoCAD提供了一個extern long acdbSetDbmod(class AcDbDatabase* pDb, long newVal)讓用戶強行修改。第2種方案,很直接的,可以把這個tmp.dwg寫到一個temp目錄下,例如C:temp,或者軟件的安裝目錄,不過碰到文件比較大,這個操作就需要耗點時間,而且畢竟不是一個體面的操作模式。第3種方案,為了系統是通過文字提問而非彈出對話框,需要修改FILEDIA 的值為0,然后就可以調用ads_command了。不過在實際操作過程中,發現第3種方法在某些情況下不管用,暫時也沒有分析清楚,以后有機會再分析吧。
相關文章
- 2021-09-08BIM技術叢書Revit軟件應用系列Autodesk Revit族詳解 [
- 2021-09-08全國專業技術人員計算機應用能力考試用書 AutoCAD2004
- 2021-09-08EXCEL在工作中的應用 制表、數據處理及宏應用PDF下載
- 2021-08-30從零開始AutoCAD 2014中文版機械制圖基礎培訓教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎培訓教程 [朱
- 2021-08-30電氣CAD實例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風暴2:Maya影像實拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術設計案例教程中文版AutoCAD 建筑設計案例
- 2021-08-29環境藝術制圖AutoCAD [徐幼光 編著] 2013年PDF下載
- 2021-08-29機械AutoCAD 項目教程 第3版 [繆希偉 主編] 2012年PDF