### UGOPENAPI二次开发之UIStyler开发详解
#### 一、环境搭建与配置
在进行UGOPENAPI的二次开发之前,首先需要完成环境的搭建与配置工作。这里介绍的是通过创建特定目录和配置环境变量的方式来进行的。
1. **自定义创建**:
- 在本地磁盘(例如D盘)上创建一个名为`UG_OPEN`的文件夹。
- 在`UG_OPEN`文件夹内再创建两个子文件夹:`APPLICATION`和`STARTUP`。
- 接下来,打开UG安装目录下的`UGII`文件夹中的`ugii_env.dat`文件。
- 修改文件中的`UGII_USER_DIR`行,将其路径更改为刚刚创建的`UG_OPEN`文件夹的路径,如`UGII_USER_DIR=D:\UG_OPEN`,同时确保该行前面的注释符号`#`被去除。
2. **第三方创建**:
- 查找UG安装目录下的`UGALLIANCE`文件夹中的`VENDOR`子文件夹。
- 如果在`VENDOR`文件夹中没有找到`Application`和`Startup`这两个子文件夹,则需要手动创建它们。
- 同样地,在`ugii_env.dat`文件中,确保`UGII_VENDOR_DIR`行前面的注释符号`#`被去除。
3. **系统自动创建**:
- 在UG安装目录下的`UGALLIANCE`文件夹中查找`SITE`子文件夹。
- 如果在`SITE`文件夹中缺少`Application`和`Startup`子文件夹,则需要手动创建。
- 在`ugii_env.dat`文件中,确保`UGII_SITE_DIR`行前面的注释符号`#`被去除。
这三种创建方式的主要区别在于UG启动时加载这些文件夹的顺序不同,分别是`SITE`、`VENDOR`和用户自定义的文件夹。
#### 二、UIStyler设计
1. **打开UG并进入UIStyler**:
- 打开UG软件,在主菜单的`Application`选项下选择UIStyler功能。
2. **界面设计**:
- 在UIStyler中进行界面设计工作,包括添加控件、设置布局等。
3. **保存设计**:
- 完成设计后,将设计成果保存到第一步中创建的`APPLICATION`文件夹下。保存后,会生成三个文件。
#### 三、建立VC项目
1. **移动文件**:
- 将保存在`APPLICATION`目录下的头文件和源代码文件移动到VC工程所在的目录下,例如`D:\SOURCE`。
2. **新建VC项目**:
- 使用Visual C++创建一个新的Win32 DLL项目,并选择创建一个空的DLL。
3. **添加文件到项目**:
- 将步骤1中移动过来的头文件和源代码文件添加到新建的VC项目中。
#### 四、设置VC环境
1. **设置C/C++编译器选项**:
- 在VC项目的菜单栏中选择`Project -> Setting -> C/C++`,设置相应的头文件路径,确保头文件能够被正确引入。
2. **设置链接器选项**:
- 选择`Project -> Setting -> LINK`,添加所需的库文件路径,对于UG18以上的版本,通常需要添加两个特定的LIB库。
- 输出的DLL文件可以选择保存在`D:\UG_OPEN\application`或`D:\UG_OPEN\startup`目录下。前者表示系统启动时不加载这个二次开发插件,后者则表示系统启动时加载。
3. **添加库文件路径**:
- 选择`Tools -> Options... -> Directories`,在此处添加所需的库文件路径。
#### 五、修改源程序
1. **复制MenuScript模板**:
- 打开源代码文件,找到MenuScript模板部分,将其复制并保存到`D:\UG_OPEN\STARTUP`目录下,文件后缀应为`.men`。
2. **移除注释**:
- 在源代码中找到包含`#ifdef MENUBAR_COMMENTED_OUT`及其对应的`#endif`行,并将其删除。
- 同样地,找到`#ifdef DISPLAY_FROM_USER_EXIT`及其对应的`#endif`行,并删除。
3. **修改用户退出标识**:
- 将`#ifdef DISPLAY_FROM_USER_EXIT`下方代码中的`<enter a valid user exit here>`替换为`ufusr`。
4. **编译程序**:
- 完成上述修改后,可以编译程序。
#### 六、测试与验证
完成所有步骤后,重新启动UG软件,可以在菜单栏上看到新增加的功能按钮。这意味着二次开发已经成功集成到UG软件中,可以通过点击这些按钮来调用自定义的UIStyler对话框或其他功能。
通过上述步骤,我们可以了解到UGOPENAPI的二次开发流程,尤其是利用UIStyler进行用户界面定制的过程。这不仅有助于提升软件的功能性,还能提高用户的操作体验。