본문으로 건너뛰기

AddNoteSurfaceByPosition

public int AddNoteSurfaceByPosition(Vertex3D surface, Vertex3D position)

지시점의 좌표를 텍스트 박스에 표기하는 표면 노트 추가.

Remarks​

사용자 텍스트가 아니라 지시점 좌표가 표기되는 노트를 만듦. 표기는 항상 좌표에서 생성되므로 제목을 따로 주지 않음.
표기 대상(사용자 텍스트 / 좌표)은 생성 시점에 정해지며 이후 서로 전환하는 수단은 제공되지 않음 —
일반 텍스트 노트가 필요하면 AddNoteSurface 를 사용.
보정 성분을 지정하면 반영 ON 상태에서 지시 좌표 + 보정 벡터 가 표기되고, OFF 면 지시 좌표가 표기됨.
좌표 표시 형식(좌표계·단위·소수 자릿수·표시 축)은 제품의 좌표 표시 설정을 따름.
전제조건 — 모델이 열려 있어야 함.

Parameters​

NameTypeDescription
surfaceVertex3D지시할 표면점(설계점). 이 좌표가 표기 대상
positionVertex3D텍스트 박스(라벨) 위치

Returns​

TypeDescription
int생성된 노트 아이디(ID). 실패 시 -1

Examples​

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

private void Example()
{
// 전제조건 — 모델이 열려 있어야 노트를 모델 좌표계 위에 만들 수 있음.
if (vizcore3d.Model.IsOpen() == false) return;

VIZCore3D.NET.Data.Vertex3D surface = new VIZCore3D.NET.Data.Vertex3D(1000.0f, 0.0f, 500.0f);
VIZCore3D.NET.Data.Vertex3D label = new VIZCore3D.NET.Data.Vertex3D(1500.0f, 0.0f, 900.0f);

// 좌표를 표기하는 노트 생성. 이 시점 표기는 지시점 좌표.
int id = vizcore3d.Review.Note.AddNoteSurfaceByPosition(surface, label);
if (id <= 0) return;

// 보정 성분 목록. Root Gap 과 건조 마진을 같은 방향의 성분 두 개로 지정.
// 방향은 크기가 무시되고 방향만 쓰이므로 이동량은 각 성분의 크기 합(= 12) 이 됨.
List<VIZCore3D.NET.Data.CorrectionTerm> terms = new List<VIZCore3D.NET.Data.CorrectionTerm>();
terms.Add(new VIZCore3D.NET.Data.CorrectionTerm(8.0f, new VIZCore3D.NET.Data.Vector3D(0.0f, 0.0f, 1.0f))); // Root Gap
terms.Add(new VIZCore3D.NET.Data.CorrectionTerm(4.0f, new VIZCore3D.NET.Data.Vector3D(0.0f, 0.0f, 1.0f))); // 건조 마진

vizcore3d.Review.Note.SetCorrectionTerms(id, terms);

// 반영 ON — 표기가 (지시 좌표 + 보정) 으로 바뀜.
vizcore3d.Review.Note.SetCorrectionApplied(id, true);

// 표기 문자열을 해석하지 않고 좌표를 직접 조회.
VIZCore3D.NET.Data.Vertex3D basePos = vizcore3d.Review.Note.GetCorrectionBasePosition(id);
VIZCore3D.NET.Data.Vertex3D applied = vizcore3d.Review.Note.GetCorrectionAppliedPosition(id);

// 반영 OFF — 표기가 지시 좌표로 돌아감.
vizcore3d.Review.Note.SetCorrectionApplied(id, false);
}