zoukankan      html  css  js  c++  java
  • 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软件调试相关的内容,这里不在详细说了。

  • 相关阅读:
    Shell之海量数据处理grep,cut,awk,sed
    [Linux] Migrate plugins and setting for vim
    [C++] Template
    c++ Dynamic Memory (part 2)
    Image process
    c++ Dynamic Memory (part 1)
    [Algorithm] A* Search Algorithm Basic
    [C++] Solve "No source available for main()" error when debugging on Eclipse
    [C++] Solve "Cannot run program "gdb": Unknown reason" error
    [C++] Solve "Launch Failed. Binary not found." error on Eclipse
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/10957410.html
Copyright © 2011-2022 走看看