C# Solidworks二次开发:选择管理器相关的API介绍

今天在讲述主要内容之前,先说一个不太相关的问题。

我之前在其他文章中看到有一些朋友在问为什么获取到的点位数据需要乘以1000进行单位转换,其实原因是这样的,在所有使用的API中如果没有特殊说明,所有的长度单位都是米,角度单位都是弧度,顺手解答一下那位朋友的疑问。

下面开始今天文章的主题:

1、介绍第一个和选择管理器相关的API:GetSelectedObjectCount2 Method (ISelectionMgr)

这个API的解释为:获取所选对象的数目。

2、第二个API为:GetSelectedObject6 Method (ISelectionMgr)

这个API的解释为:获取选择对象,这个我平时用的非常多。

下面是使用的例子:

  public void Main(){ModelDoc2 swModel = default(ModelDoc2);ModelDocExtension swModelDocExt = default(ModelDocExtension);FeatureManager swFeatureManager = default(FeatureManager);MidSurface3 swMidSurfaceFeature = default(MidSurface3);Feature swFeature = default(Feature);SelectionMgr swSelectionMgr = default(SelectionMgr);Face2 swFace = default(Face2);bool status = false;int errors = 0;int warnings = 0;string fileName = null;int count = 0;object[] faces = null;int i = 0;fileName = "C:\\Users\\Public\\Documents\\SOLIDWORKS\\SOLIDWORKS 2018\\samples\\tutorial\\api\\box.sldprt";swModel = (ModelDoc2)swApp.OpenDoc6(fileName, (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors, ref warnings);swModelDocExt = (ModelDocExtension)swModel.Extension;status = swModelDocExt.SelectByID2("", "FACE", -0.0533080255641494, 0.0299999999999727, 0.0131069871973182, true, 0, null, 0);status = swModelDocExt.SelectByID2("", "FACE", -0.0370905424398416, 0, 0.0289438729892595, true, 0, null, 0);swFeatureManager = (FeatureManager)swModel.FeatureManager;swFeatureManager.InsertMidSurface(null, null, 0.0, false);status = swModelDocExt.SelectByID2("Surface-MidSurface1", "REFSURFACE", 0, 0, 0, false, 0, null, 0);swSelectionMgr = (SelectionMgr)swModel.SelectionManager;swFeature = (Feature)swSelectionMgr.GetSelectedObject6(1, -1);swMidSurfaceFeature = (MidSurface3)swFeature.GetSpecificFeature2();count = swMidSurfaceFeature.GetFaceCount();Debug.Print("Number of faces for midsurface feature: " + count);faces = (object[])swMidSurfaceFeature.GetFaces();for (i = faces.GetLowerBound(0); i <= faces.GetUpperBound(0); i++){swFace = (Face2)faces[i];Debug.Print("Area of face " + i + " of midsurface feature: " + swFace.GetArea());}}/// <summary>///  The SldWorks swApp variable is pre-assigned for you./// </summary>public SldWorks swApp;

3、第三个API为:GetSelectedObjectType3 Method (ISelectionMgr)

这个API的解释为:获取选择对象的类型。

下面介绍一个使用的例子:

public void Main()

    {

        ModelDoc2 swModel = default(ModelDoc2);

        bool boolstatus = false;

        SelectionMgr SelMgr = default(SelectionMgr);

        TableAnnotation theTableAnnotation = default(TableAnnotation);

        int SelObjType = 0;

        int TableAnnotationType = 0;

        swModel = (ModelDoc2)swApp.ActiveDoc;

        SelMgr = (SelectionMgr)swModel.SelectionManager;

        SelObjType = SelMgr.GetSelectedObjectType3(1, -1);

        if (SelObjType != (int)swSelectType_e.swSelANNOTATIONTABLES)

        {

            MessageBox.Show("Select a BOM table in the drawing before running this example.");

            return;

        }

        theTableAnnotation = (TableAnnotation)SelMgr.GetSelectedObject6(1, -1);

        TableAnnotationType = theTableAnnotation.Type;

        if (TableAnnotationType != (int)swTableAnnotationType_e.swTableAnnotation_BillOfMaterials)

        {

            MessageBox.Show("Select a BOM table in the drawing before running this example.");

            return;

        }

        Debug.Print("Table before inserting a column...");

        // Display table before inserting a column

        DisplayTableColumnProps(theTableAnnotation);

        // Insert new column

        boolstatus = theTableAnnotation.InsertColumn2((int)swTableItemInsertPosition_e.swTableItemInsertPosition_Last, 0, "New Column", (int)swInsertTableColumnWidthStyle_e.swInsertColumn_DefaultWidth);

        boolstatus = theTableAnnotation.SetColumnType2(theTableAnnotation.ColumnCount - 1, (int)swTableColumnTypes_e.swBomTableColumnType_PartNumber, true);

        Debug.Print(" ");

        Debug.Print("Table after inserting a column...");

        // Display table after inserting a column

        DisplayTableColumnProps(theTableAnnotation);

    }

    public void DisplayTableColumnProps(TableAnnotation theTableAnnotation)

    {

        int ColCount = 0;

        int i = 0;

        string iString = null;

        int ColType = 0;

        string ColTypeString = null;

        string ColTitle = null;

        Debug.Print("Col# " + "Type  " + "Title");

        ColCount = theTableAnnotation.ColumnCount;

        for (i = 0; i <= ColCount - 1; i++)

        {

            ColType = theTableAnnotation.GetColumnType2(i, true);

            ColTypeString = System.Convert.ToString(ColType);

            ColTitle = theTableAnnotation.GetColumnTitle2(i, true);

            iString = System.Convert.ToString(i);

            Debug.Print(iString + "    " + ColTypeString + "  " + ColTitle);

        }

    }

    /// <summary>

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

    /// </summary>

    public SldWorks swApp;

今天介绍的这三个API都是选择管理器相关的API,还是比较常用的。

本篇文章就介绍这些,我们下篇文章再见。

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

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

相关文章

苹果Vision Pro即将量产

据界面新闻消息&#xff0c;苹果公司将在今年12月正式量产第一代MR&#xff08;混合现实&#xff09;产品Vision Pro。苹果公司对Vision Pro寄予了厚望&#xff0c;预计首批备货40万台左右&#xff0c;2024年的销量目标是100万台&#xff0c;第三年达到1000万台。 苹果的供应…

springboot + thymeleaf + layui 初尝试

一、背景 公司运营的同事有个任务&#xff0c;提供一个数据文件给我&#xff0c;然后从数据库中找出对应的加密串再导出来给他。这个活不算是很难&#xff0c;但时不时就会有需求。 同事给我的文件有时是给excel表格&#xff0c;每一行有4列&#xff0c;逗号隔开&#xff0c;…

编译和使用WPS-ghrsst-to-intermediate生成SST

一、下载 V1.0 https://github.com/bbrashers/WPS-ghrsst-to-intermediate/tree/masterV1.5&#xff08;使用过程报错&#xff0c;原因不详&#xff0c;能正常使用的麻烦告知一下方法&#xff09; https://github.com/dmitryale/WPS-ghrsst-to-intermediate二、修改makefile…

【CVE 复现】CVE-2022-0185 fsconfig之整数溢出

影响版本&#xff1a;Linux-v5.1~v5.16.2 测试版本&#xff1a;Linux-5.11.22&#xff0c;由于懒得搞环境&#xff0c;所以直接用的 bsauce 大佬提供的 测试环境 看看 patch&#xff1a; diff --git a/fs/fs_context.c b/fs/fs_context.c index b7e43a780a625b..24ce12f0db32…

ResNeXt(2017)

文章目录 Abstract1. Introductionformer workour work 2. Related Work多分支卷积网络分组卷积压缩卷积网络Ensembling 3. Method3.1. Template3.2. Revisiting Simple Neurons3.3. Aggregated Transformations3.4. Model Capacity 4. Experiment 原文地址 源代码 Abstract 我…

14.Java程序设计-基于Springboot的高校社团管理系统设计与实现

摘要 随着高校社团活动的不断丰富和社团数量的逐渐增加&#xff0c;高校社团管理面临着日益复杂的挑战。为了提高社团管理的效率和透明度&#xff0c;本研究基于Spring Boot框架设计并实现了一套高校社团管理系统。该系统旨在整合社团创建、成员管理、活动发布等多个功能&…

[FPGA 学习记录] 数码管动态显示

数码管动态显示 文章目录 1 理论学习1.1 数码管动态扫描显示原理 2 实战演练2.1 实验目标2.2 程序设计2.2.1 框图绘制2.2.2 数据生成模块 data_gen2.2.2.1 波形绘制2.2.2.2 代码编写2.2.2.3 代码编译2.2.2.4 逻辑仿真2.2.2.4.1 仿真代码编写2.2.2.4.2 仿真代码编译2.2.2.4.3 波…

如何解决el-table中动态添加固定列时出现的行错位

问题描述 在使用el-table组件时&#xff0c;我们有时需要根据用户的操作动态地添加或删除一些固定列&#xff0c;例如操作列或选择列。但是&#xff0c;当我们使用v-if指令来控制固定列的显示或隐藏时&#xff0c;可能会出现表格的行错位的问题&#xff0c;即固定列和非固定列…

el-tree数据量过大,造成浏览器卡死、崩溃

el-tree数据量过大&#xff0c;造成浏览器卡死、崩溃 场景&#xff1a;树形结构展示&#xff0c;数据超级多&#xff0c;超过万条&#xff0c;每次打开都会崩溃 我这里采用的是引入新的插件虚拟树&#xff0c;它是参照element-plus 中TreeV2改造vue2.x版本虚拟化树形控件&…

2024年强烈推荐mac 读写NTFS工具Tuxera NTFS for Mac2023中文破解版

大家好啊&#xff5e;今天要给大家推荐的是 Tuxera NTFS for Mac2023中文破解版&#xff01; 小可爱们肯定知道&#xff0c;Mac系统一直以来都有一个小小的痛点&#xff0c;就是无法直接读写NTFS格式的移动硬盘和U盘。但是&#xff0c;有了Tuxera NTFS for Mac2023&#xff0c;…

正则表达式:字符串处理的瑞士军刀

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

记一次xss通杀挖掘历程

前言 前端时间&#xff0c;要开放一个端口&#xff0c;让我进行一次安全检测&#xff0c;发现的一个漏洞。 经过 访问之后发现是类似一个目录索引的端口。(这里上厚码了哈) 错误案例测试 乱输内容asdasffda之后看了一眼Burp的抓包&#xff0c;抓到的内容是可以发现这是一个…

MuJoCo机器人动力学仿真平台安装与教程

MuJoCo是一个机器人动力学仿真平台&#xff0c;它包括一系列的物理引擎、可视化工具和机器人模拟器等工具&#xff0c;用于研究和模拟机器人的运动和动力学特性。以下是MuJoCo的安装教程&#xff1a; 下载和安装MuJoCo Pro。可以从MuJoCo的官方网站上下载最新版本的安装包。根…

微信小程序 - 创建 ZIP 压缩包

微信小程序 - 创建 ZIP 压缩包 场景分享代码片段导入 JSZip创建ZIP文件追加写入文件测试方法参考资料 场景 微信小程序只提供了解压ZIP的API&#xff0c;并没有提供创建ZIP的方法。 当我们想把自己处理好的保存&#xff0c;打包ZIP保存下来时就需要自己实现了。 分享代码片段…

算法:常见的哈希表算法

文章目录 两数之和判断是否互为字符重排存在重复元素存在重复元素字母异位词分组 本文总结的是关于哈希表常见的算法 哈希表其实就是一个存储数据的容器&#xff0c;所以其实它本身的算法难度并不高&#xff0c;只是利用哈希表可以对于一些场景进行优化 两数之和 class Solut…

Michael.W基于Foundry精读Openzeppelin第41期——ERC20Capped.sol

Michael.W基于Foundry精读Openzeppelin第41期——ERC20Capped.sol 0. 版本0.1 ERC20Capped.sol 1. 目标合约2. 代码精读2.1 constructor() && cap()2.2 _mint(address account, uint256 amount) 0. 版本 [openzeppelin]&#xff1a;v4.8.3&#xff0c;[forge-std]&…

AI智能降重软件大全,免费最新AI智能降重软件

在当今信息爆炸的时代&#xff0c;内容创作者们面临着巨大的写作压力&#xff0c;如何在保持高质量的前提下提高效率成为摆在许多人面前的难题。AI智能降重软件因其独特的算法和功能逐渐成为提升文案质量的得力助手。本文将专心分享一些优秀的AI智能降重软件。 147SEO改写软件 …

【分享】我想上手机器学习

目录 前言 一、理解机器学习 1.1 机器学习的目的 1.2 机器学习的模型 1.3 机器学习的数据 二、学习机器学习要学什么 2.1 学习机器学习的核心内容 2.2 怎么选择模型 2.3 怎么获取训练数据 2.4 怎么训练模型 三、机器学习的门槛 3.1 机器学习的第一道门槛 3.2 机器…

最新版IDEA专业版大学生申请免费许可证教学(无需学校教育邮箱+官方途径+非破解手段)

文章目录 前言1. 申请学籍在线验证报告2. 进入IDEA官网进行认证3. 申请 JB (IDEA) 账号4. 打开 IDEA 专业版总结 前言 当你进入本篇文章时, 你应该是已经遇到了 IDEA 社区版无法解决的问题, 或是想进一步体验 IDEA 专业版的强大. 本文是一篇学生申请IDEA免费许可证的教学, 在学…

unity 2d 入门 飞翔小鸟 小鸟碰撞 及死亡(九)

1、给地面&#xff0c;柱体这种添加2d盒装碰撞器&#xff0c;小鸟移动碰到就不会动了 2、修改小鸟的脚本&#xff08;脚本命名不规范&#xff0c;不要在意&#xff09; using System.Collections; using System.Collections.Generic; using UnityEngine;public class Fly : Mo…