UG/NX二次开发Siemens官方NXOPEN实例解析—2.7 DiameterSymbol(标注符号)
?列文章目錄
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.1 AssemblyViewer(樹列表) |
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.2 Selection(選擇過濾器) |
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.3 Selection_UIStyler(邊倒角) |
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.4 File2Points(讀取文本) |
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.5?QuickExtrude(拉伸) |
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.6?CreateNote(注釋) |
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.7?DiameterSymbol(標注符號)? |
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.8?DrawingCycle(圖紙打印) |
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.9?InteropCallCFromDotNet(VB調用VC++ DLL實踐) |
| UG/NX二次開發(fā)Siemens官方NXOPEN實例解析—2.10 InteropNXOpenWithUFWrap(NXOPEN與Ufun混合使用)??????? |
???????前言
????????隨著工業(yè)智能化的不斷發(fā)展,UG二次開發(fā)的需求越來越多,也吸引了大批的二開從業(yè)人員,本人作為一名資深IT從業(yè)者(10年+)也毅然加入二次開發(fā)大軍。
? ? ? ? 然而,和流行IT行業(yè)(互聯(lián)網、金融、醫(yī)療等)相比,工業(yè)智能化的門檻顯得更高一點,專業(yè)的工業(yè)軟件,相對封閉的開發(fā)理念和更小的開發(fā)圈子,讓剛進入二開的從業(yè)者有點舉步維艱。邊學邊整理,希望通過這系列文章的整理能給二開的生態(tài)增添一葉綠。
一、知識點提取
本案例實現(xiàn)了在尺寸標注前添加符號的功能,主要知識點如下:
1、選擇尺寸標注,實現(xiàn)標注選擇過濾器
2、在標注前添加直徑符號
二、案例需求分析
1、效果圖
2、需求分解
1、選擇尺寸標注,實現(xiàn)標注選擇過濾器
2、在標注前添加直徑符號
三、程序分析
1、源碼所在目錄
UGOPEN\SampleNXOpenApplications\C++\DiameterSymbol
2、主要功能分析?
1、選擇尺寸標注,實現(xiàn)標注選擇過濾器
int dimpref::filter_cb(NXOpen::BlockStyler::UIBlock* block, NXOpen::TaggedObject* selectedObject) {if (dynamic_cast<Annotations::Dimension*>(selectedObject) != NULL){return UF_UI_SEL_ACCEPT;}return UF_UI_SEL_REJECT; }上一個案例也實現(xiàn)了一個注釋選擇過濾器,但是實現(xiàn)方法和我們這里不同,有興趣的同學可以去對比一下,點擊進入鏈接地址
selectNote->GetProperties()->SetSelectionFilter("SelectionFilter",action,selectionMask_array)
2、?在尺寸標注前添加直徑符號
void dimpref::EditPrefix(std::vector<NXOpen::TaggedObject*>dimensions, NXString option) { Session* session = Session::GetSession();Session::UndoMarkId mark = session->SetUndoMark(Session::MarkVisibilityInvisible, "Edit Appended Text");for (int loop = 0; loop < (int)dimensions.size(); ++loop) {NXOpen::Annotations::Dimension* dimensionPt =dynamic_cast<NXOpen::Annotations::Dimension*>(dimensions[loop]);if (dimensionPt != NULL){Annotations::AppendedText* appendedText = dimensionPt->GetAppendedText();if(strcmp(option.GetText(), "Diameter Symbol") == 0){std::vector<NXString> lines(1);lines[0] = "<O>";appendedText->SetBeforeText(lines);}else if (strcmp(option.GetText(), "None") == 0){std::vector<NXString> lines(0);appendedText->SetBeforeText(lines);}dimensionPt->SetAppendedText(appendedText);delete appendedText;}}session->UpdateManager()->DoUpdate(mark); }實現(xiàn)方法如下:
1、通過dimensionPt->GetAppendedText()方法獲取選擇的標注文本
2、添加直徑符號appendedText->SetBeforeText(lines);
3、更新標注session->UpdateManager()->DoUpdate(mark);
總結
以上是生活随笔為你收集整理的UG/NX二次开发Siemens官方NXOPEN实例解析—2.7 DiameterSymbol(标注符号)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: endpoint
- 下一篇: Service Endpoint