NX secondary development -UFUN asked annotation object data UF_DRF_ask_ann_data

  1 //NX9_NXOpenCPP_Wizard1
  2 
  3 // Mandatory UF Includes
  4 #include <uf.h>
  5 #include <uf_object_types.h>
  6 
  7 // Internal Includes
  8 #include <NXOpen/ListingWindow.hxx>
  9 #include <NXOpen/NXMessageBox.hxx>
 10 #include <NXOpen/UI.hxx>
 11 
 12 // Internal+External Includes
 13 #include <NXOpen/Annotations.hxx>
 14 #include <NXOpen/Assemblies_Component.hxx>
 15 #include <NXOpen/Assemblies_ComponentAssembly.hxx>
 16 #include <NXOpen/Body.hxx>
 17 #include <NXOpen/BodyCollection.hxx>
 18 #include <NXOpen/Face.hxx>
 19 #include <NXOpen/Line.hxx>
 20 #include <NXOpen/NXException.hxx>
 21 #include <NXOpen/NXObject.hxx>
 22 #include <NXOpen/Part.hxx>
 23 #include <NXOpen/PartCollection.hxx>
 24 #include <NXOpen/Session.hxx>
 25 
 26 #include <uf.h>
 27 #include <uf_ui.h>
 28 #include <uf_drf.h>
 29 
 30 // Std C++ Includes
 31 #include <iostream>
 32 #include <sstream>
 33 
 34 using namespace NXOpen;
 35 using std::string;
 36 using std::exception;
 37 using std::stringstream;
 38 using std::endl;
 39 using std::cout; 40 using std::cerr; 41 42 43 //------------------------------------------------------------------------------ 44 // NXOpen c++ test class 45 //------------------------------------------------------------------------------ 46 class MyClass 47 { 48 // class members 49 public: 50 static Session *theSession; 51 static UI *theUI; 52 53  MyClass(); 54 ~MyClass(); 55 56 void do_it(); 57 void print(const NXString &); 58 void print(const string &); 59 void print(const char*); 60 61 private: 62 Part *workPart, *displayPart; 63 NXMessageBox *mb; 64 ListingWindow *lw; 65 LogFile *lf; 66 }; 67 68 //------------------------------------------------------------------------------ 69 // Initialize static variables 70 //------------------------------------------------------------------------------ 71 Session *(MyClass::theSession) = NULL; 72 UI *(MyClass::theUI) = NULL; 73 74 //------------------------------------------------------------------------------ 75 // Constructor 76 //------------------------------------------------------------------------------ 77 MyClass::MyClass() 78 { 79 80 // Initialize the NX Open C++ API environment 81 MyClass::theSession = NXOpen::Session::GetSession(); 82 MyClass::theUI = UI::GetUI(); 83 mb = theUI->NXMessageBox(); 84 lw = theSession->ListingWindow(); 85 lf = theSession->LogFile(); 86 87 workPart = theSession->Parts()->Work(); 88 displayPart = theSession->Parts()->Display(); 89 90 } 91 92 //------------------------------------------------------------------------------ 93 // Destructor 94 //------------------------------------------------------------------------------ 95 MyClass::~MyClass() 96 { 97 } 98 99 //------------------------------------------------------------------------------ 100 // Print string to listing window or stdout 101 //------------------------------------------------------------------------------ 102 void MyClass::print(const NXString &msg) 103 { 104 if(! lw->IsOpen() ) lw->Open(); 105 lw->WriteLine(msg); 106 } 107 void MyClass::print(const string &msg) 108 { 109 if(! lw->IsOpen() ) lw->Open(); 110 lw->WriteLine(msg); 111 } 112 void MyClass::print(const char * msg) 113 { 114 if(! lw->IsOpen() ) lw->Open(); 115 lw->WriteLine(msg); 116 } 117 118 119 120 121 //------------------------------------------------------------------------------ 122 // Do something 123 //------------------------------------------------------------------------------ 124 void MyClass::do_it() 125 { 126 127 // TODO: add your code here 128 129  UF_initialize(); 130 131 //创建注释 132 char* TextString[] = {"Caesar卢尚宇"}; 133 double Origin3d[3] = {100,100,100}; 134 tag_t NoteTag =NULL_TAG; 135 UF_DRF_create_note (. 1, TextString, Origin3d, 0, & NoteTag); // 136,137 interrogation data annotation objects. Ann_data array can be read by transmitting to UF_DRF_ask_text_data annotated text data (old function with uc5574 read) 138 search_mask int [. 4 ]; int cycle_flag 139 = 0 ; int ann_data 140 [10 ]; int ann_data_type = 141 is 0 ; 142 int ann_data_form = 0 ; 143 int to NUM_SEGMENTS = 0 ; 144 Double ann_origin [2 ]; 145 Double radius_angle = 0 ; 146 UF_DRF_ask_ann_data (& NoteTag, search_mask, & cycle_flag, ann_data, & ann_data_type, & ann_data_form, & to NUM_SEGMENTS, ann_origin, & radius_angle); 147 148 / / read IP1 = int. 1 Note 149 ; 150 char * CR3; 151 IR4 int = 0 ; int IR5 = 0 152 ; 153 UF_DRF_ask_text_data (IP1, ann_data, & CR3, & IR4, &ir5); 154 155 //打印 156 uc1601(cr3,1); 157 158  UF_terminate(); 159 } 160 161 //------------------------------------------------------------------------------ 162 // Entry point(s) for unmanaged internal NXOpen C/C++ programs 163 //------------------------------------------------------------------------------ 164 // Explicit Execution 165 extern "C" DllExport void ufusr( char *parm, int *returnCode, int rlen ) 166 { 167 try 168  { 169 // Create NXOpen C++ class instance 170 MyClass *theMyClass; 171 theMyClass = new MyClass(); 172 theMyClass->do_it(); 173 delete theMyClass; 174  } 175 catch (const NXException& e1) 176  { 177 UI::GetUI()->NXMessageBox()->Show("NXException", NXOpen::NXMessageBox::DialogTypeError, e1.Message()); 178  } 179 catch (const exception& e2) 180  { 181 UI::GetUI()->NXMessageBox()->Show("Exception", NXOpen::NXMessageBox::DialogTypeError, e2.what()); 182  } 183 catch (...) 184  { 185 UI::GetUI()->NXMessageBox()->Show("Exception", NXOpen::NXMessageBox::DialogTypeError, "Unknown Exception."); 186  } 187 } 188 189 190 //------------------------------------------------------------------------------ 191 // Unload Handler 192 //------------------------------------------------------------------------------ 193 extern "C" DllExport int ufusr_ask_unload() 194 { 195 return (int) NXOpen the Session :: :: LibraryUnloadOptionImmediately; 196 } 197 198 199 Caesar Lu Shangyu 200 October 3, 2019

Guess you like

Origin www.cnblogs.com/nxopen2018/p/11619884.html