SolidWorks二次开发系列入门100篇之98、99-分割、保存零件中的实体

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

从这四张图,看了来这个保存实体和分割图标是一样的,可能只是选项不一样,所以这里一起写了,不浪费时间。

经过了几个小时的研究,没搞定。大哭
CreateSaveBodyFeature这个没有api例子,2021上有例子,但只有VBA
https://help.solidworks.com/2021/english/api/sldworksapi/Create_Save_Bodies_Feature_and_Create_Assembly_Example_VB.htm
,但C#里面怎么就是失败,2022上只能建出来空装配体,不知道是api有bug还是啥情况,当然也可能 是我水平不行呀。

所以临时只能间接调用宏来简单实现这个功能了。结果如下图了: 至于宏的参数应该怎么指定,后面再写方案。
当前之前我开发实例中已经用别的办法实现过。其实就是把每个实体单独输出成零件,然后再组装成一个装配。
总结下来,有时候solidworks提供了功能,但api不一定好调用。只能靠自己想办法去处理了
在这里插入图片描述

在这里插入图片描述

          //解决方案: // 在2021中找到一个示例,18版本中测试ok.所以可以采用调用宏//BodiesToAssembly.swp  保存到D\temp下面SldWorks swApp = Utility.ConnectToSolidWorks();var swModel = (ModelDoc2)swApp.ActiveDoc;var swModelDocExt = swModel.Extension;var swSelMgr = (SelectionMgr)swModel.SelectionManager;var swFeatMgr = swModel.FeatureManager;if (swModel.GetType() != (int)swDocumentTypes_e.swDocPART){return;}int err=0;var res= swApp.RunMacro2(RegDllPath("") + @"\BodiesToAssembly.swp", "Macro11", "main", 0, out err);

下面分割的例子拿出来看看,基本上执行正常。

 			SldWorks swApp = Utility.ConnectToSolidWorks();var swModel = (ModelDoc2)swApp.ActiveDoc;var swModelDocExt = swModel.Extension;var swSelMgr = (SelectionMgr)swModel.SelectionManager;var swFeatMgr = swModel.FeatureManager;//Select the cutting toolvar boolstatus = swModelDocExt.SelectByID2("Top Plane", "PLANE", 0, 0, 0, true, 0, null, 0);object vBodyNames = null;object[] bodiesToMark = new Body2[2];string[] bodyNames = new string[2];object[] bodyOrigins = new Vertex[2];//Get bodies that will result from the split operationobject[] vResultingBodies = null;vResultingBodies = (object[])swFeatMgr.PreSplitBody2();swModel.ClearSelection2(true);//Set up the arrays for the post-split operation//If you do not want to assign body origin, set it to nothing so that the default origin is usedbodyOrigins[0] = null;bodyOrigins[1] = null;bodiesToMark[0] = vResultingBodies[0];bodiesToMark[1] = vResultingBodies[1];//Save the first body to a separate part document//Substitute the name of the actual folder where to save the bodybodyNames[0] = "d:\\temp\\Body1.sldprt";//Do not save the second bodybodyNames[1] = "";DispatchWrapper[] preSplitBodies = null;preSplitBodies = (DispatchWrapper[])ObjectArrayToDispatchWrapperArray((bodiesToMark));vBodyNames = bodyNames;DispatchWrapper[] originsToUse = null;originsToUse = (DispatchWrapper[])ObjectArrayToDispatchWrapperArray((bodyOrigins));//Create the Split feature, consuming all split bodiesvar swFeat = (Feature)swFeatMgr.PostSplitBody2((preSplitBodies), true, (originsToUse), (vBodyNames), "");if (((swFeat != null))){Debug.Print("Split feature: " + swFeat.Name);var swSplitBodyFeat = (SplitBodyFeatureData)swFeat.GetDefinition();swSplitBodyFeat.AccessSelections(swModel, null);swSplitBodyFeat.GetSplitBodies(out object bodyVar, out object PathVar, out object FlagVar);swSplitBodyFeat.ReleaseSelectionAccess();Debug.Print("Bodies consumed? " + swSplitBodyFeat.Consume);Debug.Print(" ");}

这个分割的例子没有什么问题,可以用,我了不解释了。唯一的问题就是还不能指定只分割部分实体。

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

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

相关文章

使用Java根据表名导出与导入Sql

前言 很粗糙啊,有很多可以优化的地方,而且也不安全,但是临时用还是OK的,我这个是公司里面的单机软件,不联网。 嗨!我是一名社交媒体增长黑客,很高兴能帮助您优化和丰富关于批量作业导出和导入…

nginx文件共享、服务状态和location模块的配置介绍

一.文件共享功能 1.清空html目录下文件并新建你要共享的文件 2.修改nginx.conf文件,开启autoindex功能 3.测试 二.状态模块 1.修改nginx.conf文件 2.测试 (1)使用刚才定义的IP/nginx_status进行访问 (2)status参…

贝锐蒲公英:快速搭建连锁门店监控体系,赋能企业高效管理

随着国民生活水平的提高和零售场景的变革,消费者对于餐饮类目的消费支出不断增加,线下社区生鲜商超作为下沉市场最主要的消费场景之一,蕴藏着巨大价值机会。 对于线下连锁生鲜超市而言,连锁门店多、员工多,门店管理时会…

FreeRTOS( 任务与中断优先级,临界保护)

资料来源于硬件家园:资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、中断优先级 1、NVIC基础知识 2、FreeRTOS配置NVIC 3、SVC、PendSV、Systick中断 4、不受FreeRTOS管理的中断 5、STM32CubeMX配置 二、任务优先级 1、任务优先级说明 2、任务…

数据结构笔记--链表经典高频题

目录 前言 1--反转单向链表 2--反转单向链表-II 3--反转双向链表 4--打印两个有序链表的公共部分 5--回文链表 6--链表调整 7--复制含有随机指针结点的链表 8--两个单链表相交问题 前言 面经: 针对链表的题目,对于笔试可以不太在乎空间复杂度&a…

SD-MTSP:蜘蛛蜂优化算法SWO求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为,具有搜索速度快,求解精度高的优势。蜘蛛蜂优化算…

Spring Gateway+Security+OAuth2+RBAC 实现SSO统一认证平台

背景:新项目准备用SSO来整合之前多个项目的登录和权限,同时引入网关来做后续的服务限流之类的操作,所以搭建了下面这个系统雏形。 关键词:Spring Gateway, Spring Security, JWT, OAuth2, Nacos, Redis, Danymic datasource, Jav…

竞赛项目 深度学习的口罩佩戴检测 - opencv 卷积神经网络 机器视觉 深度学习

文章目录 0 简介1 课题背景🚩 2 口罩佩戴算法实现2.1 YOLO 模型概览2.2 YOLOv32.3 YOLO 口罩佩戴检测实现数据集 2.4 实现代码2.5 检测效果 3 口罩佩戴检测算法评价指标3.1 准确率(Accuracy)3.2 精确率(Precision)和召回率(Recall)3.3 平均精…

ASP.NET Core中间件记录管道图和内置中间件

管道记录 下图显示了 ASP.NET Core MVC 和 Razor Pages 应用程序的完整请求处理管道 中间件组件在文件中添加的顺序Program.cs定义了请求时调用中间件组件的顺序以及响应的相反顺序。该顺序对于安全性、性能和功能至关重要。 内置中间件记录 内置中间件原文翻译MiddlewareDe…

【容器化】Oceanbase镜像构建及使用

通过该篇文章可以在国产X86-64或ARM架构上构建商业版oceanbase,只需要替换pkg安装包即可。下面截图主要以国产X86-64安装为例,作为操作截图: 镜像构建目录说明 pkg:用来存放安装包及脚本,抛出rpm其他是脚步,这些rpm包…

直接在html中引入Vue.js的cdn来实现Vue3的组合式API

Vue3的组合式API是使用setup函数来编写组件逻辑的。setup函数是Vue3中用于替代Vue2的选项API(如data、methods等)的一种方式。在setup函数中,你可以访问到一些特殊的响应式对象,并且可以返回一些可以在模板中使用的数据、方法等。…

Python编程——谈谈函数的定义、调用与传入参数

作者:Insist-- 个人主页:insist--个人主页 本文专栏:Python专栏 专栏介绍:本专栏为免费专栏,并且会持续更新python基础知识,欢迎各位订阅关注。 目录 一、理解函数 二、函数的定义 1、语法 2、定义一个…

【Linux】内核宏定义解释postcore_initcall,arch_initcall,subsys_initcall

postcore_initcall postcore_initcall(pcibus_class_init) 是一个宏,用于在Linux内核初始化过程中注册一个后期初始化函数。 这个宏的含义如下: postcore_initcall 是一个宏定义,用于指定注册的函数在内核初始化的哪个阶段执行。 pcibus_cl…

deleteDatabase失败处理

准备清理环境时发现deleteDatabase告警,如下图 SYSorcl> startup; ORACLE instance started. Total System Global Area 1.6106E10 bytes Fixed Size 8639712 bytes Variable Size 2449476384 bytes Datab…

CentOS-6.3安装MySQL集群

安装要求 安装环境:CentOS-6.3 安装方式:源码编译安装 软件名称:mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz 下载地址:http://mysql.mirror.kangaroot.net/Downloads/ 软件安装位置:/usr/local/mysql 数据存放位…

HTTP代理授权方式介绍

在网络爬虫过程中,我们经常需要使用HTTP代理来实现IP隐藏、突破限制或提高抓取效率。而为了确保代理的正常使用,并避免被滥用,代理服务商通常会采用授权方式。在本文中,我们将介绍几种常见的HTTP代理授权方式,以帮助你…

Tomcat部署及优化

Tomcat概述 Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个 核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。在中小型系统和并发访问用户不是…

自建hexo博客并将原有的文章发布其上

1、保存粘贴到memo9中的博客文章,并将txt转换成word文档 varPowerShellPath, CommandLine: string; // , ScriptPath begin//save to txtMemo9.Lines.SaveToFile(test.txt);memo10.Lines.SaveToFile(txt2word.ps1);//save as docxPowerShellPath : powershell.exe…

企业有VR全景拍摄的需求吗?能带来哪些好处?

在传统图文和平面视频逐渐疲软的当下,企业商家如何做才能让远在千里之外的客户更深入、更直接的详细了解企业品牌和实力呢?千篇一律的纸质材料已经过时了,即使制作的再精美,大家也会审美疲劳;但是你让客户远隔千里&…

uniapp 微信小程序 订阅消息

第一步&#xff0c;需要先去小程序官方挑选一下订阅模板拿到模板id 订阅按钮在头部导航上&#xff0c;所以 <u-navbar :bgColor"bgColor"><view class"u-nav-slot" slot"left" click"goSubscribe"><image :src"g…