AutoCAD圖形的繪制、編輯均在其圖形文件中進行,可以利用VB代碼創建新的文件、打開已有文件、保存文件等。
VB中按按照以下步驟創建新的圖形文件。
首先將VB于AutoCAD進行鏈接,可以用到典型的鏈接代碼,然后在VB工程窗體中添加一個按鈕用來由用戶創建新的CAD圖形文件,應用按鈕的單擊事件,在按鈕上添加如下代碼創建新的圖形文件。
Private Sub Command1_Click()
acadapp.Documents.Add
End Sub
這里利用Acadapp對象的下一級對象Documents的Add方法,以默認文件名創建新的圖形文件。
VB中打開已有圖形文件的代碼如下。
Private Sub Command2_Click()
Dim myfilename As String
myfilename = "這里是已有文件的路徑"
If Dir(myfilename) <> "" Then
acadapp.Documents.Open myfilename
Else
MsgBox ("文件不存在")
End If
End Sub
Dir函數用來檢測要打開的圖形文件是否存在,利用公用對話框CommonDialog控件的ShowOpen方法,可以讓用戶自行選擇要打開的圖形文件,用CommonDialog控件的FileName屬性返回用戶在對話框中選擇的路徑和文件名,并將其復制給myfilename變量。
VB中保存CAD圖形文件的代碼如下。
Private Sub Command3_Click()
acadapp.ActiveDocument.Save
End Sub
也可以使用SaveAs方法,以指定的文件名和保存路徑保存文件。
Private Sub Command4_Click()
acadapp.ActiveDocument.SaveAs "這里是要指定文件路徑和文件名"
End Sub
可以先對圖形文件被修改過之后是否進行保存進行判斷,如果進行過保存,則以當前文件名和文件路徑保存文件,否則不保存文件。
Private Sub Command5_Click()
If Not acadapp.ActiveDocument.Saved Then
If MsgBox("是否保存文件?", vbYesNo) = vbYes Then
acadapp.ActiveDocument.Save
End If
End If
End Sub
利用Close方法以當前文件名和路徑保存修改過后的文件,然后關閉圖形文件。
Private Sub Command6_Click()
acadapp.ActiveDocument.Close
End Sub
如果在Close函數后加上參數False,則表示不保存修改,直接關閉文件。
Private Sub Command6_Click()
acadapp.ActiveDocument.Close (False)
End Sub
為了和其他圖形處理文件進行交互工作,利用文件的導入導出功能將其它格式的文件導入到AutoCAD中進行編輯或將AutoCAD圖形文件保存成其它格式的文件,方便用其它軟件進行處理。
導入文件用到文檔對象的Import方法,可以導入SAT、EPS、DXF或WMF格式的文件,語法如下:objcet.Import(filename,InsertPoint,ScaleFactor)。導入文件代碼如下。
Private Sub Command7_Click()
Dim importfile As String
Dim insertpoint(0 To 2) As Double
Dim scalefactor As Double
importfile = "這里是需要導入的文件名和路徑"
insertpoint(0) = 0#: instertpoint(1) = 0#: insertpoint(2) = 0#
scalefactor = 2
acadapp.ActiveDocument.Import.importfile , insertpoint, scalefactor
ZoomExtents
End Sub
利用文檔對象的Export方法,可以將AutoCAD制作的圖形用WMF、SAT、EPS、DXF或BMP格式導出并保存,語法objcet.export filename,extentsion,selectionset。導出文件代碼如下。
Private Sub Command8_Click()
Dim explortfile As String
explortfile = ""
Dim sset As AcadSelectionSet
Set sset = acadapp.ActiveDocument.SelectionSets.Add("TEST")
acadapp.ActiveDocument.Export.explortfile , "WMF", sset
sset.Delete
End Sub