측정점을 활용한 측정 정보 생성
측정점을 활용한 거리 및 각도 측정 예제
측정점을 활용한 거리 측정
// 조회중인 모델이 있는 경우에만 수행
if (Connector.IsOpenDocument() == false) return;
// 측정점이 없으므로, 선택된 모델의 COG에서 가장 가까운 모델 표면 검색
List<NodeVO> items = Connector.GetSelectedObjects(false);
if (items.Count < 2) return;
// 스타일 설정
Connector.SetMeasurementArrowColor(Color.Red);
Connector.SetMeasurementArrowSize(12);
Connector.SetMeasurementLineColor(Color.Black);
List<Vertex3D> Positions = new List<Vertex3D>();
List<Vertex3D> Directions = new List<Vertex3D>();
for (int i = 0; i < items.Count; i++)
{
float[] pt = Connector.GetPointOnModelNearByCOG(
new int[] { items[i].Index }
);
Positions.Add(new Vertex3D(pt[0], pt[1], pt[2]));
}
// Direction 없는 경우 Parallel (First & Last)
// Z 방향 거리
// Directions.Add(new Vertex3D(0, 0, 1));
Vertex3D OffsetDirection = new Vertex3D(0, 0, 1);
List<int> ReviewID = Connector.AddUserDimensionItem_MultiPointDistance(
Positions, /* 측정 포인트 */
Directions, /* 측정 방향 */
OffsetDirection, /* 측정 표시 방향 */
130.0f, /* 측정 표시 Offset */
3, /* 글자 크기(0~5) */
Color.Black, /* 글자색 */
Color.Yellow, /* 배경색 */
2 /* 소수점 이하 표시 개수 */
);
// 화면 갱신
if (ReviewID.Count != 0)
Connector.EnableRender(true);
Figure 1 : 측정점을 활용한 거리 측정 표시

Figure 2 : 측정 결과 화면 (예)


측정점을 활용한 각도 측정
// 원점
Vertex3D BasePosition = new Vertex3D(123951, 1256, 2018);
// 측정 포인트 1
Vertex3D Position1 = new Vertex3D(143951, 1056, 2018);
// 측정 포인트 2
Vertex3D Position2 = new Vertex3D(163951, 1256, 2018);
int ID = Connector.AddUserDimensionItem_3PointAngle(
BasePosition, /* 원점 */
Position1, /* 측정 포인트 1 */
Position2, /* 측정 포인트 2 */
100f, /* 측정 표시 Offset */
3, /* 글자 크기(0~5) */
Color.Blue, /* 글자색 */
Color.Wheat, /* 배경색 */
2 /* 소수점 이하 표시 개수 */
);