点击查看详细介绍

[NXOpen C++] UG二次开发,通过selectTaggedObjects,选择多个UG对象并获得对象标签

王牌飞行员 VIP会员 6年前 5172 42

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


说明:通过SelectTaggedObjects,通过SelectTaggedObjects,选择多个UG对象并输出对象的类型

对象的类型分为:(Type)大类和子类(SubType),UG中大部分公共对象都是在头文件uf_object_type.h中定义。


测试代码:选择多个对象并输出对象的类型和子类型

//通过SelectTaggedObject选择对象并输出tag标签
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
#   include <strstream>
#   include <iostream>
using std::ostrstream;
using std::endl;    
using std::ends;
using std::cerr;
#else
#   include <strstream.h>
#   include <iostream.h>
#endif
#include <uf.h>
#include <uf_ui.h>
#include <uf_exit.h>
#include <uf_defs.h>
#include <NXOpen/NXException.hxx>
#include <NXOpen/ModelingView.hxx>
#include <NXOpen/ModelingViewCollection.hxx>
#include <NXOpen/Part.hxx>
#include <NXOpen/PartCollection.hxx>
#include <uf_ui.h>
#include <uf_ui_ugopen.h>
#include <uf.h>
#include <NXOpen/Session.hxx>
#include <NXOpen/UI.hxx>
#include <NXOpen/selection.hxx>
#include <NXOpen/Features_Feature.hxx>
#include <NXOpen/ListingWindow.hxx>
#include <uf_obj.h>
using namespace NXOpen;
using namespace std;
 
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
 
static int report_error( char *file, int line, char *call, int irc)
{
if (irc)
{
char err[133],
msg[133];
 
sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
irc, line, file);
UF_get_fail_message(irc, err);
 
UF_print_syslog(msg, FALSE);
UF_print_syslog(err, FALSE);
UF_print_syslog("\n", FALSE);
UF_print_syslog(call, FALSE);
UF_print_syslog(";\n", FALSE);
 
if (!UF_UI_open_listing_window())
{
UF_UI_write_listing_window(msg);
UF_UI_write_listing_window(err);
UF_UI_write_listing_window("\n");
UF_UI_write_listing_window(call);
UF_UI_write_listing_window(";\n");
}
}
 
return(irc);
}
 
extern DllExport void ufsta( char *param, int *returnCode, int rlen )
{
/* Initialize the API environment */
if( UF_CALL(UF_initialize()) ) 
{
return;
}
 
/* TODO: Add your application code here */
Session *theSession = Session::GetSession(); 
Part *workPart(theSession->Parts()->Work());
UI *theUI = UI::GetUI();
vector<TaggedObject*> vecObjects;
//提示 标题 选择范围 是否包含特征 是否保持高亮 被选择的对象  光标位置坐标
Selection::Response res;

●●●请先 登陆注册 后查看●●●


2

最新回复 (42)
  • 不及无耐 VIP会员 6年前
    1

    感谢楼主分享,多谢楼主学习!楼主最棒!

  • 用户注册 6年前
    2

    感谢楼主分享,多谢楼主学习!楼主最棒!

  • 城网2 6年前
    3

    看看楼主如何操作的,谢谢

  • zy1377145535 6年前
    4

    感谢楼主分享,多谢楼主学习!楼主最棒!

  • guo172960885 VIP会员 6年前
    5

    谢谢分享,学习一下!!!

  • 狙击兴 VIP会员 6年前
    6

    感谢楼主分享,多谢楼主学习!楼主最棒!

  • xixixi22222 6年前
    7

    学习一下,谢谢分享sss

  • jx2008 6年前
    8

    学习一下,谢谢分享sss

  • xudongsong 6年前
    9

    感谢楼主分享,多谢楼主学习!楼主最棒!

  • 孤云 6年前
    10

    看看,学习一下,和VB有啥区别

  • forecast 6年前
    11

    学习一下,谢谢分享sss

  • zhang1991 VIP会员 5年前
    12

    学习一下,谢谢分享sss

  • 晋辉 VIP会员 5年前
    13

    感谢楼主分享,多谢楼主学习!楼主最棒!

  • 编程刘工 VIP会员 5年前
    14

    感谢楼主分享干货

  • boyue 5年前
    15

    感谢楼主分享,多谢楼主学习!楼主最棒!

请登录后发表新帖