측정점을 활용한 측정 정보 생성
측정점을 활용한 거리 및 각도 측정 예제
측정점을 활용한 거리 측정
// 조회중인 모델이 있는 경우에만 수행
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 /* 소수점 이하 표시 개수 */
);
Last modified: 04 3월 2024