SolidUtil : Modify功能记录

news/2024/10/22 4:23:51/

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.ppmy.cn/news/1455073.html

相关文章

InfiniGate自研网关实现三

9.网关注册中心服务初始创建 整理整个网关调用链路流程,梳理核心服务。并完成网关中心简单DDD模型结构工程的搭建,与库表连通可以查询接口映射数据。 在前面我已经开发出了一个初具模型的核心通信组件,那么我该如何使用这个组件呢&#xff…

一、写给Android开发者之harmony入门

一、创建新项目 对比 android-studio:ability类似安卓activity ability分为两种类型(Stage模型) UIAbility和Extensionability(提供系统服务和后台任务) 启动模式 1、 singleton启动模式:单例 2、 multiton启动模式&#xff1…

字母异位词分组(Lc49)——计数

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat", …

MapReduce笔记

实现分布式的作用: 通过并行处理提高能力通过复制机制进行容错处理与传感器等物理设备的分布相匹配通过隔离实现安全 难点: 许多并行的部件,他们之间有复杂的相互作用必须应对处理部分故障难以实现性能潜力 容错 1000多台服务器、庞大的网络…

Linux字符设备驱动-详解与实操:驱动架构、设备树、Pinctrl子系统和GPIO子系统、platform、设备树下的platform

如何编写一个驱动程序: (1)确定主设备号 (2)定义自己的file_operations结构体: 包含对应的open(drv_open)/read(drv_read)等设备操作函数,需要到内核中去注册 (3)实现…

每日算法-java

题目来自蓝桥云 // 这是一个Java程序,用于解决最长不下降子序列问题。 // 问题描述:给定一个整数序列,找到最长的子序列,使得这个子序列是不下降的(即相邻的元素不严格递减)。 // 程序使用了动态规划的方法…

Docker 安装部署 postgres

Docker 安装部署 postgres 1、拉取 postgres 镜像文件 [rootiZbp19a67kznq0h0rgosuxZ ~]# docker pull postgres:latest latest: Pulling from library/postgres b0a0cf830b12: Pull complete dda3d8fbd5ed: Pull complete 283a477db7bb: Pull complete 91d2729fa4d5: Pul…

golang系统内置函数整理

go语言中有很多系统内置的函数, 为了方便学习,对系统内置函数的函数定义 入参和返回值做如下整理,以方便学习和记忆。 Go语言系统级别的内置函数不多,但是包含的知识点可不少,是学习go语言说必须要搞明白的基础知识 …