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