使用ORD打开CAD的平面图以后,发现CAD里面的线元素在ORD里面会有两种类型:
一种是Line,另一种是Complex Chain。
因为我需要根据获取的元素类型来进行下一步的操作,请问这两种类型有什么区别?Complex Chain可以认为是多段线么?
Complex Chain可以由多段基本线性曲线(例如,直线,弧,B样条曲线等)组成,当然Complex Chain里边也可以只包含一段直线。
MS学习资源:
MicroStation Wednesday视频分享
深入探讨MicroStation DGN基本概念系列
一步步学习MicroStation CE Addin开发
一步步学习MicroStation CE MDL开发
请问郭老师,该如何去获取Complex Chain的几何信息呢?
我尝试用如下方法去获取,但是获取不到线段信息:
CurveVector cveVec = CurvePathQuery.ElementToCurveVector(element); cveVec.GetStartEnd(out DPoint3d sP, out DPoint3d eP); List<DPoint3d> ptList = new List<DPoint3d>(); if (cveVec.GetPrimitive(0).TryGetLineString(ptList)) // ptList长度为零 {
}
您这个Complex Chain有可能是一个首尾相连接的封闭图形。提取出的sP和eP是同一个点。
如果不是这个原因的话,请上传您的这个DWG文件供我们分析。仅保留您截图中的这一小块内容即可。
好的,付老师,我把dwg里面的其他元素都删除了,只留下了这个Complex Chain:
我又尝试了一下:
if (cveVec.GetPrimitive(0).TryGetLine(out DSegment3d seg3d)){
}if (cveVec.GetPrimitive(0).TryGetArc(out DEllipse3d arc3d)){
我发现TryGetLine可以返回true,TryGetArc返回的是False。
TryGetLine获取到的seg3d如下:
dwg文件我上传了,麻烦帮忙看看~
02头屯河站站改平面图2.dwg