明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2002|回复: 8

如何判断自定义的菜单文件是否已经装载?

[复制链接]
发表于 2003-11-29 10:12:00 | 显示全部楼层 |阅读模式
如何判断自定义的菜单文件是否已经装载?
发表于 2003-11-29 10:30:00 | 显示全部楼层
;功能:判断菜单是否已加载
;作者:meflying
;用法:(decMenu groupname)——groupname为菜单群的名字
;就是菜单文件中:***MENUGROUP=CIRCLES中的CIRCLES
(defun DecMenu(groupname / APP MG PMS)
  (setq APP (vlax-get-acad-object))
  (setq MGS (vla-get-menugroups APP))
  (setq MG (vl-catch-all-apply 'vla-Item (list MGS groupname)))
  (if (vl-catch-all-error-p MG)
    (princ "菜单未加载!")
    (princ "菜单已加载!")
  )
  (princ)
)
发表于 2003-11-29 14:08:00 | 显示全部楼层
检查是否加载了指定的菜单组

(menugroup groupname)

参数

groupname

字符串,指定菜单组的名称。

返回值

如果 groupname 与某个已加载菜单组相匹配,则返回 groupname 字符串,否则返回 nil。
 楼主| 发表于 2003-11-29 15:56:00 | 显示全部楼层
谢谢
发表于 2003-11-29 22:18:00 | 显示全部楼层
二位斑竹
我的菜单放在公司的服务器上
有时候服务器没开,菜单就无法加载
怎么样在服务器开启的第一时间加载我的菜单呢?
多谢!
发表于 2003-11-30 01:22:00 | 显示全部楼层
我曾经这样做过。

当时有大约20台机子要用到程序,程序更新也挺快,基本上是一边做工作,一边写程序的。每天可能要更新几次。当时我把菜单和程序发到我的机器了。

后来发现这样做根本就不合理的:我的机器不可能时刻开着的。如果我没开机时别人打开的CAD,下次又得重新设置菜单,结果搞到大家很有意见:(

后来的做法是:把菜单和程序装在本机上,每次打开新文件时,判断一次文件是否更新,在服务器上放一个文件来保存最后更新时间,比较本机的相应文件,如果文件内容不同,就调用外部批处理来更新。

再后来,有人说,每次打开时,要等死人了(10M的局域网,系统不同,我用(FINDFILE "\\服务器\目录\文件")来检测是否打开服务器,速度很慢)。而且要很频繁打开不同的图。

现在,我做了个程序让他们每天高兴时就再更新,如果有重大改动,全网来个 net send 通知更新。

看看大家有没有更好的实现方法。
发表于 2003-11-30 09:00:00 | 显示全部楼层
做一个比较完善点的程序,过一段时间更新,哪有天天更新的?
发表于 2003-11-30 12:25:00 | 显示全部楼层
飞哥,你说的不错
但做程序有时也不可能想得那么全
一个人用也许发现的问题比较少
再加上俺主要精力还是在设计上
所以也是不得已而为之啊,呵呵
陈斑竹,你的情况和小弟的完全一样
我有个想法,但限于本人是菜鸟无法解决
还请两位斑竹帮小弟一把
陈斑竹所说的每打开一个图都去检测路径当然很慢
能不能定时去检测一下,
如果服务器开了,就加载该菜单,在重新启动CAD前就不再检测
如果没开就定时检测
我不知道LISP能否实现改功能,我想VBA应该可以
多谢!
发表于 2003-12-3 03:44:00 | 显示全部楼层
"定时去检测"?
在lisp应该没办法实现的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 10:28 , Processed in 0.191131 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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