AVEVA Draft Auto Drawing Customisation
AVEVA Draft自動出圖二次開發(fā)
eryar@163.com
摘要Abstract:本文簡要描述了CAD軟件自動出圖的意義,詳細(xì)說明AVEVA Draft模塊的PML二次開發(fā)步驟,并給出了PML實例,便于理解及工程應(yīng)用。通過對Draft的二次開發(fā),可以根據(jù)需要對指定模型進(jìn)行自動出圖,提高工作效率。
關(guān)鍵字Key Words:AVEVA Draft、PDMS、PML、Automatical Drawing
一、引言 Introduction
計算機(jī)輔助設(shè)計的最終目的就是自動生成能夠指導(dǎo)生產(chǎn)用的圖紙,也許不久的將來就不需要圖紙了,直接由模型生成機(jī)床等加工設(shè)備能識別的數(shù)據(jù),使機(jī)床自動加工。而施工人員只需要手拿一個pad通過Wi-Fi連接到數(shù)據(jù)庫看看三維模型,模型中附帶著加工相關(guān)的工藝信息。以三維交互的方式來建立模型,便于用戶將設(shè)計數(shù)據(jù)輸入計算機(jī)。建模過程直觀,真實,減少設(shè)計差錯,并可使設(shè)計人員集中精力對設(shè)計做些優(yōu)化。根據(jù)三維模型自動生成材料報表、生產(chǎn)施工圖紙是計算機(jī)輔助設(shè)計軟件的輸出,也是軟件代替手工的先進(jìn)之處。
生產(chǎn)圖紙按有無比例可分為:有比例投影圖和無比例示意圖。有比例投影圖如設(shè)備布置圖、管子安裝圖等,是模型按一定的比例縮放后再經(jīng)過消隱處理生成的二維圖紙。無比例示意圖如管子軸測圖、鋼結(jié)構(gòu)節(jié)點圖、桿件詳圖等,是模型的一種示意性表示,有時為了美觀,圖形并不與模型有固定比例關(guān)系,但是圖中的拓樸關(guān)系必須與模型一致(即連接關(guān)系)。雖然無比例示意圖不是按比例投影的,但是圖中的尺寸標(biāo)注、標(biāo)高等是模型的實際值,可以用來指導(dǎo)施工、安裝,且圖紙更簡單、清晰。不管是有比例投影圖還是無比例示意圖,程序出圖的處理過程大致如下:
l 指定圖紙模板或圖紙大小,據(jù)此獲得圖紙范圍;
l 根據(jù)三維模型數(shù)據(jù)生成二維圖形;
l 尺寸標(biāo)注;
l 件號標(biāo)注;
l 材料報表;
上述過程中也有些算法上的難點,如件號標(biāo)注的布局問題等。做得好的軟件,自動生成的圖紙尺寸標(biāo)注清晰、準(zhǔn)確;標(biāo)號排列整齊、美觀;材料說明完整,可以直接打印,不用人工干預(yù)調(diào)整,可大大解放生產(chǎn)力。有興趣的讀者可以對件號布局的算法進(jìn)行研究,實現(xiàn)一個通用、高效的標(biāo)號布局庫。
AVEVA Draft模塊就是用來生成有比例投影圖的程序,設(shè)備布置圖、安裝圖等。有比例投影圖的核心算法就是根據(jù)三維模型自動生成各種消隱方式的二維圖形。在AVEVA Draft模塊中就有下面幾種消隱方式:
n Wireline;
n Modelled Wireline;
n Local Hidden Line;
n Globe Hidden Line;
n Universal Hidden Line;
如下圖所示:
消隱線消除算法可以參考OpenCascade中的HLR(Hidden Line Removal)部分源程序。先學(xué)習(xí)其原理,再結(jié)合源碼,學(xué)習(xí)效率應(yīng)該很高。如圖所示為OpenCascade的消隱算法示例程序生成效果圖:
Isodraft模塊用來生成無比例示意圖,管子軸測圖。生成無比例管子軸測圖的算法也是值得研究的,其相關(guān)算法也可用于生成其它無比例圖紙中。
二、Draft數(shù)據(jù)庫結(jié)構(gòu) Draft Database Hierarchy
Figure 2.1 Draft Database Hierarchy
Figure 2.2 Draft Database Hierarchy in Draft Explorer
要對Draft模塊二次開發(fā)就需要了解Draft的數(shù)據(jù)庫結(jié)構(gòu)。如上圖所示,Draft的數(shù)據(jù)庫是樹形結(jié)構(gòu):
其中World是最頂級元素;
World可以包含n個Department,即Department是World的成員(Member),World是Department的所有者(Owner);
Department包含Registery;
Registry包含Drawing;
Drawing包含Sheet ……。
理解Draft的數(shù)據(jù)結(jié)構(gòu),就可以創(chuàng)建出所需要的數(shù)據(jù),并將相應(yīng)的數(shù)據(jù)元素的有關(guān)屬性賦值就可以得出所需要的結(jié)果了。
三、出圖步驟 Procedures for Developing
根據(jù)程序出圖的過程,說明如何在AVEVA Draft模塊中實現(xiàn)出圖的定制開發(fā)。掌握Draft出圖的二次開發(fā),就可以根據(jù)實際需要,使圖紙自動生成。如對支架模型進(jìn)行出圖,對安裝布置圖進(jìn)行優(yōu)化等。AVEVA Draft模塊中的管子零件圖、風(fēng)管零件圖的自動生成程序:PipeSketches、HVACSketches,都是使用PML開發(fā)的,具體實現(xiàn)細(xì)節(jié)可以作為參考。
AVEVA Draft創(chuàng)建工程平面圖有兩種方式:手動方式產(chǎn)生平面圖和ADP方式產(chǎn)生平面圖(Auto Drawing Production)。凡是手工可以做的,都可以交給計算機(jī)自動來做。手動方式出圖將使用Draft模塊出圖部分的所有功能,熟悉Draft模塊中不同功能的使用,將使我們更好的了解ADP自動出圖的實現(xiàn)。操作熟練后,就可以使用PML來定制自己的出圖程序。雖然是手動的方式,便許多的創(chuàng)建步驟都是自動連續(xù)進(jìn)行的。
手動出圖的方式就是結(jié)合上節(jié)中的數(shù)據(jù)結(jié)構(gòu)圖,創(chuàng)建出相應(yīng)的數(shù)據(jù)。創(chuàng)建方法都是通過菜單Create中的命令來完成。
Figure 3.1 Manual Creation command
在這些數(shù)據(jù)結(jié)構(gòu)中較為關(guān)鍵的是View和Drawlist等。通過Drawlist可以將需要投影的模型加入到View中,通過設(shè)置View的投影方向及比例、消隱方式、規(guī)則等,就可以將模型放到Drawing中去了。
具體手動創(chuàng)建步驟可以參考PDMS Draft出圖相關(guān)資料。
使用PML自動出圖也是按上面的步驟來進(jìn)行的,只不過是直接使用PML來調(diào)用創(chuàng)建命令及設(shè)置相關(guān)數(shù)據(jù)結(jié)構(gòu)的屬性。
四、PML實現(xiàn) PML Implementation
l 創(chuàng)建Department : new dept
l 創(chuàng)建Registry:new regi
l 創(chuàng)建Drawing:new drwg
n 需要設(shè)置圖紙大小Size:
n 設(shè)置單位、線型、顏色等……
l 創(chuàng)建Sheet:new shee
l 創(chuàng)建Drawlist Lib:new DLLB
l 為各個View創(chuàng)建drawlist:new idli
l 將模型加入到drawlist中去:
l 根據(jù)圖紙大小、模型范圍計算比例:自動計算比例:auto /viewName
l 更新圖紙:update design
l 標(biāo)注尺寸:new ldim
l 標(biāo)標(biāo)件號:new slab
l 繪制材料表:通過畫線命令,自己繪制。
五、工程應(yīng)用 Engineering Application
通過PML二次開發(fā)出支架建模、出圖程序,提高工作效率。其中支架出圖就是根據(jù)上面步驟進(jìn)行定制開發(fā)的,出圖界面與管子零件圖程序類似,如下圖所示:
Figure 5.1 Support Sketches GUI
Figure 5.2 Support Sketch Demo
通過自動出圖的方式,改變了支架設(shè)計的方式,提高了工作效率。
六、結(jié)論 Conclusion
二維圖紙生成在目前為止還是三維設(shè)計軟件的一個重要功能。AVEVA Draft的PML二次開發(fā)還是很簡單、易上手的。通過對Draft出圖的PML定制開發(fā),改變以工作方式,提高了工作效率。由于Draft模塊繪圖及輔助功能如捕捉等功能不強(qiáng),AVEVA準(zhǔn)備推HullDrafting模塊,但是在自動出圖方面,Draft還是很方便的,可滿足定制自動出圖的需要。
七、參考資料 Bibliography
l Outfitting Draft User Guide
l Drawing Production User Guide
l PipeSketches PML code