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

news2025/7/19 17:23:41

大家好,今天要讲的是关于程序工具相关的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,我们下篇文章再见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1604677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ZYNQ-Vitis(SDK)裸机开发之(四)PS端MIO和EMIO的使用

目录 一、ZYNQ中MIO和EMIO简介 二、Vivado中搭建block design 1.配置PS端MIO: 2.配置PS端EMIO: 三、Vitis中新建工程进行GPIO控制 1. GPIO操作头文件gpio_hdl.h: 2.GPIO操作源文件gpio_hdl.c: 3.main函数进行调用 例程开发…

吃鸡游戏msvcp140.dll丢失的解决方法

msvcp140.dll 是一个与 Microsoft Visual C Redistributable 相关的动态链接库(DLL)文件,是 Windows 操作系统中众多应用程序正常运行所必需的关键组件之一。以下是对 msvcp140.dll 文件的总体介绍和msvcp140.dll丢失的多个解决方案分享。 *…

预付费水电表系统厂家怎么选择?

1.预付费水电表系统概述 预付费水电表系统是一种现代化的计量和管理系统,它颠覆了传统的后付费模式,用户需预先支付费用才能使用水电,大大提高了物业管理和用户缴费的效率。该系统主要由智能电表、水表和集中控制管理系统三大部分组成。 2.…

【创建型模式】建造者模式

一、建造者模式概述 建造者模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同得表示。(对象创建型模式)。 建造者模式分析: 1.将客户端与包含多个部件得复杂对象得创建过程分离,客户端无需知道复杂对象…

TCP/IP 协议栈在 Linux 内核中的 运行时序分析

1、Linux内核概述 1.1 Linux内核结构 一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、bai虚拟文件系统和网络接口。 1、内存管理 内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子…

SQL Serve---嵌套查询

定义 嵌套查询:主要用于复杂的查询中。在SQL语言中,一个Select From Where语句称为一个查询块,将一个查询块嵌套在另一个查询的Where子句或Having短语中的查询称为嵌套查询。 子查询的类型 使用别名的子查询 使用IN和NOT IN的子查询 使用比较…

Modelsim自动化仿真脚本(TCL)——简单实例

目录 1. Modelsim与TCL脚本的关系 2.实验文件 2.1设计文件 2.2仿真测试文件 2.3. 脚本文件 3. 实验步骤 3.1. 创建文件夹 3.2. 指定路径 3.3. 创建工程 3.4. 运行命令 3.4. 实验效果 1. Modelsim与TCL脚本的关系 TCL(Tool Command Language)是…

基于机器学习的人脸发型推荐算法研究与应用实现

1.摘要 本文主要研究内容是开发一种发型推荐系统,旨在识别用户的面部形状,并根据此形状推荐最适合的发型。首先,收集具有各种面部形状的用户照片,并标记它们的脸型,如长形、圆形、椭圆形、心形或方形。接着构建一个面部…

我到底应该先学python还是C++?

根据你的情况,我还是建议你继续用Python,因为中学阶段最应该死磕的是算法。 也不需要精通Python,因为编程语言只是工具,能够熟练使用就可以了,而且现在信息学竞赛几乎都已经支持Python了,C已经不是必选项了…

宿舍预付费电控系统

1.系统概述 宿舍预付费电控系统是一种现代化的电力管理解决方案,旨在提高校园或公寓楼的能源效率,同时确保公平、透明的用电管理。通过预付费模式,用户需先充值后用电,避免了后期收费的困扰,也鼓励了节能行为。 2.功…

LangChain LangServe 学习笔记

LangChain LangServe 学习笔记 0. 引言1. LangServe 概述2. 特性3. 限制4. 安装5. 示例应用程序6. OpenAPI文档7. Python SDK 客户端8. Playground9. 聊天可运行页面 0. 引言 使用 LangServe 可以立即将您的LLM应用程序变成 API 服务器。 LangServe 使用 FastAPI 构建&#x…

道合顺传感新品上市!高性能氢气传感器DSB14-G3K-J详解

道合顺传感高性能氢气传感器DSB14-G3K-J正式发布!超强抗干扰能力优势明显。应对氢气安全挑战、高性能氢气传感器国产化、为储能保驾护航。 氢气,作为现今能源领域中的新贵,在储能行业中应用广泛且备受瞩目。但氢气易燃、易爆特性使其在生产、…

鉴权设计(一)———— 登录验证

1、概述 网站系统出于安全性的考虑会对用户进行两个层面的校验:身份认证以及权限认证。这两个认证可以保证只有特定的用户才能访问特定的数据的需求。 本文先实现一个基于jwt拦截器redis注解实现的简单登录验证功能。 2、设计思路 jwt用于签发token。 拦截器用于拦…

PDF被加密无法打印的解决办法

思路很清晰:先解密→再打印 分享四个工具,可以轻松解密PDF: ⭐i love pdf I LOVE PDF是一款免费的PDF网站,界面设计简洁,首页没有广告,但每个功能的操作界面是有广告的,不会影响使用。 部分功…

MAC M1版IDEA热部署JRebel

1、在idea里面安装jrebel插件 2、下载激活工具:ReverseProxy_darwin_amd64 下载地址(Mac早期用户使用Safari下载,不要用Chrome,否则下载之后会把.dms后缀名去掉) 特别注意:M1用户请使用下面的下载&#xff…

ORA-19760: error starting change tracking(btc)

备份时候显示ORA19760 1、使用命令查看参数是否开启 SELECT * FROM v$block_change_tracking;2、未开启状态 3、查询数据文件位置 select * from v$dbfile;路径截止到最后/前面。 4、开启块修改跟踪 alter database enable block change tracking using file …

市场份额第一!博睿数据持续领跑中国APM市场

近日,全球领先的IT市场研究和咨询公司IDC发布《中国IT统一运维软件产品市场跟踪报告,2023H2》。报告显示,2023下半年博睿数据以 17.6%的市场份额蝉联 APM(应用性能监控)市场第一。2023年全年博睿数据以18.8%的市场份额持续领跑中国APM市场。 …

从三大层次学习企业架构框架TOGAF

目录 前言 掌握TOGAF的三个层次 层次1:怎么学? 层次2:怎么用? 层次3:怎么思? 结束语 前言 对于一名架构师来讲,如果说编程语言是知识库层次中的入门石,那么企业架构框架则相当…

基于springboot实现房屋租赁管理系统设计项目【项目源码+论文说明】计算机毕业设计

基于springboot实现房屋租赁管理系统设计演示 摘要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对房屋租赁信息管理混乱&…

【面试经典 150 | 链表】删除链表的倒数第 N 个结点

文章目录 写在前面Tag题目来源解题思路方法一:统计节点个数方法二:双指针 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本…