NX二次开发-NX+VS写代码设断点调试技巧

在做NX二次开发的时候写完代码,编译可以通过,但是执行的时候却没有反应,或者得到的结果不对,说明肯定有地方传值出错了。
我在查找代码错误的时候有几种方法:
1.uc1601打印函数输入和输出的值看对不对。
2.VS设断点-添加进程调试,来看输入输出值对不对
3.UF_CALL也就是UF_get_fail_message这个函数,来看函数自己用的对不对。
4.查看NX-Help-LogFile(日志),拖到最后看提示了哪些错误。

我一般用的比较多的是设断点调试,这里先说设断点调试。其他方法改天再写。

写举一个典型的例子--1.创建块 2.特征找体 3.设置颜色

 1 NX9+VS2012
 2
 3 #include <uf.h>
 4 #include <uf_modl.h>
 5 #include <uf_obj.h>
 6
 7
 8 UF_initialize();
 9
10 //UFUN方式创建块
11 UF_FEATURE_SIGN Sign = UF_NULLSIGN;
12 double Corner_pt[3] = { 0.0, 0.0, 0.0 };
13 char *Edge_len[3] = { "100", "100", "100" };
14 tag_t BlkTag = NULL_TAG;
15 UF_MODL_create_block1(Sign, Corner_pt, Edge_len, &BlkTag);
16
17 //UFUN方式特征找体
18 tag_t BodyTag = NULL_TAG;
19 UF_MODL_ask_feat_body(BlkTag, &BodyTag);
20
21 //UFUN方式设置颜色
22 UF_OBJ_set_color(BodyTag, 186);
23
24 UF_terminate();

我们主要关注的是:
1.UF_MODL_create_block1生成的tag值
2.UF_MODL_ask_feat_body输入和输出的tag值
3.UF_OBJ_set_color输入的tag值

如果几个关键地方的输入输出都是正确的,代码执行起来必然不会出错。

具体的调试步骤请看动画(点击图片放大观看)

1.VS点击行号左侧设断点
2.VS调试-添加进程-找到NX的进程
3.进入NX,ctrl+u执行dll程序
4.VS进入调试模式,按F10逐步调试,观察几个函数的tag值输入输出是否正确
5.VS最上边工具条红色按钮,点击结束调试。
具体的VS设断点调试相关内容,可以去搜VS软件调试相关的内容,这里不在详细说了。

原文地址:https://www.cnblogs.com/nxopen2018/p/10957410.html

时间: 2024-11-04 17:06:17

NX二次开发-NX+VS写代码设断点调试技巧的相关文章

NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))

在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article/details/88922030 这篇博客,要不然你听不懂我下面在说什么. 版本NX11+VS2013+office2016 首先我们通过NX开发向导创建了一个模板. 先把项目属性改成多字节.下面我们把前面做的MFC项目里的几个EXCAL头文件和stdafx一块拷过来,加到NX的项目里. 在NX的

NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))

NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的方法,无论C++还是C#还是VB方式思路都是一样的.先介绍用MFC去做,然后在写一篇博客介绍怎么在NX的二次开发的向导模板里去做.NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article

Visual Stadio 与NX二次开发的环境配置(以VS2010、NX10.0为例)

问题描述: 许多博文发布了关于Visual Stadio 与NX二次开发的环境配置,这些博文的提示事修改了文件NX10_Open.vsz中的引擎为10.0,但实际结果是创建C++引导失败. 问题解决概述: 创建正确引导应该同时修改NX10_Open.vsz与NX10_NXOpenCPP.vsz两个文件的引擎版本号. 解决步骤: 将NX10.0 UGOPEN目录下的所有文件夹(VB.VC.VC#)复制,并粘贴到Visual Stadio 2010安装目录下与对应的文件夹合并即可(覆盖). 例如,将

NX二次开发-Block UI C++界面关于 在Block UI中UF_initialize();和UF_terminate();的使用

关于 在Block UI中UF_initialize();和UF_terminate();的使用 1 用Block UI作NX二次开发的时候,不需要在使用UFUN函数的时候加UF_initialize();和UF_terminate();. 2 可以直接加在CPP里这个位置: 3 4 extern "C" DllExport void ufusr(char *param, int *retcod, int param_len) 5 { 6 TwoPointCyl *theTwoPoin

NX二次开发-移动WCS坐标系

说明:移动WCS坐标系 用法: #include <uf.h> #include <uf_csys.h> extern DllExport void ufusr(char *param, int *returnCode, int rlen) { UF_initialize(); //移动WCS,到点 couCsysOrigin2 double couCsysOrigin2[3] = { 10,10,10 }; //获取当前WCS标识 tag_t tagWCS = NULL_TAG;

NX二次开发-获取指定矩阵标识的矩阵值

函数:UF_CSYS_ask_matrix_values () 函数说明:获取指定矩阵标识的矩阵值. 用法: #include <uf.h> #include <uf_csys.h> extern DllExport void ufusr(char *param, int *returnCode, int rlen) { UF_initialize(); //获取WCS标识 tag_t tagWCS = NULL_TAG; UF_CSYS_ask_wcs(&tagWCS);

NX二次开发-通过3x3矩阵获取XYZ轴矢量

函数:UF_CSYS_ask_wcs() 函数说明:通过3x3矩阵获取XYZ轴矢量 用法: 1 #include <uf.h> 2 #include <uf_mtx.h> 3 extern DllExport void ufusr(char *param, int *returnCode, int rlen) 4 { 5 UF_initialize(); 6 7 double douMatrixValues[9] = {1,0,0,0,1,0,0,0,1}; 8 double dV

NX二次开发-UFUN和NXOpen结合开发中Tag_t对象与TaggedObject对象转换方法

1 本文通过举四个例子来告诉大家在NX二次开发过程中会经常用到UFUN和NXOpen结合去开发,在UFUN中我们得到的是Tag_t对象,在NXOpen中得到的是TaggedObject对象,这两个是需要进行转换的.本文主要知识点为:TaggedObject->tag_t() , NXOpen::NXObjectManager::Get(BodyTag1) , feature1->JournalIdentifier()的用法. 2 3 NX11+VS2013 4 5 #include <u

NX二次开发-设置BlockUI对话框标题theDialog-&gt;TopBlock()-&gt;FindBlock(&quot;Dialog&quot;)-&gt;GetProperties()-&gt;SetString

这个知识我以前并不知道,我找过NXOPEN API里面并没有找到对应的方法.所以我就一直认为不能改,而且还和别人聊过,想过去用改文本的方式去改dlx文件里对应的标题名. 今天在我的QQ群里,看到有群友发了这个.学习了一下,也就顺便记录了下来. 出自群友:二次开发菜鸟 theDialog->TopBlock()->FindBlock("Dialog")->GetProperties()->SetString("Label","1234