尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

UG NX 12.0.2.9 MP14捕获到标准C++异常排查与安装指南

UG NX 12.0.2.9 MP14捕获到标准C++异常排查与安装指南 干UG这行久了几乎没有哪个同事没被“捕获到标准C异常”这个弹窗折磨过。尤其是我自己维护的几台工作站跑NX 12.0.2的时候建模、装配、后处理指不定哪个操作就突然崩出一个红叉对话框。网上搜了一圈说法五花八门有说内存不够的有说显卡驱动不对的有说许可证服务挂了的还有干脆让你重装系统的。我花了大半个月把公司里六台机器逐一排查过顺便把手上的NX 12.0.2.9打到了MP14维护包这才算把问题基本压下去。今天就把这些排查思路和完整安装流程整理出来给正在被同样问题折腾的朋友一个参考。这篇内容适合谁一类是天天跟NX打交道的建模、编程、工艺工程师另一类是负责UG软件部署维护的IT管理员还有做UG二次开发的同行。不管你是被C异常弹窗烦得想砸电脑还是正准备装一台干净的UG 12.0.2.9 MP14工作环境这篇文章都能给你一个能直接落地的操作路径。1. 遇到“捕获到标准C异常”先别慌问题定位与思路拆解1.1 先判断是哪一种C异常“捕获到标准C异常”这句话其实是个通用提示UG主体是C写的内部任何模块抛出未捕获的异常最终都会以这句话的形式反馈给用户。但它背后的真实原因可能差着十万八千里你别一上来就跟它硬刚先花两分钟判断方向对不对。第一种情况是带错误码的C异常弹窗里通常还有一个数字或一串十六进制地址比如类似 -15、-96、-97 这种带Lincense错误码的那基本就是许可证服务出了问题系统在排查时根本走不到软件功能层。第二种情况是光秃秃一句话、没有任何多余信息的这种大概率是运行库加载失败、内存访问冲突或者显卡驱动在捣乱。第三种情况是操作特定命令才触发比如每次保存大装配才崩、每次调用后处理才崩这种往往是文件本身或者某个模块内部状态出了问题。我自己的经验是先把弹窗截图存下来然后看Windows事件查看器。运行 eventvwr.msc打开“Windows日志-应用程序”找到对应时间点的错误事件里面通常写着异常模块的名称是 ugraf.exe 本身还是某个DLL比如 nxopen.dll、libjam.dll、或者 nvidia 的 opengl32.dll。看到模块名方向就清楚了七八成。很多时候你只是按照网上“万能C异常解法”折腾半天最后发现事件日志里明明白白写着显卡驱动崩溃完全没有必要去重装系统。1.2 为什么MP14补丁能减少这类报错NX 12.0.2发布之后西门子又陆续放出了多个维护包Maintenance PackMP14就是其中比较后期的一个。很多人不理解维护包是干什么用的简单说它就是官方在基础版本之上修过的Bug合辑里面包含大量内部断言修复、内存泄漏修补、以及偶发崩溃场景的隔离。在我维护的几台机器上升级到MP14之后最明显的变化是打开大型装配体时的崩溃频率降低了很多。这背后其实是西门子对Parasolid建模内核跟装配加载器在内存管理方面做了不少修补。有段时间我一直在排查一个“旋转模型后保存必崩”的毛病换了显卡驱动、改了可视化配置都压不住后来在官方的Release Notes里翻到一条说修复了特定显卡驱动下view related C exception的问题打了补丁之后果然没有复发。所以如果你还在用最初的12.0.2版本遇到奇怪的C异常先别大动干戈排查环境把MP14补丁装上很多问题直接消失在升级过程中。这也是我把C异常解决方案和安装教程放在一起讲的原因因为两者本来就是相互咬合的。2. C异常排查手册从环境变量到运行库的完整修复方案2.1 三分钟环境体检清单如果MP14补丁已经打了C异常还是出现那就得按部就班做环境体检。别一上来就重装NX先查下面几项九成问题都藏在里面。第一项VC运行库。NX 12依赖Microsoft Visual C Redistributable特别是2015到2022这个范围。很多装机人员图省事只装了一个x64版本但实际上NX的某些子模块和外部插件还会调用x86版本的老库缺了哪个都会以C异常的形式爆发。我的做法是把2005、2008、2010、2013、2015-2022这几个版本全都装一遍x64和x86都装上虽然看起来有点“全家桶”但确实能挡掉很多莫名其妙的崩溃。第二项Java环境。NX 12安装包自带32位Java 8运行时但如果你后来自己装过其他版本的Java把系统JAVA_HOME环境变量指向了高版本NX的许可证管理界面和某些对话框就会出现异常。第三项C盘剩余空间和内存占用。NX跑大装配的时候临时文件占用很大C盘剩不到5GB就很容易触发写临时文件失败进而出现异常。第四项许可证服务状态。WinR输入services.msc找到Siemens PLM License Server确认状态是“正在运行”。2.2 环境变量与配置文件层面的修复环境体检没问题那就开始做环境变量层面的“保守治疗”。NX读取的环境变量非常多日常排错用得比较频繁的也就那么几个。第一个是 UGII_BACKGROUND_URL。NX启动之后默认会去连西门子的服务器检查更新某些网络环境下这个后台线程会拖慢启动速度甚至引发异常。建议设置系统环境变量 UGII_BACKGROUND_URL值留空这样NX就不会往外面发请求了。第二个是 UGII_TMP_DIR把NX的临时目录从系统盘挪到空间更大的分区。操作方式是在环境变量里新建一个变量名UGII_TMP_DIR值比如D:\UGTEMP记得把目录提前建好。这个修改对减少C盘占用、降低临时文件读写冲突很有帮助。第三个是 UGII_SWAP_FILE这个变量控制的是NX内存交换文件的位置默认在系统盘的用户目录下。如果你的装配体特别大建议给一个独立目录例如D:\UGSWAP减少系统盘的频繁读写。改完环境变量之后顺手清理一下临时文件。用WinR输入%temp%打开临时目录把里面Siemens、UGS、Unigraphics相关的文件夹删掉然后重启NX。这个动作看起来不起眼但能处理掉一些升级补丁后残留的旧缓存。2.3 显卡与可视化设置层面的处理C异常里有一类特别容易迷惑人就是某些特定视角操作才触发比如旋转零件、切换渲染样式、开启真实着色。这类问题通常不是软件逻辑错误而是显卡驱动跟NX的OpenGL渲染管线不对付。排查思路是先看事件日志里有没有opengl32.dll或者nvoglv64.dll的身影有的话基本就是显卡驱动的问题。解决方法是先更新到NVIDIA或者AMD的最新Studio驱动多数情况能解决。如果更新驱动之后问题反而出现了那就是驱动太新和NX 12.0.2不兼容回退一个稳定版本。还有一个治标但很有效的办法在NX里把可视化性能调低。路径是“菜单-首选项-可视化性能”在大模型设置里关掉“高性能显示”把反锯齿级别从8x降到4x甚至关掉。建模和编程阶段这样的画质损失完全能接受但稳定性提升立竿见影。我见过最离谱的一台机器关闭反锯齿之后之前每半小时崩一次的“C异常”彻底消失了。2.4 二次开发中C异常的处理思路如果你的UG是通过NXOpen C二次开发来跑自动化脚本或外挂程序那遇到C异常时思路还要再扩展一层。这类场景下异常往往不是UG自身的问题而是你的代码里没有正确接住NXOpen API抛出的异常。NXOpen C的API设计里很多方法会在失败时抛出 NXException 类型的异常。如果你的调用代码没有用 try-catch 包裹异常就会一路冒泡到UG主框架最终弹出来“捕获到标准C异常”。我自己刚开始写UG插件时经常被这个弹窗搞得一头雾水后来养成习惯所有NXOpen调用都包一层 try-catch捕获到异常之后用 GetMessage() 打印内部信息并写日志排查效率提高了不止一个量级。另外要注意C运行库的版本匹配。用Visual Studio 2017编译的NXOpen插件目标运行库是v141如果你的目标机器缺这个运行库程序加载时就会报异常。发布插件给同事用之前先确认目标机器的VC运行库齐全。3. UG 12.0.2.9 MP14保姆级安装教程从零到能正常建模3.1 安装前准备这些坑提前避开先说系统层面的要求。NX 12.0.2.9 MP14官方支持64位的Windows 10和Windows 11建议专业版或企业版。内存最低8GB但如果你要处理装配体、出程序16GB是底线32GB才够舒服。磁盘空间方面NX主程序完整安装大概需要25GB加上补丁扩展和临时文件建议系统盘预留至少50GB的空闲空间。安装之前有三件事必须做。第一件关闭杀毒软件和Windows Defender的实时保护。NX的安装过程要写注册表、要往系统目录里复制文件、要启动服务杀毒软件对这几个动作的拦截经常导致安装一半报错或者许可证服务无法启动。装完之后再把它们打开把NX安装目录加入信任区就好。第二件把UAC用户账户控制拉到最低或者直接关闭这样安装程序不会因为权限问题中断。第三件拔网线或者断开网络连接避免NX安装过程中许可证服务联网验证失败导致卡住。操作系统补丁方面建议先把Windows Update打满。有些老版本的Win10缺少某些通用C运行库依赖装上NX之后一运行就出C异常排查半天结果系统基础组件不全。把系统更新到最新省掉后面一堆破事。3.2 许可证服务器的安装与配置许可证服务器是NX运行的核心组件它不装好NX主程序能装上但绝对启动不了。先说大致的安装流程。从软件供应商或者企业IT部门那里拿到三个安装包NX主程序安装包、Siemens PLM License Server许可证服务器安装包、MP14维护补丁包。许可证文件通常是一个后缀为lic的文件里面写明了授权类型、许可模块和有效期这个文件需要放在一个不会被误删的路径比如D:\License\Siemens\。运行许可证服务器安装程序全程默认下一步就行。安装完成后安装向导会要求指定许可证文件的位置这时选择刚才放的lic文件。这里有一个常见的坑许可证文件名和路径里不要带中文也不要带空格比如不要放在D盘的“新建文件夹”里否则许可证服务器可能读不到文件。安装完成后打开“服务”管理界面确认名为Siemens PLM License Server的服务已经启动。如果服务没有自动启动右键手动启动。然后测试端口是否正常命令行里执行 netstat -ano | findstr 27800能看到LISTENING状态就说明许可证服务器已经正常监听了。接下来配置环境变量。在“系统属性-高级-环境变量”里新建两个系统变量UGS_LICENSE_SERVER 和 SPLM_LICENSE_SERVER值都填 27800localhost。这个操作的意思是告诉NX主程序去哪台机器的哪个端口获取许可证localhost就是本机。3.3 NX主程序安装与MP14升级步骤许可证服务器搞定之后开始装NX主程序。用资源管理器打开安装包双击里面的Setup.exe或者是Launch.exe不同渠道的镜像入口名称不太一样安装界面会先让你选择语言选简体中文。安装类型选“典型安装”就行不需要自定义组件。到了安装路径那一步注意一个原则安装路径不要出现中文和特殊符号直接用默认路径 C:\Program Files\Siemens\NX 12.0\ 就好。有些人喜欢把软件装到D盘这没有问题但路径里的文件夹名字也千万别用中文。接下来的关键环节是填写许可证服务器地址。安装向导检测到许可证服务器时会问你服务器名称或者端口填 27800localhost。然后进入漫长的文件复制过程这一步通常需要二三十分钟中间不要强行取消也不要把安装窗口最小化去干别的事。主程序安装完成之后先别急着打开接着装MP14维护补丁。解压补丁包找到update.exe或者setup.exe运行后选择NX主程序安装目录确认开始升级。升级过程会把NXBIN目录下的运行库、可执行文件替换成修复后的版本。补丁装完之后打开NX在“帮助-关于NX”里确认内部版本号显示的是12.0.2.9 MP14就说明安装完全到位了。我装过不下二十次NX 12.0.2.9 MP14每次都是这个顺序许可证服务器、环境变量、主程序、MP14补丁。顺序反了或者漏了哪一步后面必然出幺蛾子。4. 安装与使用中的高频问题排查速查表4.1 许可证错误排查三板斧按照上面这套流程走绝大多数安装是能一次过的但总有些“意外情况”让人措手不及。我把高频问题整理成了一张速查表你在实际使用中碰到可以直接对着查。第一个现象是安装完成后启动NX提示没有有效的许可证通常在许可证服务器配置那步出了问题。排查路径是先看服务管理里Siemens PLM License Server是不是正在运行没运行就先启动再测端口netstat -ano | findstr 27800如果端口没监听去许可证服务器安装目录下的日志文件夹里找最新日志里面会写清原因。常见原因是许可证文件路径无效或者文件内容与服务器版本不匹配。第二个现象是环境变量指向错误。如果NX启动时提示连接不到许可证服务器检查一下系统环境变量里UGS_LICENSE_SERVER和SPLM_LICENSE_SERVER的值是不是 27800localhost这两个变量缺一个或者写错了NX都不知道去哪拿许可证。第三个现象是许可证服务明明在运行但NX还是提示证书错误。这时先确认lic文件里的有效期如果过期了就联系供应商更新。再检查许可证日志看是哪个模块报错。有时候Windows更新也会重置服务配置导致许可证服务状态异常重启服务一般能解决。4.2 几个被问爆的UG日常操作问题排查完安装阶段的坑日常使用中的几个高频问题也顺手说一下吧。这些不是安装问题但跟建模和编程的日常效率绑定很深。关于UG测量重量。很多人找不到称重功能其实NX里是用测量体来实现的路径是“分析-测量体”。关键是测量之前必须先给零件指定密度或者材料。选中零件用“编辑-特征-实体密度”来设置密度值或者直接“指派材料”选对应材料。不设密度直接测量出来的质量就是0。我见过太多人栽在这个细节上以为软件坏了。关于UG装配里怎么改部件名称。直接在装配导航器里是改不了底层文件名的右键组件只能修改“显示名称”这只是改了装配导航器里的显示文件本身名字没动。如果要真正改部件的文件名要做的是“文件-另存为”以新文件名保存部件然后在装配导航器里用“替换组件”把旧的引用替换成新文件。直接去Windows资源管理器里改文件后缀和名字会导致装配找不到引用打开装配体时就报错这是新手最容易踩的坑。关于UG后处理加密。很多编程同行问后处理文件怎么加密这个涉及企业工艺保护。NX后处理文件由tcl和def这两个文件组成明文状态下别人拿了你的后处理里面所有机床参数、程序头尾格式等于被抄了个底朝天。企业里常用做法是用第三方加密工具对后处理进行编译或加密把tcl/def转成不可读的格式然后配置到机床对应的模板路径下。具体工具很多但原则是一致的加密后的文件只留给机床调用不要随意分发否则加密失去意义。4.3 第二次安装时容易忽略的残留问题我在实际维护中还经常碰到一种情况机器上以前装过别的版本的NX或者旧版许可证服务第二次安装新版本时就各种诡异报错。这种情况多半是旧的许可证服务没有卸载干净或者环境变量残留指向了老版本。重装之前先做清理在“控制面板-程序和功能”里卸载旧版NX和旧版许可证服务器然后手动删除 C:\Program Files\Siemens 下残留的文件夹再用注册表编辑器搜索 Siemens、UGS、Unigraphics 相关项并清理这一步有风险建议先备份注册表。最后检查环境变量把指向旧版本NX的变量都清掉再重新走安装流程。有个细节特别容易忽视旧版本安装时生成的许可证服务共享内存可能还残留在系统里即使服务已经停了端口也可能被占用。装新版前在命令行里执行 netstat -ano | findstr 27800如果看到有进程在监听先把这个PID的进程结束掉再启动新版许可证服务。4.4 安装完成后必做的三个验证步骤装完不能直接就干我习惯做三个快速验证确认整台机器真正稳定。第一重启一次系统再打开NX。很多问题在刚安装完看不出来因为系统还没加载完所有服务重启后NX能正常启动基本说明环境是干净的。第二新建一个简单零件做一次特征拉伸和一次旋转再保存、重新打开走一遍最基本的数据流。第三打开一个中等规模的装配体百来个零件就够做一次旋转、缩放、视图切换如果全程没有C异常弹窗这环境就算稳了。这三个步骤加起来不到十分钟但能提前暴露八成以上的隐患比你到客户现场或者干活干到一半才崩溃要划算得多。说句实在话我这些年用NX的经验就是先怀疑环境再怀疑设置最后才怀疑软件本身。C异常报错90%以上不是软件问题而是运行库丢失、许可证异常、显卡驱动冲突这些周边原因。把环境整理干净把MP14补丁打好NX 12真的可以非常稳定地跑。如果你现在正被某个NX问题折磨得头疼不妨按这篇文章的思路从头走一遍大概率能少走很多弯路。
返回列表