NX二次开发 克隆

Posted Bizca 【UGNX 二次开发】

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NX二次开发 克隆相关的知识,希望对你有一定的参考价值。

 NXOpen.UF.UFSession theUfSession = NXOpen.UF.UFSession.GetUFSession();
                try
                {
                    //初始化
                    NXOpen.UF.UFClone.OperationClass operationClass = NXOpen.UF.UFClone.OperationClass.CloneOperation;
                    theUfSession.Clone.Initialise(operationClass);
                    //添加原装配到克隆装配中,有Add Assembly和Add Part两种方法,此处用Add Assembly
                    NXOpen.UF.UFPart.LoadStatus loadStatus;
                    theUfSession.Clone.AddAssembly(selectPath,out loadStatus);
                    //theUfSession.Clone.AddPart(selectPath);
                    //指定默认的克隆方式
                    NXOpen.UF.UFClone.Action action = NXOpen.UF.UFClone.Action.Clone;
                    theUfSession.Clone.SetDefAction(action);
                    //指定默认文件名的方法
                    NXOpen.UF.UFClone.NamingTechnique namingTechnique = NXOpen.UF.UFClone.NamingTechnique.NamingRule;
                    theUfSession.Clone.SetDefNaming(namingTechnique);
                    //定义新装配的克隆命名规则
                    NXOpen.UF.UFClone.NameRuleDef nameRuleDef;
                    nameRuleDef.type = UFClone.NameRuleType.PrependString;
                    nameRuleDef.new_string = "M8";
                    nameRuleDef.base_string = ""; //在NX7.5版本以前,无需下面这句,但是NX7.5以后的版本中调用,必须添加下面这句,否则会显示克隆出错。
                    NXOpen.UF.UFClone.NamingFailures namingFailures;
                    theUfSession.Clone.InitNamingFailures(out namingFailures);
                    theUfSession.Clone.SetNameRule(ref nameRuleDef, ref namingFailures);

                    theUfSession.Clone.SetDefDirectory(@"C:\temp\");


                    //string outputName = "C:\\xxxxx.prt";
                    //theUfSession.Clone.SetNaming(selectPath, UFClone.NamingTechnique.DefaultNaming, outputName);

                    //theUI.NXMessageBox.Show("", NXMessageBox.DialogType.Information, namingFailures.n_failures.ToString());
                    theUfSession.Clone.PerformClone(ref namingFailures);
                    //theUfSession.Clone.Terminate();
                }
                catch (Exception ex1)
                {
                    theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex1.ToString());


                }
                finally
                {
                    theUfSession.Clone.Terminate();
                }

  

以上是关于NX二次开发 克隆的主要内容,如果未能解决你的问题,请参考以下文章

NX二次开发-NX+VS写代码设断点调试技巧

UG NX二次开发(C#)-VS2022配置NX二次开发模板不能正常显示的问题

NX二次开发-UFUN结合NXOPEN开发_常用代码模板

NX4.0的撤销恢复功能基于UG/OPEN GRIP二次开发实现的代码

NX二次开发-自动将NX标题设置为prt路径

UG NX二次开发(C#)--详细讲述编程模板NXOpen_CS_Wizard的代码意义,帮你轻松进入NXOpen(C#)二次开发