当前位置: 首页 > news >正文

C# NX二次开发:宏录制实战讲解(第一讲)

今天要讲的是关于NX软件录制宏操作的一些案例。

下面讲如何在NX软件中复制Part体的录制宏。

 NXOpen.Session theSession = NXOpen.Session.GetSession();
    NXOpen.Part workPart = theSession.Parts.Work;
    NXOpen.Part displayPart = theSession.Parts.Display;
    NXOpen.Matrix3x3 rotMatrix1 = new NXOpen.Matrix3x3();
    rotMatrix1.Xx = 0.89306013796526285;
    rotMatrix1.Xy = -0.44496658771914138;
    rotMatrix1.Xz = 0.066695770413509187;
    rotMatrix1.Yx = -0.39632123815418213;
    rotMatrix1.Yy = -0.70777276650451371;
    rotMatrix1.Yz = 0.58479670585809584;
    rotMatrix1.Zx = -0.21300954477535283;
    rotMatrix1.Zy = -0.5486915771251909;
    rotMatrix1.Zz = -0.80843335348466772;
    NXOpen.Point3d translation1 = new NXOpen.Point3d(-52.577957389047107, 41.350418114859622, 62.806893022449373);
    workPart.ModelingViews.WorkView.SetRotationTranslationScale(rotMatrix1, translation1, 0.68000460164672882);
    
    // ----------------------------------------------
    //   菜单:编辑(E)->复制(C)
    // ----------------------------------------------
    workPart.PmiManager.RestoreUnpastedObjects();
    
    // ----------------------------------------------
    //   菜单:编辑(E)->粘贴(P)
    // ----------------------------------------------
    NXOpen.Session.UndoMarkId markId1;
    markId1 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "起点");
    
    NXOpen.NXObject[] features1 = new NXOpen.NXObject[1];
    NXOpen.Features.Brep brep1 = ((NXOpen.Features.Brep)workPart.Features.FindObject("UNPARAMETERIZED_FEATURE(12)"));
    features1[0] = brep1;
    NXOpen.Features.CopyPasteBuilder copyPasteBuilder1;
    copyPasteBuilder1 = workPart.Features.CreateCopyPasteBuilder2(features1);
    
    copyPasteBuilder1.SetBuilderVersion((NXOpen.Features.CopyPasteBuilder.BuilderVersion)(7));
    
    NXOpen.Features.FeatureReferencesBuilder featureReferencesBuilder1;
    featureReferencesBuilder1 = copyPasteBuilder1.GetFeatureReferences();
    
    NXOpen.Point3d origin1 = new NXOpen.Point3d(0.0, 0.0, 0.0);
    NXOpen.Vector3d normal1 = new NXOpen.Vector3d(0.0, 0.0, 1.0);
    NXOpen.Plane plane1;
    plane1 = workPart.Planes.CreatePlane(origin1, normal1, NXOpen.SmartObject.UpdateOption.WithinModeling);
    
    NXOpen.Unit unit1 = ((NXOpen.Unit)workPart.UnitCollection.FindObject("MilliMeter"));
    NXOpen.Expression expression1;
    expression1 = workPart.Expressions.CreateSystemExpressionWithUnits("0", unit1);
    
    NXOpen.Expression expression2;
    expression2 = workPart.Expressions.CreateSystemExpressionWithUnits("0", unit1);
    
    featureReferencesBuilder1.AutomaticMatch(true);
    
    theSession.SetUndoMarkName(markId1, "粘贴特征 对话框");
    
    NXOpen.Features.MatchedReferenceBuilder[] matchedReferenceData1;
    matchedReferenceData1 = featureReferencesBuilder1.GetMatchedReferences();
    
    NXOpen.Session.UndoMarkId markId2;
    markId2 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "粘贴特征");
    
    theSession.DeleteUndoMark(markId2, null);
    
    NXOpen.Session.UndoMarkId markId3;
    markId3 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "粘贴特征");
    
    NXOpen.NXObject nXObject1;
    nXObject1 = copyPasteBuilder1.Commit();
    
    theSession.DeleteUndoMark(markId3, null);
    
    theSession.SetUndoMarkName(markId1, "粘贴特征");
    
    NXOpen.Features.Brep brep2 = ((NXOpen.Features.Brep)nXObject1);
    NXOpen.Expression[] expressions1;
    expressions1 = brep2.GetExpressions();
    
    copyPasteBuilder1.Destroy();

今天要介绍的就是这么多,我们下篇文章再见。

相关文章:

  • 当当网Top500书籍信息爬取与分析
  • CSS transition过渡属性
  • # 交换排序:从冒泡到快速排序的深度解析
  • 全新UI彩虹外链网盘系统源码v5.6/前后端美化模板/整站+模版文件
  • 何时需要import css文件?怎么知道需要导入哪些css文件?为什么webpack不提示CSS导入?(导入css导入规则、css导入规范)
  • 【图像大模型】Stable Diffusion Web UI:深度解析与实战指南
  • istio in action之流量控制与路由
  • 高尔夫基本知识及规则·棒球1号位
  • Linux59 SSH配置前瞻 JumpServer双网卡ping通
  • 基于SSM实现的健身房系统功能实现八
  • uniapp 百家云直播插件打包失败
  • 模板引用、组件基础
  • Python - 如何打包并发布 Python 库到 PyPI
  • LVGL源码学习之渲染、更新过程(2)---无效区域的处理
  • QT事件介绍及实现字体放大缩小(滚轮)
  • 热力图是什么?三分钟学会热力图数据分析怎么做!
  • 23种设计模式-行为型模式之模板方法模式(Java版本)
  • gdb调试0基础教程
  • DAY04:Vue.js 指令与事件处理深度解析之从基础到实战
  • PostgreSQL 18 Beta 1发布,有哪些功能亮点?
  • 云南省安委会办公室:大理州安全生产形势比较严峻,事故总量一直居高不下
  • 习近平会见缅甸领导人敏昂莱
  • 【社论】以法治力量促进民企长远健康发展
  • 商务部:中方愿同各国一道加强合作,促进跨境电商健康可持续发展
  • 公募基金行业迎系统性变革:基金公司业绩差必须少收费
  • 安徽六安原市长潘东旭,已任省市场监督管理局党组书记、局长