明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 642|回复: 8

[提问] 自定义菜单显示

[复制链接]
发表于 2025-1-6 17:40:37 | 显示全部楼层 |阅读模式
自定义的菜单有时不显示,必须用menload加载一下,加载后已加载的自定义里还有这个菜单.mns文件,必须删除后在重新加载一次才显示菜单,关闭后又不显示了。这个问题怎么才能解决,各位大佬。
"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 2025-1-6 17:45:34 | 显示全部楼层
自定义菜单项和工具栏
http://bbs.mjtd.com/forum.php?mo ... &fromuid=202795
(出处: 明经CAD社区)
用这个直接收拾,不做mns文件,不知道能不能满足楼主的需求

点评

感谢大佬指导、分享!  发表于 2025-1-7 09:12
回复 支持 反对

使用道具 举报

发表于 2025-1-6 18:41:57 | 显示全部楼层
本帖最后由 尘缘一生 于 2025-1-6 19:10 编辑

这个问题,和CAD版本有关系。
2010版以后啊,CAD实际使用的是CUIX菜单,也就是这个起作用,
那么,这个是CAD,读取MNS MNU自动形成的,
这个CUIX哪,也就是个压缩文件,如果把后缀CUIX改为ZIP,即可解压。
这个CUIX里面是包含了图标什么的了的。
也就是说,如果你的工具啊,形成了正确的CUIX了,其他(MNU,MNS,图标库SLB或一个个*.BMP图标)是可以完全删除不用的,
因此:
     如果你想每次都完美的话,那就是,程序机理,每次都删除CUIX,MNU或MNS等,用程序生成一遍MNU,MNS再->加载->形成CUIX-->go。虽然重复了一遍,占用启动时间,但可以彻底杜绝问题。
     如果你每次启动,不是从MUS-->CUIX作,采用卸载,再加载的办法,是不 能做到完全奏效的。原因不在CAD本身,在于插件加载上,指的事,你可能加载有其他插件或多个插件的时候,在下拉菜单,图标菜单上,有位置重叠啥的时候。况且,还有其他插件的CUIX菜单的吗,还有先后那个插件为先的顺序关系的吗。

下面展示SLdesignV3.0 菜单系统一部分
  1. ;;======【SLdesign V3.0 菜单系统开始】========
  2. ;;隐藏三领----(一级)------
  3. (defun c:slg (/ ofa)
  4.   (setq ofa (getvar "FILEDIA"))
  5.   (setvar "FILEDIA" 0)
  6.   (if (menugroup "SLMENU")
  7.     (command "MENUUNLOAD" "SLMENU")
  8.   )
  9.   (setvar "FILEDIA" ofa)
  10. )
  11. ;;显示三领----(一级)------
  12. (defun c:slk ()
  13.   (menu00)
  14. )
  15. ;;删除菜单----(一级)------
  16. (defun delmenu ()
  17.   (sl:del-fil (strcat sl-path0 "\" "SLMENU.cuix"))
  18.   (sl:del-fil (strcat sl-path0 "\" "SLMENU.bak.cuix"))
  19.   (sl:del-fil (strcat sl-path0 "\" "SLMENU.mns"))
  20.   (sl:del-fil (strcat sl-path0 "\" "SLMENU.mnr"))
  21.   (sl:del-fil (strcat sl-path0 "\" "SLMENU_light.mnr"))
  22. )
  23. ;;菜单显示程序----(一级)------
  24. (defun slmenuk (/ i menuk k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 s1)
  25.   (setq
  26.     k1 (slmsg "下拉MENU" "┰MENU" "downMENU")
  27.     k2 (slmsg "图标菜单" "瓜夹垫虫" "IconMenu")
  28.     k3 (slmsg "展开" "甶秨" "open")
  29.     k4 (slmsg "开" "秨" "open")
  30.     k5 (slmsg "关" "闽" "close")
  31.     k6 (slmsg "SL-绘制" "SL-酶籹" "SL-draw")
  32.     k7 (slmsg "SL-钢筋" "SL-葵惮" "SL-steelbar")
  33.     k8 (slmsg "SL-查询-缩放" "SL-琩高-罽" "SL-query-zoom")
  34.     k9 (slmsg "SL-编辑" "SL-絪胯" "SL-edit")
  35.     k10 (slmsg "SL-常用" "SL-盽ノ" "SL-Common")
  36.     k11 (slmsg "SL-文件" "SL-ゅン" "SL-file")
  37.   )
  38.   (setq menuk (readkey (strcat sl-path0 "\" "main.ini") k2))
  39.   (command "-toolbar" k11 "S")
  40.   (if (or (= menuk nil) (= menuk k4))
  41.     (progn
  42.       (rwritekey (strcat sl-path0 "\" "main.ini") k2 k4)
  43.       (command "-toolbar" k6 "S") ; 显示工具栏
  44.       (command "-toolbar" k7 "S")
  45.       (command "-toolbar" k8 "S")
  46.       (command "-toolbar" k9 "S")
  47.       (command "-toolbar" k10 "S")
  48.     )
  49.     (progn
  50.       (rwritekey (strcat sl-path0 "\" "main.ini") k2 k5)
  51.       (command "-toolbar" k6 "H")
  52.       (command "-toolbar" k7 "H")
  53.       (command "-toolbar" k8 "H")
  54.       (command "-toolbar" k9 "H")
  55.       (command "-toolbar" k10 "H")
  56.     )
  57.   )
  58.   (setq s1 (readkey (strcat sl-path0 "\" "main.ini") k1))
  59.   (if (or (= s1 nil) (= s1 k3))
  60.     (progn
  61.       (setq s1 k3)
  62.       (rwritekey (strcat sl-path0 "\" "main.ini") k1 k3)
  63.     )
  64.   )
  65.   (if (>= (setq i (vla-get-count (vla-get-menubar *Acad*))) 16) (setq i 16))
  66.   (if (= s1 k3) ;展开
  67.     (progn
  68.       (menucmd (strcat "p" (itoa (1+ i)) "=+SLMENU.POP1"))
  69.       (menucmd (strcat "p" (itoa (+ i 2)) "=+SLMENU.POP2"))
  70.       (menucmd (strcat "p" (itoa (+ i 3)) "=+SLMENU.POP3"))
  71.       (menucmd (strcat "p" (itoa (+ i 4)) "=+SLMENU.POP4"))
  72.       (menucmd (strcat "p" (itoa (+ i 5)) "=+SLMENU.POP5"))
  73.       (menucmd (strcat "p" (itoa (+ i 6)) "=+SLMENU.POP6"))
  74.       (menucmd (strcat "p" (itoa (+ i 7)) "=+SLMENU.POP7"))
  75.       (menucmd (strcat "p" (itoa (+ i 8)) "=+SLMENU.POP8"))
  76.     )
  77.     (menucmd (strcat "p" (itoa (1+ i)) "=+SLMENU.POP1"))
  78.   )  
  79. )
  80. ;;下拉菜单开关--k: t 展开 nil 合并----(一级)----
  81. (defun showxlmenu (k / k1 k2 k3)
  82.   (setq
  83.     k1 (slmsg "下拉MENU" "┰MENU" "downMENU")
  84.     k2 (slmsg "展开" "甶秨" "open")
  85.     k3 (slmsg "合并" "" "close")
  86.   )
  87.   (if (= k t)
  88.     (rwritekey (strcat sl-path0 "\" "main.ini") k1 k2)
  89.     (rwritekey (strcat sl-path0 "\" "main.ini") k1 k3)
  90.   )
  91.   (menu00)
  92. )
  93. ;;图标菜单开关-----(一级)------
  94. ;;k  t 开 nil 关
  95. (defun opmenu (k / k1 k2 k3)
  96.   (setq
  97.     k1 (slmsg "图标菜单" "瓜夹垫虫" "IconMenu")
  98.     k2 (slmsg "开" "秨" "open")
  99.     k3 (slmsg "关" "闽" "close")
  100.   )
  101.   (if (= k t)
  102.     (rwritekey (strcat sl-path0 "\" "main.ini") k1 k2)
  103.     (rwritekey (strcat sl-path0 "\" "main.ini") k1 k3)
  104.   )
  105.   (menu00)
  106. )
  107. ;;专业设置--k: t 建筑 nil 机械----(一级)----
  108. (defun showzymenu (k / k1 k2 k3)
  109.   (setq
  110.     k1 (slmsg "专业" "盡穨" "major")
  111.     k2 (slmsg "建筑" "縱" "Architecture")
  112.     k3 (slmsg "机械" "诀瘪" "Mechanical")
  113.   )
  114.   (if (= k t)
  115.     (rwritekey (strcat sl-path0 "\" "main.ini") k1 k2)
  116.     (rwritekey (strcat sl-path0 "\" "main.ini") k1 k3)
  117.   )
  118.   (menu00)
  119. )
  120. ;;加载菜单,这就是初始0机加载要的部分------
  121. (defun menu00 (/ ofa)
  122.   (setq ofa (getvar "FILEDIA"))
  123.   (setvar "FILEDIA" 0)
  124.   (if (menugroup "SLMENU")
  125.     (command "MENUUNLOAD" "SLMENU")
  126.   )
  127.   (delmenu) ;需要删除---注意此操作,这就是确保再重新生成
  128.   (cond
  129.     ((= $Lgver 1); (/= (getcname "sascl") nil)) ;;CAD是简体中文版包括浩辰中望
  130.       (load (strcat sl-path0 "\" "Support" "\" "slmenu-bz.VLX"))  ;三领注,调用的简体版本菜单子程序,作用,生成简体版的MNS
  131.     )
  132.     ((= $Lgver 2) ;繁体版
  133.       (load (strcat sl-path0 "\" "Support" "\" "slmenu-ft.VLX"))
  134.     )
  135.     ((= $Lgver 3) ;英文版
  136.       (load (strcat sl-path0 "\" "Support" "\" "slmenu-en.VLX"))
  137.     )
  138.   )
  139.   (command "MENULOAD" (strcat sl-path0 "\" "SLMENU.mns")) ;加载它
  140.   (slmenuk) ;菜单显示, 此处确保显示正确
  141.   (setvar "FILEDIA" ofa)
  142. )


点评

感谢大佬指导、分享!  发表于 2025-1-7 09:14
回复 支持 反对

使用道具 举报

发表于 2025-1-6 20:28:45 | 显示全部楼层
这是我在论坛参照别人的自定义菜单,完善了一下,加载没问题

本帖子中包含更多资源

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

x

点评

感谢大佬指导、分享!  发表于 2025-1-7 09:15
回复 支持 反对

使用道具 举报

发表于 2025-1-7 08:38:26 | 显示全部楼层
感谢分享感谢分享
回复 支持 反对

使用道具 举报

 楼主| 发表于 3 天前 | 显示全部楼层
菜单有24个的限制,多了就不好玩了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-15 19:32 , Processed in 0.169355 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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