明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1483|回复: 7

[函数] 来自“晓东论坛”的--动态添加传统Popup菜单

[复制链接]
发表于 2023-10-14 18:35:57 | 显示全部楼层 |阅读模式
本帖最后由 wzg356 于 2023-10-16 12:05 编辑


动态增补、支持子菜单的移步http://bbs.mjtd.com/thread-188657-1-1.html

以前收集的,小改参数格式-方便录入“程序名 命令”

;动态添加传统Popup菜单-(AddPopupMenu lst)
;参数说明:lst ---- 菜单内容表 (car lst)菜单标题
;返回值:        T
;函数作者:        st788796
;适用版本:        不限
;最后更新时间:        2016-02-26
;例
;(addpopupmenu '("XDSoft" ;标题
;("曲线合并(&U)" "xdtb_curveunion") ;名称/命令
;("曲线差集(&S)" "xdtb_curvesubst")
;("") );分隔行
;)
(defun AddPopupMenu (lst  /
        pMenu:Items n curMenus pMenu Items tf  mbar mgroups name)
        (defun pMenu:Items (pMenu / pl n)
                (if (> (vla-get-count pmenu) 0)(progn
                        (setq n -1)
                        (repeat (vla-get-count pmenu)
                                (setq pl (cons (vla-item pmenu (setq n (1+ n))) pl))
                        )
                ))pl
        )        
        (setq mgroups (vla-get-menugroups (vlax-get-acad-object)))
        (setq name(car lst) mbar (vla-get-menubar (vlax-get-acad-object)))
        (if        (vl-catch-all-error-p(vl-catch-all-apply 'vla-item (list mbar name)))
                (progn                        
            (setq curMenus (vla-get-menus (vla-item mgroups 0)))
            (if (vl-catch-all-error-p(vl-catch-all-apply 'vla-item (list curMenus name)))
                    (setq pMenu (vla-add curMenus name) tf t)
                        (setq pMenu (vla-item curMenus name))
                    )
                    (setq Items (pMenu:Items pMenu))
                    (foreach x (cdr lst)
                            (if  (not(vl-some '(lambda (a)
                                            (= (strcase (vla-get-label a)) (strcase (car x)))
                                        )Items))
                                    (if (= (car x) "")
                                            (vla-addseparator pMenu (1+ (vla-get-count pMenu)))
                                            (vla-addmenuitem pMenu
                                                    (1+ (vla-get-count pMenu))
                                                    (car x)
                                                    (strcat"\003\003\_"(cadr x)" ")                                                   
                                                )
                                        )
                                )
                        )
                        (vla-insertinmenubar pmenu (1+ (vla-get-count mbar)))
                )
        )t
)


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-10-14 20:44:20 | 显示全部楼层
不错不错,学习了!
发表于 2023-10-14 20:54:25 | 显示全部楼层
不错,有没有删除菜单栏的?
 楼主| 发表于 2023-10-16 08:20:27 来自手机 | 显示全部楼层
uualice2020 发表于 2023-10-14 20:54
不错,有没有删除菜单栏的?

改清单重开CAD图运行就行了
发表于 2023-10-16 08:37:30 | 显示全部楼层
wzg356 发表于 2023-10-16 08:20
改清单重开CAD图运行就行了

好的 麻烦问下有没有二级菜单的?
发表于 2023-10-16 10:35:42 | 显示全部楼层
uualice2020 发表于 2023-10-14 20:54
不错,有没有删除菜单栏的?

自定义菜单项和工具栏
http://bbs.mjtd.com/forum.php?mo ... &fromuid=202795
(出处: 明经CAD社区)
(addMenu(list"菜单项)"))
发表于 2023-10-16 10:36:56 | 显示全部楼层
uualice2020 发表于 2023-10-16 08:37
好的 麻烦问下有没有二级菜单的?

自定义菜单项和工具栏
http://bbs.mjtd.com/forum.php?mo ... &fromuid=202795
(出处: 明经CAD社区)
(addMenu(list"房地一体(&Z)"
                      (list"折返与自交""tt1 ")
                      (list"虚交点处理""tt2 ")
                      (list"线拓扑处理""tt3 ")
                      (list"文字原位居中""tt4 ")
                      "-"
                      (list"绘制墙体归属""tt5 ")
                      (list"显示墙体归属""tt6 ")
                      (list"房屋&附属"(list(list"非闭合房屋""tt7-1 ")
                                           (list"批量房屋""tt7-2  ")
                                           (list"孤立附属与层数""tt7-3 ")
                                           (list"批量附属""tt7-4 ")
                                           (list"编辑房屋部件""tt7-5 ")
                                           ))
                      (list"宗地&权属"(list(list"批量宗地""tt8-1 ")
                                           (list"宗地排序""tt8-2 ")
                                           (list"四至分析""tt8-3 ")
                                           (list"注记宗地""tt8-4 ")
                                           ))
                      "-"
                      (list"导出房产图""tt9 ")
                      (list"导出宗地图""tt10 ")
                ))
发表于 2023-10-16 10:49:25 | 显示全部楼层
llsheng_73 发表于 2023-10-16 10:36
自定义菜单项和工具栏
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=188657&fromuid=202795
(出 ...

不错 可以,,但是你自己开的贴为什么不回复人家的提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 06:23 , Processed in 0.179886 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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