• C# Solidworks二次开发:程序工具界面和选项相关API详解


    大家好,今天要讲的是关于程序工具相关的API介绍。

    下面是要介绍的API:

    (1)第一个为GetAutoPartSimplification,这个API的含义为获取简化配置的指针,下面是官方具体解释:

    其输入参数的类型在上一篇文章中已经介绍过了gtError_e,返回值为指向简化配置的指针。

    (2)第二个为GetOptions,这个API的含义为获取solidworks实用程序选项,下面是官方的具体解释:

    其输入参数的类型如上所示,返回值为指向选项数组的指针。

    (3)第三个为GetToolinterface,这个API的含义为获取solidworks中实用工具的指针,下面是官方的具体解释:

    其输入值有两个,第一个为输入定义工具的ID,如下所示:

    MemberDescription
    gtSWFindReplaceAnnotations

    10

    gtSWThickChk7
    gtSwToolBendSequenceDrawingNot used
    gtSwToolCompBOMs8
    gtSwToolCompDocs0
    gtSwToolFeatDiff1
    gtSwToolFeatPaint6
    gtSwToolGeomCheck3
    gtSwToolGeomDiff2
    gtSwToolPowerSelect4

    第二个输入参数为报错,如上面所示。

    返回值为指向SOLIDWORKS实用工具界面的指针。

    下面是官方使用的例子:

    This example shows how to use the SOLIDWORKS Utilities API to compare geometries in two part documents.

    '---------------------------------------------------------------------------------
    ' Preconditions:
    ' 1. Add the SOLIDWORKS Utilities as an add-in
    '    (in SOLIDWORKS, click Tools > Add-Ins > SOLIDWORKS Utilities).
    ' 2. Add the SOLIDWORKS Utilities interop assembly as a reference
    '    (right-click the project in Project Explorer, click Add Reference > 
    '     browse to install_dir\api\redist > Solidworks.Interop.gtswutilities.dll).
    ' 3. Verify that the specified files exist.
    ' 4. Verify that C:\test\ exists.
    ' 5. Open the Immediate window.
    '
    ' Postconditions:
    ' 1. Creates C:\test\Report\gtReportIndex.htm.
    ' 2. Gets the face and volume comparison statuses.
    ' 3. Examine the Immediate window, graphics area, and 
    '    C:\test\report\gtReportIndex.htm.
    '
    ' NOTE: Because the parts are used elsewhere, do not save changes.
    '--------------------------------------------------------------------------------

    using SOLIDWORKS.Interop.sldworks;

    using SOLIDWORKS.Interop.swconst;

    using SOLIDWORKS.Interop.gtswutilities;

    using System;

    using System.Diagnostics;

    namespace CompareGeometry_CSharp.csproj

    {

        partial class SOLIDWORKSMacro

        {

            public void Main()

            {

                gtcocswUtilities swUtil = default(gtcocswUtilities);

                gtcocswCompareGeometry swUtilCompGeom = default(gtcocswCompareGeometry);

                gtError_e longStatus = default(gtError_e);

                bool bAddToBinder = false;

                bool bOverwrite = false;

                int errorCode = 0;
     

                // Get the SOLIDWORKS Utilities tool interface

                swUtil = (gtcocswUtilities)swApp.GetAddInObject("Utilities.UtilitiesApp");
     

                // Get the CompareGeometry tool

                swUtilCompGeom = (gtcocswCompareGeometry)swUtil.GetToolInterface(2, out errorCode);

                if (!(errorCode == (int)gtError_e.gtNOErr))

                {

                    Debug.Print("Error getting compare geometry tool.");

                }
     

                // Compare the volumes and faces of the specified part documents

                // Save the results to a file in the specified path

                bAddToBinder = false;

                bOverwrite = true;

                string file1 = null;

                string file2 = null;

                int volDiffStatus = 0;

                int faceDiffStatus = 0;           

                file1 = "C:\\Users\\Public\\Documents\\SOLIDWORKS\\SOLIDWORKS 2018\\samples\\tutorial\\swutilities\\bracket_a.sldprt";

                file2 = "C:\\Users\\Public\\Documents\\SOLIDWORKS\\SOLIDWORKS 2018\\samples\\tutorial\\swutilities\\bracket_b.sldprt";

                longStatus = (gtError_e)swUtilCompGeom.CompareGeometry3(file1, "", file2, "", (int)gtGdfOperationOption_e.gtGdfFaceAndVolumeCompare, (int)gtResultOptions_e.gtResultSaveReport, "C:\\test\\Report", bAddToBinder, bOverwrite, ref volDiffStatus,

                ref faceDiffStatus);

                if (!(longStatus == gtError_e.gtNOErr))

                {

                    Debug.Print("Error comparing geometries.");

                }
     

                diffStatus("Volume comparison", volDiffStatus);

                diffStatus("Face comparison", faceDiffStatus);

                // Perform any necessary clean up

                longStatus = (gtError_e)swUtilCompGeom.Close();

            }

            public void diffStatus(string name, int diffCode)

            {

                Debug.Print(name);

                switch (diffCode)

                {

                    case (int)gtVolDiffStatusOptionType_e.gtSuccess:

                        Debug.Print("Succeeded");

                        break;

                    case (int)gtVolDiffStatusOptionType_e.gtNotPerformed:

                        Debug.Print("Not performed");

                        break;

                    case (int)gtVolDiffStatusOptionType_e.gtCanceled:

                        Debug.Print("Canceled");

                        break;

                    case (int)gtVolDiffStatusOptionType_e.gtFailed:

                        Debug.Print("Failed");

                        break;

                    case (int)gtVolDiffStatusOptionType_e.gtIdenticalParts:

                        Debug.Print("Identical parts");

                        break;

                    case (int)gtVolDiffStatusOptionType_e.gtDifferentParts:

                        Debug.Print("Different parts");

                        break;

                    case (int)gtVolDiffStatusOptionType_e.gtNoSolidBody:

                        Debug.Print("No solid body found");

                        break;

                    case (int)gtVolDiffStatusOptionType_e.gtAlreadySaved:

                        Debug.Print("Already saved");

                        break;

                }

                Debug.Print(" ");

            }

            public SldWorks swApp;

        }

    }

    上面就是本篇文章要介绍的三种API,我们下篇文章再见。

  • 相关阅读:
    SpringBoot项目实现发布订阅模式,真的很简单
    废品回收小程序搭建,回收市场的机遇
    如何设置远程服务器对本地服务器免密登录
    QNX: A guide for Realtime programmers
    Linux常见操作问题
    一种基于交叉选择的柯西反向鲸鱼优化算法QOWOA附matlab代码
    【iOS逆向与安全】iOS远程大师:通过H5后台远程查看和协助iPhone设备
    微信小程序-----通用获取输入框的值
    MobTech 秒验常见问题
    springBoot打包踩得坑
  • 原文地址:https://blog.csdn.net/m0_53104033/article/details/137885454