본문으로 건너뛰기

IsLabelAlignedOnDimension

Overloads

NameDescription
IsLabelAlignedOnDimension(int nReviewID)2D 객체의 Label이 치수선(Dimension)과 접촉하는지 여부를 반환한다. 현재 각도 측정 객체에 대해서만 기능을 제공한다.

IsLabelAlignedOnDimension(int nReviewID)

public bool IsLabelAlignedOnDimension(int nReviewID)

2D 객체의 Label이 치수선(Dimension)과 접촉하는지 여부를 반환한다. 현재 각도 측정 객체에 대해서만 기능을 제공한다.

Parameters

NameTypeDescription
nReviewIDint리뷰 객체 ID

Returns

TypeDescription
boolLabel이 Dimension과 접촉하는지 여부

Examples

// VIZCore3D.NET Control
private VIZCore3D.NET.VIZCore3DControl vizcore3d;

private void Example()
{
// 3점 각도 측정 추가
Node node = vizcore3d.Object3D.FromDepth(0)[0];

VIZCore3D.NET.Data.Vertex3D angle1_p1 = new VIZCore3D.NET.Data.Vertex3D(node.GetBoundBox().MinX, node.GetBoundBox().MinY, node.GetBoundBox().MinZ);
VIZCore3D.NET.Data.Vertex3D angle1_vertex = new VIZCore3D.NET.Data.Vertex3D(node.GetBoundBox().MaxX, node.GetBoundBox().MinY, node.GetBoundBox().MinZ);
VIZCore3D.NET.Data.Vertex3D angle1_p3 = new VIZCore3D.NET.Data.Vertex3D(node.GetBoundBox().MaxX, node.GetBoundBox().MaxY, node.GetBoundBox().MinZ);

int id = vizcore3d.Review.Measure.AddCustom3PointAngle(angle1_p1, angle1_vertex, angle1_p3);

// 2D 뷰 화면 개체 생성
vizcore3d.Drawing2D.Object2D.Create2DViewObjectWithModelAtCanvasOrigin(Drawing2D_ModelViewKind.CURRENT);

// 3D 뷰 측정 2D 뷰에 측정 추가
vizcore3d.Drawing2D.Measure.Add2DMeasureFrom3DMeasure(new int[] { id });

// 생성된 모든 개체 반환
List<Object2D> list = vizcore3d.Drawing2D.Object2D.GetObjectAllinfoBy2DView();
List<Object2D> angleList = new List<Object2D>();

if (list.Count == 0) return;

// 2D 개체 유형이 각도 인 경우만
foreach (Object2D obj in list)
{
if (obj.Kind == Object2D_Types.MEASURE_ANGLE)
{
angleList.Add(obj);
}
}

if (angleList.Count > 0)
{
int id1 = angleList[0].ID; // 첫 번째 각도 측정 오브젝트 ID

// ----------------------------------------------------------
// [현재 상태 조회] 라벨 정렬 방향 및 자동 정렬 여부 확인
// - GetLabelAlignmentOnDimension : 현재 설정된 가로/세로 앵커 반환
// - IsLabelAlignedOnDimension : true이면 치수호 위 자동 정렬 상태
// ----------------------------------------------------------
vizcore3d.Drawing2D.Measure.GetLabelAlignmentOnDimension(id1, out LabelHorizontalAnchor hAlign1, out LabelVerticalAnchor vAlign1);

bool isAligned1 = vizcore3d.Drawing2D.Measure.IsLabelAlignedOnDimension(id1);

// ----------------------------------------------------------
// [치수호 반지름 조회] GetAngleMeasureDimensionRadius
// 현재 반지름 값 반환
// ----------------------------------------------------------
float r1 = vizcore3d.Drawing2D.Measure.GetAngleMeasureDimensionRadius(id1);

// ----------------------------------------------------------
// [치수호 반지름 변경]
// - SetAngleMeasureDimensionRadius : 기존 반지름의 1.2배로 확대 (조금 더 크게)
// 배율은 목적에 따라 자유롭게 조정 가능
// ----------------------------------------------------------
vizcore3d.Drawing2D.Measure.SetAngleMeasureDimensionRadius(id1, 1.2f * r1);

// ----------------------------------------------------------
// [라벨 정렬 변경]
// - SetLabelAlignmentOnDimension : Right + Top → 치수호 오른쪽 위에 라벨 고정
// ----------------------------------------------------------
vizcore3d.Drawing2D.Measure.SetLabelAlignmentOnDimension(id1, LabelHorizontalAnchor.Right, LabelVerticalAnchor.Top);
}
}