明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1503|回复: 9

看了一下教程有点不明白,能否指点一下?

[复制链接]
发表于 2004-9-11 11:22:00 | 显示全部楼层 |阅读模式
看了一下教程有点不明白,能否指点一下: Sub Ch6_AddButton()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' 建立一个新工具
Dim newToolbar As AcadToolbar
Set newToolbar = currMenuGroup.Toolbars.Add("TestToolbar")
' 在新工具栏上增加一个按钮
Dim newButton As AcadToolbarItem
Dim openMacro As String
' 赋值这个宏的VB表达式为"ESC ESC _open " ' ^C^C-vbarun ff
openMacro = Chr(94) + Chr(67) + Chr(94) + Chr(67) + Chr(95) + ??'此处应该怎样表示? Set newButton = newToolbar.AddToolbarButton("", "NewButton", "Open a file.", openMacro)
End Sub
sub ff msgbox"help me please! thanks" end sub
发表于 2004-9-11 19:27:00 | 显示全部楼层
以下是正确的教程:
  1. Sub Ch6_InsertMenu()
  2. ' 为当前菜单组定义变量
  3. Dim currMenuGroup As AcadMenuGroup
  4. Set currMenuGroup = ThisDrawing.Application. _
  5. MenuGroups.Item(0)' 创建新的菜单
  6. Dim newMenu As AcadPopupMenu
  7. Set newMenu = currMenuGroup.Menus.Add("TestMenu")' 为菜单项声明变量
  8. Dim newMenuItem As AcadPopupMenuItem
  9. Dim openMacro As String' 赋值宏字符串为VB语句"ESC ESC _open "并创建菜单项
  10. openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)
  11. Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _
  12. "Open", openMacro)' 在菜单条上显示菜单
  13. currMenuGroup.Menus.InsertMenuInMenuBar "TestMenu", ""
  14. End Sub
 楼主| 发表于 2004-9-12 09:45:00 | 显示全部楼层
我指的不是OPEN,而是让按扭执行FF()应该怎么表示.我找了以前的帖子,说的是用"^c^c-vbran mysub",有点不明白,到底应该怎样表示?
发表于 2004-9-13 08:48:00 | 显示全部楼层
"^c^c-vbran mysub",vbarun后面跟的参数格式是工程名称!模块名称.过程名称,过程名称应该是不带参数的。
 楼主| 发表于 2004-9-13 18:47:00 | 显示全部楼层
具体点行吗。
发表于 2004-9-13 19:43:00 | 显示全部楼层
用下面的Lisp代码把宏注册为命令调用格式为(tls-sub2cmd "myvba.dvb" "mysub" "mycmd")
  1. (defun tls-sub2cmd(filename subname cmdname)
  2.   (eval
  3.    (list 'defun
  4.      (read (strcat "c:" cmdname))
  5.      nil
  6.      (list 'vla-RunMacro '(vlax-get-acad-object) (strcat filename "!" subname))
  7.      '(princ)
  8.    )
  9.   )
  10.   (vlax-add-cmd cmdname (strcat "C:" cmdname))
  11.   (princ)
  12. )
 楼主| 发表于 2004-9-13 19:55:00 | 显示全部楼层
您就是说用VBA不能实现这个目的吗??


就是让那个按扭在按它时执行FF()


我本来就够糊涂的了!
发表于 2004-9-13 19:58:00 | 显示全部楼层
vba的宏不能在命令行直接调用,而按扭的巨集指令也是调用命令
 楼主| 发表于 2004-9-13 20:00:00 | 显示全部楼层
lzh741206发表于2004-9-13 19:43:00用下面的Lisp代码把宏注册为命令



调用格式为


(tls-sub2cmd \"myvba.dvb\" \"mysub\" \"mycmd\")





(defun tls-sub2cmd(filename subname cmdname)

具体怎么做啊.发在哪里,怎样注册宏.
发表于 2004-9-13 20:09:00 | 显示全部楼层
放在Acad200?doc.lsp文件里
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 00:48 , Processed in 0.182166 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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