许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Bentley ORD(OpenRoads Designer)二次开发(BIM)第二节:基础接口分享

Bentley ORD(OpenRoads Designer)二次开发(BIM)第二节:基础接口分享

阅读数 3
点赞 0
article_banner


前言

本系列文章第一节参考 Bentley ORD(openroads designer) 二次开发(BIM)第一节 环境配置

本节主要进行ORD SDK通用方法的介绍,包括创建基本的元素、SDK常用命名空间及相关接口的使用示例,如有不妥,欢迎大家在评论区修改补充

1、命名空间

主要介绍最基本的三个命名空间,分别是Bentley.GeometryNET、Bentley.DgnPlatformNET.Elements、MdlUtility。

Bentley.GeometryNET

该命名空间主要定义Bently开发包中最基本的图形元素,包括角度、二维点、三维点、二维向量、三维向量等元素,这些元素是构成后续复杂图形(包括线段、弧段、复杂链、面等)的必须的基本元素。
  • 角度Angle // 弧度与角度转换 Angle.DegreesToRadians(double degress); Angle.RadiansToDegrees(double radians); // 常量 Angle.PI; // 常用三角函数 Angle.Acos; Angle.Asin; Angle.Atan;Angle.Atan2; // 角度自身三角函数运算 Angle angle = new Angle(); angle.Cos; angle.Sin; angle.Tan; 一键获取完整项目代码csharp运行1234567891011121314
  • 二维点 DPoint2d // 定义 DPoint2d point = new DPoint2d(double ax, double ay); // 运算 是否同一个点 DPoint2d.Equals(DPoint2d left, DPoint2d right);// 静态方法 bool Equals(DPoint2d other); // 实例方法 // 运算 求距离 double Distance(DPoint2d target); 一键获取完整项目代码csharp运行1234567
  • 三维点 DPoint3d // 定义 DPoint3d point = new DPoint3d(double ax, double ay, double az); // 运算 是否同一个点 DPoint3d.Equals(DPoint3d left, DPoint3d right);// 静态方法 bool Equals(DPoint3d other); // 实例方法 // 运算 求距离 double Distance(DPoint3d target); 一键获取完整项目代码csharp运行1234567
  • 二维向量 DVector2d // 定义 DVector2d v = new DVector2d(DPoint2d origin, DPoint2d target); DVector2d v = new DVector2d(double ax, double ay); 一键获取完整项目代码csharp运行123
  • 三维向量 DVector3d // 定义 DVector3d v = new DVector3d(DPoint3d origin, DPoint3d target); DVector3d v = new DVector3d(double ax, double ay, double az); 一键获取完整项目代码csharp运行123

Bentley.DgnPlatformNET.Elements

该命名空间主要定义在绘图空间形成的各类元素,其所有类均继承于Element。常见的元素类型包括线段、弧段、复杂多段线、面、复杂面及各类三维立体元素等,是构成各类复杂模型的基本元素。
  • 线段 LineElement 线段元素,由两点组成的绘图元素,创建方法见下一个小节
  • 弧段 ArcElement 弧段元素,由圆心、起终点或角度绘制而成,创建方法见下一个小节
  • 其他元素创建方法与线 弧段创建方法一致,具体见下一小节内容。
  • 通用元素类 Element

MdlUtility

该命名空间主要提供绘制元素的创建工具,具体包括二维空间元素工具TwoDElementTools、三维空间元素工具ThreeDElementTools,主要用于创建空间各种元素,具体如下:
  • TwoDElementTools // 创建圆弧 CreateArcElement1(DPoint3d startPoint, DPoint3d centerPoint, DPoint3d endPoint, bool isMajor);// 起点、终点、圆心,major暂时未弄清楚 CreateArcElement2(DPoint3d CenterPoint, double PrimaryRadius, double SecondaryRadius, DMatrix3d Rotation, double StartAngle, double SweepAngle);// 圆心、主半径、第二半径、旋转法线、初始角度、圆弧角度 // 创建线元素 CreateLineElement1(List<DPoint3d> managedPoints);// 线段折点 CreateLineElement2(DPoint3d startPoint, DPoint3d endPoint);// 线段起终点 // 创建面元素 CreateShapeElement1(List<DPoint3d> managedPoints, MsdFillMode FillMode);// 多边形折点、填充模式 // 创建复杂链 CreateComplexLineElement(List<Element> eles);// 首尾相接的元素列表 // 创建复杂面 CreateComplexShapeElement(List<Element> eles, MsdFillMode FillMode);// 根据首尾相接的元素列表,创建多边形元素 /***************以上函数返回类型均为Element********************/ ​ // 获取元素起终点 GetStartAndEndPoint(Element curve, ref DPoint3d StartPoint, ref DPoint3d EndPoint); 一键获取完整项目代码csharp运行12345678910111213141516
  • ThreeDElementTools // TODO List // 三维空间实体元素创建工具暂不做详细介绍,后续会根据开发情况逐步补充完善 一键获取完整项目代码csharp运行12

2、项目预备

本系列文章基于隧道设计断面绘制项目为实例进行经验总结及分享,过程中会用到以上介绍的相关命名空间及接口函数,同时还需要有一定额数学几何分析能力,主要包含以下: 点、线、面关系,相切、相交等等 三角函数应用 相似三角形原理 法向、矩阵、向量等概念 三维几何空间概念

注:断面设计参数复杂多变,本项目会根据不同的设计参数定制开发一套通用的、灵活的断面绘制算法以适用不同种类的断面设计过程

关注以下公众号,关注各种技术文章,获取本系列后续推送与分享


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空