日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算道路超高lisp_基于Visual LISP的地铁轨道综合图辅助设计程序开发

發布時間:2024/3/26 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算道路超高lisp_基于Visual LISP的地铁轨道综合图辅助设计程序开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于Visual LISP的地鐵軌道綜合圖輔助設計程序開發

基于Visual LISP的地鐵軌道綜合圖輔助設計程序開發

吳凱偉,石瑋荃

(中鐵工程設計咨詢集團有限公司,北京 100055)

摘 要:為了滿足地鐵軌道綜合圖設計的要求,依據軌道基礎理論,基于Visual LISP集成開發環境下利用AutoLISP語言對AutoCAD進行二次開發,編制地鐵軌道綜合圖輔助設計程序,實現地鐵軌道綜合圖中線路平面、線路縱斷面、斷鏈、軌面高程、軌道結構類型、軌道附屬設備等信息的自動處理以及元素的自動繪制功能。應用結果表明:程序運行穩定、操作簡單、成果準確,大大提高了軌道綜合圖的設計效率。

關鍵詞:Visual LISP; AutoCAD二次開發;地鐵;軌道;綜合圖

1 概述

城市軌道交通工程中軌道綜合圖是軌道工程施工的指導性文件,圖中包含大量的工程信息[1]。若人工手動繪制軌道綜合圖,既要進行繁瑣和重復的參數計算,又要進行大量的幾何圖形繪制,不僅耗時費力,而且較容易出錯。因此利用輔助設計程序完成軌道綜合圖的繪制是十分必要的。

目前,不同設計單位在軌道綜合圖編制過程中借助不同類型的程序進行輔助設計,有的采用自編程序,有的采用商業軟件。由于自編程序均不對外公開,而商業軟件在軌道綜合圖輔助設計中存在較大的局限性,例如無法實現軌道類型和軌道附屬設備的繪制等。因此急需開發出一個功能較為完善的軌道綜合圖輔助設計程序。

目前支持AutoCAD二次開發環境的主要有:AutoLISP/Visual LISP、VBA、ObjectARX、ActiveX Automation及塊和形定義等[2]。本文利用AutoLISP語言進行二次開發。

AutoLISP語言是在普通LISP語言基礎上,擴充了許多適用于AutoCAD應用的特殊功能而形成的一種以解釋方式運行于AutoCAD內部的程序設計語言,繼承了LISP語言擅長處理各種結構的數據表的特點[3]。LISP語言語法簡單、功能函數強大、撰寫環境多樣、對作業平臺兼容性強等特點[4]。

Visual LISP作為AutoLISP開發AutoCAD程序及擴展AutoCAD功能專用的集成交互式開發環境,使編寫、修改代碼以及測試和調試程序更加容易[5]。

本程序基于Visual LISP集成交互式開發環境采用AutoLISP語言對AutoCAD進行二次開發,以線路平面、線路縱斷面、曲線超高、軌道結構類型、軌道附屬設備等數據作為輸入,對數據進行斷鏈處理、綜合計算后,得到各個加密基標處的軌面高程,進而完成軌道綜合圖的繪制。

2 需求分析

為滿足軌道工程施工的需求,軌道綜合圖應包含線路平面、線路縱斷面、斷鏈、曲線超高、軌面高程、軌道結構類型、軌道附屬設備、百米標里程和加密基標里程等數據,不同線別以及同一線別中各個數據在圖中需相對獨立且布局合理。

3 系統設計思路

軌道綜合圖需要許多基礎數據作為輸入資料,主要包含線路及行車專業接口資料和軌道專業設計參數,用戶依據這些基礎數據進行相應計算后,進行圖紙的繪制。

因此,本程序按照獲取數據、數據處理及繪制圖形3個模塊開展設計。

3.1 獲取數據

通過線路平縱斷面圖獲取線路平縱斷面原始數據及斷鏈數據,再對線路平縱斷面原始數據進行斷鏈處理后得到最終的線路平縱斷面數據。

鑒于線路平面圖借助不同的商業軟件輔助設計生成,因此線路平面數據的存儲格式存在差異,為保證程序兼容不同商業軟件設計生成的線路平面圖,在Visual LISP中直接訪問圖形數據庫,再依次獲取以鏈表形式存儲的圖元(Entity),并將各圖元組碼值(Group Code Value)中的有效數據提取出來,再以表(LIST)的格式存儲于文本文件中。至此,線路平面原始數據提取完成。

上述提取完成的線路平面原始數據尚未考慮斷鏈因素,因此在Visual LISP中將原始數據從原始數據文件中讀取,再將斷鏈依次插入相應的段落中,最后將經斷鏈處理后的平面數據以表(LIST)的格式存儲于文本文件中。至此,線路平面最終數據生成完畢。

同理,線路縱斷面數據以同樣方式生成。

3.2 數據處理基本原理

上述生成的線路縱斷面數據中,以線路坡段為單元存放數據,由于需要給出各加密基標處的軌面高程,同時在豎曲線范圍內需要考慮修正值,因此需要對數據進行處理。同理,上述生成的線路平面數據中,以線為單元存放數據,也需要給出各加密基標處的曲線超高,因此同樣需要對數據進行處理。

在Visual LISP中分別在平縱斷面數據文件和曲線超高數據文件中讀取數據,以表類型(LIST)存儲于內存中,依次以線路坡段或線為單元對數據進行處理,計算出各加密基標處的軌面高程或曲線超高。

3.2.1 豎曲線縱距計算

線路縱斷面圖中,在變坡點位置,一般只給出未考慮豎曲線時的設計高程。因此在軌道綜合圖中,軌面高程需考慮豎曲線修正值。

豎曲線縱距y計算公式如下[6,7]

式中 x——切線上計算點至豎曲線起點的距離,m; y——豎曲線縱距,m。

3.2.2 軌面高程計算

根據《地下鐵道工程施工及驗收規范(2003年版)》(GB 50299—1999)[8]的要求,直線上每120 m、曲線上每60 m和曲線起止點、緩圓點、圓緩點、道岔起止點等各設置1個控制基標,直線上每6 m、曲線上每5 m各設置1個加密基標[9]。為方便現場測量和施工,考慮在直線和曲線上均按每5 m設置1個加密基標,在每個基標處,進行軌道形位的放樣。因此,軌道綜合圖中以5 m為間距,繪制出每個控制點處的軌面高程。

第n個坡段上任意位置的軌面高程H計算公式如下

式中 H1、H2、…、Hn——第n個坡段的終點高程,m;

S1、S2、…、Sn——第n個坡段的終點里程,m;

G1、G2、…、Gn——第n個坡段的坡度;

L1、L2、…、Ln——第n個坡段的長度,m;

H、S——第n個坡段上任意位置的高程和里程;

y——第n個坡段上豎曲線范圍內的縱距,豎曲線范圍外為0。

計算得到的H為線路中心線的軌面高程,在平面曲線地段,根據對應的超高值計算出內外股鋼軌的軌面高程。

3.2.3 曲線超高計算

平面曲線地段,按規范要求設置超高[10]。因此軌道綜合圖中需給出每個加密基標處的曲線超高值。

緩和曲線上任意位置的超高H計算公式如下

式中 Hm——圓曲線上的超高值,mm;

S0——直緩點或緩直點的里程,m;

S1——緩圓點或圓緩點的里程,m;

S——緩和曲線上任意位置的里程,m。

3.3 繪制圖形

軌道綜合圖包含2條線路(左右線或出入線)的設計高程、設計坡度、斷鏈、曲線超高、豎曲線、鋼軌頂面里程、鋼軌頂面高程、軌道類型、橫穿設備、百米標和平面等多欄。各欄均可由本程序完成繪制。

由于程序執行過程中存在大量的數據讀寫及圖形繪制操作,為提高程序的執行速度[3],AutoLISP源代碼文件(.lsp)將被編譯成可執行機器代碼文件(.fas)后提供給用戶使用。

首先在新建AutoCAD空白文檔加載程序后輸入線路起終點里程,按程序設定好的圖框各欄高度繪制鋪軌圖表格邊框,然后依次讀取生成好的數據文件,程序將按不同圖元組碼規則進行組碼,進而在文檔中快速生成相應的圖形,最后完成圖形的繪制。以軌面高程為例,在上述計算出各加密基標處的軌面高程后,以軌面高程值、坐標及文字樣式等DXF形式的組碼值完成文字(TEXT)組碼,進而在AutoCAD文檔中完成軌面高程的繪制。

4 程序詳細設計

鑒于圖紙繪制所需要的基礎數據較多,且不同線別、不同類型數據之間均相對獨立,例如左右線線路平縱斷面、曲線超高、軌道結構類型及軌道附屬設備等數據,可將這些數據分別存儲在數據文件中,以提高數據之間的獨立性;軌道綜合圖中各項內容也相對獨立,在圖紙繪制過程中可依次進行,因此可將圖形繪制劃分為多個功能模塊,各個模塊調用獨立數據文件繪制圖形(包括圖框、平面示意、坡段、豎曲線、斷鏈、曲線超高、軌面高程、軌道結構類型及軌道附屬設備等)。

4.1 數據存儲

軌道綜合圖輔助設計程序的基礎數據文件及用途如表1所示。數據以表(LIST)的格式存儲于文本文件中。以線路縱斷面數據為例,其存儲格式如表2所示。

表1 基礎數據文件

序號數據文件說明1Plane_B.dat存儲斷鏈處理前的線路平面數據2Plane_A.dat存儲斷鏈處理后的線路平面數據3Profile_B.dat存儲斷鏈處理前的線路縱斷面數據4Profile_A.dat存儲斷鏈處理后的線路縱斷面數據5BrokenChain.dat存儲線路斷鏈數據6Station.dat存儲車站數據7Turnout.dat存儲道岔數據8Superelevation.dat存儲曲線超高數據9Accessory.dat存儲軌道附屬設備數據10TrackStructure.xls存儲軌道結構類型數據

表2 線路縱斷面數據存儲格式

序號起點里程終點里程坡長/m坡度/‰斷鏈里程斷鏈值/m1DK11+500000DK11+751000251-572DK11+751000DK12+6000008494945DK11+994439-55613DK12+600000DK12+8000002000

4.2 模塊劃分

軌道綜合圖輔助設計程序的主要程序模塊及功能如表3所示。

表3 主要程序模塊

序號模塊名命令說明1GetPlanGPL獲取線路平面數據2GetProfileGPR獲取線路縱斷面數據3InsertChainPlanICPL平面數據斷鏈處理4InsertChainProfileICPR縱斷面數據斷鏈處理5DrawFrameDF繪制表格邊框6DrawPlanDPL繪制線路平面7DrawProfileDPR繪制線路縱斷面8DrawChainDC繪制斷鏈9DrawStationDST繪制車站布置10DrawTurnoutDT繪制道岔布置11DrawSuperelevationDS繪制曲線超高12DrawRailLevelDRL繪制軌面高程13DrawTrackTypeDTT繪制軌道結構類型14DrawAccessoryDA繪制軌道附屬設備

4.3 圖形繪制實現

軌道綜合圖包含的線路平面、線路縱斷面、斷鏈、曲線超高、軌面高程、軌道結構類型、軌道附屬設備、百米標里程和加密基標里程等數據,應根據不同線別分別繪制且布局合理。結合既有線路的設計及工程應用經驗,軌道綜合圖按左右線或出入線上下分別布置,其各欄相對位置和高度一致。繪制完成的軌道綜合圖布局示意如圖1所示。

圖1 軌道綜合圖布局示意

在新建AutoCAD空白文檔依次讀取生成好的數據文件,程序將按不同圖元組碼規則進行組碼,進而在文檔中快速生成相應的圖形,最后完成圖形的繪制。

繪制圖形的程序流程如圖2所示。

圖2 圖形繪制程序流程

5 程序編碼[11]

5.1 Dat文件操作方法[12,13]

下面以Dat文件操作為例,列出寫入和讀取數據的實現代碼。

5.1.1 文件寫入

(defun WriteFile (Sections@ / FileName%

FileDes* Item#)

(setq FileName% (getfiled 'Please enter the file

name: \n' '' 'dat' 1))

(setq FileDes* (open FileName% 'w'))

(foreach Item# Sections@

(write-line Item# FileDes*)

);foreach

(close FileDes*)

);defun

5.1.2 文件讀取

(defun ReadFile (Sections@ / FileName%

FileDes* LineValue%

SectionsTemp#)

(setq FileName% (getfiled 'Please cloose the

data file:\n' '' 'dat' 0))

(setq FileDes* (open FileName% 'r'))

(setq Sections@ nil)

(while (setq LineValue% (read-line FileDes%))

(setq SectionsTemp# (read LineValue%))

(setq Sections@ (cons SectionsTemp#

Sections@))

);while

(setq Sections@ (reverse Sections@))

(close FileDes%)

);defun

5.2 Excel文件操作方法[14,15]

下面以Excel文件操作為例,列出讀取數據的實現代碼。

(defun GetCellValueAsList( / FileName%

SheetName% RangeStr% App$

WorkBooks$ WorkBook$ Sheets$

Sheet$ Range$ Value^ Value@

ConvertValue@)

(vl-load-com)

(setq App$ (vlax-get-or-create-object

'Excel.Application'))

(setq WorkBooks$ (vlax-get-property

App$ 'WorkBooks'))

(setq WorkBook$ (vlax-invoke-method

WorkBooks$ 'open' FileName%))

(setq Sheets$ (vlax-get-property

WorkBook$ 'Sheets'))

(setq Sheet$ (vlax-get-property Sheets$ 'Item'

SheetName%))

(setq Range$ (vlax-get-property Sheet$ 'Range'

RangeStr))

(setq Value^ (vlax-get-property Range$ 'Value))

(setq Value@ (vlax-safearray->list

(vlax-variant-value Value^)))

(setq ConvertValue@ (vlxls-variant->list

Value@))

(vlax-invoke-method WorkBook$ 'Close'

:vlax-true)

(vlax-invoke-method AppObj$ 'Quit')

(vlax-release-object AppObj$)

ConvertValue@

);dufun

6 結語

基于Visual LISP集成交互式開發環境利用AutoLISP語言對AutoCAD進行二次開發,闡述了軌道綜合圖輔助設計程序開發的主要思路及流程。

本程序在Visual LISP中直接訪問線路圖圖形數據庫,以獲取線路平縱斷面有效數據,并存儲于文本文件中,再對原始數據文件進行插入斷鏈處理后,形成最終的線路平縱斷面數據,存儲于文本文件中。

AutoLISP源代碼文件被編譯成可執行機器代碼文件后提供給用戶使用。用戶在加載程序后輸入線路基礎參數,自動完成表格邊框的繪制,然后依次讀取數據文件,程序將按不同圖元組碼規則進行組碼,進而生成相應的圖形,最后完成圖形的繪制。

本程序已經在北京、廣州、南京等城市軌道交通中應用,得到了實際工程的檢驗,大大提高了軌道綜合圖繪制的準確性和高效性,取得了良好的效果。

參考文獻:

[1] 劉大園,姚力,巫江.基于AutoCAD.NET的地鐵鋪軌綜合設計圖軟件開發[J].鐵路計算機應用,2013,22(11):36-39.

[2] 黃秀琴.基于Visual Lisp的AutoCAD2000的二次開發研究[J].常州工學院學報,2002,15(4):4-7.

[3] 趙景亮,李志剛. AutoCAD 2004與AutoLISP二次開發技術[M].北京:清華大學出版社,2004.

[4] 郭秀娟,于全通,范小鷗. AutoLISP語言程序設計[M].北京:化學工業出版社,2008.

[5] 李學志. Visual LISP程序設計[M].北京:清華大學出版社,2010.

[6] 易思蓉.鐵道工程[M].北京:中國鐵道出版社,2011.

[7] 李成輝.鐵路鐵道[M].北京:中國鐵道出版社,2010.

[8] 中華人民共和國住房和城鄉建設部.GB50299—1999地下鐵道工程施工及驗收規范(2003年版)[S].北京:中國計劃出版社,2004.

[9] 中華人民共和國住房和城鄉建設部.GB50308—2008城市軌道交通工程測量規范[S].北京:中國建筑工業出版社,2008.

[10]中華人民共和國住房和城鄉建設部.GB50157—2013地鐵設計規范[S].北京:中國建筑工業出版社,2014.

[11]二代龍震工作室. AutoCAD LISP/VLISP函數庫查詢辭典[M].北京:中國鐵道出版社,2003.

[12]劉喜平.基于AutoLISP的AutoCAD二次開發技術[J].機械制造與自動化,2011(4):128-129.

[13]陳伯雄,馮偉. Visual LISP程序設計:技巧與范例[M].北京:人民郵電出版社,2002.

[14]周樂來,馬婧. AutoCAD 2008 Visual LISP二次開發入門到精通[M].北京:機械工業出版社,2008.

[15]梁雪春. AutoLISP實用教程[M].北京:人民郵電出版社,1998.

Aided Design Program Development for Metro Track Comprehensive Drawing Based on Visual LISP

WU Kai-wei, SHI Wei-quan

(China Railway Engineering Consulting Group Co., Ltd., Beijing 10055, China)

Abstract:In order to meet the requirements of the design of metro track comprehensive drawing, AutoLISP language is used for the secondary development of AutoCAD based on the basic theory of track structure under Visual LISP integrated development environment so that the computerized program is developed to fulfill information auto-processing and element auto-drawing with respect to railway line plane, railway line profile, chain breaking, rail surface elevation, track structure and track auxiliary equipment. The practical results show that the program is simple, stable, accurate and effective in the design of track comprehensive drawing.

Key words:Visual LISP; AutoCAD secondary development; Metro; Track; Comprehensive drawing

收稿日期:2016-09-25;

修回日期:2016-10-19

作者簡介:吳凱偉(1986—),男,工程師,2011年畢業于西南交通大學,工學碩士,E-mail:wukaiwei2004@163.com。

文章編號:1004-2954(2017)05-0027-05

中圖分類號:U239.5;U213.2

文獻標識碼:A

DOI:10.13238/j.issn.1004-2954.2017.05.006

總結

以上是生活随笔為你收集整理的计算道路超高lisp_基于Visual LISP的地铁轨道综合图辅助设计程序开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。