Beispiel #1
0
 //应用回调
 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);
     }
 }