999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用Python語言實現集中監測CAD施工圖輔助設計

2019-12-11 06:20:58
鐵路通信信號工程技術 2019年11期
關鍵詞:語言

劉 娜

(北京全路通信信號研究設計院集團有限公司,北京 100070)

1 背景概況

當前最為廣泛應用的AutoCAD二次開發語言有:LISP、C、VBA語言等。LISP語言因為可以直接調用AutoCAD的命令,因此在CAD輔助軟件設計中被應用的最廣泛。

但LISP語言的缺點也比較明顯,大致列舉如下:

1) 功能比較單一,綜合處理能力差;

2) 解釋執行,程序運行速度慢;

3) 缺乏很好的保護機制,源程序保密性差;

4) 不能直接訪問硬件設備、進行二進制文件的讀寫。

由于集中監測系統所有采集內容都來自外部輸入,具備采集內容靈活多樣,輸入數據龐大,數據處理復雜等特點,因此作為集中監測輔助工程設計工具的開發語言一定要在靈活性,以及處理龐大復雜數據方面具有絕對的優勢。

基于這個考慮,尋找一種更為簡潔,功能更全面,可讀性更強的語言,可以調用AutoCAD的命令,從而實現CAD的輔助設計。

2 Python語言優勢分析

Python是面向對象的程序設計語言,比傳統結構化的語言更適合于大型軟件的開發,實現高度抽象的數據模型。作為腳本語言,它具有許多高級數據類型,如列表、字典、元組等,比系統語言更容易實現復雜的數據結構.由于腳本語言的膠合性,使它易于利用已有組件實現系統的功能。

得力于Python豐富的內建模塊和三方模塊,Python可通過在Unix或Windows上調用系統語言C/C++的擴展模塊,或利用已有函數包來提高大量數據處理的運行速度。

綜合分析,Python腳本語言在CAD二次開發方面有如下優勢。

語法簡潔:Python有相對較少的關鍵字,結構簡單,有一個明確定義的語法,學習起來更加容易。

易于閱讀:Python代碼定義的更清晰,它采用強制縮進的方式使得代碼具有極佳的可讀性。

具有豐富的庫:Python的最大優勢是它具有豐富的庫,且是跨平臺的。Python標準庫很龐大。它可以幫助你處理各種工作,包括文檔生成、數據庫、網頁瀏覽器、電子郵件、XML、HTML、WAV文件、圖形用戶界面(GUI)和其他與系統有關的操作。當然,也包括調用AutoCAD的命令,實現輔助工具開發功能。

可擴展:如果需要一段關鍵代碼運行得更快或者希望某些算法不公開,可以把部分程序用C或C++編寫,然后在Python程序中使用。

面向對象:Python既支持面向過程的編程,也支持面向對象的編程。在“面向過程”的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在“面向對象”的語言中,程序是由數據和功能組合而成的對象構建起來的。與其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現面向對象編程。

3 AutoCAD命令調用實現

上文提到Python語言有著豐富的庫,因此它也具有控制AutoCAD的庫,即pyautocad模塊。pyautocad包可以對任何版本的AutoCAD軟件進行操作,實際上接口都是一樣的。連接CAD的代碼如下。

1.from pyautocad import APoint

2.

3.class AutoCadOperations(object):

4. def draw_text(self, point, text_content):

5. self.acad.model.AddText(text_content, p,font_size)

6. def open_acad_template(self, acad_ fi le):

7. self.acad.app.documents.open(join_path('acad_ fi les', acad_ fi le))

8. def close_current_acad_ fi le(self):

9. self.acad.doc.close()

作為AutoCAD的基本控制模塊,AutoCadOperations定義了:

draw_text - 將文本寫入到當前打開的Auto-CAD文件,輸入參數寫入的坐標、文本內容、對齊方式和文本大小。

open_acad_template - 打開AutoCAD文件,輸入參數為要打開的文件路徑。

get_all_text_dicts - 獲取所有文本及其內容的字典。

close_current_acad_file - 關閉當前的AutoCAD文件。

該控制模塊的基本調用如下所示。

1.def write_acad_file(self, source_content, out_fi le):

2. file_num = len(source_content) / one_file_column_num + 1

3. for fi le_index in range(0, fi le_num):

4. self.acad_operations.open_acad_template(self.acad_ fi le)

5. for table_index, first_start_point in

enumerate(self.table_start_points):

6. point_list = self.generate_point_lists(first_start_point)

7. for column_index in range(len(point_list)):

8. source_index = table_index * self.table_set_num + column_index + file_index *one_ fi le_column_num

9. self.acad_operations.save_acad_file(generate_ fi le_name(out_ fi le, fi le_index))

10. self.acad_operations.close_current_acad_if le()

4 實現監測施工圖輔助設計

采用模塊化的設計思路,實現集中監測施工圖輔助設計工具的開發,將軟件系統劃分為任務調度、數據提取、數據寫入、數據分析、AutoCAD控制、車站配置等6個模塊。

系統架構如圖1所示。

圖1 系統架構圖Fig.1 System architecture diagram

1) 任務調度模塊

任務調度模塊主要負責根據軟件處理流程,完成各模塊間的調用。通過python中concurrent.futures庫實現多張AutoCAD圖的并行快速生成。

2) 車站配置模塊

車站配置模塊主要負責配置各車站基礎情況,便于根據車站基礎情況制定相應的采集內容,調用相應的CAD模板文件。如車站類型、信號機類型、轉轍機類型、軌道電路類型、聯鎖制式、列控制式等,并根據采集內容合理分配機柜布置、組合柜布置等。

3)數據分析模塊

數據分析模塊定義了[需要寫需要分析的類型]所需要進行的數據分析底層方法實現,包括讀取txt數據內容,源數據處理,歸并提取信息并寫入python字典的功能。

4)AutoCAD控制模塊

根據前面數據分析模塊獲得的各最終txt數據文件,選擇打開各個CAD模板,利用Python文件調用CAD命令,將這些數據文件寫入CAD模板,自動繪制集中監測施工設計圖紙。

5)數據提取模塊

數據提取模塊主要負責根據車站配置通過AutoCAD控制模塊來讀取計算機聯鎖系統、列控系統、智能電源屏系統等外部輸入信息,如分線盤的定義、組合架的分配等信息。這些信息決定了集中監測采集點的位置信息,因此是集中監測工程圖紙的重要輸入來源。數據提取模塊的輸出結果是相對應的txt源文件,主要用來作為數據寫入模塊的數據源和事后審查。

6) 數據寫入模塊

數據寫入模塊根據前面數據提取模塊獲得的源txt數據文件,調用AutoCAD控制模塊。選擇打開相應CAD模板,根據車站配置模塊的信息,將這些數據文件寫入CAD模板,完成自動繪制集中監測施工設計圖紙。

根據上述模塊定義,該軟件的流程如圖2所示。

軟件流程可以概括為兩個步驟。

首先,基于集中監測采集設計的輸入圖紙,如聯鎖圖紙、區間列控圖紙等,根據車站的配置信息,軟件程序進行數據提取,再將提取出來的數據進行提煉和數據轉換,從而得到監測采集需要的中間數據文件。

圖2 軟件流程圖Fig.2 Software flow diagram

然后,讀取這些數據文件,根據AutoCAD模版的格式需要,進一步調整數據內容,寫入到python的列表。打開AutoCAD模板文件,進行寫入操作,從而得到最終需要的成果文件,完成輔助設計流程。

5 結語

利用面向對象的腳本語言Python對鐵路信號工程計算機輔助設計CAD進行二次開發,在實現大型的、結構復雜、運算速度高的科學計算軟件方面有較大的優勢,利用Python語言作為集中監測系統施工圖輔助設計工具的開發工具,可滿足集中監測系統采集內容靈活多樣、輸入數據龐大,數據處理復雜的特點,可根據各站場基本情況不同,進行定制化分析處理,大大的提高了輔助設計工作的效率和準確性。

猜你喜歡
語言
詩之新,以語言創造為基
中華詩詞(2023年8期)2023-02-06 08:51:28
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語言描寫搖曳多姿
多向度交往對語言磨蝕的補正之道
累積動態分析下的同聲傳譯語言壓縮
日常語言與播音語言
新聞傳播(2016年10期)2016-09-26 12:15:04
語言技能退化與語言瀕危
我有我語言
論語言的“得體”
語文知識(2014年10期)2014-02-28 22:00:56
Only Words慎用你的語言
主站蜘蛛池模板: 91激情视频| 久久久亚洲色| 日韩亚洲综合在线| 久久精品中文字幕少妇| 毛片网站免费在线观看| 青青青视频91在线 | 伊人久久久久久久| 日韩高清一区 | 制服丝袜在线视频香蕉| 欧美一级在线| 四虎AV麻豆| av在线手机播放| 九九这里只有精品视频| 国产精品自在在线午夜区app| 国产精品人成在线播放| 成人国产一区二区三区| 黄色网页在线播放| 一区二区三区国产精品视频| 亚洲熟女偷拍| 国产9191精品免费观看| 日韩无码黄色| 久久频这里精品99香蕉久网址| 一级毛片免费高清视频| 国产91丝袜在线播放动漫 | 国产毛片基地| 欧美一区日韩一区中文字幕页| 99在线免费播放| 久久精品人妻中文系列| www.精品视频| 99精品久久精品| 欧美国产日韩另类| 国产成人精品午夜视频'| 午夜视频免费一区二区在线看| 成人午夜精品一级毛片| 四虎精品国产永久在线观看| 玩两个丰满老熟女久久网| 免费中文字幕一级毛片| 免费人成视网站在线不卡| 91视频99| 日本一区高清| 国产主播在线一区| 国产成人精品优优av| 国产成人禁片在线观看| 免费观看精品视频999| 国产精品林美惠子在线观看| 成年免费在线观看| 国产成人1024精品| 99热国产这里只有精品9九| 红杏AV在线无码| 永久免费无码日韩视频| 高清视频一区| 无码粉嫩虎白一线天在线观看| аⅴ资源中文在线天堂| JIZZ亚洲国产| 鲁鲁鲁爽爽爽在线视频观看 | 动漫精品中文字幕无码| 亚洲综合狠狠| 欧美日韩一区二区三| 亚洲人视频在线观看| 国产精品私拍在线爆乳| 欧美午夜视频| 亚洲一区二区在线无码| 国产91无毒不卡在线观看| 女同国产精品一区二区| 丰满的熟女一区二区三区l| 国产日韩AV高潮在线| 国产黄色免费看| 国产在线观看精品| 日韩福利在线观看| 一本色道久久88亚洲综合| 亚洲国产欧美国产综合久久| 最新国产麻豆aⅴ精品无| 国模沟沟一区二区三区| 中文字幕佐山爱一区二区免费| 免费视频在线2021入口| 色婷婷狠狠干| 久久一日本道色综合久久| 成年网址网站在线观看| 91精品久久久久久无码人妻| 国产美女精品一区二区| 日韩在线影院| 欧美色视频日本|