明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3006|回复: 10

求教(修改AUTOCAD2004图纸时不加载VBA)

[复制链接]
发表于 2004-9-9 14:47:00 | 显示全部楼层 |阅读模式
我用delphi程序的ole容器来新增,修改AutoCAD2004的图纸,在新增的时候VBA自动加载,命令行的内容如下: 正在重生成模型。
命令:
AutoCAD 菜单实用程序已加载。_vbaload
命令: 正在初始化 VBA 系统...
打开 VBA 工程: C:\FY_CAPP.DVB
命令: -vbarun
宏名称(M): md_menu.insertmenu
命令: AUTOCAD2004自动打开VBA工程(我是使用ACAD.LSP来自动加载VBA工程的)。 但是在修改图纸时VBA不自动加载,命令行的内容如下: 正在重生成模型。
命令:
AutoCAD 菜单实用程序已加载。_vbaload
命令: 正在初始化 VBA 系统...
正在打开 AutoCAD 2004 格式的文件。
正在重生成模型。
命令:
命令:
打开 VBA 工程: 没有自动打开VBA工程。 请教各位高手,有没有方法解决这个问题啊?
发表于 2004-9-9 15:10:00 | 显示全部楼层
没用过2004和delphi,至少没遇到过这种情况


不需要启动加载VBA程序,只需要运行时给全路径
 楼主| 发表于 2004-9-9 15:14:00 | 显示全部楼层
我不是指怎样打开CAD程序,是说打开CAD程序后自动加载VBA,因为要使用VBA来自动加载一个菜单。
发表于 2004-9-9 15:20:00 | 显示全部楼层
我不习惯用VBA加载菜单,为什么不做成菜单文件直接加载到AutoCad里去呢?这样简单多了
 楼主| 发表于 2004-9-9 15:28:00 | 显示全部楼层
请教一下,如果加一个菜单到AUTOCAD中呢,以及执行这个菜单的事件怎么样实现呢?
发表于 2004-9-9 15:31:00 | 显示全部楼层
做菜单帮助里有详细的说明,可以看看AutoCad自带的菜单
 楼主| 发表于 2004-9-9 16:02:00 | 显示全部楼层
我没有做过菜单,可否给小弟一个例子或者在帮助里面那个地方有介绍怎么做菜单???
 楼主| 发表于 2004-9-9 16:47:00 | 显示全部楼层
刚才刚参照帮助写了一个lisp文件内容如下: (defun S::STARTUP()
(menucmd "文件(&F).新建(&N)...\tCtrl+N=+文件(&F).capp")
)
可是启动CAD时没有新增菜单嘛,大侠给我看看那个地方写错了! 帮助文档是这样写的:

AutoLISP menucmd 函数可用于插入或删除下拉菜单。其语法与交换下拉菜单的语法类似。但不同之处是等式左边是下拉菜单,新菜单将插入到该菜单之前;等式右边是一个加号 (+),其后依次是菜单组的名称、一个句点和菜单的别名。如下列语法所示:

(menucmd "Gmenugroup1.menuname1=+menugroup2.menuname2")
我没有写过,不知道是不是我写错了,还有一个问题,就是把菜单加上去以后,怎么执行菜单的事件???请高手指教一下
发表于 2004-9-9 17:38:00 | 显示全部楼层

菜单文件是一种 ASCII 文本文件,其组成部分定义了用户界面(命令行除外)各部分(例如下拉菜单、工具栏和定点设备上的按钮)的功能。

默认的菜单文件是 acad.mnu。acad.mns 文件与 acad.mnu 文件相同,但不包含注释或特殊格式。每次菜单文件的内容被更改时,AutoCAD® 将修改此文件。可以在记事本中打开 acad.mns 文件以查看完整的菜单文件。要打开菜单文件,请在“工具”菜单上单击“自定义”MSITStore:D:\Program%20Files\AutoCAD%202005\help\acad_acg.chm::/ac.menuaro.gif">“编辑自定义文件”MSITStore:D:\Program%20Files\AutoCAD%202005\help\acad_acg.chm::/ac.menuaro.gif">“当前菜单”。

可以创建或修改菜单文件以执行以下操作:

  • 添加或更改菜单(包括快捷菜单、图像控件菜单和数字化仪菜单)和工具栏
  • 为定点设备上的按钮指定命令
  • 创建和修改快捷键
  • 添加工具栏提示
  • 在状态行上提供帮助文字

例如,要添加新菜单,可以修改 acad.mnu 的相应部分并以新名称保存,或者创建新的菜单文件。

在下例中,图形项目需要频繁使用半径为 1 个单位、2 个单位或 3 个单位的圆。要提高工作效率,可以创建一个菜单文件,在该文件中定义带有三个选项的下拉菜单,每个选项的功能是绘制不同半径的圆。要创建菜单文件,请在记事本(或以 ASCII 格式保存的任何其他文本编辑器)中键入文件内容,然后将此文件以扩展名 .mnu 保存。此例中的菜单文件可以命名为 circles.mnu。

***MENUGROUP=CIRCLES
***POP13
//Creates circles with radii 1, 2, 3
Circle-1 [Radius-1 ]^C^C_circle \1
Circle-2 [Radius-2 ]^C^C_circle \2
Circle-3 [Radius-3 ]^C^C_circle \3

菜单文件的第一行始终为 Menugroup 部分,用于为菜单提供唯一的名称。在此例中,Menugroup 的名称为 Circles。Menugroup 的名称不必与文件名相同。

此例中的第二行是部分标签。此菜单是下拉菜单,因此使用带有 1 至 16 之间的一个数字的弹出部分 (POP13)。关于下拉菜单和快捷菜单的详细信息,请参见MSITStore:D:\Program%20Files\AutoCAD%202005\help\acad_acg.chm::/acg_0455.html#561363" target="_blank" >创建下拉菜单和快捷菜单

以两个斜杠 (//) 开始的第三行是可选注释行,编译菜单时将忽略此行。菜单文件中的注释可用于版权声明、说明或注解。

接下来的三行用于定义菜单上的项。在第一个菜单项中,Circle-1 是为菜单项指定的名称标记。方括号中的文字 [Radius-1 ] 是菜单项标签,用于定义此项在菜单上的显示。此行剩余部分是菜单宏,菜单宏使用 AutoCAD 命令和特殊字符绘制半径为 1 个单位的圆。关于创建菜单宏的信息,请参见MSITStore:D:\Program%20Files\AutoCAD%202005\help\acad_acg.chm::/acg_0413.html#559621" target="_blank" >创建菜单宏

要在 AutoCAD 中使用新菜单,请使用 MENULOAD 命令加载菜单文件 circles.mnu。关于加载菜单文件的详细信息,请参见MSITStore:D:\Program%20Files\AutoCAD%202005\help\acad_acg.chm::/acg_047.html#559219" target="_blank" >加载和卸载菜单文件

 楼主| 发表于 2004-9-10 09:40:00 | 显示全部楼层
菜单已经生成,那么要使用菜单的事件(比如菜单名定义了文件save到指定的某个位置),在那个地方书写事件的发生代码呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 01:54 , Processed in 0.184975 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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