明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9736|回复: 13

[基础] [转]VB.Net二次开发AutoCAD程序调试的一个小技巧

  [复制链接]
发表于 2011-6-25 16:07:21 | 显示全部楼层 |阅读模式
VB.Net二次开发AutoCAD程序调试的一个小技巧
转自:http://bbs.sciencenet.cn/home.php?mod=space&uid=475917&do=blog&id=386250

众所周知,与传统的VB6不同,VB.Net在对代码进行测试运行时先编译,速度奇慢。而使用VB.NET对AutoCAD进行二次开发时这种情况会更加严重。为什么这么说呢?请看常规运行代码的过程:
(1)按F5;(2)生成程序【编译】;(3)启动AutoCAD【所谓的外部程序】;(4)在AutoCAD里使用netload命令手工加载编译好的dll;(5)输入自定义的命令运行程序。
这对于急性子的我——尤其是在AutoCAD里安装了一堆扩展插件的我来说,简直就是煎熬。
还好,有些小技巧可以使用。
技巧1:运行代码时不启动AutoCAD
使用VB.NET对AutoCAD二次开发,必须在调试选项卡里设置“启动外部程序”——也就是设置acad.exe的路径。其实这个不是必须的,可以把这个程序设置成其他的可执行文件——比如设置成notepad.exe【因为它启动速度快】,而使AutoCAD一直保持打开的状态,这样就节省了启动的时间。
不过,还是要在编译dll后,在AutoCAD里输入netload加载dll。
技巧2:巧用断点
技巧1其实还不是最好的,还有一个更加省时省力的方法:在代码里设置断点【这里启动的外部程序还是acad.exe】
待按F5运行代码以后,在AutoCAD里对编程效果进行测试【编译-启动AutoCAD-输入netload命令-加载dll-输入自定义命令-我晕还有个断点,再次按F5,时间咋个更长了?】。
这时候发现某个地方不爽,需要修改代码,需要停止程序的运行吗?不必。重新使用自定义的命令,程序运行到断点处暂停,这个时候试着去修改代码,哈,可以修改,是不是很爽啊?!【节省了“编译-启动AutoCAD-输入netload命令-加载dll”这一系列动作,连编译都节省了!】
只是有一点不理想——这种方法不能编辑界面。想想完美的事情只有在韩国电影里才能出现,也就释然了。
总之一句话,还好人是活的,有技巧可用,否则进行AutoCAD二次开发的程序开发人员需要多大的耐心才能编写出那些人们喜闻乐见的软件呢?呵呵。

补充(2010.11.24):
调试时自动加载dll的方法:
(1)新建一个scr文件。
(2) scr文件内容【netload "dll路径"口】。
      注:“口”为空格,这个一定要加

(3) 在程序属性的调试选项卡的“命令行参数”内输入【/nologo /b "scr文件路径"】。
      注:注意空格

(4)OK了,按F5,直接输入自定义命令,测试下效果。



该贴已经同步到 cumtjh的微博

评分

参与人数 1金钱 +6 收起 理由
huaxiamengqing + 6 赞一个!

查看全部评分

 楼主| 发表于 2011-6-25 16:11:11 | 显示全部楼层
【AutoCAD 技巧】使用命令行开关启动AutoCAD产品的步骤

【作者:HenryHuang】      本文转载自
有时候需要判断一下是否是硬件加速、Ribbon等原因造成了软件的问题,需要在软件启动的时候关闭这些选项。

那么通过命令行开关就很方便了。

例如,输入 "C:\Program Files\Autodesk\AutoCAD Mechanical 2012\acad.exe" /p <<ACADMPP>> /w "Mechanical 经典" /nohardware表示启动ACM,使用ACADMPP配置文件, 采用经典界面,同时关闭硬件加速。

具体步骤如下:  
1.在 Windows 桌面上,在此程序的图标上单击鼠标右键。单击“特性”。
2.在 AutoCAD“特性”对话框的“快捷方式”选项卡中的“目标”框中,使用下列语法编辑开关参数:
“驱动器:路径名\acad.exe” [“图形名”] [/开关“名称”]

下表列出了有效开关。
/b脚本名启动程序后,请指定要运行的脚本(b 代表批处理)。脚本可以用于设置新图形文件中的图形参数。假定 SCR 文件类型。
/t样板文件名基于样板或原型图形创建新图形。假定 DWT 文件类型。
/c配置文件夹为用户想使用的硬件配置文件指定路径。可以指定目录或特定文件。假定 CFG 文件类型。
如果不设定 /c 参数,将搜索可执行目录,并使用 ACADCFGW 或 ACADCFG 环境变量定义配置文件和目录位置。
/v视图名指定一个特定的图形视图,以便在启动时显示。
/ldARX 或 DBX 应用程序加载一个指定的 ARX 或 DBX 应用程序。请使用以下格式:
<路径>\<文件名>.ARX
如果路径或文件名中包含空格,应使用双引号将路径或文件名引起来。如果未提供任何路径信息,将使用程序搜索路径。
/s支持文件夹指定支持文件夹,而不是当前文件夹。图形支持文件包括字体、菜单、AutoLISP 文件、线型和填充图案。可以在路径中指定的文件夹的最大数目是 15。每一文件夹名用分号分隔。
/r默认系统定点恢复默认系统定点设备。它将创建一个新的配置文件 (acad2010.cfg),并将之前的配置文件重命名为 acad2010.bak
设备
/nologo无 AutoCAD 徽标屏幕>启动程序,而不是先显示徽标屏幕。
/p用户定义的指定用于启动程序的用户定义的注册表配置。选定的配置只在当前任务中有效,除非您在当前任务中在“选项”对话框中将另一个配置置为当前配置。
用于启动程序的在“选项”对话框的“配置”选项卡上创建或输入配置。可以使用 /p 参数指定在“选项”对话框中列出的配置名称或输出配置 (ARG) 文件的文件名。如果配置不存在,请使用当前配置。
配置 
/nohardware禁用硬件启动时禁用硬件加速。
加速
/nossm无“图纸集管理器”启动时不显示“图纸集管理器”窗口。
窗口
/set图纸集启动时加载命名图纸集。请使用以下格式:
<路径>\<图纸集数据文件>.DST
/w默认工作空间指定启动时应恢复已加载的 CUIx 文件中的哪个工作空间。
/pl背景打印/发布在背景中发布图形集说明 (DSD) 文件。请使用以下格式:
<路径>\<图形集说明文件>.DSD

转自:http://au.autodesk.com.cn/QueryNewsAction.do?id=2256
 楼主| 发表于 2011-6-25 16:14:24 | 显示全部楼层
了解和使用AutoCAD的命令行开关
a>
29.2.1 命令行开关简介
    通常用户需要通过AutoCAD程序的快捷方式来启动AutoCAD系统,并可以在快捷方式中设置AutoCAD系统启动时的环境和操作。选择AutoCAD程序的某个快捷方式,并查看其属性,如图29-2所示。

    图中“目标”编辑框中所示即为AutoCAD系统启动时的命令行。用户可以在命令行中添加各种参数,使AutoCAD在启动时能够执行一些特定的操作。如运行脚本、加载配置文件等。这些参数被称为命令行开关。
29.2.2 开关参数详解
    1. “/c”开关
    “/c”开关用于指定AutoCAD系统启动时所使用的硬件配置文件。用户可以指定任意一个扩展名为“.CFG”的文件名作为配置文件,如果该文件不存在,AutoCAD将自动创建该文件。缺省的配置文件名为“acad2002.cfg”。
    用户可利用该参数在不同的快捷方式中设置不同的配置文件,这样在启动AutoCAD系统时可实现多配置的选择。
使用该参数的例子如下:
    "D:\Program Files\AutoCAD 2002\acad.exe" /c "D:\AutoCAD Files\mycofig.cfg"
    2. “/s”开关
    “/s”开关用于指定当前目录以外的支持目录。如果未设置此开关,AutoCAD 将使用在“Options(选项)”对话框中指定的支持文件搜索路径。
    使用该开关最多可以指定15个目录。每个目录名用“;”分隔,如下例所示。
    "D:\Program Files\AutoCAD 2002\acad.exe" /s "D:\AutoCAD Files";"D:\Work"
    注意 使用“/s”开关指定的支持目录只在当前AutoCAD任务期间有效,而不能建立永久的支持目录。
    3. “/b”开关
    “/b”开关用于指定 AutoCAD 启动后要运行的脚本。例如:
    "D:\Program Files\AutoCAD 2002\acad.exe" /b "D:\AutoCAD Files\exam"
    关于脚本文件请参见第31章31.1节。
    4. “/r”开关
    “/r”开关可存储缺省系统定点设备的设置。使用此开关时将创建新的配置文件,而将原来的配置文件扩展名由“CFG”改为“BAK”。
    5. “/t”开关
    “/t”开关可根据样板或原型图形创建新图形。例如,下面的设置可以在启动AutoCAD时通过样板文件“template.dwt”来创建新图形:
    "D:\Program Files\AutoCAD 2002\acad.exe" /t "D:\AutoCAD Files\template.dwt"
    6. “/nolog”开关
    “/nolog”开关可指定在启动AutoCAD时不显示徽标屏幕。
    7. “/v”开关
    “/v”开关指定在AutoCAD启动时显示图形的预定义视图。例如,如果要打开图形“exam4-1.dwg”并指定视图为“all”,则设置为:
    "D:\Program Files\AutoCAD 2002\acad.exe" "D:\AutoCAD Files\exam4-1.dwg" /v all
     8. “/p”开关
    “/p”开关用于启动AutoCAD的用户定义的注册配置文件。所选配置只对本次AutoCAD任务有效。
    "D:\Program Files\AutoCAD 2002\acad.exe" \p "D:\AutoCAD Files\ users.arg "
    说明 除了在快捷方式中使用命令行及各种开关以外,用户使用Windows系统的“运行”命令来使用命令行。无论在哪种方式下,如果文件名中包含有空格,则必须在文件名上加引号;否则引号可省略。

本帖子中包含更多资源

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

x
 楼主| 发表于 2011-6-26 13:12:41 | 显示全部楼层
    Location(14) = "SOFTWARE\Autodesk\AutoCAD\R18.0\ACAD-8001:804" '2010中文版
    Location(15) = "SOFTWARE\Autodesk\AutoCAD\R18.0\ACAD-8001:409" '2010英文版
    Location(16) = "SOFTWARE\Autodesk\AutoCAD\R18.1\ACAD-9000:804" '2011中文版"
    Location(17) = "SOFTWARE\Autodesk\AutoCAD\R18.1\ACAD-9000:409" '2011英文版"
    Location(18) = "SOFTWARE\Autodesk\AutoCAD\R18.2\ACAD-9000:804" '2012中文版"
    Location(19) = "SOFTWARE\Autodesk\AutoCAD\R18.2\ACAD-9000:409" '2012英文版"
 楼主| 发表于 2011-6-26 13:32:41 | 显示全部楼层
HKEY_LOCAL_MACHINE下面
三年一版本
"SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:804" '2000中文版
"SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:409" '2000英文版

"SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:804" '2002中文版
"SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:409" '2002英文版

"SOFTWARE\Autodesk\AutoCAD\R16.0\ACAD-201:804" '2004中文版
"SOFTWARE\Autodesk\AutoCAD\R16.0\ACAD-201:409" '2004英文版

"SOFTWARE\Autodesk\AutoCAD\R16.1\ACAD-301:804" '2005中文版
"SOFTWARE\Autodesk\AutoCAD\R16.1\ACAD-301:409" '2005英文版

"SOFTWARE\Autodesk\AutoCAD\R16.2\ACAD-4001:804" '2006中文版
"SOFTWARE\Autodesk\AutoCAD\R16.2\ACAD-4001:409" '2006英文版

"SOFTWARE\Autodesk\AutoCAD\R17.0\ACAD-5001:804" '2007中文版
"SOFTWARE\Autodesk\AutoCAD\R17.0\ACAD-5001:409" '2007英文版

"SOFTWARE\Autodesk\AutoCAD\R17.1\ACAD-6001:804" '2008中文版
"SOFTWARE\Autodesk\AutoCAD\R17.1\ACAD-6001:409" '2008英文版

"SOFTWARE\Autodesk\AutoCAD\R17.2\ACAD-7001:804" '2009中文版
"SOFTWARE\Autodesk\AutoCAD\R17.2\ACAD-7001:409" '2009英文版

"SOFTWARE\Autodesk\AutoCAD\R18.0\ACAD-8001:804" '2010中文版
"SOFTWARE\Autodesk\AutoCAD\R18.0\ACAD-8001:409" '2010英文版

"SOFTWARE\Autodesk\AutoCAD\R18.1\ACAD-9001:804" '2011中文版
"SOFTWARE\Autodesk\AutoCAD\R18.1\ACAD-9001:409" '2011英文版

"SOFTWARE\Autodesk\AutoCAD\R18.2\ACAD-10001:804" '2012中文版
"SOFTWARE\Autodesk\AutoCAD\R18.2\ACAD-10001:409" '2012英文版
发表于 2011-6-27 15:17:40 | 显示全部楼层
非常好的总结
发表于 2011-6-29 00:13:46 | 显示全部楼层
假如改变代码了,技巧一行不通
发表于 2011-6-29 11:08:27 | 显示全部楼层
多谢分享,来看看,学习学习
发表于 2012-4-3 16:30:24 | 显示全部楼层
使用vs2008调试时无法打开cad2012,显示调试器的协议与调试对象不兼容,请高人指教

点评

用vs2010 调试cad2012,遇到同样的问题  发表于 2012-6-6 14:33
哥们开发CAD2012要用VS2010, vs2008可以调试CAD2010以前的版本,因为自从10以后CAD有关dll做了重大修改。  发表于 2012-4-26 12:39
发表于 2012-4-26 12:33:23 | 显示全部楼层
顶起,这么好的帖子。我也是搞CAD开发的,常联系QQ772671249
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 11:58 , Processed in 0.186460 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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