原理:启动CAD(手动),用此debug.exe获得 调试输出.dll的路径,每次调试更改一下程序集的名字,这个很重要,你可以后面添1,2,3l累加上去,不要和以前调试的名字重复就行否则无法编译。
-
- '引用 AutoCAD 2012 Type library
- '引用 Microsoft Scripting Runtime 当然这个可以不引用直接安装脚本格式(变体)写代码
- '引用 Microsoft VBScript Regular Expressions5.5
- '***********************************
- '江河梦小组 华夏梦清
- '2012.5.23
- 'QQ 772671249 RTX 61692
- '***********************************
- Private Sub Form_Load()
- On Error Resume Next
- Dim acadApp As AcadApplication, AcadD As AcadDocument
-
- Dim Fso As New Scripting.FileSystemObject
- Dim Folder As Scripting.Folder, File As Scripting.File
-
- Dim Reg As New RegExp
-
- Dim Folderstr As String, Filestr As String
-
- Me.Hide
- Folderstr = "": Filestr = ""
- Reg.Pattern = "\.pdb$"
- Reg.IgnoreCase = False
- Reg.MultiLine = False
- Reg.Global = True
-
- Open App.Path & "\debug.txt" For Input As #1
- Line Input #1, Folderstr
- Close
- Set Folder = Fso.GetFolder(Folderstr)
- For Each File In Folder.Files
- If Reg.Test(File.Name) Then
- Filestr = Reg.Replace(File.Path, ".dll")
- Exit For
- End If
- Next
-
- Set Fso = Nothing
- Set Reg = Nothing
- Set Folder = Nothing
-
- If Filestr = "" Then End
- Set acadApp = GetObject(, "AutoCAD.Application")
- Set AcadD = acadApp.ActiveDocument
- AcadD.SendCommand "filedia 0" & Chr(13)
- AcadD.SendCommand "netload " & Filestr & Chr(13)
- AcadD.SendCommand "filedia 1" & Chr(13)
- Set AcadD = Nothing
- Set acadApp = Nothing
- If Err.Number 0 Then
- MsgBox Err.Description & vbCrLf & "错误号:" & Err.Number, vbOKOnly, "江河梦小组"
- End If
- End
- End Sub
其实从源码中你就能看出究竟,我这里再啰嗦一下:
debug.exe的路径下要建立一个debug.txt文档,这个是用来放入vs编译输出的文件夹路径的比如:
E:\我的磁盘\源代码\VB.net\cad.net之vb.net\vb.net窗体\xxx\bin\Debug\
因为我无法操作VS的ide环境,来直接获取此路径,所以也只能这样搞。
这样,您写CAD.net程序步骤如下:
1,复制自己建的模板编写代码---调试(第一次调试)
2,点击输出窗口中“显示来源:"的"生成项" 复制此路径(不带文件名)粘贴于debug.exe
3,复制带文件名的在CAD中filedia--0--netload--贴入--输入命令(第一次调试而已,您已经可以随便改下代码直接调试了
,即即可忽略这一步)
4,更改代码,在Myproject ---应用程序---更改程序集名称(可以后面加数字,每次调试依次往上面叠加)
5,调试,在CAD中输入命令查看结果。
6,重复4,5步骤。
以上步骤CAD一直处于开启状态。
以后写程序使用1-6步骤即可调试CAD.net程序,如果您有更好的方法,欢迎指点!
原创帖子,转载请注明出处!
华夏梦清 2012-5-3