明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1285|回复: 0

一起来学vb.net(2,CAD.net调试不再是问题---续..)

[复制链接]
发表于 2012-11-8 18:25:48 | 显示全部楼层 |阅读模式
没注意,原来我仅有的俩明经币是狐哥给的。既然那么给力,我就再贴出我最新的调试方法。如下:
启动的外部程序为下面的代码编写的debug.exe程序。只需将生产dll的名字改为你命令的名字+数字即可。比如
  1. Imports Autodesk.AutoCAD.Runtime
  2. Public Class Class1
  3.     <CommandMethod("xxx")> _
  4.     Public Sub xxx()
  5.     End Sub
  6. End Class

你的命令是XXX,那么生产编译程序的时候,在“应用程序”—“程序集名称”里面将生产dll名称改为 “xxx 数字”即可,我用正则来判断的,当然你可以任意发挥。CAD一直保持打开状态,然后 启动调试(F5),调试后,直接切到CAD窗口,按 空格键即可查看效果。重复调试只需更改数字就行了。下面是debug.exe的源码(vb.net)及工程:
  1. Imports System.IO
  2. Public Class Form1

  3.     Public Function SortbycreateTime(ByVal x As String, ByVal y As String) As Integer
  4.         Dim xinfo As New FileInfo(x)
  5.         Dim yinfo As New FileInfo(y)
  6.         Return -xinfo.CreationTime.CompareTo(yinfo.CreationTime)

  7.     End Function

  8.     Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
  9.       
  10.         Me.Hide()
  11.         Me.Dispose(True)
  12.         End
  13.     End Sub
  14.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  15.         Dim Mpath As String = My.Computer.FileSystem.CurrentDirectory
  16.         Dim Mdlls As String() = Directory.GetFiles(Mpath, "*.dll")
  17.         Array.Sort(Mdlls, AddressOf SortbycreateTime)
  18.         Dim Filestr As String = Mdlls(0)
  19.         Dim Myinfo As New FileInfo(Filestr)

  20.         Dim Mcmd As String = System.Text.RegularExpressions.Regex.Replace(Myinfo.Name, "\d*\.dll$", "")
  21.         ' MsgBox(Mcmd)
  22.         If Filestr <> "" Then
  23.             Dim acadApp As Object = GetObject(, "AutoCAD.Application")
  24.             Dim AcadD As Object = acadApp.ActiveDocument
  25.             Dim Mnet As String = Replace(Filestr, "", "/")
  26.             AcadD.SetVariable("FILEDIA", 0)
  27.             AcadD.SendCommand("(command " & Chr(34) & "netload" & Chr(34) & Chr(34) & Mnet & Chr(34) & ")" & Chr(13))
  28.             AcadD.SetVariable("FILEDIA", 1)
  29.             AcadD.SendCommand(Mcmd)
  30.             AcadD = Nothing
  31.             acadApp = Nothing
  32.         End If
  33.     End Sub
  34. End Class
注意,最好不要开多个CAD.我一直用的是CAD2012调试的,VS2010。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 16:20 , Processed in 0.151374 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表