找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 574|回复: 0

[求助] [求助]:真心请教各位高手,程序加载菜单的问题

[复制链接]
发表于 2004-3-31 23:43:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我在acad2002中用visual lisp编写了下面的程序,想实现的功能是加载指定的菜单,同时保留当前已加载的所有菜单组,实现下拉菜单的切换。
但程序不很稳定,有时出现出错信息:

命令:
AutoCAD 菜单实用程序; 错误: 出现异常: 0xC0000005 (访问冲突)
; 警告: 忽略展开 异常
; 错误: 出现异常: 0xC0000005 (访问冲突)
; 错误: 出现异常: 0xC0000005 (访问冲突)
; 错误: 出现异常: 0xC0000005 (访问冲突)

出错后有时会造成acad崩溃。

请各位帮我看看,这段程序问题在哪?如果是acad本身的问题,有没有其他的办法来实现上述的功能呢?

[PROGRAM]

;;取得当前加载的菜单组列表

(defun ly_menu_group_file (/ lst menus each aco)
  (vl-load-com)
  (setq menus (vla-get-menugroups (vlax-get-acad-object)))
  (vlax-for each menus
    (setq
      lst (cons        (cons (vla-get-name each) (vla-get-menufilename each))
                lst
          )
    )
  )
  (vlax-release-object menus)
  (reverse lst)
)

;;菜单加载

(defun ly_menuload (menuname / lst1 x menufullname)
  (setvar "cmdecho" 0)

  (princ "\n菜单加载程序 v0.9 ")
  (setq lst1 (ly_menu_group_file))
;  (prompt "\n请按任意键继续... ")
;  (grread)
;;;  (princ "\ntest")
  (cond
    ((and (setq        menufullname
                 (cdr
                   (assoc
                     (strcase menuname)
                     (mapcar
                       '(lambda (x) (cons (strcase (car x)) (cdr x)))
                       lst1
                     )
                   )
                 )
          )
          (/= menufullname "")
     )
     (vl-cmdf "menu" menufullname)
;;;     (princ "\ntrue")
    )
    ((or (findfile (strcat menuname ".mnu"))
         (findfile (strcat menuname ".mnc"))
     )
     (vl-cmdf "menu" menuname)
    )
    (1 (princ (strcat "\n菜单 " menuname " 没有找到. ")))
  )
  (foreach x lst1
    (or        (menugroup (car x))
        (not (cdr x))
        (vl-cmdf "menuload" (cdr x))
    )
  )
  (princ)
)
[/PROGRAM]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 02:01 , Processed in 0.282215 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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