• 
    

    
    

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

      基于Lisp的自動圖框繪制和輸出管理技術(shù)研究

      2019-02-27 08:07:10唐爭氣庾榮樹
      城市勘測 2019年1期
      關(guān)鍵詞:圖框圖幅界限

      唐爭氣,庾榮樹

      (1.湖南城市學(xué)院市政與測繪工程學(xué)院,湖南 益陽 413000; 2.上海遠通路橋工程有限公司,上海 200000)

      1 引 言

      CAD圖形是工程勘察設(shè)計中最常用的圖形,為提高工作效率和加強輸出文件的管理,其自動分析圖幅與圖框繪制和打印輸出管理十分重要。Lisp是ListProcessor(表處理程序)的縮寫,主要用于人工智能(AI)領(lǐng)域。AutoLISP是人工智能語言CommonLISP的簡化版本,AutoLISP嚴格遵循其語法和慣例,但又添加了許多針對AutoCAD的功能。借助AutoLISP,用戶可以用適合編寫圖形應(yīng)用程序的高級語言來編寫宏程序和函數(shù),并開發(fā)各種軟件包。AutoLISP易于使用,并且非常靈活,多年來一直是自定義AutoCAD的標準,作為開發(fā)工具。另外,VisualLISP提供了用AutoLISP編寫的獨立應(yīng)用程序的工具。對一般的AutoCAD用戶來說,Lisp/Vlisp是進行AutoCAD二次開發(fā)的首選語言。但Lisp/Vlisp使用的對話框編程語言DCL和PDB沒有一個可視化的編程環(huán)境,主要依靠開發(fā)者手工寫入代碼,且與Lisp/Vlisp的數(shù)據(jù)交換和相互控制實現(xiàn)起來比較麻煩,難于掌握。而OpenDCL是一款可視化的對話框制作工具,并且是一款完全免費的開源軟件,起源于3rdDay軟件公司著名的商業(yè)軟件ObjectDCL,兩者都是同一個作者開發(fā)出來的,功能基本一樣,他們的目標正是要取代原有的DCL語言。

      本文以勘察設(shè)計圖的比例尺進行自動分析標準圖紙大小或自定義大小、圖框整飾為目標,設(shè)計了分幅圖框繪制和打印輸出管理技術(shù)流程,并使用LISP語言編程實現(xiàn)。通過實際工程檢驗,結(jié)果表明該技術(shù)大大提高了圖框繪制和出圖的效率。

      2 自動圖框繪制和輸出管理技術(shù)流程

      自動圖框繪制和輸出管理技術(shù)流程如圖1所示:首先用OpenDCL進行界面設(shè)計,包括常用的參數(shù)信息設(shè)置;自動提取圖幅信息,根據(jù)需要出圖比例,自動分析推算出標準圖紙大小或自定義大小以及縱橫向布局的圖框角點坐標的算法,從而確定分幅圖框以及角圖章繪制和打印預(yù)覽和輸出。使用LISP語言編程實現(xiàn)自動繪制出合適圖框和自動填寫工程名稱、圖名和人員等圖幅屬性信息、計算出相應(yīng)的數(shù)據(jù)輸出。可根據(jù)預(yù)覽圖框生成,看是否生成,達到要求后,可添加出圖說明,并打印生成pdf圖紙并分類管理。

      圖1 主要技術(shù)流程

      3 關(guān)鍵技術(shù)與解決方法

      3.1 參數(shù)信息設(shè)置

      圖框自動繪制需要填寫工程名稱、坐標系、圖名和人員等圖幅屬性信息以及單位名稱、資質(zhì)、等級等數(shù)據(jù)信息。考慮到程序的通用性,程序記錄這些信息作為配置文件加以保存,在程序退出后自動保存到配置文件中。

      3.2 分析圖框包含內(nèi)容的圖形界限

      分析圖形界限是程序設(shè)計的第一步,分析出準確的信息后才能順利地完成接下來的步驟。分析圖框包含內(nèi)容的圖形界限可能是整個圖形界限或者需要套圖框的部分圖形元素的范圍。通過前面兩種情況構(gòu)造選擇集,通過遍歷所有圖形對象的最小包圍矩形,并獲得選擇集中所有對象的最小包圍矩形,從而獲取圖框內(nèi)的西南角和東北角坐標,即圖框的圖形界限。Lisp提供了CAD圖形元素的最小包圍矩形的函數(shù)vla-getboundingbox,部分代碼如下:

      (defun getboundboxXY(obj/x y)

      (vla-getboundingbox obj 'x 'y)

      (mapcar 'vlax-safearray->list(list x y))

      )

      3.3 根據(jù)比例尺自動選取圖幅大小

      選取比例尺從而確定圖幅是至關(guān)重要的,本文的比例尺是要實現(xiàn)根據(jù)合適的比例尺所選圖框自動分析。除了一般的比例尺,此設(shè)計加入了自定義比例尺,增加了很大的調(diào)節(jié)性。一個合適的圖紙大小與方向?qū)τ趫D幅繪制圖框的美觀性具有很高的要求。除了圖紙一般為A1,A2,A3,A4等以外,也考慮了測繪用的50cm*50cm或50cm*40cm矩形圖框,同時也加入了自定義圖紙大小,根據(jù)圖幅的要求,選出最適合的圖紙所需大小。在這里需考慮角圖章和圖外框的圖紙寬度,由圖框包含內(nèi)容的圖形界限的縱向和橫向長度和比例尺,從而確定圖幅大小。本程序?qū)崿F(xiàn)了強制圖框選擇和自動分析圖框。實現(xiàn)的主要算法如下:

      (cond

      ((or

      (>maxdisxy(/a0x(/1000.0 blc)))

      (>mindisxy(/a0y(/1000.0 blc)))

      )

      (progn

      (dcl-Control-SetText tukuanhz/Form1/ComboBox1"自定義")

      (setq tuhao_inx 5)

      (setq curtuhao "自定義")

      (dcl_Control_SetEnabled tukuanhz/Form1/TextBox5 T)

      (dcl_Control_SetEnabled tukuanhz/Form1/TextBox6 T)

      (dcl-Control-SetText

      tukuanhz/Form1/TextBox5

      (rtos(+(/maxdisxy(/blc 1000.0)) 20.0) 2 0)

      )

      ;圖紙毫米

      (setq hxiangz(+(/mindisxy(/blc 1000.0)) 20.0))

      (if(>hxiangz 120.0)

      hxiangz

      (+hxiangz 120.0)

      )

      (dcl-Control-SetText

      tukuanhz/Form1/TextBox6

      (rtos hxiangz 2 0)

      )

      )

      )

      )

      3.4 圖紙方向的選擇和定位

      本文所設(shè)計的程序把圖幅自動放置于圖框正中間,根據(jù)上下左右方向的長度自動選出圖框是橫向還是縱向,也可以選擇把所繪制圖紙放置于哪個位置。實現(xiàn)的主要算法算法如下:

      (if(=curPaper_value "縱向")

      (setq x0

      (list

      (-

      (/(+xx1 xx2)2.00)

      (*(/(atof(dcl_Control_GetText tukuanhz/Form1/TextBox6)) 2)

      blkkuan

      )

      )

      (-

      (/(+yy1 yy2) 2.00)

      (*(/(atof(dcl_Control_GetText tukuanhz/Form1/TextBox5)) 2)

      blkkuan

      )

      (*25.0 blkkuan)

      )

      )

      )

      (setq x0

      (list

      (-

      (/(+xx1 xx2) 2.00)

      (*(/(atof(dcl_Control_GetText tukuanhz/Form1/TextBox5)) 2)

      blkkuan

      )

      )

      (-

      (/(+yy1 yy2) 2.00)

      (*(/(atof(dcl_Control_GetText tukuanhz/Form1/TextBox6)) 2)

      blkkuan

      )

      (*25.0 blkkuan)

      )

      )

      )

      )

      3.5 添加出圖說明與打印輸出管理

      出圖說明是出圖必不可少的,本文所說的出圖說明,會自動放置于合適的位置,與圖幅大小的選擇完美搭配。打印輸出的格式是pdf文件,同時自動生成到指定文件夾。pdf文件是很穩(wěn)定的一個格式文件,不能隨意改動且不會導(dǎo)致原來正確的數(shù)據(jù)、圖框發(fā)生損失或改變。這對于成果出圖的管理很有幫助。

      (if(member "pdfFactory Pro" (fsxm-printers))

      (setq print-name "pdfFactory Pro")

      (dcl-MessageBox "請安裝pdfFactory Pro打印機" "提示")

      )

      (command "plot" "y";詳細配置

      "";默認模型空間

      print-name;打印機名稱

      paper-z;紙張大小類型

      "m";毫米單位

      pp-ll;打印方向p豎向l橫向

      "";上下顛倒打印

      "w";窗口模式

      paper-min ;打印范圍角點

      paper-max ;打印范圍角點

      "f" ;打印比例布滿

      "c" ;打印偏移 居中

      "";默認是否按樣式 打印

      "." ;默認打印樣式表.表示無

      "";默認是否打印線寬

      "";默認著色打印設(shè)置

      "y";默認是否打印到文件

      "y";默認是否保存對頁面設(shè)置的修改

      "y";是否繼續(xù)打印

      ""

      )

      4 程序?qū)崿F(xiàn)與實例分析

      程序編寫完成后,用VLISP進行編譯后生成vlx文件。在打開的一個利用南方CASS的土方網(wǎng)格計算圖的CAD中的命令行輸入“appload”加載程序:“tukuanhz.vlx”,輸入tukuanhz命令,界面如圖2所示。

      圖2 程序界面

      填寫相應(yīng)信息后,點擊圖框繪制。成果如圖3所示。

      圖3 根據(jù)圖幅自動繪制圖框

      5 結(jié) 語

      本文提出的自動分析圖幅與圖框的自動生成與打印輸出管理技術(shù),用Lisp語言編寫實現(xiàn)了這些功能的算法。簡單有效地提高了圖幅圖框生成的效率性和美觀性,并實現(xiàn)打印生成pdf文件。通過實現(xiàn)檢驗,此程序大大地提高了工作效率、圖框繪制的效率性和科學(xué)性。

      猜你喜歡
      圖框圖幅界限
      界限
      十幾歲(2022年21期)2022-11-19 11:14:42
      間隙
      破次元
      基于Microstation V8 XM圖紙批量打印的實現(xiàn)
      承諾是跨越時間界限的恒久
      中國寶玉石(2016年6期)2017-01-03 09:37:07
      析SP3D軟件的ISO出圖模板定制
      基于EXCEL的地形圖圖幅號轉(zhuǎn)換查詢方法
      自然保護地(2015年3期)2015-12-03 02:29:54
      基于ArcMap的圖幅接合表快速生成方法研究
      地形圖圖幅編號規(guī)則及實現(xiàn)
      城市勘測(2014年4期)2014-06-24 14:33:27
      電力變電站中的圖紙標準化
      乌拉特后旗| 萨迦县| 墨玉县| 鄂伦春自治旗| 兴海县| 叶城县| 苍山县| 乡宁县| 丰县| 溧阳市| 舞阳县| 泸水县| 特克斯县| 奉新县| 镶黄旗| 自治县| 红桥区| 隆子县| 甘孜县| 喀什市| 萨嘎县| 明水县| 呼图壁县| 青龙| 庐江县| 邹城市| 泽州县| 博乐市| 会同县| 寿宁县| 陇西县| 时尚| 南投市| 天长市| 家居| 平凉市| 沛县| 崇仁县| 大城县| 简阳市| 天全县|