UG NX二次开发(C#)-分析-测量体对象的体积

Posted GimiGimmy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UG NX二次开发(C#)-分析-测量体对象的体积相关的知识,希望对你有一定的参考价值。

1、简要说明

采用NXOpen.net测量体积的二次开发时,是应用MeasureManager空间,即是测量管理空间,查看MeasureManager空间的帮助说明,如下图所示。

这个空间中包含了曲线、曲面、体、角度、距离等类。我们在进行体的计算时,是应用MeasureBodyBuilder,查看其帮助文档说明如下:

这个类是为了测量体积的赋值,获得体积是用MeasureManager.NewMassProperties。

2、测量体积的方法

针对此,我们可以编写测量体积的方法CalculateBodyVolume():

 /// <summary>
        /// 计算体的体积,如果是多个体,则是体积之和
        /// </summary>
        /// <param name="bodies">测量的体对象</param>
        /// <param name="volume">输出体积</param>
        public static void CalculateBodyVolume(Body []bodies,out double volume)
        
            volume = 0;
            NXOpen.NXObject nullNXOpen_NXObject = null;
            NXOpen.MeasureBodyBuilder measureBodyBuilder;
            NXOpen.Part workPart = theSession.Parts.Work;
            measureBodyBuilder = workPart.MeasureManager.CreateMeasureBodyBuilder(nullNXOpen_NXObject);

            NXOpen.BodyDumbRule bodyDumbRule1;
            bodyDumbRule1 = workPart.ScRuleFactory.CreateRuleBodyDumb(bodies, true);
            NXOpen.SelectionIntentRule[] rules1 = new NXOpen.SelectionIntentRule[1];
            rules1[0] = bodyDumbRule1;
            measureBodyBuilder.BodyCollector.ReplaceRules(rules1, false);
            NXOpen.Unit[] volumeUnit1 = new NXOpen.Unit[1];
            NXOpen.Unit unit = (NXOpen.Unit)workPart.UnitCollection.FindObject(UFConstants.UF_UNIT_VOLUME_mm3);
            volumeUnit1[0] = unit;
            NXOpen.MeasureBodies measureBodies;
            measureBodies = workPart.MeasureManager.NewMassProperties(volumeUnit1, 0.99, true, measureBodyBuilder.BodyCollector);
            volume = measureBodies.Volume;

            measureBodies.Dispose();
            measureBodyBuilder.Destroy();
        

11.1.2.3 测量实例
我们在UG NX中创建一个长方体(长宽高均为100mm),选择体,并点击测量按钮,得到如下结果。

测量的体积为1000000mm³:

以上是关于UG NX二次开发(C#)-分析-测量体对象的体积的主要内容,如果未能解决你的问题,请参考以下文章

UG NX二次开发(C#)-分析-测量曲面的面积

UG NX二次开发(C#)-分析-测量曲面的面积

UG NX二次开发(C#)-外部模式-批量删除某些图层中的体对象和曲线对象

UG NX二次开发(C#)-外部模式-批量删除某些图层中的体对象和曲线对象

UG NX二次开发(C#)-Part-根据模型名称获取part的对象

UG NX二次开发(C#)-Part-根据模型名称获取part的对象