周瓊 王騰飛
摘? 要:溝村節制閘除險加固工程設計是基于實際工程問題進行的分析和計算。文章以《水閘設計規范》為標準,基于工程水文地質條件,對水閘拆除重建后的水閘布置、防滲排水,以及閘室結構等進行計算和設計,并對水閘的穩定性進行了計算分析。文章研究成果旨在為類似工程設計提供方法參考。
關鍵詞:節制閘;除險加固;計算;閘室結構
中圖分類號:TV698.23? ? ? 文獻標志碼:A 文章編號:2095-2945(2019)26-0090-02
Abstract: The control design of the restraint and reinforcement project of Goucun is based on the analysis and calculation of actual engineering problems. With Design Specification for Sluice as the standard and based on the engineering hydrogeological conditions, this paper calculates and designs the sluice arrangement, anti-seepage and drainage, and the structure of the lock chamber after the sluice demolition and reconstruction, and the stability of the sluice is calculated and analyzed. The study of this paper is intended to provide a methodological reference for similar engineering design.
Keywords: check gate; danger control and reinforcement; calculation; lock chamber structure
引言
在AutoCAD中插入表格,有兩種常見的方式:第一種是復制EXCEL中選中的單元格,直接粘貼到CAD圖形中;這種方式粘貼出來的表格在AutoCAD中是以OLE對象的形式存在,表格不可以直接編輯,需要雙擊插入的表格啟動EXCEL對表格進行編輯、設置格式等。第二種是在AutoCAD中用線和文字繪制表格[3],這種方式繪制的表格實質上AutoCAD的線對象和文字對象的一個集合,不依賴EXCEL即可編輯;但如果要對其格式進行修改就比較繁瑣,例如要修改某一行的字體大大小,就要連同這行的行高一起修改,修改行高就涉及了多條線的延長及平移。而AutoCAD的Table對象不用依賴外部程序修改,又可以像編輯EXCEL表格一樣在CAD中進行編輯,本文所述的程序,實現了將EXCEL中的選中單元格向AutoCAD的Table對象的轉換。
1 設計思路
為便于程序的加載與執行,對AutoCAD的二次開發,采用AutoCAD.NET API DLL的開發方式,用C#語言進行開發。編譯生成的類庫,通過AutoCAD的內置命令“NETLOAD”進行加載后,便可以在AutoCAD命令行輸入程序命令,執行程序功能。要實現預想的程序功能,要解決兩個主要問題:一是EXCEL表格的內容及單元格格式的讀取,二是AutoCAD的Table對象的創建以及其內容的寫入、單元格屬性的設置。轉換流程可分為三個步驟:ECEL表格的讀取、轉換參數的設置、AutoCAD表格的創建;下面就這三個方面的程序實現展開論述。
2 程序實現
2.1 EXCEL表格的讀取
通過對EXCEL對象模型的理解,程序讀取EXCEL單元格內容及格式的基本思路是:引用EXCEL的類庫Microsoft.Office.Interop.Excel.dll按照Appication-Workbook-Worksheet-Rang的對象層次,對當前打開的EXCEL文件的選定區域進行讀取。關鍵代碼如下:
新建Hashtable對象hashtable_width、hashtable_height用于存儲單元列寬和行高,其key值分別為列號和行號,value值分別為列寬和行高。新建DataTable對象table_cells、table_fontheight,其行數和列數與選中單元格的行數和列數相同,用于存儲每個單元格的內容及字體大小。新建Hashtable對象hashtable_mer用于記錄合并單元格,其key值為合并單元格起始行與合并單元格起始列的組合,中間以“,”分隔;其value值為合并單元格結束行與合并單元格結束列的組合,中間以“,”分隔。至此,便獲取了選中單元格的內容及格式數據。
2.2 轉換參數的設置
在新建AutoCAD表格之前,需要對表格的參數進行設置,需要設置的參數包括字高、圖層、字體樣式。首先以數據庫的形式訪問當前CAD文件[1],并啟動一個事務,關鍵代碼如下:
2.3 AutoCAD表格的創建
在設置完表格參數之后,選擇插入表格的左上角,程序即開始在選定位置添加表格。按照所讀取EXCEL表的行數及列數新建表格,代碼如下:
然后根據hashtable_width、hashtable_height兩個Hashtable所記錄的列寬和行高,使用表格對象的SetColumnWidth、SetRowHeight方法對CAD表格進行列寬和行高設置;根據hashtable_merHashtable所記錄的合并單元格信息,使用表格的MergeCells方法對CAD表格進行單元格合并。設置完表格格式后,根據table_cells、table_fontheight兩個Hashtable所記錄的單元格內容及文字高度,將文字寫入對應單元格內;同時根據是否勾選透明,設置單元格的背景色為白色或者無。至此,便實現了從EXCEL表格到CAD表格的轉換。
3 應用實例
如圖2所示,為EXCEL表格的樣式,其含有不同大小的文字及合并的單元格;運用本文所述程序將其導入到CAD中的表格樣式如圖3所示。不難發現,程序保留了原EXCEL表格的格式,這樣就使得我們可以在EXCEL中編輯好表格格式再導入CAD,從而減少CAD表格的后期編輯操作。
4 結束語
本文所述解決方案,較好地解決了從EXCEL表格向CAD表格的轉換問題,使得表格的編輯計算工作可以更多地在EXCEL中完成;基于AutoCAD的Table對象的特性,使得表格在CAD中的編輯也變得更加的簡單;為提高工作效率起到良好的作用。
參考文獻:
[1]李保風.基于.NET訪問AutoCAD數據庫探討[J].制造業自動化,2012(8):16-18.
[2]朱玉.用VBA實現Excel電子表格到AutoCAD表格的轉換[J].機床與液壓,2004(12):176-178.
[3]吳偉中,賈長學.AutoCAD普通表格轉換為表格對象的方法[J].機械工程師,2007(4).