许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Bentley开发备忘:MSTN与ORD SDK的差异对比

Bentley开发备忘:MSTN与ORD SDK的差异对比

阅读数 4
点赞 0
article_banner

工作单位问题:(from Yongan.Fu

MS中的方法单位都是UOR(Unit Of Resolution,这是一个非常大的一个数,基本上会是米的1万倍),而 ORD  中的方法默认单位则是米。

①C# MSCE .NET封装的对象 模型 ,UOR单位;②C# MSCE COM封装的对象模型,主单位(基本上也可以认为是米单位);

③ORDCE 编程对象模型,米单位。

写一个功能最好只在一个对象模型里面写,实在需要用到两个以上的对象模型时,得特别注意单位的 转换 问题

public static void GetClosestPoint(string unparsed)

           {

               DgnModel dgnModel = Session.Instance.GetActiveDgnModel();
Element myElem = dgnModel.FindElementById((ElementId)1259083L);

               CurvePrimitive cp = CurvePathQuery.ElementToCurveVector(myElem).GetPrimitive(0);

           DPoint3d[] spacePoint = {new DPoint3d(4873336313.0,35949337874.0, 294702.0),

                                        new DPoint3d(4873333904.0, 35950189744.0, 213879.0)};
double   fraction;

               DPoint3d curvePoint;

               for (int i = 0; i < 2; i++)

               {

                   cp.ClosestPointBounded(spacePoint[i], out fraction, out curvePoint);

                   LineElement line = new LineElement(dgnModel, null, new DSegment3d(spacePoint[i], curvePoint));

                   line.AddToModel();

               }

           }

第一个参数spacePoint为输入参数(从参数说明前缀[in]可知),即线外的一点

第二个参数fraction为输出参数(从前缀[out]可知)。它表示返回的曲线上的点在整条曲线上的比例(一个介于0.0~1.0之间的实数)。比如起点,fraction=0,中点,fraction=0.5,终点,fraction=1.0。顺便说一下函数名中的这个Bounded就是限定返回点一定要在曲线上的意思,保证fraction不会超出0.0~1.0之间的范围。

第三个参数curvePoint当然就是返回的线上的点了。


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

相关文章
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
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空