//应用回调 private void Apply() { try { NXFun.SetHighlight(oldhighlight, false); Session.UndoMarkId undomark = Program.theSession.SetUndoMark(Session.MarkVisibility.Visible, "打标号"); foreach (DimInfor listitem in LabelDimList) { if (listitem.isLabel == "是") { if (listitem.is_herited) //PMIdimention { NXOpen.Annotations.BalloonNote balloon = NXFun.FindObjectByAttr <NXOpen.Annotations.BalloonNote>("GUID", listitem.guid); if (balloon == null) { //没找到 添加 NXFun.SetDisplayState(1); NXOpen.Annotations.BalloonNote balloonnote = NXFun.AddBalloonNote((NXOpen.Annotations.Annotation)listitem.dim, listitem.id.ToString(), listitem); NXFun.SetDisplayState(2); //找到二维继承的BalloonNote并设置大小。 NXOpen.Annotations.PmiAttribute[] bns = Session.GetSession().Parts.Work.PmiManager.PmiAttributes.ToArray(); foreach (NXOpen.Annotations.PmiAttribute pmi in bns) { NXOpen.Annotations.Lettering Lettering = balloonnote.GetLetteringPreferences().GetDimensionText(); if (NXFun.GetInheritParent(pmi).Equals(balloonnote) && !pmi.Equals(balloonnote)) { NXFun.EditBalloonNoteSize((NXOpen.Annotations.BalloonNote)pmi, Lettering); } } } else { //找到 改写 NXFun.EditBalloonNote(balloon, listitem.id.ToString(), listitem); } NXFun.SetStringAttr((NXObject)listitem.dimParent, "DISP", listitem.isLabel); NXFun.SetIntegerAttr((NXObject)listitem.dimParent, "ID", listitem.id); } else //普通dimention { //找到IdSymbol 并改写 否则添加 NXOpen.Annotations.IdSymbol idsymbol = NXFun.FindObjectByAttr <NXOpen.Annotations.IdSymbol>("GUID", listitem.guid); if (idsymbol == null) { //没找到 添加 NXFun.AddIdSymbol((NXOpen.Annotations.Annotation)listitem.dim, listitem.id.ToString(), listitem); } else { //找到 改写 NXFun.EditIdSymbol(idsymbol, listitem.id.ToString(), listitem); } NXFun.SetStringAttr((NXObject)listitem.dimParent, "DISP", listitem.isLabel); NXFun.SetIntegerAttr((NXObject)listitem.dimParent, "ID", listitem.id); } } else if (listitem.isLabel == "否") { if (listitem.is_herited) //PMIdimention { NXOpen.Annotations.BalloonNote balloon = NXFun.FindObjectByAttr <NXOpen.Annotations.BalloonNote>("GUID", listitem.guid); if (balloon != null) { NXFun.DeleteBalloonNoteByAttr("GUID", listitem.guid); } NXFun.SetStringAttr((NXObject)listitem.dimParent, "DISP", listitem.isLabel); NXFun.SetIntegerAttr((NXObject)listitem.dimParent, "ID", listitem.id); } else //普通dimention { //找到IdSymbol 并改写 否则添加 NXOpen.Annotations.IdSymbol idsymbol = NXFun.FindObjectByAttr <NXOpen.Annotations.IdSymbol>("GUID", listitem.guid); if (idsymbol != null) { NXFun.DeleteIdSymbolByAttr("GUID", listitem.guid); } NXFun.SetStringAttr((NXObject)listitem.dimParent, "DISP", listitem.isLabel); NXFun.SetIntegerAttr((NXObject)listitem.dimParent, "ID", listitem.id); } } } foreach (DimInfor listitem in LabelFcfList) { string num = "J<C0.5>" + listitem.id.ToString() + "<C>"; if (listitem.isLabel == "是") { if (listitem.is_herited) //Fcf { NXOpen.Annotations.BalloonNote balloon = NXFun.FindObjectByAttr <NXOpen.Annotations.BalloonNote>("GUID", listitem.guid); if (balloon == null) { //没找到 添加 NXFun.SetDisplayState(1); NXOpen.Annotations.BalloonNote balloonnote = NXFun.AddBalloonNote((NXOpen.Annotations.Annotation)listitem.dim, num, listitem); NXFun.SetDisplayState(2); //找到二维继承的BalloonNote并设置大小。 NXOpen.Annotations.PmiAttribute[] bns = Session.GetSession().Parts.Work.PmiManager.PmiAttributes.ToArray(); foreach (NXOpen.Annotations.PmiAttribute pmi in bns) { NXOpen.Annotations.Lettering Lettering = balloonnote.GetLetteringPreferences().GetDimensionText(); if (NXFun.GetInheritParent(pmi).Equals(balloonnote) && !pmi.Equals(balloonnote)) { NXFun.EditBalloonNoteSize((NXOpen.Annotations.BalloonNote)pmi, Lettering); } } } else { //找到 改写 NXFun.EditBalloonNote(balloon, num, listitem); } NXFun.SetStringAttr((NXObject)listitem.dimParent, "DISP", listitem.isLabel); NXFun.SetIntegerAttr((NXObject)listitem.dimParent, "ID", listitem.id); } else //普通DraftingFcf { //找到IdSymbol 并改写 否则添加 NXOpen.Annotations.IdSymbol idsymbol = NXFun.FindObjectByAttr <NXOpen.Annotations.IdSymbol>("GUID", listitem.guid); if (idsymbol == null) { //没找到 添加 NXFun.AddIdSymbol((NXOpen.Annotations.Annotation)listitem.dim, num, listitem); } else { //找到 改写 NXFun.EditIdSymbol(idsymbol, num, listitem); } NXFun.SetStringAttr((NXObject)listitem.dimParent, "DISP", listitem.isLabel); NXFun.SetIntegerAttr((NXObject)listitem.dimParent, "ID", listitem.id); } } else if (listitem.isLabel == "否") { if (listitem.is_herited) //Fcf { NXOpen.Annotations.BalloonNote balloon = NXFun.FindObjectByAttr <NXOpen.Annotations.BalloonNote>("GUID", listitem.guid); if (balloon != null) { NXFun.DeleteBalloonNoteByAttr("GUID", listitem.guid); } NXFun.SetStringAttr((NXObject)listitem.dimParent, "DISP", listitem.isLabel); NXFun.SetIntegerAttr((NXObject)listitem.dimParent, "ID", listitem.id); } else //DraftingFcf { //找到IdSymbol 并改写 否则添加 NXOpen.Annotations.IdSymbol idsymbol = NXFun.FindObjectByAttr <NXOpen.Annotations.IdSymbol>("GUID", listitem.guid); if (idsymbol != null) { NXFun.DeleteIdSymbolByAttr("GUID", listitem.guid); } NXFun.SetStringAttr((NXObject)listitem.dimParent, "DISP", listitem.isLabel); NXFun.SetIntegerAttr((NXObject)listitem.dimParent, "ID", listitem.id); } } } Program.theSession.UpdateManager.DoUpdate(undomark); } catch (System.Exception ex) { UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, ex.Message); } }