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封装图标是否可以解决?哪位高手详细解答一下具体操作过程,谢谢!@
印象中.若是自定图标为单一BMP档的话.
图标档名要加.bmp扩展名
若是图标封装在.dll内 则不必扩展名
"ID_xgj013 ^C^Cpvla\n"
cad自带的图标.因为都封装在dll 内..所以都沒有加.bmp扩展名.
你再試試~!!
本帖最后由 xskfq 于 2014-1-27 20:57 编辑
shenhung 发表于 2014-1-27 18:18 static/image/common/back.gif
印象中.若是自定图标为单一BMP档的话.
图标档名要加.bmp扩展名
若是图标封装在.dll内 则不必扩展名
谢谢,我想知道,封装图标的DLL的名字必须和工具条名字一样吗?放在那个目录下? .DLL 跟MNU同名称.同文件夹就行了
比方MNU名称ABC.MNU DLL 名称就是 ABC.DLL
.DLL 跟MNU同名称.同文件夹就行了
比方MNU名称ABC.MNU DLL 名称就是 ABC.DLL
shenhung 发表于 2014-1-27 20:46 static/image/common/back.gif
.DLL 跟MNU同名称.同文件夹就行了
比方MNU名称ABC.MNU DLL 名称就是 ABC.DLL
再请教一个问题,ABC.CUI, 怎么自动加载,不用每次都CUILOAD??必须放在什么目录下吗? (MENUGROUP "ABC")判斷加載了沒!!如果沒有加載..再CUILOAD.
路徑你自己決定!! CUILOAD帶路徑就行了.
你们好,我最近也遇到了cui文件图标相对路径的问题,请问你们是在吗解决的呢?按照你们上面的做法都试过了,还是不行,求解? DLL封装的图标提取不出来,是引用资源ID,还是资源名称?封装为DLL后只有资源ID?请高人指教!!!
这个很好,解决了我的难题,利用MINI工具箱,和这个工具条,完美结合起来了
页:
[1]
2