明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9328|回复: 10

[已解答] CAD自定义工具条里如何添加自定义图标?

[复制链接]
发表于 2014-1-27 15:45:30 | 显示全部楼层 |阅读模式
(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        [_Toolbar(\"cass小工具\", _Floating, _Hide, 10, 340, 2)]\n"
                                                    "ID_xgj008        [_Button(\"打开所有图层\", \"RCDATA_16_OSNEND\", \"RCDATA_16_OSNEND\")]^C^Cpon\n"
                                                    "ID_xgj009        [_Button(\"关闭所选图层以外图层\", \"RCDATA_16_OSNEND\", \"RCDATA_16_OSNEND\")]^C^Cpoff\n"
                                                    "ID_xgj010        [_Button(\"关闭所选图层\", \"RCDATA_16_OSNEND\", \"RCDATA_16_OSNEND\")]^C^Cpgbtc\n"
                                                    "ID_xgj011        [_Button(\"图元表\", \"RCDATA_16_OSNEND\", \"RCDATA_16_OSNEND\")]^C^Cptyb\n"
                                                     "ID_xgj012        [_Button(\"en对象\", \"RCDATA_16_DIMOBL\", \"RCDATA_16_DIMOBL\")]^C^Cpty\n"
                                                    "ID_xgj013        [_Button(\"vla对象\", \"RCDATA_16_DIMOBLBB\", \"RCDATA_16_DIMOBLBB\")]^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        [_Button(\"vla对象\", \"RCDATA_16_DIMOBLBB\", \"RCDATA_16_DIMOBLBB\")]^C^Cpvla\n"

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

"ID_xgj013        [_Button(\"vla对象\", \"自定义图标 \", \"自定义图标 \")]^C^Cpvla\n"

DLL封装图标是否可以解决?哪位高手详细解答一下具体操作过程,谢谢!@
发表于 2014-1-27 18:18:38 | 显示全部楼层
印象中.若是自定图标为单一BMP档的话.
图标档名要加.bmp扩展名
若是图标封装在.dll内 则不必扩展名
"ID_xgj013        [_Button(\"vla对象\", \"自定义图标.bmp \", \"自定义图标.bmp \")]^C^Cpvla\n"

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

 楼主| 发表于 2014-1-27 20:23:16 | 显示全部楼层
本帖最后由 xskfq 于 2014-1-27 20:57 编辑
shenhung 发表于 2014-1-27 18:18
印象中.若是自定图标为单一BMP档的话.
图标档名要加.bmp扩展名
若是图标封装在.dll内 则不必扩展名

谢谢,  我想知道,封装图标的DLL的名字必须和工具条名字一样吗?放在那个目录下?
发表于 2014-1-27 20:44:20 | 显示全部楼层
.DLL 跟MNU同名称.同文件夹就行了
比方MNU名称  ABC.MNU   DLL 名称就是 ABC.DLL
发表于 2014-1-27 20:46:48 | 显示全部楼层
.DLL 跟MNU同名称.同文件夹就行了
比方MNU名称  ABC.MNU   DLL 名称就是 ABC.DLL

评分

参与人数 1明经币 +1 金钱 +6 收起 理由
xskfq + 1 + 6 赞一个!明白了,谢谢~!

查看全部评分

 楼主| 发表于 2014-1-27 21:43:24 | 显示全部楼层
shenhung 发表于 2014-1-27 20:46
.DLL 跟MNU同名称.同文件夹就行了
比方MNU名称  ABC.MNU   DLL 名称就是 ABC.DLL

再请教一个问题,ABC.CUI, 怎么自动加载,不用每次都CUILOAD??必须放在什么目录下吗?
发表于 2014-1-27 22:45:04 | 显示全部楼层
(MENUGROUP "ABC")  判斷加載了沒!!  如果沒有加載..再CUILOAD.
路徑你自己決定!! CUILOAD帶路徑就行了.



发表于 2014-12-10 20:59:29 | 显示全部楼层
你们好,我最近也遇到了cui文件图标相对路径的问题,请问你们是在吗解决的呢?按照你们上面的做法都试过了,还是不行,求解?
发表于 2015-9-9 15:46:00 | 显示全部楼层
DLL封装的图标提取不出来,是引用资源ID,还是资源名称?封装为DLL后只有资源ID?请高人指教!!!

发表于 2020-5-26 15:44:04 | 显示全部楼层
这个很好,解决了我的难题,利用MINI工具箱,和这个工具条,完美结合起来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 13:41 , Processed in 0.177761 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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