摘 要:CAD軟件現(xiàn)已成為大部分專業(yè)的必修課,并且工作時(shí)在設(shè)計(jì)等領(lǐng)域也有廣泛的應(yīng)用,但根據(jù)初調(diào)查研究發(fā)現(xiàn)現(xiàn)如今的CAD體系雖較為完善,但不夠方便及快捷,且無針對(duì)性,因此利用自身所學(xué)習(xí)的知識(shí)對(duì)CAD軟件的附屬功能進(jìn)行深層次的開放,力求更方便更快捷。文章對(duì)CAD軟件功能進(jìn)行拓展,加入了對(duì)地籍圖進(jìn)行自動(dòng)分割的功能,并展示如何運(yùn)用和產(chǎn)生的結(jié)果。
關(guān)鍵詞:拓展軟件;CAD;測(cè)量;便捷工具
1 CAD功能拓展軟件簡(jiǎn)介
目前Auto CAD 等國(guó)內(nèi)外計(jì)算機(jī)輔助設(shè)計(jì)軟件主要提供正交、對(duì)象捕捉、極軸追蹤、捕捉追蹤等繪圖輔助工具,缺乏一些方便快捷的設(shè)計(jì)。在利用Auto CAD繪圖的時(shí)候需要大量的操作,繪圖過程中浪費(fèi)了很多時(shí)間在復(fù)雜的操作上;而對(duì)于一些Auto CAD的外掛程序雖然簡(jiǎn)化了Auto CAD的部分操作但是需要在Auto CAD的基礎(chǔ)上安裝其他的軟件,在使用過程會(huì)出現(xiàn)兼容的問題。
此次主要是在Auto CAD的基礎(chǔ)上開發(fā)其拓展功能,使其能在精確制圖的過程中簡(jiǎn)化操作。
軟件開發(fā)環(huán)境是面向軟件整個(gè)生存周期,為支持各個(gè)階段的需要,在基本硬件和宿主軟件的基礎(chǔ)上使用的一組軟件系統(tǒng),也稱作軟件工程環(huán)境(Software Engineering Environment,SEE)。SEE是實(shí)現(xiàn)軟件生產(chǎn)工程化的重要基礎(chǔ)。它建立在先進(jìn)軟件開發(fā)方法的基礎(chǔ)上,正影響和改變著軟件生產(chǎn)方式,反過來又進(jìn)一步促進(jìn)了軟件方法的推廣與流行。SEE 包括生產(chǎn)一個(gè)軟件系統(tǒng)所需要的過程、方法和自動(dòng)化的集合。建立一個(gè)開發(fā)環(huán)境首先要確定一種開發(fā)過程模型,提出成套的、有效的開發(fā)方法,然后在這一基礎(chǔ)上利用各種軟件工具實(shí)現(xiàn)開發(fā)活動(dòng)的自動(dòng)化。SEE 有一套包括數(shù)據(jù)集成、控制集成和界面集成的集成機(jī)制,讓各個(gè)工具使用統(tǒng)一的規(guī)范存取環(huán)境信息庫(kù),采用統(tǒng)一的用戶界面,同時(shí)為各個(gè)工具或開發(fā)活動(dòng)之間的通信、切換、調(diào)度和協(xié)同工作提供支持。SEE 用于輔助軟件開發(fā)、運(yùn)行、維護(hù)和管理等各種活動(dòng)的軟件(程序),是一個(gè)軟件工具集(或工具包)。這不僅意味著SEE支持開發(fā)功能的擴(kuò)大,也反映了工具集成化程度的提高。軟件工具是指能支持軟件生存周期中某一階段(如需求分析、系統(tǒng)定義、設(shè)計(jì)、編碼、測(cè)試或維護(hù)等)的需要而使用的軟件系統(tǒng)。軟件設(shè)計(jì)的理論、模型、方法論、表示法上的研究成果,構(gòu)成軟件工具的重要基礎(chǔ),因此,軟件工具的研制應(yīng)該與整個(gè)軟件工程的理論方法緊密結(jié)合起來。軟件工具的另一個(gè)基礎(chǔ)是計(jì)算機(jī)的許多先進(jìn)技術(shù),包括:編譯技術(shù)、數(shù)據(jù)庫(kù)技術(shù)、人工智能技術(shù)、交互圖形技術(shù)和 VLSI 技術(shù)等等。
軟件工具應(yīng)具有較強(qiáng)的通用性,不依賴于某一實(shí)現(xiàn)環(huán)境、某一高級(jí)語言和某種設(shè)計(jì)方法。一般說,越是基礎(chǔ)的、成熟的,往往通用性較好;而一些和軟件開發(fā)方法有關(guān)的軟件工具,則往往專用程度較高。軟件工具通用性的要求應(yīng)該根據(jù)工具的特點(diǎn)和用戶的情況全面考慮。
2 CAD拓展軟件的應(yīng)用對(duì)比
提供一種機(jī)制,使環(huán)境中的所有工具可以共享軟件工程信息。
每一個(gè)信息項(xiàng)的改變,可以追蹤到其他相關(guān)信息項(xiàng)。
對(duì)所有軟件工程信息提供版本控制和配置管理。
對(duì)環(huán)境中任何工具,可進(jìn)行直接的、非順序的訪問。
在標(biāo)準(zhǔn)的分解結(jié)構(gòu)中提供工具和數(shù)據(jù)的自動(dòng)支持。
使每個(gè)工具的用戶,共享人機(jī)界面所有的功能。
收集能夠改善過程和產(chǎn)品的各項(xiàng)度量指標(biāo)。
支持軟件工程師們之間的通信。
3 軟件詳解
經(jīng)過整合,在Cad軟件菜單欄中加入了\"地籍管理\"選項(xiàng),如下圖所示
點(diǎn)擊“地籍管理”,在下拉菜單中選擇地籍圖分幅,在彈出的界面中打開所要分幅的地籍圖,如下圖。
點(diǎn)擊計(jì)算
地籍圖
分幅后的地籍圖1
分幅后的地籍圖2
另附程序代碼
Public acadApp, acadPref, acaddoc, mospace As Object
Private Sub Command1_Click()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = acadApp.MenuGroups.Item(0)
' Create the new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add(\"TestMenu\")
' Add a menu item to the new menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro string the VB equivalent of \"ESC ESC _open \"
'openMacro = Chr(3) Chr(3) Chr(95) \"open\" Chr(32)
openMacro = \"(startapp \" Chr(34) \"NotePad.exe\" Chr(34) \")\" vbCr ' Chr(3) Chr(3) Chr(95) \"shell notepad.exe\" vbCrLf Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, \"Open\", openMacro)
' Display the menu on the menu bar
newMenu.InsertInMenuBar (acadApp.MenuBar.Count + 1)
End Sub
Private Sub Command2_Click()
openMacro = \"(startapp \" Chr(34) \"NotePad.exe\" Chr(34) \")\" vbCrLf
End Sub
Private Sub Form_Load()
On Error Resume Next
Set acadApp = GetObject(, \"autocad.application\")
If Err Then
Err.Clear
Set acadApp = CreateObject(\"autocad.application\")
End If
If IsEmpty(acadApp) = True Then
MsgBox \"致命錯(cuò)誤請(qǐng)從新安裝CAD!系統(tǒng)將退出!\"
End
Else
acadApp.Visible = True
Set acaddoc = acadApp.ActiveDocument
End If
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim flag As String
Dim name As String
Dim pth As String
Dim newMenu As AcadPopupMenu
Dim fl As New FileSystemObject
Dim strm, strmdxf As TextStream
Set strm = fl.OpenTextFile(App.Path \"\配置文件.txt\", ForReading, True)
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
Dim ms As Integer
ms = 1
flag = strm.ReadLine
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = acadApp.MenuGroups.Item(0)
Set newMenu = currMenuGroup.Menus.Add(flag)
' Create the new menu
While Not strm.AtEndOfStream
flag = strm.ReadLine
If flag = \"命令\" Then
name = strm.ReadLine
pth = App.Path strm.ReadLine
pth = Replace(pth, \"\\", \"/\")
openMacro = \"(startapp \" Chr(34) pth Chr(34) \")\" vbCr ' Chr(3) Chr(3) Chr(95) \"shell notepad.exe\" vbCrLf Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, name, openMacro)
' Display the menu on the menu bar
ms = ms + 1
End If
Wend
strm.Close
newMenu.InsertInMenuBar (acadApp.MenuBar.Count + 1)
' Add a menu item to the new menu
' Assign the macro string the VB equivalent of \"ESC ESC _open \"
'openMacro = Chr(3) Chr(3) Chr(95) \"open\" Chr(32)
AppActivate acadApp.Caption
Timer1.Enabled = False
End
End Sub
4 結(jié)束語
古人云“工欲善其事,必先利其器”。先進(jìn)的設(shè)計(jì)工具能夠提高產(chǎn)品的制造水平。對(duì)三維CAD系統(tǒng)進(jìn)行功能拓展,大大提高了設(shè)計(jì)的效率,從而不僅縮短了產(chǎn)品的設(shè)計(jì)周期,提高了設(shè)計(jì)質(zhì)量,而且降低了生產(chǎn)成本。這項(xiàng)技術(shù)必將提高產(chǎn)品的競(jìng)爭(zhēng)力,使企業(yè)在激烈的市場(chǎng)競(jìng)爭(zhēng)中獲得生存與發(fā)展。為了使我國(guó)的CAD輔助設(shè)計(jì)技術(shù)在不久的將來能趕上發(fā)達(dá)國(guó)家的水平,并能同步增長(zhǎng)。為了提高數(shù)字化產(chǎn)品在國(guó)際市場(chǎng)的競(jìng)爭(zhēng)能力,我們必須深入研究數(shù)字基礎(chǔ)理論,加強(qiáng)CAD輔助設(shè)計(jì)的研發(fā)研究。
參考文獻(xiàn)
[1]方堅(jiān).CAD技術(shù)在道路工程測(cè)量中的應(yīng)用[Z].
作者簡(jiǎn)介:董塵(1991-),男,黑龍江省大興安嶺人,東北林業(yè)大學(xué)土木建筑工程本科生。
通訊作者:周國(guó)君(1965-),男,黑龍江哈爾濱人,碩士,副教授,碩士生導(dǎo)師,東北林業(yè)大學(xué)土木工程學(xué)院教師,主要從事數(shù)字測(cè)圖與計(jì)算機(jī)地圖制圖等研究和應(yīng)用。