你去查查书吧,书上挺详细的,在这说不好说,你先在项目里引用.然后 Dim acadapp As AcadApplication Dim acaddoc As AcadDocument On Error Resume Next AcadApp = GetObject(, "AutoCAD.Application") If Err.Number Then Err.Clear() AcadApp = CreateObject("AutoCAD.Application") If Err.Number Then MsgBox("不能运行AutoCAD,请检查是否安装了AutoCAD") Exit Sub End If End If AcadApp.Visible = True '界面可视
下面的代码是用PictureBox控件显示CAD的DWG文件
Private?Structure?BITMAPFILEHEADER
Dim?bfType?As?Short
Dim?bfSize?As?Integer
Dim?bfReserved1?As?Short
Dim?bfOffBits?As?Integer
End?Structure
Public?Function?GetDwgImage(ByVal?FileName?As?String)?As?Image
If?Not?File.Exists(FileName)?Then?Exit?Function
Dim?DwgF?As?FileStream?'文件流
Dim?PosSentinel?As?Integer?'文件描述块的位置
Dim?br?As?BinaryReader?'读取二进制文件
Dim?TypePreview?As?Integer?'缩略图格式
Dim?PosBMP?As?Integer?'缩略图位置
Dim?LenBMP?As?Integer?'缩略图大小
Dim?biBitCount?As?Short?'缩略图比特深度
Dim?biH?As?BITMAPFILEHEADER?'BMP文件头,DWG文件中不包含位图文件头,要自行加上去
Dim?BMPInfo()?As?Byte?'包含在DWG文件中的BMP文件体
Dim?BMPF?As?New?MemoryStream?'保存位图的内存文件流
Dim?bmpr?As?New?BinaryWriter(BMPF)?'写二进制文件类
Dim?myImg?As?Image
Try
DwgF?=?New?FileStream(FileName,?FileMode.Open,?FileAccess.Read)?'文件流
br?=?New?BinaryReader(DwgF)
Select?Case?TypePreview
Case?1
DwgF.Seek(PosBMP,?SeekOrigin.Begin)?'从位图块开始处读取全部位图内容备用
BMPInfo?=?br.ReadBytes(LenBMP)?'不包含文件头的位图信息
br.Close()
DwgF.Close()
With?biH?'建立位图文件头
.bfReserved1?=?0?'保留字节
End?With
'以下开始写入位图文件头
bmpr.Write(biH.bfType)?'文件类型
bmpr.Write(biH.bfSize)?'文件大小
bmpr.Write(biH.bfReserved1)?'0
bmpr.Write(biH.bfOffBits)?'图像数据偏移
bmpr.Write(BMPInfo)?'写入位图
BMPF.Seek(0,?SeekOrigin.Begin)?'指针移到文件开始处
myImg?=?Image.FromStream(BMPF)?'创建位图文件对象
Return?myImg
bmpr.Close()
BMPF.Close()
End?Select
Catch?ex?As?Exception
Return?Nothing
End?Try
End?Function
如果可以的话请把分给我
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error Resume Next
Dim acadapp As Autodesk.AutoCAD.Interop.AcadApplication
acadapp = GetObject(vbNullString, "autoCAD.application")
Dim acaddoc As Autodesk.AutoCAD.Interop.AcadDocument
acaddoc = acadapp.ActiveDocument
Dim Ms As Autodesk.AutoCAD.Interop.Common.AcadModelSpace
Ms = acaddoc.ModelSpace
Dim acadObjectI As Autodesk.AutoCAD.Interop.Common.AcadObject
Dim Linei As Autodesk.AutoCAD.Interop.Common.AcadLine
Dim Circlei As Autodesk.AutoCAD.Interop.Common.AcadCircle
Dim Polylinei As Autodesk.AutoCAD.Interop.Common.AcadPolyline
Dim pt As Autodesk.AutoCAD.Interop.Common.AcadPoint
For Each acadObjectI In Ms
Debug.Print(acadObjectI.ObjectName)
Select Case acadObjectI.ObjectName
Case "AcDbLine"
Linei = acadObjectI
Debug.Print("X =" Linei.StartPoint(0).ToString)
Debug.Print("Y =" Linei.StartPoint(1).ToString)
Case ""
End Select
Next
End Sub
这个是vb.net教材里面的吧,我也是前两天刚下的.遇到类似的问题,下面是我的解决办法
首先要参考引用Autodesk.AutoCAD.Interop.dll还有Autodesk.AutoCAD.Interop.Common.dll
'Dim AcadApp As AutoCAD.AcadApplication
Dim AcadApp As Autodesk.AutoCAD.Interop.AcadApplication
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call 连接AutoCAD()
Sub 连接AutoCAD()
AcadApp = GetObject(, "AutoCAD.Application")
If Err.Number Then
Err.Clear()
AcadApp = CreateObject("AutoCAD.Application")
MsgBox("不能运行AutoCAD,请检查是否安装了AutoCAD")
Exit Sub
End If
AcadApp.Visible = True '界面可视
'AcadApp.WindowState = AutoCAD.AcWindowState.acMax '界面最大化
AcadApp.WindowState = Autodesk.AutoCAD.Interop.Common.AcWindowState.acMax
AppActivate(AcadApp.Caption) '显示AutoCAD界面
以上就是土嘎嘎小编为大家整理的vb.netcad连接相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!