iCAx开思工具箱

标题: 有没有人用VB或者C#做UG二次开发的? [打印本页]

作者: begtostudy    时间: 2008-5-20 14:53
标题: 有没有人用VB或者C#做UG二次开发的?
首先,有QQ的加我吧:370566617
MSN:begtostudy@gmail.com

我主要是有个问题,在OPEN C中开发菜单关联的dll
都是这样的
static UF_MB_action_t actionTable[]=
{
  {"JK_TEST_1_ACTION",TEST_mian_menu,NULL},
  {NULL,NULL,NULL}
};

    try
    {
        /* TODO: Add your application code here */
  UF_MB_add_actions(actionTable);
    }

我想问一下,用VB或者C#怎么实现菜单动作"JK_TEST_1_ACTION"的回调
前提是不使用NXOpen.UF
谢谢
作者: tealy    时间: 2008-5-21 09:39
到NX4.0为止,.Net库还没有完全涵盖UF中的函数,很多功能依然需要通过调用UF来实现,包括你所说的注册回调函数.
当NX.net完善到一定程度后,会有这样的类出现
直接用菜单文件也许更方便些

1程序
我使用的一个基本框架
using System;
namespace MyPlus
{
public class MyLoader
{
  //运行时,NX先查找Main函数,并执行它,如果没有Main,则会报错,你可以使用Main作为整个插件的入口点.
  public static void Main(string[] args)
  {
     YourClass yc = new YourClass();
     yc.AnyFunction();
  }
  public static int GetUnloadOption(string arg)
  {
   return (int) Session.LibraryUnloadOption.Explicitly;
  }
}
public class YourClass()
{
  public void AnyFunction()
  {
  }
}
}
C#环境下,不用在开始和末尾加入UF_initialize()和UF_terminate()

2菜单

!编译文件为MYPLUS.DLL
VERSION 170
EDIT UG_GATEWAY_MAIN_MENUBAR

!菜单位置,定位于帮助后面
AFTER UG_HELP
CASCADE_BUTTON MYPLUS_MENU
LABEL MYPlus
END_OF_AFTER

MENU MYPLUS_MENU
BUTTON MY_FUN
LABEL My Fun
ACTIONS MYPLUS.dll
END_OF_MENU


作者: begtostudy    时间: 2008-5-21 14:51
标题: 回复 2楼 tealy 的帖子
非常感谢!

首先,不知道你有QQ吗?很想加你,应为用.net开发UG的人不多

其次,感谢你的回答,我用UF已经实现了,但是NXOpen没有实现,NX5也是如此

再次,建议你的框架里加上try catch

最后,更正一下,UG先找Startup函数,没有的话才去找Main
这是UG帮助里的原话
作者: cgy123000    时间: 2009-3-2 10:44
用C#做UG的二次开发没问题!呵呵!只是刚发现一个问题:用C#制作的对话框只能被调用一次,也就是说UG可以多次调用自己搞的那个对话框(我不喜欢,功能不强!),但是一旦加了C#的对话框,第一次打开UG,然后点击相应的菜单可以调出C#的对话框,但是关闭后再开就有警告了,无法打开了。不知大家有没有发现?
作者: siebeneagle    时间: 2011-8-14 15:51
按2楼所提供的方法,也就是每次点击一下菜单,就需要把对应的dll或exe文件装载一下?
作者: 风缘    时间: 2011-11-11 11:08
UG自带的例子中,使用了Application_Button这种方式:
APPLICATION_BUTTON Train_Parametric_APP
   LABEL Test
  LIBRARIES TrainPara
   MENU_FILES TrainPara.men

这样的话,会在应用下添加一个项,链接到TrainPara.dll文件中,这个调试成功了。问题是,加载了这个应用后,建模模块就不见了(建模的工具和菜单都不见了)

有何解决方案




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3