找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 19859|回复: 11
打印 上一主题 下一主题

浅谈UG OPEN C API开发中的用户出口(user exits)

[复制链接]
跳转到指定楼层
1
发表于 2005-5-14 08:26:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
,那天碰到一个问题,文档没有说清楚(也可能是我英文理解有问题),日志中粗略整理了一下,大家也来谈谈自己的看法★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
2005.5.9
好久都没有做UG二次开发内容的事情了。今天我想做一种动态的菜单机制。譬如,在进入Modeling模块后,在主菜单栏上显示我的菜单文件。本以为很简单的一个事,却烦了我一下午。
  
1. 我先在startup文件里也了一个men文件,内容如下:
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
MODIFY
APPLICATION_BUTTON UG_APP_MODELING
LIBRARIES mainModule.dll
MENU_FILES mytest.men
END_OF_MODIFY
没有心思去搞懂菜单脚本的语法,直接从文档里抄了一段出来。大致意思是想在进入modeling模块时,加载我写的一个库和我的菜单文件,我的菜单中的每一项都和库中的回调函数相连的。有必要记住的就是这儿只能是APPLICATION_BUTTON型的Button有这种权限。
  
2. 然后我在application文件夹下放了库文件mainModule.dll和菜单文件mytest.men。
菜单文件的内容如下:
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
AFTER UG_APPLICATION
CASCADE_BUTTON RE_MODELING
LABEL   ENTRY
END_OF_AFTER
  
MENU MainModule
BUTTON DATA_IMPORT
LABEL Import data...
ACTIONS DataImport_cb
END_OF_MENU
大致意思是在Application菜单后显示我的菜单。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
12
发表于 2008-10-22 10:03:34 | 只看该作者
确实是好东西
老帖我也要顶
11
发表于 2005-5-17 21:49:01 | 只看该作者
谢谢键盘兄
10
发表于 2005-5-16 16:18:01 | 只看该作者
很好,受益匪浅!谢谢!
9
发表于 2005-5-16 14:28:30 | 只看该作者
真好啊,对我学习挺有帮助的!!
谢谢键盘兄!!
8
发表于 2005-5-15 21:24:42 | 只看该作者
看了这个,再也不用C来进行UG二次开发了。
7
发表于 2005-5-15 17:01:04 | 只看该作者
好贴总是要顶的,键盘兄,能告知你的QQ吗,方便求教
6
发表于 2005-5-14 19:38:50 | 只看该作者
略为分析一下为什么ufusr,ufsta这样的user exit,在用户DLL中作为程序入口点时,不需要__declspec(dllexport)或者def文件来声明,但生成的DLL依然能够成为输出函数的原因。
  
动手试一下就知道了,以前没大注意这个,这也算是一种程序技巧。我测试是能通过的,但不知道UG是不是这么搞的。
  
1.建一个DLL工程,在.c或.cpp文件中声明一个函数,譬如在A.cpp中,
__declspec(dllexport) void fun(void);
  
2.然后在头文件A.h中添加如下代码:
extern __declspec(dllexport) void fun(void);
  
3.编译连接后,生成动态连接库A.dll
  
这样,假如fun函数就看作是我们的ufusr。然后我们做二次开发,建一个DLL工程B吧,
1.在B.cpp中,#include "A.h"
2.实现函数fun,譬如:
  
void fun(void)
{
   printf("hello world\n");
}
3.编译连接,生成B.dll,使用查看DLL文件的工具,就能够看到B.dll中存在一个名为fun的输出函数。
  
我以为这就是为什么我们不对ufusr/ufsta这样的函数做输出修饰,而它们依然可以输出的缘由。
5
发表于 2005-5-14 18:34:02 | 只看该作者
好啊,对我们很有帮助!!!
4
发表于 2005-5-14 18:28:21 | 只看该作者
分析的多好啊!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-2-20 20:32 , Processed in 0.030545 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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