본문으로 건너뛰기

측정점을 활용한 측정 정보 생성

측정점을 활용한 거리 및 각도 측정 예제


측정점을 활용한 거리 측정

// 조회중인 모델이 있는 경우에만 수행
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 : 측정점을 활용한 거리 측정 표시

VIZZARD_DEV_MEASURE_01.png

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

VIZZARD_DEV_MEASURE_02.png

VIZZARD_DEV_MEASURE_03.png


측정점을 활용한 각도 측정

// 원점
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 /* 소수점 이하 표시 개수 */
);