乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 117|回复: 9

如何自動加菜單

[复制链接]

68

主题

177

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
449
发表于 2006-6-5 13:38:00 | 显示全部楼层 |阅读模式
本人写了以下一个程式,是加一个菜单
但是每次开一个新的drawing时必须执行一次命令,这个菜单才能出现,本人想每次打开新drawing时都会自动加上去,而不须去执行一次,就象cad上的“编辑”,“”一样,每次打开都在上面,请问如何做,谢谢

Public Sub stamp()
Dim Cumegr As AcadMenuGroup
Set Cumegr = ThisDrawing.Application.MenuGroups.Item(0)
Dim newmenu As AcadPopupMenu
Set newmenu = Cumegr.Menus.Add("Stamping(S)")
Dim smacro As String, newmenuitem As AcadPopupMenuItem
smacro = Chr(3) + Chr(3) + Chr(95) + "ff" + Chr(32)
Set newmenuitem = newmenu.AddMenuItem(newmenu.Count + 1, "Stamping", smacro)
newmenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)
End Sub
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2006-6-5 13:47:00 | 显示全部楼层
在Acad200?Doc.lsp文件中用Lisp调用
回复

使用道具 举报

68

主题

177

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
449
发表于 2006-6-5 17:03:00 | 显示全部楼层
我的命令名为tm,工程文件为acad.dvb,模块为Automationmanage,宏为stamp,我写成如下为什么不行:
(defun AutoVBALoad (cmdname project macro)
   (eval
      (list 'defun
         (read (strcat "C:" cmdname))
         nil
         (list  
            'vl-vbarun  
            (strcat  
               project "!"  
               (if macro macro cmdname)
            )
         )
         (princ)
      )
   )
)  
(AutoVBALoad "tm" "acad.dvb" "Automationmanage.stamp")
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 2006-6-6 08:39:00 | 显示全部楼层
(vl-vbaload  "D:\\acad.dvb")
  (defun C:tm()
     (setvar "cmdecho" 0)
     (vl-vbarun "stamp")
     (setvar "cmdecho" 1)
     (princ)
   )
回复

使用道具 举报

68

主题

177

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
449
发表于 2006-6-6 19:04:00 | 显示全部楼层
4楼楼主:acad.dvb是放在D盘下的吧?我放了后再把你的程式拷在support下的acad.lsp后还是不行的
回复

使用道具 举报

68

主题

177

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
449
发表于 2006-6-6 20:22:00 | 显示全部楼层
4楼楼主的意思我明白,不过你的程式还是不能在每打开一个新的图形就加载,还是要输入命令tm才能加载,我的意思就是每次打开新图形时菜单会自动加载,而不需要输入任何命今,就象cad上的“编辑”、“工具”、“绘图”一样,每次打开时它们都是在上面的,而不需要我们输入任何命令
回复

使用道具 举报

1

主题

157

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 2006-6-7 08:10:00 | 显示全部楼层
哦,不需要快捷键直接加载啊?试试在LISP中写下面的行不行
(command"vbarun" "D:\\acad.dvb!Automationmanage.stamp")
回复

使用道具 举报

68

主题

177

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
449
发表于 2006-6-7 08:26:00 | 显示全部楼层
ok了,7樓樓主,你在樂於肋人,我天天都來這裡,總看見你在這裡幫助別人,太感謝了
回复

使用道具 举报

1

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
8
发表于 2006-12-1 15:31:00 | 显示全部楼层
7楼楼主,真是谢谢你,我这几天一直考虑这个问题,看到你的解答,使我矛塞顿开。不过,在我的机器中,光加下面一句,(command "vbarun" ".stamp"),老是提示错,而如果在该句前再加上(vl-vbaload  "D:\\programfiles\\autocad 2004\\support\\*.dvb"),则一切OK。不知是否一定要这样
回复

使用道具 举报

9

主题

79

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2007-3-2 11:38:00 | 显示全部楼层
自动加载的话,其实你可以找到ACAD.LSP,把程序放到里面去,因为ACAD.LSP这个文件是随CAD一起启动的
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 09:53 , Processed in 2.182438 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表