lisp遍历表中所有顶点_遍历菜单下的所有命令 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

这段代码演示了如何使用LISP遍历指定菜单组下的所有命令,通过`gxl-ListAllMenuPops`函数获取菜单和子菜单中的命令名称及其宏定义。
摘要由CSDN通过智能技术生成

;;(gxl-ListAllMenuPops MenuGroupName) 返回菜单组所有的命令

;;(gxl-ListAllMenuPops "ACAD")

(defun gxl-ListAllMenuPops (menugroupname / menus dl MenuPopList itemsMenuPop item1)

(defun itemsMenuPop (itemMenuPop / item1)

(vlax-for item itemMenuPop

(if (VL-CATCH-ALL-ERROR-P

(setq item1

(VL-CATCH-ALL-APPLY 'vla-get-SubMenu (list item))

)

)

(if (/= "" (setq label (vla-get-label item)))

(setq dl (cons (list (strcase label) ;_ 菜单名称

(vl-string-trim

"\003 "

(strcase (vla-get-Macro item))

) ;_ 命令名称

)

dl

)

)

)

(itemsMenuPop item1)

)

)

)

(setq        menus (vla-get-Menus

(vla-item (vla-get-menugroups (vlax-get-acad-object))

menugroupname

)

)

)

(vlax-for MenuPop menus

(setq dl nil)

(vlax-for item MenuPop

(setq aa item)

(if (VL-CATCH-ALL-ERROR-P

(setq item1 (VL-CATCH-ALL-APPLY 'vla-get-SubMenu (list item)))

)

(if (/= "" (setq label (vla-get-label item)))

(setq dl (cons (list (strcase label) ;_ 菜单名称

(vl-string-trim

"\003 "

(strcase (vla-get-Macro item))

) ;_ 命令名称

)

dl

)

)

)

(itemsMenuPop item1)

)

)

(setq MenuPopList

(cons

(cons (vla-get-NameNoMnemonic MenuPop) (reverse dl))

MenuPopList

)

)

)

(reverse MenuPopList)

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值