• 
    

    
    

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

      正則表達(dá)式技術(shù)在結(jié)構(gòu)施工圖中的應(yīng)用

      2013-11-06 02:54:46辛金超
      山西建筑 2013年5期
      關(guān)鍵詞:施工圖圖層工程師

      辛金超

      (上海建筑設(shè)計(jì)研究院有限公司,上海 200041)

      圖紙是工程師的語(yǔ)言,其中包含了大量的信息。將正則表達(dá)式技術(shù)結(jié)合到Visual LISP中,并用其處理結(jié)構(gòu)施工圖,是一個(gè)簡(jiǎn)單便捷而又智能準(zhǔn)確的方法。使用該方法處理設(shè)計(jì)制圖時(shí)遇到的問(wèn)題,可以高效、準(zhǔn)確地完成設(shè)定任務(wù),突破一些圖紙?zhí)幚頃r(shí)遇到的瓶頸,提高工作效率和繪圖質(zhì)量。

      1 開(kāi)發(fā)工具及正則表達(dá)式

      Visual LISP(VLISP)是新一代的AutoCAD LISP語(yǔ)言,它增強(qiáng)并擴(kuò)展了AutoLISP[1],提供了曲線測(cè)量、反應(yīng)器及ActiveX功能,并且程序可以編譯,加快了運(yùn)行速度。對(duì)于時(shí)間緊張的工程設(shè)計(jì)人員來(lái)說(shuō),開(kāi)發(fā)效率和使用效率同等重要,選擇開(kāi)發(fā)效率較高的AutoLISP語(yǔ)言,能夠高效地完成一般開(kāi)發(fā)任務(wù),非常適合開(kāi)發(fā)專業(yè)性很強(qiáng)并且結(jié)合工程師切身需要的應(yīng)用程序。所謂正則表達(dá)式(Regular Expression),就是一種描述字符串結(jié)構(gòu)模式的形象化表達(dá)方法。它優(yōu)美而又功能強(qiáng)大,是計(jì)算機(jī)軟件領(lǐng)域內(nèi)的一項(xiàng)偉大發(fā)明[2]。正則表達(dá)式由“元字符”和“文字”組成,二者構(gòu)成了描述字符串結(jié)構(gòu)模式的描述語(yǔ)法。它能夠添加、刪除、分離、疊加、插入和修整各種類型的文本和數(shù)據(jù)[2],具有很廣泛的應(yīng)用。

      2 正則表達(dá)式在VLISP中的具體實(shí)現(xiàn)

      正則表達(dá)式的使用需要宿主語(yǔ)言,雖然VLISP暫時(shí)不支持其使用,但憑借其對(duì)ActiveX功能的支持,可以編程驅(qū)動(dòng)一些外部對(duì)象,將此功能融合到程序中。在VLISP中使用ActiveX Automation功能操作外部對(duì)象可以使用vlax-invoke-method函數(shù)調(diào)用特定對(duì)象的方法,用vlax-get-property和vlax-put-property函數(shù)獲取和設(shè)置特定對(duì)象的屬性,相對(duì)于導(dǎo)入類型庫(kù)方式來(lái)說(shuō),該方式較為節(jié)省內(nèi)存開(kāi)銷[3]。VBScript在Windows系統(tǒng)中較為常用,如果只是使用VBScript的正則表達(dá)式能力,那么可以直接創(chuàng)建“VBScript.RegExp”對(duì) 象:“(setq regex(vlax-create-object"VBScript.RegExp"))”,在設(shè)置完“regex”對(duì)象的“Pattern”等屬性之后,分別執(zhí)行其“Test”“Replace”“Execute”方法可以對(duì)目標(biāo)字符串進(jìn)行“測(cè)試”“替換”“獲取子匹配”的操作。

      perl的正則表達(dá)式能力很強(qiáng),基于內(nèi)建而非外部擴(kuò)展,不是通過(guò)函數(shù)方式或者面向?qū)ο蟮姆椒ㄕ{(diào)用,而是采用“=~”“!~”運(yùn)算符結(jié)合正則表達(dá)式本身所提供的各種修飾符來(lái)決定進(jìn)行何種運(yùn)算??梢栽诔绦蛑惺褂肧criptControl對(duì)象來(lái)調(diào)用perl的語(yǔ)言解釋器,解析腳本語(yǔ)言,下面給出了主要實(shí)現(xiàn)代碼:

      (setq theScriptControl(vlax-create-object"ScriptControl"))

      (vlax-put-property theScriptControl"Language""PerlScript")

      (vlax-invoke-method theScriptControl"ExecuteStatement"(strcat"$TagetString=""TagetString"";""$s=$TagetString=~"thePattern";"))

      (vlax-invoke-method theScriptControl"eval""$s");此即結(jié)果

      此方式能夠支持固定長(zhǎng)度的反向預(yù)查,但是需要提供完整的perl風(fēng)格的匹配表達(dá)式,便于分隔符的靈活使用,例如上段代碼中,可令thePattern變量為"m/abc/"。

      使用 Jscript語(yǔ)言時(shí)將上述代碼中的“PerlScript”替換為“JScript”,并采用如下語(yǔ)句:

      (vlax-invoke-method theScriptControl"ExecuteStatement"(strcat"var TagetString=""TagetString"";""var thePattern=/"thePattern"/"))

      (vlax-invoke-method theScriptControl"eval""thePattern.test(TagetString)");此即結(jié)果

      3 正則表達(dá)式在結(jié)構(gòu)施工圖中的具體應(yīng)用

      3.1 應(yīng)用平法規(guī)則提取計(jì)算信息

      在平法施工圖廣泛應(yīng)用的今天,工程師經(jīng)常要與各種標(biāo)注打交道,將正則表達(dá)式用作信息提取,事半而功倍。腰筋處理是一項(xiàng)需要獲取較多信息的工作,《混凝土結(jié)構(gòu)設(shè)計(jì)規(guī)范》[4]和《高層建筑混凝土結(jié)構(gòu)技術(shù)規(guī)程》[5]對(duì)鋼筋混凝土梁(包括連梁、轉(zhuǎn)換梁)的腰筋在鋼筋直徑、面積配筋率、鋼筋豎向間距方面都有明確規(guī)定,如果梁承受扭矩的作用,還需要滿足抗扭承載力的要求。圖1給出了使用VLISP處理腰筋程序的信息獲取部分。

      圖1 腰筋計(jì)算信息識(shí)別部分流程圖

      3.2 快速定位需要修改的圖層

      圖層名是圖紙中必然存在的字符信息,這也是將正則表達(dá)式應(yīng)用于圖紙?zhí)幚淼囊粋€(gè)現(xiàn)實(shí)基礎(chǔ)。在AutoCAD中圖層與圖層名之間具有一一對(duì)應(yīng)關(guān)系,正確識(shí)別出需要操作的圖層名稱,就正確找到了需要處理的圖層以及該圖層中的具體對(duì)象。對(duì)于圖層的選擇,常用的方法是對(duì)所選對(duì)象的圖層屬性進(jìn)行提取,但是當(dāng)我們知道圖層的命名特點(diǎn)時(shí),就可以采用正則表達(dá)式定位法對(duì)這些圖層進(jìn)行迅速準(zhǔn)確的定位。例如可以使用正則表達(dá)式“^(.*?)(下)?(模型|變形).* ”及替換為字符串“0825-$1$3”,將一些工況下的變形圖以及初始模型圖層的名稱改變。

      3.3 快速切換到所需布局

      在處理施工圖時(shí)往往會(huì)遇到布局很多的情況,使用AutoCAD自帶的滾動(dòng)條來(lái)切換效率不是很高,若中間出現(xiàn)錯(cuò)誤點(diǎn)擊,則更增加了使用者的等待時(shí)間,若能首先準(zhǔn)確方便地定位到某布局之后一次性切換,這無(wú)疑會(huì)給圖紙查看帶來(lái)便利?;诖四康模谱髁斯δ芎瘮?shù),用戶可以輸入相對(duì)模糊的正則匹配條件,程序會(huì)將匹配的結(jié)果按照標(biāo)簽的排列順序列出,供用戶二次選擇,最后切換至指定布局。

      4 結(jié)語(yǔ)

      AutoLISP非常適合開(kāi)發(fā)專業(yè)性很強(qiáng)并且符合工程師切身需要的應(yīng)用程序,它能夠結(jié)合工程師對(duì)CAD系統(tǒng)的使用經(jīng)驗(yàn),具有很高的開(kāi)發(fā)效率。正則表達(dá)式是一種面向?qū)嵺`的思想和方法,實(shí)實(shí)在在地提高了使用者的實(shí)戰(zhàn)能力。通過(guò)VLISP中提供的ActiveX方法,將正則表達(dá)式功能結(jié)合到程序當(dāng)中,一方面提高了程序設(shè)計(jì)的效率,間接地節(jié)省了工程師的時(shí)間;另一方面,提供給工程師在CAD中直接使用正則表達(dá)式的接口,促進(jìn)了制圖效率效果的改善。

      [1] Autodesk Inc.Introduction[EB/OL].http://exchange.autodesk.com/autocad/enu/online-help/search # WSfacf1429558a55de1-a7524c1004e616f8b-5bb9.htm.

      [2] Jeffrey E.F.Friedl.精通正則表達(dá)式[M].第 3版.余 晟,譯.北京:電子工業(yè)出版社,2012:2.

      [3] Autodesk Inc.Using ActiveX without Importing a Type Library[EB/OL].http://exchange.autodesk.com/autocad/enu/online-help/search#WS73099cc142f4875516d84be10ebc87a53f-7bcb.htm.

      [4] GB 50010-2010,混凝土結(jié)構(gòu)設(shè)計(jì)規(guī)范[S].

      [5] JGJ 3-2010,高層建筑混凝土結(jié)構(gòu)技術(shù)規(guī)程[S].

      猜你喜歡
      施工圖圖層工程師
      《機(jī)械工程師》征訂啟事
      大題小做,施工圖是一個(gè)建筑項(xiàng)目的縮影
      Kenoteq的工程師研發(fā)環(huán)保磚塊
      探討輸變電工程施工圖預(yù)算管理與控制
      探討輸變電工程施工圖預(yù)算管理與控制
      青年工程師
      安徽建筑(2020年4期)2020-05-23 01:37:12
      巧用混合圖層 制作抽象動(dòng)感森林
      圖層法在地理區(qū)域圖讀圖中的應(yīng)用
      工程師變成“資本家”
      淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
      河南科技(2014年6期)2014-04-04 08:00:42
      钟山县| 丰镇市| 昂仁县| 正镶白旗| 金沙县| 昌乐县| 大理市| 淳安县| 银川市| 富民县| 宁化县| 延川县| 句容市| 兴仁县| 绥化市| 东兰县| 上虞市| 息烽县| 长春市| 兰西县| 江陵县| 灵璧县| 清远市| 青州市| 哈巴河县| 温泉县| 万山特区| 尖扎县| 惠东县| 奉贤区| 义乌市| 腾冲县| 都匀市| 白河县| 祁门县| 凌海市| 丁青县| 浏阳市| 教育| 武陟县| 威宁|