xskfq 发表于 2014-1-27 15:45:30

CAD自定义工具条里如何添加自定义图标?

(defun create_xgj.mnu ( / filen lst menuname stream tempname x);创建cass小工具工具栏
(defun getmenu ( / lst x)                         ; 获得cad加载的菜单列表
    (vlax-for x (vla-get-menugroups (vlax-get-acad-object))
                      (setq lst (cons (vla-get-name x) lst))
    )
)
(setvar "cmdecho" 0)
(vl-load-com)
(if (member "XGJ" (getmenu))                         ; 判断cad是否加载zct工具栏
    (command "TOOLBAR" "cass小工具" "S")                ; 如果已加载,则显示该工具栏
    (progn                           ; 如果没加载,则自动执行下面程序
      (alert "\n程序自动创建\"cass小工具\"工具栏,请稍后……")
      (setq menuname (cond
                           ((setq tempname "xgj.mnu"      ; 在cad搜索目录创建一个菜单mnu文件
                                 filen (open tempname "w") ; 打开该菜单并写状态
                              )
                               (foreach stream '("***MENUGROUP=xgj\n" "***TOOLBARS\n" ; 写入工具栏内容,图标最好采用cad自带的图标
                                                   "**若干测绘用实用小程序\n" "ID_xgj001      \n"
                                                    "ID_xgj008      ^C^Cpon\n"
                                                    "ID_xgj009      ^C^Cpoff\n"
                                                    "ID_xgj010      ^C^Cpgbtc\n"
                                                    "ID_xgj011      ^C^Cptyb\n"
                                                   "ID_xgj012      ^C^Cpty\n"
                                                    "ID_xgj013      ^C^Cpvla\n"
                                                       )
                                                   (princ stream filen)
                                 )
                               (close filen)   ; 关闭mnu文件
                               tempname
                            )
                           )
      )
      (command "menuload" menuname)      ; 加载刚才创建的mnu文件
      (command "TOOLBAR" "cass小工具" "S") ; 显示工具栏
    )
)
(princ)
)
(create_xgj.mnu)
(转自本论坛)
--------------------------------------------------
上面程序只能利用CAD自带的图标:
"ID_xgj013      ^C^Cpvla\n"

如何把自定义图标加进去,效果:

"ID_xgj013      ^C^Cpvla\n"

DLL封装图标是否可以解决?哪位高手详细解答一下具体操作过程,谢谢!@

shenhung 发表于 2014-1-27 18:18:38

印象中.若是自定图标为单一BMP档的话.
图标档名要加.bmp扩展名
若是图标封装在.dll内 则不必扩展名
"ID_xgj013      ^C^Cpvla\n"

cad自带的图标.因为都封装在dll 内..所以都沒有加.bmp扩展名.
你再試試~!!

xskfq 发表于 2014-1-27 20:23:16

本帖最后由 xskfq 于 2014-1-27 20:57 编辑

shenhung 发表于 2014-1-27 18:18 static/image/common/back.gif
印象中.若是自定图标为单一BMP档的话.
图标档名要加.bmp扩展名
若是图标封装在.dll内 则不必扩展名

谢谢,我想知道,封装图标的DLL的名字必须和工具条名字一样吗?放在那个目录下?

shenhung 发表于 2014-1-27 20:44:20

.DLL 跟MNU同名称.同文件夹就行了
比方MNU名称ABC.MNU   DLL 名称就是 ABC.DLL

shenhung 发表于 2014-1-27 20:46:48

.DLL 跟MNU同名称.同文件夹就行了
比方MNU名称ABC.MNU   DLL 名称就是 ABC.DLL

xskfq 发表于 2014-1-27 21:43:24

shenhung 发表于 2014-1-27 20:46 static/image/common/back.gif
.DLL 跟MNU同名称.同文件夹就行了
比方MNU名称ABC.MNU   DLL 名称就是 ABC.DLL

再请教一个问题,ABC.CUI, 怎么自动加载,不用每次都CUILOAD??必须放在什么目录下吗?

shenhung 发表于 2014-1-27 22:45:04

(MENUGROUP "ABC")判斷加載了沒!!如果沒有加載..再CUILOAD.
路徑你自己決定!! CUILOAD帶路徑就行了.



yl461 发表于 2014-12-10 20:59:29

你们好,我最近也遇到了cui文件图标相对路径的问题,请问你们是在吗解决的呢?按照你们上面的做法都试过了,还是不行,求解?

zbs 发表于 2015-9-9 15:46:00

DLL封装的图标提取不出来,是引用资源ID,还是资源名称?封装为DLL后只有资源ID?请高人指教!!!

陈伟 发表于 2020-5-26 15:44:04

这个很好,解决了我的难题,利用MINI工具箱,和这个工具条,完美结合起来了
页: [1] 2
查看完整版本: CAD自定义工具条里如何添加自定义图标?