ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

UG二次开发 实体转装配零件并将实体属性填写到装配零件中(C#)

2021-11-29 14:01:10  阅读:195  来源: 互联网

标签:装配 BasePart fileNew1 实体 createNewComponentBuilder1 Tag NXOpen 零件 prtTag


 1      /// <summary> 
 2         /// 实体转化为装配
 3         /// </summary>
 4         /// <param name="prtfull">全路径</param>
 5         /// <param name="bodys">实体</param>
 6         /// <param name="SaveBool">是否保存零件</param>
 7         /// <returns>返回prtTag </returns>
 8         public void CreatObjPartToAssembly(string prtfull, Body bodys, bool SaveBool, ref Tag prtTag)
 9         {
10             NXOpen.FileNew fileNew1;
11             fileNew1 = base.theSession.Parts.FileNew();
12             fileNew1.TemplateFileName = "model-plain-1-mm-template.prt";
13             fileNew1.UseBlankTemplate = false;
14             fileNew1.ApplicationName = "ModelTemplate";
15             fileNew1.Units = NXOpen.Part.Units.Millimeters;
16             fileNew1.RelationType = "";
17             fileNew1.UsesMasterModel = "No";
18             fileNew1.TemplateType = NXOpen.FileNewTemplateType.Item;
19             fileNew1.ItemType = "";
20             fileNew1.Specialization = "";
21             fileNew1.SetCanCreateAltrep(false);
22             fileNew1.NewFileName = prtfull;
23             fileNew1.MasterFileName = "";
24             fileNew1.MakeDisplayedPart = false;
25             NXOpen.Assemblies.CreateNewComponentBuilder createNewComponentBuilder1;
26             createNewComponentBuilder1 = workPart.AssemblyManager.CreateNewComponentBuilder();
27             createNewComponentBuilder1.ReferenceSet = NXOpen.Assemblies.CreateNewComponentBuilder.ComponentReferenceSetType.Other;
28             createNewComponentBuilder1.ReferenceSetName = "PART";
29             createNewComponentBuilder1.OriginalObjectsDeleted = false;
30             string name = Path.GetFileNameWithoutExtension(prtfull);
31             createNewComponentBuilder1.NewComponentName = name.ToUpper();
32             bool added1;
33             added1 = createNewComponentBuilder1.ObjectForNewComponent.Add(bodys);
34             createNewComponentBuilder1.NewFile = fileNew1;
35             NXOpen.NXObject nXObject1;
36             nXObject1 = createNewComponentBuilder1.Commit();
37             Tag occTag = nXObject1.Tag;
38             Tag InstanceTag = theUfSession.Assem.AskInstOfPartOcc(occTag);
39             prtTag = theUfSession.Assem.AskChildOfInstance(InstanceTag);
40             NXOpen.BasePart bpart = (NXOpen.BasePart)NXObjectManager.Get(prtTag);
41             if (SaveBool)
42             {
43                 bpart.Save(BasePart.SaveComponents.True, BasePart.CloseAfterSave.False);
44             }
45             NXObject.AttributeInformation[] allAttrs = bodys.GetUserAttributes();
46             foreach (NXObject.AttributeInformation attrinfo in allAttrs)
47             {
48                 bpart.SetUserAttribute(attrinfo, Update.Option.Now);
49             }
50             createNewComponentBuilder1.Destroy();
51         }

 

标签:装配,BasePart,fileNew1,实体,createNewComponentBuilder1,Tag,NXOpen,零件,prtTag
来源: https://www.cnblogs.com/lpserver1102/p/15619096.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有