<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[UG&#x2F;Open API二次开发入门——用C语言编写第一个UG外挂程序]]></title><description><![CDATA[<p dir="auto">**UG/Open API是UG（现NX）提供的一套C语言开发接口，允许开发者编写自定义的工具来扩展UG的功能。**本文面向零基础入门，带你从环境配置到跑通第一个程序。</p>
<h2>一、开发环境准备</h2>
<h3>1.1 安装VS+UG</h3>
<ul>
<li>安装 Visual Studio（VS2015/2017/2019均可）</li>
<li>安装 NX 10.0 以上版本</li>
<li>确保安装时勾选了 <strong>UG/Open API</strong> 组件</li>
</ul>
<h3>1.2 环境变量配置</h3>
<p dir="auto">需要设置以下环境变量：</p>
<pre><code>UGII_BASE_DIR = D:\Program Files\Siemens\NX 12.0
UGII_ROOT_DIR = %UGII_BASE_DIR%\UGII
</code></pre>
<h2>二、第一个程序：Hello World</h2>
<h3>2.1 创建源文件</h3>
<p dir="auto">新建一个 <code>hello.c</code>：</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
#include &lt;uf.h&gt;
#include &lt;uf_ui.h&gt;

void ufusr(char *param, int *retcod, int param_len)
{
    int error_code;
    UF_initialize();
    
    // 弹出UG界面消息框
    UF_UI_open_listing_window();
    UF_UI_write_listing_window("Hello, 模极社！\n");
    
    // 或者用对话框
    uc1601("Hello, 模极社！", 1);
    
    UF_terminate();
}
</code></pre>
<h3>2.2 编译链接</h3>
<p dir="auto">在VS开发者命令提示符中：</p>
<pre><code>cl /c /I"%UGII_BASE_DIR%\UGOPEN" hello.c
link /dll /out:hello.dll hello.obj "%UGII_BASE_DIR%\UGOPEN\libufun.lib"
</code></pre>
<h3>2.3 运行</h3>
<ul>
<li>将生成的 <code>hello.dll</code> 复制到 <code>%UGII_BASE_DIR%\UGII\menus</code></li>
<li>启动NX，菜单栏会多出一个<strong>用户自定义菜单项</strong></li>
<li>点击即可运行你的第一个UG外挂</li>
</ul>
<h2>三、常用API速查</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>功能</th>
<th>API函数</th>
</tr>
</thead>
<tbody>
<tr>
<td>初始化</td>
<td>UF_initialize()</td>
</tr>
<tr>
<td>终止</td>
<td>UF_terminate()</td>
</tr>
<tr>
<td>创建直线</td>
<td>UF_CURVE_create_line()</td>
</tr>
<tr>
<td>创建圆</td>
<td>UF_CURVE_create_arc()</td>
</tr>
<tr>
<td>创建方块</td>
<td>UF_MODL_create_block1()</td>
</tr>
<tr>
<td>选择对象</td>
<td>UF_UI_select_with_single_dialog()</td>
</tr>
<tr>
<td>显示消息</td>
<td>uc1601()</td>
</tr>
<tr>
<td>获取部件</td>
<td>UF_PART_ask_display_part()</td>
</tr>
</tbody>
</table>
<h2>四、注意事项</h2>
<ol>
<li><strong>UG/Open API是C语言接口</strong>，不是C++，虽然C++也能调用但不能用C++类</li>
<li>所有UF_开头的函数返回 <code>int</code> 类型错误码，<strong>必须检查每个API的返回值</strong></li>
<li>编译时注意64位/32位匹配——UG 10.0以上都是64位</li>
<li>调试最方便的方法是 <code>uc1601()</code> 弹消息框，或者写日志文件</li>
</ol>
<p dir="auto">掌握这些，UG外挂开发就入门了，后续可以扩展做自动建模、批量出图等功能。</p>
<hr />
<p dir="auto"><strong><img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f527.png?v=ri5u9ft48ro" class="not-responsive emoji emoji-android emoji--wrench" title=":wrench:" alt="🔧" /> 相关工具推荐：使用在线模具计算器快速估算参数</strong></p>
<p dir="auto">[mj-mechanical-calc]</p>
<hr />
<p dir="auto"><em><img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4a1.png?v=ri5u9ft48ro" class="not-responsive emoji emoji-android emoji--bulb" title=":bulb:" alt="💡" /> 提示：以上计算工具为纯前端实现，数据仅在本地运算，不会上传至服务器。</em></p>
<hr />
<h3><img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f517.png?v=ri5u9ft48ro" class="not-responsive emoji emoji-android emoji--link" title=":link:" alt="🔗" /> 你可能还感兴趣</h3>
<ul>
<li><a href="/t/solidworks%E7%84%8A%E4%BB%B6%E8%AE%BE%E8%AE%A1%E6%95%99%E7%A8%8B%EF%BC%9A%E7%BB%93%E6%9E%84%E6%9E%84%E4%BB%B6%E4%B8%8E%E7%84%8A%E6%8E%A5%E5%88%87%E5%89%B2%E6%B8%85%E5%8D%95/5385">SolidWorks焊件设计教程：结构构件与焊接切割清单</a></li>
<li><a href="/t/4238/4238">discourse-yungouos-pay</a></li>
<li><a href="/t/4234/4234">discourse-mj-steel-query</a></li>
</ul>
<hr />
<h3><img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4cb.png?v=ri5u9ft48ro" class="not-responsive emoji emoji-android emoji--clipboard" title=":clipboard:" alt="📋" /> 相关标准参考</h3>
<ul>
<li>GB/T 12555 塑料注射模模架</li>
</ul>
<hr />
<p dir="auto"><strong>相关推荐：</strong></p>
<ul>
<li><a href="https://www.mj7.cn/t/siemens-nx-2506-cam-5" rel="nofollow ugc">Siemens NX 2506新版发布：CAM刀路显示升级、5轴去毛刺增强</a></li>
<li><a href="https://www.mj7.cn/t/ug-nx" rel="nofollow ugc">UG NX扫掠与网格曲面高级技巧</a></li>
<li><a href="https://www.mj7.cn/t/ug-nx-5332" rel="nofollow ugc">UG NX焊接模块应用：焊缝建模与焊接仿真</a></li>
</ul>
<hr />
<p dir="auto">这个参数你们一般设多少？评论区说说。</p>
]]></description><link>https://forum.mj7.cn/topic/3729/ug-open-api二次开发入门-用c语言编写第一个ug外挂程序</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 14:15:10 GMT</lastBuildDate><atom:link href="https://forum.mj7.cn/topic/3729.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 30 Apr 2026 09:20:24 GMT</pubDate><ttl>60</ttl></channel></rss>