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

AutoCAD批量打印的實現

2012-02-08 09:32:00何德平楊本廷
城市勘測 2012年3期
關鍵詞:二次開發圖紙測繪

何德平,楊本廷

(重慶市勘測院,重慶 400020)

1 引言

AutoCAD軟件以其強大而又完善的功能以及方便快捷的操作在計算機輔助設計領域中得到了極為廣泛的運用。AutoCAD軟件的通用功能已經足夠強大,但針對具體專業領域的某些功能還有局限性。因此目前測繪行業使用廣泛、知名度很高的數字測圖軟件包括南方公司的CASS測圖系統、威遠圖的SV300測圖系統、廣州開思的SCS測圖系統均是在AutoCAD平臺上進行的二次開發的,這些軟件滿足了測繪行業數字測繪的需要。但在某些專業測繪領域中,還需開發一些專用的功能,以提高工作效率,滿足實際工作的需要。

2 批量打印的需求

在面積測繪過程中,測繪單位一般也是采用Auto-CAD軟件進行內業的圖形繪制、面積計算、圖形打印。在繪圖過程中需對每棟建筑不相同的樓層均需繪制樓層建筑面積實測圖。由于科學技術的發展,當前城市建設工程的建筑風格、建筑結構和樣式越來越復雜和新穎,特別是別墅和花園洋房的每一層形狀和大小均不相同。因此,遇到該類項目時所繪制的樓層建筑面積實測圖較多,有的甚至需要繪制幾百余張圖。若采用AutoCAD通用的打印功能進行批量圖幅的打印出圖(如圖1),每張圖均需進行打印設備、圖紙大小、打印窗口、打印比例等打印設置,則需要較長的時間。如圖1的64幅圖,若每幅圖打印設置需要 30 s,則64幅圖需要 32 min。這樣花費的時間太長,就需要針對該種情況開發一種能快速批量打印的功能,只要同時選中這則64幅圖,則按一定的順序、比例尺在計算機前臺自動打印,以提高勞動效率。

圖1 需打印的圖幅

3 編程思路

在實際的建筑面積測繪工作中,因為表示的建筑的大小、復雜程度不一樣,但為了統一出圖圖紙大小,一般選用A4或A3紙張,因此會導致建筑面積實測圖按不同的比例尺繪制(如圖2)。打印的圖紙一般需按建筑棟號和樓層號從小到大的先后順序裝訂,因此要求圖紙批量打印時,也按一定的先后順序打印,以節省人工重新排序的時間。但在選擇圖形時,AutoCAD默認的是按圖形制作的先后順序選中,這與需要的順序不一致。這就需要將圖紙的比例尺和出圖順序采用一定的方式注記在圖廓中,打印時可根據注記的比例尺和圖紙的順序進行打印。一般采用添加標準的圖廓來實現上述要求。

圖2 不同比例尺繪制的圖幅

編程時首先需要對出圖配置進行設置,設置的內容主要有:①設置打印設備、圖紙類型、圖紙方向和單位;②設置出圖原點、出圖區域;③設置出圖比例、份數、顏色;其次是進行打印對象的選擇,選擇時Auto-CAD默認的是根據打印范圍線繪制的先后順序選中,需根據圖廓中規定的順序對圖形進行排序和獲取打印的比例尺,并可進行預覽。最后是將圖形按設定的比例尺、順序、顏色、份數在指定打印設備進行打印。

4 程序實現

AutoCAD的特色之一便是提供了廣闊的二次開發空間,如 VBA、VB.NET、ObjectARX、AutoLisp、Visual-Lisp等,讓用戶完成AutoCAD本身所不具備的功能,更高效地完成工作。使用VBA進行二次開發具有很大的優勢,其語法簡單、功能強大、界面清晰。使用VBA編程實現批量打印主要需使用下列方法和屬性:

(1)出圖配置設置

①模型空間出圖

使用AutoCAD打印圖形比較常用的是窗口打印,也就是在模型空間創建所有的實體然后直接從模型空間指定打印范圍,然后選擇大小適當的圖紙進行打印。

ThisDrawing.ActiveLayout=ThisDrawing.Layouts.Item("Model") '確保當前布局是模型空間

②打印設備

使用GetPlotDeviceNames來獲得所有可用的打印設備,再通過ConfigName屬性來指定打印設備。

ThisDrawing.ActiveLayout.ConfigName="DWF6 ePlot.pc3"'指定打印設備

③圖紙類型和單位

圖紙類型是根據用戶系統連接的打印設備而定的,每一種不同的打印設備都會有相應可用圖紙尺寸的標準,使用GetCanonicalMediaNames可獲得所有可用的圖紙類型,再用CanonicalMediaName屬性來配置圖紙的尺寸,用PaperUnits屬性指定圖紙的單位。

ThisDrawing.ActiveLayout.CanonicalMediaName="A4" '指定圖紙為A4

ThisDrawing.ActiveLayout.PaperUnits=acMillimeters '設置圖紙單位為毫米

④紙張方向

使用 PlotRotation來設置紙張方向,設置成ac90degrees為橫向,設置成ac0degrees為縱向。

ThisDrawing.ActiveLayout.PlotRotation=ac90degrees '紙張方向為橫向

⑤出圖原點

出圖原點默認設置為(0,0),用戶也可以通過設置CenterPlot屬性為True來將原點設置在圖紙中央進行對中出圖。

ThisDrawing.ActiveLayout.CenterPlot=True '設置對中出圖

⑥出圖區域

使用PlotType屬性來指定出圖區域,該屬性可以選擇為 acWindow,打印 SetWindowToPlot方法指定的窗口中所有圖形。

ThisDrawing.ActiveLayout.PlotType=acWindow '打印類型為窗口選擇

ThisDrawing.ActiveLayout.SetWindowToPlot ptMin,ptMax '設置打印窗口

⑦出圖比例

出圖時需要使用一個精確的比例來打印到圖紙上,可使用SetCustomScale方法輸入自定義比例。

ThisDrawing.ActiveLayout.UseStandardScale=False '不使用標準比例

ThisDrawing.ActiveLayout.SetCustomScale 1,bl '自定義比例

⑧出圖份數

使用NumberOfCopies指定出圖的份數

ThisDrawing.Plot.NumberOfCopies=1 '出圖份數為 1

⑨出圖顏色

利用StyleSheet來指定打印樣式表,從而確定打印的顏色。

ThisDrawing.ActiveLayout.ShowPlotStyles=True '指定在打印中應用打印樣式

ThisDrawing.ActiveLayout.PlotWithPlotStyles=True '指定對象按打印樣式文件的配置打印

ThisDrawing.ActiveLayout.StyleSheet="Monochrome.ctb" '指定黑色打印樣式表

(2)對象選擇及處理

使用SelectionSets集合的add方法創建選擇集,使用SelectOnScreen方法過濾選擇屏幕中的打印范圍多段線對象并添加到選擇集,再根據指定的順序對打印范圍線進行排序處理,同時獲取每個需要打印的范圍線的比例尺、打印窗口坐標。

Set Sset=ThisDrawing.SelectionSets.add("LWPolyline") '創建選擇集

fType(0)=0:fData(0)="LWPolyline" '選擇對象為多段線

fType(1)=8:fData(1)="打印范圍" '選擇圖層為打印范圍

Sset.SelectOnScreen fType,fData '用過濾器選擇打印范圍線

bl=EntLWP.Thickness '獲取打印范圍線的厚度作為自定義比例

LWPolyEnt.GetBoundingBox ptMin,ptMax '獲取打印范圍線的兩對角點坐標

Set LWPolyEnt(m)=Sset.Item(LineNum(m)- 1) '將多段線對象導出為對象數組,再進行排序

ThisDrawing.ActiveLayout.SetWindowToPlot ptMin,ptMax '設置打印窗口

ThisDrawing.Plot.DisplayPlotPreview acFullPreview '打印預覽

(3)打印對象

將選擇的打印對象按上述設置進行打印。

ThisDrawing.SetVariable"BACKGROUNDPLOT",0 '設置前臺打印

ThisDrawing.Plot.PlotToDevice(PlotDName) '打印當前區域的全部文件

ThisDrawing.SetVariable"BACKGROUNDPLOT",2 '恢復系統變量的值,后臺打印

5 結語

利用AutoCAD VBA二次開發技術以及本文的編程思路和方法編寫了批量打印程序(見圖3),在實際工作中得到了廣泛的應用。幾百余張的圖紙打印,只需要進行一次的打印設置和對象選擇,花費時間不到1分鐘,即可按順序進行批量打印,極大地提高了工作效率,滿足了生產的需要。以上列出了編寫該程序使用的主要屬性和方法的語句,只要在此基礎上根據本文中的編程思路,利用以上列出的一些語句,再添加一些排序、單選鈕、列表框、文本框的使用語句,即可編寫出批量打印程序。

圖3 批量打印程序的界面

[1] 張帆.AutoCAD VBA二次開發教程[M].北京:清華大學出版社,2006.

[2]李鳳華.AutoCAD 2002/2000 VBA開發指南[M].北京:清華大學出版社,2001.

[3]張帆,鄭立楷,王華杰.AutoCAD VBA開發精彩實例教程[M].北京:清華大學出版社,2004.

[4] 曾洪飛,張帆,盧擇臨.AutoCAD VBA&VB.NET開發基礎與實例教程[M].北京:中國電力出版社,2008.

[5]王玉琨,任衛紅,茅艷等.CAD二次開發技術及其工程應用[M].北京:清華大學出版社,2008.

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

猜你喜歡
二次開發圖紙測繪
淺談汽車線束產品圖紙管理
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
看圖紙
當代工人(2019年20期)2019-12-13 08:26:11
浙江省第一測繪院
工程測繪中GNSS測繪技術的應用
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
西門子Easy Screen對倒棱機床界面二次開發
04 無人機測繪應用創新受青睞
無人機在地形測繪中的應用
電子制作(2017年9期)2017-04-17 03:01:00
酒店室內裝修圖紙深化設計淺析
河南科技(2014年12期)2014-02-27 14:10:44
主站蜘蛛池模板: 亚洲不卡网| 97国产精品视频自在拍| 国产特级毛片| 国产全黄a一级毛片| 久久精品66| 999国内精品久久免费视频| 精品欧美视频| 亚洲男人的天堂网| 久久综合九色综合97婷婷| 91福利片| 综合久久五月天| 91亚洲影院| 蜜臀AV在线播放| 国产一区成人| 乱色熟女综合一区二区| 亚洲 欧美 偷自乱 图片| 亚洲综合精品香蕉久久网| 国产丰满大乳无码免费播放| 亚洲精品爱草草视频在线| 精品国产aⅴ一区二区三区| 欧美综合中文字幕久久| 国产爽妇精品| 精品视频一区二区观看| 国产91视频免费| 91视频国产高清| 综合色区亚洲熟妇在线| 亚洲第一视频网站| 国产成人久久777777| 国产成人高清精品免费软件| 成人午夜久久| 东京热av无码电影一区二区| 免费a在线观看播放| 亚洲日本中文综合在线| 亚洲国产成熟视频在线多多| 久久精品无码中文字幕| 久久久波多野结衣av一区二区| 国产理论一区| 91原创视频在线| 国产在线精品香蕉麻豆| 91麻豆精品国产高清在线| 成人国产精品2021| 日本三级黄在线观看| 在线免费亚洲无码视频| 久久综合结合久久狠狠狠97色| 午夜国产精品视频黄| 久久精品中文无码资源站| 欧美日韩综合网| 国产极品嫩模在线观看91| 91视频99| 青青青视频91在线 | 免费aa毛片| 99热在线只有精品| 日韩视频免费| 日韩国产综合精选| 不卡色老大久久综合网| 亚洲精品视频网| 影音先锋丝袜制服| 国产亚洲视频中文字幕视频| 国产91精品久久| 久草青青在线视频| 日韩专区欧美| 性视频一区| 色AV色 综合网站| 一区二区三区国产精品视频| 欧美日韩在线观看一区二区三区| 久久国产精品麻豆系列| 国产午夜精品一区二区三| 最新亚洲人成无码网站欣赏网 | yjizz国产在线视频网| a级毛片免费网站| 国产黄色免费看| 日韩无码黄色网站| 丁香六月综合网| 亚洲六月丁香六月婷婷蜜芽| 久久9966精品国产免费| 亚洲av片在线免费观看| 在线观看视频一区二区| 国产成人综合久久| 中文字幕欧美日韩高清| 91久久精品日日躁夜夜躁欧美| 日韩精品高清自在线| 亚洲精品在线观看91|