• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      高級(jí)語(yǔ)言在工程施工圖設(shè)計(jì)中的應(yīng)用

      2020-03-15 02:44:34高杰
      電子技術(shù)與軟件工程 2020年23期
      關(guān)鍵詞:腳本自控繪圖

      高杰

      (天津市市政工程設(shè)計(jì)研究院 天津市 300392)

      1 引言

      目前工程師在市政公用工程項(xiàng)目設(shè)計(jì)時(shí)主要采用AutoCAD 軟件進(jìn)行施工圖設(shè)計(jì)。相比20年前進(jìn)行手繪圖紙,工作效率已經(jīng)大幅提升??呻S著我國(guó)人民生活水平不斷提高,城市基礎(chǔ)設(shè)施建設(shè)投資逐年增加,工程項(xiàng)目數(shù)量大增,且規(guī)模及復(fù)雜度不斷增大。在這樣的形勢(shì)下,工程師面對(duì)著越來(lái)越緊張的工期和越來(lái)越激烈的市場(chǎng)競(jìng)爭(zhēng),雙重壓力下難免出現(xiàn)圖紙質(zhì)量下降或設(shè)計(jì)錯(cuò)誤,給后續(xù)施工帶來(lái)麻煩甚至造成工程事故,為國(guó)家?guī)?lái)經(jīng)濟(jì)損失。

      本文以污水處理廠自控系統(tǒng)設(shè)計(jì)為例,介紹一種采用高級(jí)語(yǔ)言編程實(shí)現(xiàn)程序自動(dòng)繪圖的方法,可大幅度提升設(shè)計(jì)效率,并避免設(shè)計(jì)錯(cuò)誤。

      把工程師從繁瑣的重復(fù)的繪圖工作中解放出來(lái),將精力放在設(shè)計(jì)、創(chuàng)新等更高級(jí)的任務(wù)中。

      2 污水處理廠自控系統(tǒng)設(shè)計(jì)簡(jiǎn)介

      2.1 市政污水處理廠

      城市污染源排出的污水,因含污染物總量或濃度較高,達(dá)不到排放標(biāo)準(zhǔn)或不符合環(huán)保要求,必需經(jīng)過(guò)污水處理廠進(jìn)行人工強(qiáng)化處理,以便達(dá)到國(guó)家規(guī)定的排放標(biāo)準(zhǔn)或回用標(biāo)準(zhǔn)。

      從處理方法上,污水處理工藝分為物理法、化學(xué)法和生物法;從處理深度上,處理工藝分為一級(jí)、二級(jí)、三級(jí)和深度處理。污水處理工藝設(shè)計(jì)要求技術(shù)先進(jìn),經(jīng)濟(jì)合理,費(fèi)用最省。

      污水處理廠設(shè)計(jì)包括各種不同處理階段所需的構(gòu)筑物、建筑物、設(shè)備、管道、廠區(qū)道路、綠化、管線綜合、給排水、供配電、自控儀表等。

      2.2 污水處理廠自控系統(tǒng)

      污水處理廠自控系統(tǒng)構(gòu)成整個(gè)污水處理工程的重要組成部分,其設(shè)計(jì)優(yōu)劣及功能穩(wěn)定直接關(guān)系到全廠設(shè)備的正常運(yùn)行。

      自動(dòng)控制系統(tǒng)采用基于可編程邏輯控制器(PLC)的集散型控制系統(tǒng),通過(guò)現(xiàn)場(chǎng)PLC 完成各自轄域內(nèi)工藝設(shè)備和檢測(cè)儀表的數(shù)據(jù)采集和自動(dòng)控制。

      控制系統(tǒng)由三級(jí)組成:

      第一級(jí)——就地控制(現(xiàn)場(chǎng)控制柜控制);

      第二級(jí)——過(guò)程控制(各PLC 控制站控制);

      第三級(jí)——監(jiān)控管理(中央控制室監(jiān)控)。

      2.3 自控系統(tǒng)圖紙內(nèi)容

      自控專業(yè)施工圖設(shè)計(jì)一般包括控制系統(tǒng)結(jié)構(gòu)圖、PLC 配置圖、PLC 模塊接線圖(圖1)、電纜清冊(cè)(圖2)、自控安裝圖等。其中用于直接指導(dǎo)自控設(shè)備生產(chǎn)和現(xiàn)場(chǎng)工人安裝的是PLC 模塊接線圖、電纜清冊(cè),這兩部分也是設(shè)計(jì)中最為繁瑣和容易出錯(cuò)的地方。對(duì)于一個(gè)中等規(guī)模的處理廠,其需要接入自控系統(tǒng)的工藝設(shè)備和儀表可超過(guò)600 個(gè),設(shè)置大小PLC 控制站在20 臺(tái)左右,輸入輸出信號(hào)超過(guò)5000 點(diǎn),安裝電纜3000 余根。

      這種圖紙繪制和錯(cuò)誤排查由人工來(lái)做是一項(xiàng)耗費(fèi)精力、枯燥且極易犯錯(cuò)的工作。但不難看出,它是一項(xiàng)重復(fù)性強(qiáng)且有規(guī)律的工作,應(yīng)該采用編程的方法由計(jì)算機(jī)自動(dòng)完成。

      3 C++應(yīng)用于AutoCAD繪圖

      圖1:PLC 模塊接線圖

      圖2:電纜清冊(cè)

      AutoCAD 自帶高級(jí)編程語(yǔ)言LISP,但使用它做復(fù)雜的設(shè)計(jì)需要很高的編程技巧,若要設(shè)計(jì)用戶界面,難度就更高了。而C++語(yǔ)言在實(shí)現(xiàn)復(fù)雜邏輯運(yùn)算上擁有絕對(duì)優(yōu)勢(shì),若使用VC,更可輕松實(shí)現(xiàn)用戶界面設(shè)計(jì)。

      本文提出利用AutoCAD 腳本文件作為接口,實(shí)現(xiàn)C++語(yǔ)言直接生成繪圖指令,控制AutoCAD 自動(dòng)繪圖方法。

      3.1 AutoCAD腳本

      AutoCAD 腳本實(shí)際上就是批處理命令,是AutoCAD 命令提示行中所用的命令的一個(gè)有序集合。腳本文件中的每一行對(duì)應(yīng)著AutoCAD 命令提示行中的一個(gè)命令,將它們按一定順序組合在一起就可實(shí)現(xiàn)復(fù)雜的制圖工作。

      腳本文件是純文本文件,可直接打開(kāi)、編輯、修改,閱讀起來(lái)也很直觀。

      圖3:程序可視化界面

      3.2 C++生成腳本

      對(duì)于上述的純文本文件,用C++語(yǔ)言進(jìn)行創(chuàng)建、讀寫非常簡(jiǎn)單,使用CFile 類即可實(shí)現(xiàn)。

      在CAD 中的所有繪圖工作可分解為若干種基本操作,如畫(huà)一條線段、畫(huà)一條弧線、寫一段文本等。這些基本操作都有對(duì)應(yīng)的腳本命令,如“_LINE 100,100 500,500”表示以坐標(biāo)(100,100)為起點(diǎn),(500,500)為終點(diǎn)畫(huà)一條線段,“_MTEXT 350,110 監(jiān)測(cè)儀表組電源”表示以坐標(biāo)(350,110)為基點(diǎn)插入一行文字。

      圖2 的電纜清冊(cè)可以拆分成繪制線段和插入文字2 種基本操作,只要指定了表格間距,就可使用C++簡(jiǎn)單的循環(huán)邏輯輕松繪制出來(lái),而C++輸出的是一組腳本指令,并將他們存儲(chǔ)在文本文件中,CAD 調(diào)用該文件后即可自動(dòng)生成表格。更復(fù)雜的圖紙繪制原理也一樣。

      3.3 基本繪圖函數(shù)

      用C++語(yǔ)言實(shí)現(xiàn)繪圖首先要先編寫一些基本的繪圖函數(shù),每個(gè)函數(shù)對(duì)應(yīng)著一個(gè)CAD 的基本操作的腳本命令。函數(shù)的參數(shù)盡量設(shè)計(jì)成和腳本命令的參數(shù)基本一致,這樣在后續(xù)C++編程中可以采用與編寫腳本類似的語(yǔ)法和習(xí)慣。函數(shù)的輸出則是在生成的腳本文件中插入一行對(duì)應(yīng)基本繪圖操作的腳本命令。

      例如上一節(jié)所述的畫(huà)一條線段的C++函數(shù)可以定義成:

      void DrawLine(CFile* infile,long x1,long y1,long x2,long y2)

      其含義是以(x1,y1)、(x2,y2)為端點(diǎn)畫(huà)一條線段,函數(shù)執(zhí)行結(jié)果就是在已打開(kāi)的infile文本文件中加入一行畫(huà)線的腳本命令??梢钥闯稣{(diào)用該函數(shù)時(shí)的語(yǔ)法與編寫腳本文件的語(yǔ)法極其類似。

      同樣的我們定義了過(guò)對(duì)角線上兩頂點(diǎn)坐標(biāo)畫(huà)矩形的函數(shù):

      void DrawRect(CFile* infile,long x1,long y1,long x2,long y2)

      以及在指定點(diǎn)插入文字的函數(shù):

      void DrawText(CFile* infile,long x1,long y1,long x2,long y2,char*data)

      4 自控系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

      C++語(yǔ)言的優(yōu)勢(shì)在于面向?qū)ο蟮乃枷?,自控專業(yè)制圖中,我們考慮將系統(tǒng)中的每一臺(tái)設(shè)備作為一個(gè)對(duì)象。前文已經(jīng)介紹了,對(duì)于污水處理廠中的設(shè)備,首先在地理上它們位不同的建(構(gòu))筑物中,其次在自控網(wǎng)絡(luò)中它們接入了不同的PLC 分控站中,從傳輸數(shù)據(jù)角度看,每臺(tái)設(shè)備擁有各自的輸入和輸出端口,并向系統(tǒng)發(fā)送和接收著不同定義的數(shù)據(jù)。

      我們將設(shè)備封裝為一個(gè)類,它的定義如下:

      class instrument

      {

      char name[30];//設(shè)備名稱

      char shortname[10];//名稱縮寫

      char construct[30];//所在建筑物

      char construct_ID[10];//建筑物位號(hào)

      char PLC[10];//所屬分控站

      char position[50];//信號(hào)線接線點(diǎn)

      char m_DI[20][20];//數(shù)字量輸入信號(hào)

      char m_DO[10][20];// 數(shù)字量輸出信號(hào)

      char m_AI[10][20];// 模擬量輸入信號(hào)

      char m_AO[10][20];// 模擬量輸出信號(hào)

      bool pow;//是否提供電源

      }

      成員變量包含了所有繪圖時(shí)需要用到的設(shè)備屬性。同時(shí)定義了繪制自控圖紙的成員函數(shù):

      void draw_IOlist(CFile* infile,long x,long y)//繪制輸入輸出信號(hào)統(tǒng)計(jì)表

      void draw_IOcable(CFile* infile,long x,long y)//繪制電纜清冊(cè)

      void draw_IOmodule(CFile* infile,long x,long y)//繪制IO 模塊接線圖

      這些函數(shù)都是反復(fù)調(diào)用前文介紹的基本繪圖函數(shù)。函數(shù)執(zhí)行結(jié)果是在打開(kāi)的infile 文本文件中加入若干行腳本命令。

      程序的工作就是遍歷所有生成的設(shè)備類(instrument)實(shí)體的所有成員函數(shù),當(dāng)所有函數(shù)均按順序執(zhí)行一遍后,infile 文件就包含了完成圖紙的所有腳本指令,在CAD 中調(diào)用這個(gè)腳本文件即可自動(dòng)生成圖紙。

      5 用戶界面

      在程序自動(dòng)繪圖之前,工程師需要把全廠幾百個(gè)設(shè)備的信息錄入程序,以便生成設(shè)備類(instrument)實(shí)體,每個(gè)設(shè)備又包含了至少10 個(gè)屬性,這仍然是一項(xiàng)繁瑣而容易出錯(cuò)的工作。因此必須設(shè)計(jì)一個(gè)直觀且易操作的用戶界面幫助工程師完成錄入工作。

      這里采用Visual C++開(kāi)發(fā)一個(gè)可視化界面,可以幫助用戶完成對(duì)設(shè)備的添加、刪除、屬性編輯、復(fù)制等操作。程序可以將所有添加的設(shè)備按所在構(gòu)筑物分類列出,當(dāng)點(diǎn)選設(shè)備后,其所有屬性將呈現(xiàn)出來(lái),方便用戶查詢、修改。程序可將一個(gè)工程項(xiàng)目的所有信息保存為一個(gè)文件,供用戶隨時(shí)調(diào)取。

      當(dāng)所有工程信息錄入完成并核對(duì)無(wú)誤后,用戶可通過(guò)程序提供的制圖按鈕生成繪制該工程自控專業(yè)圖紙的腳本文件。程序可視化界面如圖3 所示。

      6 結(jié)束語(yǔ)

      目前計(jì)算機(jī)技術(shù)已經(jīng)廣泛應(yīng)用于工程設(shè)計(jì)行業(yè),在該領(lǐng)域中,專業(yè)劃分較多,現(xiàn)有的成熟軟件遠(yuǎn)沒(méi)有覆蓋到所有專業(yè),現(xiàn)在市面上有針對(duì)建筑、橋梁、管網(wǎng)、電網(wǎng)等行業(yè)的專業(yè)輔助設(shè)計(jì)軟件,但本文所說(shuō)的自控系統(tǒng)設(shè)計(jì),因其涉及的領(lǐng)域較窄較偏,還沒(méi)有現(xiàn)成的商業(yè)軟件可用。

      本文提供的思路是,采用高級(jí)語(yǔ)言編寫程序自動(dòng)生成腳本文件,并用腳本自動(dòng)生成CAD 圖紙,它沒(méi)有程序之間相互調(diào)用,開(kāi)發(fā)者不需掌握復(fù)雜的接口、庫(kù)函數(shù),以及兼容性問(wèn)題。對(duì)于一線的工程技術(shù)人員,只要有簡(jiǎn)單的高級(jí)語(yǔ)言知識(shí),即可寫出自己專業(yè)需要的自動(dòng)繪圖軟件。冷門專業(yè)的工程師可以通過(guò)此方法提高自身的工作效率。

      猜你喜歡
      腳本自控繪圖
      次氯酸鈉消毒系統(tǒng)及其自控改造與應(yīng)用
      化工管理(2022年14期)2022-12-02 11:47:16
      來(lái)自河流的你
      酒駕
      “禾下乘涼圖”繪圖人
      安奇奇與小cool 龍(第二回)
      成功來(lái)自于自控
      數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
      基于HTML5 Canvas繪圖技術(shù)應(yīng)用
      快樂(lè)假期
      Surfer和ArcView結(jié)合在氣象繪圖中的應(yīng)用
      河北遙感(2015年2期)2015-07-18 11:11:14
      兴山县| 梓潼县| 鄂伦春自治旗| 池州市| 华宁县| 山阴县| 石台县| 防城港市| 海兴县| 土默特右旗| 阳朔县| 金平| 定州市| 林口县| 临沂市| 三原县| 乾安县| 闵行区| 富平县| 陆良县| 剑阁县| 原平市| 北辰区| 台东市| 那曲县| 四会市| 阳山县| 色达县| 东源县| 玉树县| 城口县| 垦利县| 西城区| 翁源县| 上蔡县| 南康市| 呼图壁县| 绵阳市| 墨脱县| 肇州县| 云阳县|