SolidUtil : Modify功能记录

news/2024/5/20 20:24:35

API功能大纲:

namespace Bentley.DgnPlatformNET
{public class Modify : SolidUtil{public Modify();public static BentleyStatus BlendEdges(ref SolidKernelEntity target, SubEntity[] edgesIn, double[] radiiIn, int nEdgesIn, bool propagateSmoothIn);public static BentleyStatus BooleanCut(ref SolidKernelEntity target, CurveVector planarToolIn, CutDirectionMode directionModeIn, CutDepthMode depthModeIn, double distanceIn, bool invertIn, DVector3d defaultNormalIn, uint nodeIdIn);public static BentleyStatus BooleanCut(ref SolidKernelEntity target, CurveVector planarToolIn, CutDirectionMode directionModeIn, CutDepthMode depthModeIn, double distanceIn, bool invertIn, ValueType defaultNormalIn, uint nodeIdIn);public static BentleyStatus BooleanIntersect(ref SolidKernelEntity target, ref SolidKernelEntity[] tools, int nToolsIn);public static BentleyStatus BooleanSubtract(ref SolidKernelEntity target, ref SolidKernelEntity[] tools, int nToolsIn);public static BentleyStatus BooleanUnion(ref SolidKernelEntity target, ref SolidKernelEntity[] tools, int nToolsIn);public static BentleyStatus ChamferEdges(ref SolidKernelEntity target, SubEntity[] edgesIn, double[] values1In, double[] values2In, int nEdgesIn, ChamferMode modeIn, bool propagateSmoothIn);public static BentleyStatus DeleteFaces(ref SolidKernelEntity target, SubEntity[] facesIn, int nFacesIn);public static BentleyStatus DeleteRedundantTopology(ref SolidKernelEntity target);public static BentleyStatus Emboss(ref SolidKernelEntity target, SolidKernelEntity toolIn, bool reverseDirectionIn);public static BentleyStatus HollowFaces(ref SolidKernelEntity target, double defaultDistanceIn, SubEntity[] facesIn, double[] distancesIn, int nFacesIn, StepFacesOption addStepIn);public static BentleyStatus ImprintCurveVectorOnBody(ref SolidKernelEntity target, CurveVector curveVectorIn, ValueType directionIn, bool extendOpenCurvesToEdgeIn);public static BentleyStatus ImprintCurveVectorOnBody(ref SolidKernelEntity target, CurveVector curveVectorIn, DVector3d directionIn, bool extendOpenCurvesToEdgeIn);public static BentleyStatus ImprintWiresOnFace(out SubEntity faceOut, SolidKernelEntity[] wiresIn, bool extendToEdgeIn);public static BentleyStatus OffsetFaces(ref SolidKernelEntity target, SubEntity[] facesIn, double[] distancesIn, int nFacesIn, StepFacesOption addStepIn);public static BentleyStatus SewBodies(out SolidKernelEntity[] sewn, out SolidKernelEntity[] unsewn, ref SolidKernelEntity[] tools, int nToolsIn, double gapWidthBoundIn, int nIterationsIn);public static BentleyStatus SpinBody(ref SolidKernelEntity target, ValueType axisIn, double angleIn);public static BentleyStatus SpinFaces(ref SolidKernelEntity target, SubEntity[] facesIn, int nFacesIn, ValueType axisIn, double angleIn);public static BentleyStatus SweepBody(ref SolidKernelEntity target, ValueType pathIn);public static BentleyStatus SweepBody(ref SolidKernelEntity target, DVector3d pathIn);public static BentleyStatus SweepFaces(ref SolidKernelEntity target, SubEntity[] facesIn, int nFacesIn, ValueType pathIn);public static BentleyStatus SweepFaces(ref SolidKernelEntity target, SubEntity[] facesIn, int nFacesIn, DVector3d pathIn);public static BentleyStatus ThickenSheet(ref SolidKernelEntity target, double frontDistanceIn, double backDistanceIn);public static BentleyStatus TransformBody(ref SolidKernelEntity entityOut, ref DTransform3d transformIn);public static BentleyStatus TransformFaces(ref SolidKernelEntity target, SubEntity[] facesIn, ref DTransform3d translationsIn, int nFacesIn, StepFacesOption addStepIn);public enum CutDepthMode{All = 0,Blind = 1}public enum StepFacesOption{No = 0,Smooth = 1,NonCoincident = 2,All = 3}public enum CutDirectionMode{Forward = 0,Backward = 1,Both = 2}public enum ChamferMode{Ranges = 0,Length = 1,Distances = 2,DistanceAngle = 3,AngleDistance = 4}}
}

API功能明细:

// 将指定的边缘进行混合(例如,圆角处理)  
public static BentleyStatus BlendEdges(  ref SolidKernelEntity target,         // 目标实体  SubEntity[] edgesIn,                 // 要处理的边缘数组  double[] radiiIn,                    // 每个边缘的半径数组  int nEdgesIn,                        // 要处理的边缘数量  bool propagateSmoothIn               // 是否传播平滑效果  
);  // 使用平面工具对目标实体进行布尔切割操作  
public static BentleyStatus BooleanCut(  ref SolidKernelEntity target,             // 目标实体  CurveVector planarToolIn,                 // 平面切割工具  CutDirectionMode directionModeIn,         // 切割方向模式  CutDepthMode depthModeIn,                // 切割深度模式  double distanceIn,                       // 切割距离  bool invertIn,                           // 是否反转切割结果  DVector3d defaultNormalIn,                // 默认法线向量  uint nodeIdIn                            // 节点ID(可能是用于特定上下文或标识)  
);  // 与上一个方法类似,但默认法线向量的数据类型不同  
public static BentleyStatus BooleanCut(  // ... 参数与上一个方法类似,但defaultNormalIn的类型不同 ...  ValueType defaultNormalIn,                // 默认法线向量的值类型  // ... 其余参数相同 ...  
);  // 对目标实体和一系列工具实体进行布尔求交操作  
public static BentleyStatus BooleanIntersect(  ref SolidKernelEntity target,             // 目标实体  ref SolidKernelEntity[] tools,            // 工具实体数组  int nToolsIn                             // 工具实体的数量  
);  // 对目标实体和一系列工具实体进行布尔相减操作  
public static BentleyStatus BooleanSubtract(  // ... 参数与BooleanIntersect类似 ...  
);  // 对目标实体和一系列工具实体进行布尔并集操作  
public static BentleyStatus BooleanUnion(  // ... 参数与BooleanIntersect类似 ...  
);  // 对目标实体的边缘进行倒角处理  
public static BentleyStatus ChamferEdges(  ref SolidKernelEntity target,             // 目标实体  SubEntity[] edgesIn,                     // 要处理的边缘数组  double[] values1In,                      // 第一个倒角值数组  double[] values2In,                      // 第二个倒角值数组  int nEdgesIn,                            // 要处理的边缘数量  ChamferMode modeIn,                      // 倒角模式  bool propagateSmoothIn                   // 是否传播平滑效果  
);  // 从目标实体中删除指定的面  
public static BentleyStatus DeleteFaces(  ref SolidKernelEntity target,             // 目标实体  SubEntity[] facesIn,                     // 要删除的面数组  int nFacesIn                             // 要删除的面的数量  
);  // 从目标实体中删除冗余的拓扑结构  
public static BentleyStatus DeleteRedundantTopology(  ref SolidKernelEntity target              // 目标实体  
);  // 使用工具实体对目标实体进行浮雕处理  
public static BentleyStatus Emboss(  ref SolidKernelEntity target,             // 目标实体  SolidKernelEntity toolIn,                 // 工具实体  bool reverseDirectionIn                   // 是否反转浮雕方向  
);  // 对目标实体的面进行挖空处理  
public static BentleyStatus HollowFaces(  ref SolidKernelEntity target,             // 目标实体  double defaultDistanceIn,                 // 默认挖空距离  SubEntity[] facesIn,                     // 要挖空的面数组  double[] distancesIn,                    // 每个面的挖空距离数组  int nFacesIn,                            // 要挖空的面的数量  StepFacesOption addStepIn                // 挖空面的阶梯选项  
);  // 在目标实体上压印曲线向量  
public static BentleyStatus ImprintCurveVectorOnBody(  ref SolidKernelEntity target,             // 目标实体  CurveVector curveVectorIn,                // 要压印的曲线向量  ValueType directionIn,                    // 压印方向的值类型  bool extendOpenCurvesToEdgeIn             // 是否将开放的曲线延伸到边缘  
);// 将指定的边缘进行混合(例如,圆角处理)  
public static BentleyStatus BlendEdges(  ref SolidKernelEntity target,         // 目标实体  SubEntity[] edgesIn,                 // 要处理的边缘数组  double[] radiiIn,                    // 每个边缘的半径数组  int nEdgesIn,                        // 要处理的边缘数量  bool propagateSmoothIn               // 是否传播平滑效果  
);  // 使用平面工具对目标实体进行布尔切割操作  
public static BentleyStatus BooleanCut(  ref SolidKernelEntity target,             // 目标实体  CurveVector planarToolIn,                 // 平面切割工具  CutDirectionMode directionModeIn,         // 切割方向模式  CutDepthMode depthModeIn,                // 切割深度模式  double distanceIn,                       // 切割距离  bool invertIn,                           // 是否反转切割结果  DVector3d defaultNormalIn,                // 默认法线向量  uint nodeIdIn                            // 节点ID(可能是用于特定上下文或标识)  
);  // 与上一个方法类似,但默认法线向量的数据类型不同  
public static BentleyStatus BooleanCut(  // ... 参数与上一个方法类似,但defaultNormalIn的类型不同 ...  ValueType defaultNormalIn,                // 默认法线向量的值类型  // ... 其余参数相同 ...  
);  // 对目标实体和一系列工具实体进行布尔求交操作  
public static BentleyStatus BooleanIntersect(  ref SolidKernelEntity target,             // 目标实体  ref SolidKernelEntity[] tools,            // 工具实体数组  int nToolsIn                             // 工具实体的数量  
);  // 对目标实体和一系列工具实体进行布尔相减操作  
public static BentleyStatus BooleanSubtract(  // ... 参数与BooleanIntersect类似 ...  
);  // 对目标实体和一系列工具实体进行布尔并集操作  
public static BentleyStatus BooleanUnion(  // ... 参数与BooleanIntersect类似 ...  
);  // 对目标实体的边缘进行倒角处理  
public static BentleyStatus ChamferEdges(  ref SolidKernelEntity target,             // 目标实体  SubEntity[] edgesIn,                     // 要处理的边缘数组  double[] values1In,                      // 第一个倒角值数组  double[] values2In,                      // 第二个倒角值数组  int nEdgesIn,                            // 要处理的边缘数量  ChamferMode modeIn,                      // 倒角模式  bool propagateSmoothIn                   // 是否传播平滑效果  
);  // 从目标实体中删除指定的面  
public static BentleyStatus DeleteFaces(  ref SolidKernelEntity target,             // 目标实体  SubEntity[] facesIn,                     // 要删除的面数组  int nFacesIn                             // 要删除的面的数量  
);  // 从目标实体中删除冗余的拓扑结构  
public static BentleyStatus DeleteRedundantTopology(  ref SolidKernelEntity target              // 目标实体  
);  // 使用工具实体对目标实体进行浮雕处理  
public static BentleyStatus Emboss(  ref SolidKernelEntity target,             // 目标实体  SolidKernelEntity toolIn,                 // 工具实体  bool reverseDirectionIn                   // 是否反转浮雕方向  
);  // 对目标实体的面进行挖空处理  
public static BentleyStatus HollowFaces(  ref SolidKernelEntity target,             // 目标实体  double defaultDistanceIn,                 // 默认挖空距离  SubEntity[] facesIn,                     // 要挖空的面数组  double[] distancesIn,                    // 每个面的挖空距离数组  int nFacesIn,                            // 要挖空的面的数量  StepFacesOption addStepIn                // 挖空面的阶梯选项  
);  // 在目标实体上压印曲线向量  
public static BentleyStatus ImprintCurveVectorOnBody(  ref SolidKernelEntity target,             // 目标实体  CurveVector curveVectorIn,                // 要压印的曲线向量  ValueType directionIn,                    // 压印方向的值类型  bool extendOpenCurvesToEdgeIn             // 是否将开放的曲线延伸到边缘  
);
// 在实体上压印曲线向量  
public static BentleyStatus ImprintCurveVectorOnBody(  ref SolidKernelEntity target, // 目标实体(引用)  CurveVector curveVectorIn, // 曲线向量  DVector3d directionIn, // 方向向量  bool extendOpenCurvesToEdgeIn // 是否将开放曲线扩展到边缘  
);  // 在面上压印线框  
public static BentleyStatus ImprintWiresOnFace(  out SubEntity faceOut, // 输出的面(输出参数)  SolidKernelEntity[] wiresIn, // 输入的线框数组  bool extendToEdgeIn // 是否扩展到边缘  
);  // 偏移面  
public static BentleyStatus OffsetFaces(  ref SolidKernelEntity target, // 目标实体(引用)  SubEntity[] facesIn, // 输入的面数组  double[] distancesIn, // 偏移距离数组  int nFacesIn, // 面的数量  StepFacesOption addStepIn // 添加步骤的选项  
);  // 缝合实体  
public static BentleyStatus SewBodies(  out SolidKernelEntity[] sewn, // 缝合后的实体数组(输出参数)  out SolidKernelEntity[] unsewn, // 未缝合的实体数组(输出参数)  ref SolidKernelEntity[] tools, // 工具实体数组(引用)  int nToolsIn, // 工具实体的数量  double gapWidthBoundIn, // 间隙宽度的界限  int nIterationsIn // 迭代次数  
);  // 旋转实体  
public static BentleyStatus SpinBody(  ref SolidKernelEntity target, // 目标实体(引用)  ValueType axisIn, // 旋转轴  double angleIn // 旋转角度  
);  // 旋转面  
public static BentleyStatus SpinFaces(  ref SolidKernelEntity target, // 目标实体(引用)  SubEntity[] facesIn, // 输入的面数组  int nFacesIn, // 面的数量  ValueType axisIn, // 旋转轴  double angleIn // 旋转角度  
);  // 沿路径扫掠实体  
// 有两个重载版本,分别接受ValueType和DVector3d作为路径参数  
public static BentleyStatus SweepBody(  ref SolidKernelEntity target, // 目标实体(引用)  ValueType pathIn // 路径(ValueType类型)  
);  public static BentleyStatus SweepBody(  ref SolidKernelEntity target, // 目标实体(引用)  DVector3d pathIn // 路径(DVector3d类型)  
);  // 沿路径扫掠面  
// 同样有两个重载版本,分别接受ValueType和DVector3d作为路径参数  
public static BentleyStatus SweepFaces(  ref SolidKernelEntity target, // 目标实体(引用)  SubEntity[] facesIn, // 输入的面数组  int nFacesIn, // 面的数量  ValueType pathIn // 路径(ValueType类型)  
);  public static BentleyStatus SweepFaces(  ref SolidKernelEntity target, // 目标实体(引用)  SubEntity[] facesIn, // 输入的面数组  int nFacesIn, // 面的数量  DVector3d pathIn // 路径(DVector3d类型)  
);  // 加厚片体  
public static BentleyStatus ThickenSheet(  ref SolidKernelEntity target, // 目标实体(引用)  double frontDistanceIn, // 前面加厚距离  double backDistanceIn // 后面加厚距离  
);  // 变换实体  
public static BentleyStatus TransformBody(  ref SolidKernelEntity entityOut, // 输出的实体(引用)  ref DTransform3d transformIn // 变换矩阵(引用)  
);  // 变换面  
public static BentleyStatus TransformFaces(  ref SolidKernelEntity target, // 目标实体(引用)  SubEntity[] facesIn, // 输入的面数组  ref DTransform3d translationsIn, // 变换矩阵(引用),这里可能是笔误,通常称为“变换”而不仅仅是“平移”  int nFacesIn, // 面的数量  StepFacesOption addStepIn // 添加步骤的选项  
);

http://www.mrgr.cn/p/70652384

相关文章

【Matlab-动画-附源码】3分钟教你用Matlab做一个Lorenz动画

lorenz-x-y-z Lorenz三个维度数据 在科研工作中,经常需要将数据可视化以便更好地理解和传达研究成果。 但大家主要放静态图片,而视频或动画通常比静态图片更具吸引力和表现力。AE, Manim太难学,Matlab就可以用来制作动画。 在这篇博客中&…

Golang | Leetcode Golang题解之第69题x的平方根

题目&#xff1a; 题解&#xff1a; func mySqrt(x int) int {if x 0 {return 0}C, x0 : float64(x), float64(x)for {xi : 0.5 * (x0 C/x0)if math.Abs(x0 - xi) < 1e-7 {break}x0 xi}return int(x0) }

QT5带UI的常用控件

目录 新建工程&#xff0c;Qmainwindow带UI UI设计器 常用控件区 Buttons 按钮 containers 容器 控件属性区域 对象监视区 布局工具区 信号与槽区 简单例子1 放置一个按钮控件&#xff0c;改文本为发送&#xff0c;该按键为Button1&#xff1b; 按钮关联信号和…

手动实现简易版RPC(四)

手动实现简易版RPC(四) 往期内容 手动实现简易版RPC&#xff08;一&#xff09;&#xff1a;RPC简介及系统架构 手动实现简易版RPC&#xff08;二&#xff09;&#xff1a;简单RPC框架实现 手动实现简易版RPC(三)&#xff1a;mock数据生成 前言 接上几篇博客我们实现了最…

01-Excel基础操作-学习笔记

01 选择性粘贴一般的复制粘贴,可以直接使用快捷键Ctrl+C 复制,Ctrl+V 粘贴。但是在工作场景中,这样简单的复制粘贴远远不能满足需要。因此,学习了这个选择性粘贴工具。选择性粘贴工具在哪里? 选中单元格区域——复制——鼠标右击——选择性粘贴应用场景一:要求保留原有格…

优化建图

写 \(2-SAT\) 时刷到的,发现好像一点不会,学习下。 1. 线段树优化建图 当一个点与一段区间连边时,暴力连是 \(O(n^2)\) 的。 因为线段树有一个肥肠优秀的性质,一个区间最多被分为 \(O(logn)\) 个节点。 so,我们可以把区间当成放到线段树上,这样是 \(O(nlogn)\) 的。 具体…

[ISITDTU 2019]EasyPHP RCE异或限制

解决一个一直以来的问题,RCE的异或绕过问题。先了解下奇技淫巧吧--> https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html 接下来说说今天的问题,在做异或问题是发现许多payload都是(xxxxx)^(%ff....),这都是怎么来的呢。 现在说说吧,就比如拿_号来说…

【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码

文章目录 一、游戏运行效果二、代码实现2.1 项目搭建2.2 加载我方坦克2.3 加载敌方坦克2.4 添加爆炸效果2.5 坦克大战之音效处理 三、完整代码 一、游戏运行效果 二、代码实现 坦克大战游戏 2.1 项目搭建 本游戏主要分为两个对象&#xff0c;分别是我方坦克和敌方坦克。用户可…

三. Django项目之电商购物商城 -- 校验用户名 , 数据入库

Django项目之电商购物商城 – 校验用户名 , 数据入库 需要开发文档和前端资料的可私聊 一. 路由匹配获得用户名 在注册时 , 用户输入用户名 , 通过ajax请求发送到服务器 , 在路由中设置对应url , 响应视图 , 将用户输入的用户名传入视图 , 与数据库进行校验检查用户名是否重…

Linux nohup 命令

Linux nohup 命令 应用场景 使用 PyCharm 连接服务器跑模型虽然很方便,但是如果遇到网络不佳、PyCharm出BUG、急需转移阵地等情况就只能中断训练,前面的全白跑了。 因此可以尝试直接在服务器上使用命令跑模型,这个命令好说,笨一点的方法直接抄用 PyCharm 运行时输出的命令嘛…

读《如何高效学习》[加] 斯科特扬 笔记

收获颇多,优化了个人笔记整理及日程安排的思维体系, 将各个经验之谈提炼为了逻辑性较好的系统框架。提升了个人学习和工作效率。序言第一部分 整体性学习策略 1 获取 (1)简化 (2)容量 (3)速度 2 理解 3 拓展 深度拓展 横向拓展 纵向拓展 4 纠错 5 应用 测试 信息结…

2023 广东省大学生程序设计竞赛(部分题解)

目录 A - Programming Contest B - Base Station Construction C - Trading D - New Houses E - New but Nostalgic Problem I - Path Planning K - Peg Solitaire A - Programming Contest 签到题&#xff1a;直接模拟 直接按照题目意思模拟即可&#xff0c;为了好去…

实现队列 栈 双端队列

以下都是用list来实现的实现Stack# Implement a Stack in Python class Stack(object):def __init__(self):self.items = []def is_empty(self):return self.items == []def push(self, item):self.items.append(item)def pop(self):return self.items.pop()def peek(self):ret…

微信小程序之搜索框样式(带源码)

一、效果图&#xff1a; 点击搜索框&#xff0c;“请输入搜索内容消失”&#xff0c;可输入关键字 二、代码&#xff1a; 2.1、WXML代码&#xff1a; <!--搜索框部分--><view class"search"><view class"search-btn">&#x1f50d;&l…

数据库加密数据模糊匹配查询技术方案

文章目录 前言沙雕方案内存加载解密密文映射表 常规做法实现数据库加密算法参考 分词组合加密&#xff08;推荐&#xff09; 超神方案总结个人简介 前言 在数据安全性和查询效率之间找到平衡是许多数据管理系统所面临的挑战之一。特别是在涉及加密数据的情况下&#xff0c;如何…

IP协议,网络层

一、IP协议报文 在网络层最主要的协议是IP协议&#xff0c;网络层的主要任务是进行&#xff1a;1.地址管理 2.路由选择 地址管理&#xff1a;使用一套地址体系&#xff0c;描述互联网中每个设备所处的位置。 IP地址有两个版本&#xff0c;1.IPV4 2.IPV6 &#xff0c;IP…

uiautomator2使用方法

一.设备连接 1.usb单设备连接d = u2.connect()2.usb多设备连接d = u2.connect("90bf8faf") # 多台设备填写device即可3.wifi连接d = u2.connect("ip:proxy") # wifi连接设备adb使用wifi连接设备:https://www.cnblogs.com/lihongtaoya/p/17553171.html 二…

W801学习笔记二十:宋词学习应用

前三章完成了唐诗的应用&#xff0c;本章将实现宋词的学习应用。 宋词与唐诗的区别不大&#xff0c;马上开始。 1、我们需要参考前面唐诗的方式&#xff0c;把宋词文本下载下来&#xff0c;并进行格式整理。 W801学习笔记十七&#xff1a;古诗学习应用——上 2、在菜单中添加…

查看、删除数据库

#删除和查询数据库 #查看当前数据库服务器中的所有数据库 show databases #查看hsp_db01数据库的定义信息 show create database `hsp_db01` #在创建数据库,表的时候为了规避关键字,可以用``反引号解决 #删除数据库hsp_db01 drop database hsp_db01

element-ui使用el-date-picker日期组件常见场景

开始 最近一直在使用 element-ui中的日期组件。 所以想对日期组件常用的做一个简单的总结; 1.处理日期组件选择的时候面板联动问题 2.限制时间范围解除两个日期面板之间的联动 我们发现2个日期面板之间其实是有联动关系的; 开始时间面板和结束时间面板始终只能相邻; 不能出…