PDMS二次开发软件

 找回密码
 注册 有问题进QQ群591484440

QQ登录

只需一步,快速开始

查看: 4938|回复: 26

[二次开发教程] pdms增加工具栏toolbar创建方法

 火... [复制链接]

签到天数: 17 天

[LV.4]瞎扑签到4级

超级会员

积分
2183
发表于 2014-10-21 14:59:34 | 显示全部楼层 |阅读模式
我们想做一个类似下图的工具菜单(toolbar),11.6以后版本工具条创建:
QQ图片20141021145102.jpg

首先我们先需要做图标
图标的格式为16X16像素的png格式的图片
可以自己制作,也可以下载一个图片,推荐到https://www.iconfinder.com寻找图标图片

直接上干货,细节不是很明白! 如果是懒人,直接看最后的!
1.  PDMSEXE安装路径下的\PDMSUI\des\addins下创建命名为xptools的文件,没有后缀。内容为:
  1. # ----------------------------------------------------------------------
  2. #  File:            xptools-toolbar
  3. #  Module:          design
  4. #  Author:          www.3d-sharp.com
  5. #  Created:         2014年10月21日14:19:00
  6. #  Description:     瞎扑程序
  7. # ----------------------------------------------------------------------
  8. name: xptools
  9. showOnMenu: False
  10. object: xptools
  11. title: xptools
复制代码

2对象定义PDMSEXE安装路径下的\PMLLIB\下创建一个文件夹xptool,然后新建一个xptools.pmlobj文件。同时把图标文件放到文件夹中:

QQ截图20141021145449.png

xptools.pmlobj文件代码如下
  1. define object xptools
  2. endobject
  3. --------------------------------------------------------------------------
  4. define method .modifyForm()
  5.   !this.xptoolsbars()
  6. endmethod
  7. ------------------------------------------------------------------------
  8. define method .modifyMenus()
  9. !this.barMenu()
  10. !this.Menus()
  11. endmethod

  12. define method .barMenus()
  13. !bmenu = object Appbarmenu()
  14. !bmenu.add(|xptools|,'xptools')
  15. !!appmenucntrl.addBarMenu(!bmenu,'DES')
  16. endmethod

  17. define method .xptoolsbars()
  18. frame.xptoolsbar toolbar '3dsharp toolbar'
  19.   !pixmap = !!pml.getPathname('csharp.png')
  20.     button .csharpL tooltip 'csharp' pixmap /$!<pixmap> width 16 height 16 callback 'Q ATT '

  21.   !pixmap = !!pml.getPathname('move.png')
  22.     button .moveL tooltip 'move' pixmap /$!<pixmap> width 16 height 16 callback 'Q ATT'

  23.   !pixmap = !!pml.getPathname('pipe.png')
  24.     button .pipeL tooltip 'pipe' pixmap /$!<pixmap> width 16 height 16 callback 'show !!xp'

  25.   !pixmap = !!pml.getPathname('run.png')
  26.     button .runL tooltip 'run' pixmap /$!<pixmap> width 16 height 16 callback 'show !!xp'
  27.    
  28.   !pixmap = !!pml.getPathname('apply.png')
  29.     button .applyL tooltip 'apply' pixmap /$!<pixmap> width 16 height 16 callback 'show !!xp'

  30.   !pixmap = !!pml.getPathname('send.png')
  31.     button .sendL tooltip 'send' pixmap /$!<pixmap> width 16 height 16 callback 'show !!xp'
  32. exit
  33. !!appTbarcntrl.addToolBar('xptoolsbar','PIPE')
  34. !!appTbarcntrl.addToolBar('xptoolsbar','EQUI')
  35. !!appTbarcntrl.addToolBar('xptoolsbar','STRU')
  36. !!appTbarcntrl.addToolBar('xptoolsbar','GEN')
  37. endmethod
复制代码
3. 按照上面要求后,进入pdms软件输入PML REHASH ALL即可完成工具条的创建
             1.png
4. 我们再增加一个轴网显示的按钮(2014年10月23日)
    A.先把,markgrid.mac文件拷贝到xptools文件夹中,把图标文件gridline16.png图标拷贝到\PMLLIB\xptool\png文件夹中
    B.然后在xptools.pmlobj增加下面代码

  1.   !pixmap = !!pml.getPathname('gridline16.png')
  2.     button .gridL tooltip 'gridline16.png' pixmap /$!<pixmap> width 16 height 16 callback '$m %pmllib%\xptool\markgrid.mac'
复制代码

5.功能展示  进入pdms后如果报错,输入pml rehash all 只有有命令栏的地方都可以输入!

    QQ截图20141023112023.jpg
  选中轴网相关层次,点击“G”按钮,轴网显示,再次点击,轴网消失! 成功!

    QQ截图20141023112253.jpg
6.懒人请直接下载附件包
  双击EXE文件,浏览到pdms安装路径

    QQ图片20141023113332.jpg
  进入pdms程序 pml rehash all 刷新程序
  如果报错,输入pml rehash all 只有有命令栏的地方都可以输入!  然后重新进design
  可以尝试在这个命令栏位置直接输入design命令进入




apply.png
csharp.png
move.png
pipe.png
run.png
Send.png
gridline16.png

markgrid.mac

232 Bytes, 下载次数: 71

售价: 2 金币  [记录]

xptool(懒人包).exe

196.51 KB, 下载次数: 60

售价: 10 金币  [记录]

心情不好,求安慰!

签到天数: 8 天

[LV.3]瞎扑签到3级

新手上路

积分
269
发表于 2014-10-21 16:44:58 | 显示全部楼层
挺好!很详细,而且这个给了我做菜单栏的提示。
另外modifyMenus()和barMenus()这两个方法没用上,完全可以删了。
干活吧
回复 支持 反对

使用道具 举报

签到天数: 7 天

[LV.3]瞎扑签到3级

新手上路

积分
267
发表于 2014-10-22 09:55:17 | 显示全部楼层
顶起,学习中。。。
VS2010SHELL装不上,火
回复 支持 反对

使用道具 举报

签到天数: 30 天

[LV.5]瞎扑签到5级

管理员

积分
4321
发表于 2014-10-23 11:18:26 | 显示全部楼层
xzzwin88 发表于 2014-10-21 16:44
挺好!很详细,而且这个给了我做菜单栏的提示。
另外modifyMenus()和barMenus()这两个方法没用上,完全可 ...

以后用!

点评

最近研究了PDMS的.net开发。发现还有一种更直观的做工具栏的方法,可以利用工具栏里的自定义选项,而且生成的.uic文件可以很容易的复制传播,包括利用.dll直接运行时写入界面。大神可以尝试下。  发表于 2015-3-15 15:01
今天很开心!
回复 支持 反对

使用道具 举报

签到天数: 4 天

[LV.2]瞎扑签到2级

新手上路

积分
411
发表于 2014-10-24 23:12:52 | 显示全部楼层
谢谢楼主的无私,学习中
回复 支持 反对

使用道具 举报

签到天数: 3 天

[LV.2]瞎扑签到2级

新手上路

积分
86
发表于 2015-1-7 16:44:41 | 显示全部楼层
正好要学习 谢谢楼主了
想睡觉
回复 支持 反对

使用道具 举报

签到天数: 53 天

[LV.5]瞎扑签到5级

高级会员

积分
1126
发表于 2015-1-30 21:46:21 | 显示全部楼层
感谢分享,学习了
hello hello
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]瞎扑签到1级

新手上路

积分
35
发表于 2016-3-9 21:45:45 | 显示全部楼层
用工具栏自定义今天刚在别的论坛看到,马上准备尝试一下
下载点东西
回复 支持 反对

使用道具 举报

签到天数: 47 天

[LV.5]瞎扑签到5级

超级会员

积分
2645
发表于 2016-3-12 07:38:00 | 显示全部楼层
谢谢!可以试试!
有没有约的?
回复 支持 反对

使用道具 举报

签到天数: 8 天

[LV.3]瞎扑签到3级

新手上路

积分
188
发表于 2016-7-24 13:37:03 | 显示全部楼层
好东西,果断试一试
回复 支持 反对

使用道具 举报

本版积分规则

QQ|手机版|关于我们|Archiver|手机版|小黑屋|工程G3D ( 鄂ICP备16022302号-2 )

GMT+8, 2024-11-23 11:50 , Processed in 1.390679 second(s), 36 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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