明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1800|回复: 5

怎样用lisp取得目前加载的菜单组?

[复制链接]
发表于 2004-2-19 22:37:00 | 显示全部楼层 |阅读模式
如题,请指点,谢谢!
发表于 2004-2-20 05:39:00 | 显示全部楼层
(setq dd (getvar "MENUNAME"))
 楼主| 发表于 2004-2-20 13:40:00 | 显示全部楼层
cqnj023发表于2004-2-20 5:39:00(setq dd (getvar \"MENUNAME\"))

menuname变量是menu命令加载的主菜单,但同时还会有menuload命令加载的其他菜单组,如bonus菜单,我想问的是,怎样才能得到所有的菜单组?
发表于 2004-2-20 14:05:00 | 显示全部楼层
除了ActiveX方法还没有见到纯Lisp方式,在goolge中用Vla-get-menus 搜索有现成的函数。
发表于 2004-2-20 15:19:00 | 显示全部楼层

回复

Visual Lisp方法: (vl-Load-COM)
(setq *acad-object* nil) ; Initialize global variable
(defun vlex-AcadObject ()
(cond (*acad-object*) ; Return the cached object
(T
(setq *acad-object* (vlax-Get-Acad-Object))
)
)
) (defun vlex-MenuGroups ()
(vla-get-menugroups (vlex-AcadObject))
) (defun vlex-MenuGroups-ListAll ( / out)
(vlax-for each (vlex-MenuGroups)
(setq out (cons (vla-get-name each) out))
)
(reverse out)
) 命令: (vlex-MenuGroups-ListAll)
发表于 2004-2-20 19:24:00 | 显示全部楼层
  1. (vlax-for mg (vlax-get (vlax-get-acad-object) 'menugroups) (setq mglst (cons(vla-get-name mg) mglst )))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 16:25 , Processed in 0.194883 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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