C# Solidworks二次开发:获取模型、组件、主体的表面积相关API详解

大家好,今天要介绍模型、组件、主体的表面积相关API。

下面是今天要介绍的API:

(1)第一个为SurfaceArea Property (IMassProperty),这个API的含义为获取此模型的表面积,下面是官方的具体解释:

其没有输入参数值,返回值为表面积。

下面是官方使用的例子:

This example shows how to get and override some mass properties of a part.

// -----------------------------------------------------------------------

// Preconditions:

// 1. Ensure the specified document exists.

// 2. Open the Immediate window.

//

// Postconditions: Inspect the Immediate window.

// ----------------------------------------------------------------------

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Forms;

using SolidWorks.Interop.sldworks;

using SolidWorks.Interop.swconst;

using System.Diagnostics;

namespace MassProperty2_CSharp

{

partial class SolidWorksMacro

{

private ModelDocExtension Extn;

private MassProperty2 MyMassProp;

private MassPropertyOverrideOptions OvProp;

private ModelDoc2 swModelDoc;

private double\[\] pmoi;

private double\[\] vValue;

private double\[\] value = new double3;

private int errors;

private int warnings;

private double val;

public void Main()

{

swModelDoc = swApp.OpenDoc6(@"C:\Users\Public\Documents\SOLIDWORKS\SOLIDWORKS 2019\samples\tutorial\advdrawings\98food processor.sldasm", (int)swDocumentTypes_e.swDocASSEMBLY, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors, ref warnings);

Extn = swModelDoc.Extension;

// Create mass properties and override options

MyMassProp = (MassProperty2)Extn.CreateMassProperty2();

OvProp = (MassPropertyOverrideOptions)MyMassProp.GetOverrideOptions();

OvProp.OverrideMass = true;

OvProp.SetOverrideMassValue(100);

double\[\] comArr = new double9;

comArr0 = 0.1677;

comArr1 = 0;

comArr2 = 0;

comArr3 = 0;

comArr4 = 0.21358;

comArr5 = 0;

comArr6 = 0;

comArr7 = 0;

comArr8 = 0.34772;

OvProp.OverrideMomentsOfInertia = true;

OvProp.SetOverrideMomentsOfInertiaValue(0, comArr, "");

// Use document property units (MKS)

MyMassProp.UseSystemUnits = false;

Debug.Print("Mass properties before override");

Debug.Print("");

val = MyMassProp.Mass;

Debug.Print("Mass: " + val);

val = MyMassProp.Volume;

Debug.Print("Volume: " + val);

val = MyMassProp.Density;

Debug.Print("Density: " + val);

val = MyMassProp.SurfaceArea;

Debug.Print("Surface area: " + val);

pmoi = (double\[\])MyMassProp.PrincipalMomentsOfInertia;

Debug.Print("Principal moments of inertiae: Px: " + pmoi0 + ", Py: " + pmoi1 + ", and Pz: " + pmoi2);

vValue = (double\[\])MyMassProp.GetMomentOfInertia(0);

Debug.Print("Moments of inertia: Lxx: " + vValue0 + ", Lxy: " + vValue1 + ", Lxz: " + vValue2 + ", Lyx: " + vValue3 + ", Lyy: " + vValue4 + ", Lyz: " + vValue5 + ", Lzx: " + vValue6 + ", Lzy: " + vValue7 + ", Lzz: " + vValue8);

MyMassProp.SetOverrideOptions(OvProp, (int)swInConfigurationOpts_e.swThisConfiguration, null);

MyMassProp.Recalculate();

Debug.Print("");

Debug.Print("Mass properties after override");

Debug.Print("");

val = MyMassProp.Mass;

Debug.Print("Mass: " + val);

val = MyMassProp.Volume;

Debug.Print("Volume: " + val);

val = MyMassProp.Density;

Debug.Print("Density: " + val);

val = MyMassProp.SurfaceArea;

Debug.Print("Surface area: " + val);

pmoi = (double\[\])MyMassProp.PrincipalMomentsOfInertia;

Debug.Print("Principal moments of inertia: Px: " + pmoi0 + ", Py: " + pmoi1 + ", and Pz: " + pmoi2);

vValue = (double\[\])MyMassProp.GetMomentOfInertia(0);

Debug.Print("Moments of inertia: Lxx: " + vValue0 + ", Lxy: " + vValue1 + ", Lxz: " + vValue2 + ", Lyx: " + vValue3 + ", Lyy: " + vValue4 + ", Lyz: " + vValue5 + ", Lzx: " + vValue6 + ", Lzy: " + vValue7 + ", Lzz: " + vValue8);

}

/// <summary>

/// ''' The SldWorks swApp variable is pre-assigned for you.

/// ''' </summary>

public SldWorks swApp;

}

}

(2)第二个为SurfaceArea Property (IMassProperty2),这个API的含义为获取所选组件或主体的表面积,下面是官方的具体解释:

其没有输入参数值,返回值为表面积。

(3)第三个为SurfaceArea Property (ISustainabilityManufacturing),这个API的含义为获取用于制造当前部件的表面积,下面是官方的具体解释:

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

相关推荐
.痞老板.16 分钟前
java ee--计算机是如何工作的
java·开发语言·java-ee
奇树谦19 分钟前
Qt Quick 图片加载与 GPU 纹理机制详解:QImage、QQuickTextureFactory、QSGTexture 与异步加载
开发语言·qt·系统架构
青梅味猪大肠27 分钟前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统
宝桥南山1 小时前
.NET 11 - 尝试一下Blazor中的新特性SupplyParameterFromTempData
microsoft·微软·c#·asp.net·.net·.netcore
1-1=02 小时前
C# 中 Lambda、Linq 与 Expression
c#·linq
starzy19902 小时前
深入理解Scala可变Map:动态构建场景下的性能与设计权衡
开发语言·scala
zhanghaha13143 小时前
C# 系列教程_7 判断语句(分支)保姆级精讲
开发语言·c#
apcipot_rain3 小时前
C++转Java日记(02)
java·开发语言·c++
杜 硕3 小时前
从零开始的C++生活——第七讲——02
开发语言·c++·生活
zhanghaha13143 小时前
C# 系列教程_8 循环语句 保姆级精讲(面向新手)
开发语言·c#