zoukankan      html  css  js  c++  java
  • NX二次开发-读取图纸表格注释与部件属性关联的名字

      1 NX11+VS2013
      2 
      3 #include <uf.h>
      4 #include <uf_ui.h>
      5 #include <uf_tabnot.h>
      6 #include <NXOpen/Part.hxx>
      7 #include <NXOpen/PartCollection.hxx>
      8 #include <NXOpen/Session.hxx>
      9 #include <NXOpen/Annotations_TableSectionCollection.hxx>
     10 #include <NXOpen/Annotations_AnnotationManager.hxx>
     11 #include <NXOpen/FontCollection.hxx>
     12 
     13 
     14     
     15 UF_initialize();
     16 
     17 //创建表格注释
     18 Annotations::TableSection *nullAnnotations_TableSection(NULL);
     19 Annotations::TableSectionBuilder *tableSectionBuilder1;
     20 tableSectionBuilder1 = workPart->Annotations()->TableSections()->CreateTableSectionBuilder(nullAnnotations_TableSection);
     21 NXOpen::Point3d TablePoint(194.0, 17.0, 0.0);
     22 tableSectionBuilder1->Origin()->SetOriginPoint(TablePoint);
     23 tableSectionBuilder1->SetNumberOfColumns(2);
     24 tableSectionBuilder1->SetNumberOfRows(2);
     25 tableSectionBuilder1->SetRowHeight(20.0);
     26 tableSectionBuilder1->SetColumnWidth(50);
     27 tableSectionBuilder1->Commit();
     28 NXObject *nXObject1;
     29 nXObject1 = tableSectionBuilder1->Commit();
     30 tableSectionBuilder1->Destroy();
     31 
     32 //section转tag
     33 tag_t TabularNote = NULL_TAG;
     34 UF_TABNOT_ask_tabular_note_of_section(nXObject1->Tag(), &TabularNote);
     35 
     36 //获取第一行的Tag
     37 tag_t Row0Tag = NULL_TAG;
     38 UF_TABNOT_ask_nth_row(TabularNote, 0, &Row0Tag);
     39 
     40 //获取第二行的Tag
     41 tag_t Row1Tag = NULL_TAG;
     42 UF_TABNOT_ask_nth_row(TabularNote, 1, &Row1Tag);
     43 
     44 //获取第一列的Tag
     45 tag_t Column0Tag = NULL_TAG;
     46 UF_TABNOT_ask_nth_column(TabularNote, 0, &Column0Tag);
     47 
     48 //获取第二列的Tag
     49 tag_t Column1Tag = NULL_TAG;
     50 UF_TABNOT_ask_nth_column(TabularNote, 1, &Column1Tag);
     51 
     52 //得到第一行第一列单元格的Tag
     53 tag_t Cell0Tag = NULL_TAG;
     54 UF_TABNOT_ask_cell_at_row_col(Row0Tag, Column0Tag, &Cell0Tag);
     55 
     56 //得到第一行第二列单元格的Tag
     57 tag_t Cell1Tag = NULL_TAG;
     58 UF_TABNOT_ask_cell_at_row_col(Row0Tag, Column1Tag, &Cell1Tag);
     59 
     60 //得到第二行第一列单元格的Tag
     61 tag_t Cell2Tag = NULL_TAG;
     62 UF_TABNOT_ask_cell_at_row_col(Row1Tag, Column0Tag, &Cell2Tag);
     63 
     64 //得到第二行第二列单元格的Tag
     65 tag_t Cell3Tag = NULL_TAG;
     66 UF_TABNOT_ask_cell_at_row_col(Row1Tag, Column1Tag, &Cell3Tag);
     67 
     68 //写文本
     69 UF_TABNOT_set_cell_text(Cell0Tag, "<WRef2*0@SBA>");
     70 UF_TABNOT_set_cell_text(Cell1Tag, "卢尚宇");
     71 
     72 //合并最底下的单元格
     73 UF_TABNOT_merge_cells(Cell2Tag, Cell3Tag);
     74 
     75 //获取合并单元格的行Tag
     76 tag_t MergeRowTag = NULL_TAG;
     77 UF_TABNOT_ask_nth_row(TabularNote, 1, &MergeRowTag);
     78 
     79 //获取合并单元格的列Tag
     80 tag_t MergeColumnTag = NULL_TAG;
     81 UF_TABNOT_ask_nth_column(TabularNote, 0, &MergeColumnTag);
     82 
     83 tag_t MergeCellTag = NULL_TAG;
     84 UF_TABNOT_ask_cell_at_row_col(MergeRowTag, MergeColumnTag, &MergeCellTag);
     85 
     86 //写文本
     87 UF_TABNOT_set_cell_text(MergeCellTag, "版本号:xxxxxxxxxx");
     88 
     89 //检索默认单元格首选项
     90 UF_TABNOT_cell_prefs_t  cell_prefs;
     91 UF_TABNOT_ask_default_cell_prefs(&cell_prefs);
     92 
     93 //设置单元格首选项
     94 int fontIndex1 = workPart->Fonts()->AddFont("chinesef_fs", NXOpen::FontCollection::TypeNx);//更改字体
     95 cell_prefs.text_font = fontIndex1; //字体
     96 UF_TABNOT_set_cell_prefs(Cell0Tag, &cell_prefs);
     97 UF_TABNOT_set_cell_prefs(Cell1Tag, &cell_prefs);
     98 UF_TABNOT_set_cell_prefs(MergeCellTag, &cell_prefs);
     99 
    100 //读取单元格内容
    101 char* cell_text;
    102 UF_TABNOT_ask_cell_text(Cell0Tag, &cell_text);
    103 
    104 //分割字符串
    105 string strCellText = cell_text;
    106 string strRight = (strCellText.substr(strCellText.find("@") + 1, strCellText.find(" ")));//提取右值
    107 string strLift = (strRight.substr(0, strRight.find(">")));//提取左值
    108 
    109 //打印
    110 char msg[256];
    111 sprintf_s(msg, "此单元格关联的部件属性为:%s", strLift);
    112 uc1601(msg, 1);
    113 
    114 UF_terminate();
    115 Caesar卢尚宇
    116 2019年12月15日

  • 相关阅读:
    java变量类型
    java基本数据类型
    java对象和类
    java认识
    vue-随笔-transition
    vue-随笔-class-style
    vue-随笔-form-elements
    Constructing Roads*
    hdu3371 Connect the Cities
    hdu1879浙大计算机研究生复试上机(2008)继续畅通工程
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/12044437.html
Copyright © 2011-2022 走看看