Vulcan 온톨로지 스키마
Vulcan은 속성 이름 대신 유형 클래스(Type class)로 필드의 역할을 찾습니다. 모든 유형 클래스의 kind는 vulcan이고 아래 표의 식별자는 name입니다. 속성 이름은 조직의 규칙에 맞게 정할 수 있고 한 속성에 다른 앱의 유형 클래스를 함께 붙일 수도 있습니다.
Ontology Manager에서 객체 유형, 액션과 링크를 만들고 해당 속성, 매개변수와 링크 유형에 클래스를 부여합니다. 스키마는 Vulcan 개발에 따라 변경될 수 있으므로 릴리스 후 구성과 계약을 대조해야 합니다.
필수 항목의 의미
객체 속성의 필수 표시는 스키마에 클래스가 있고 저장된 객체에 값도 있어야 한다는 뜻입니다. 액션의 필수 매개변수는 Vulcan이 값을 제공할 수 있게 해당 클래스와 자료형을 가진 입력을 노출해야 합니다. 필수 링크 클래스는 Vulcan이 그 관계를 탐색하는 데 필요합니다.
CAD 객체
| 유형 클래스 name | 필수 | 자료형 | 역할 |
|---|---|---|---|
cad_media_reference | 필수 | Media reference | 지원 모델 파일을 가리킵니다. 파일 확장자로 형식을 판단합니다. |
up_axis | 선택 | String | 위쪽 축. X, Y, Z를 받습니다. 생략하면 GLB/GLTF는 Y, 나머지 지원 형식은 Z입니다. |
model_unit | 선택 | String | Vulcan이 파일 단위를 사용하지 않는 형식의 좌표 단위를 지정합니다. |
model_unit은 OBJ, STL, PLY, DXF, LAS와 LAZ에 사용합니다. GLB, GLTF와 3MF는 파일 형식에서 읽는 단위를 항상 사용하므로 이 속성이 영향을 주지 않습니다.
허용 단위는 m, meter, metre와 mm, millimeter, millimetre입니다. 다른 값은 무시합니다.
Annotation 객체
아래 속성은 모두 필수입니다.
| 유형 클래스 name | 자료형 | 역할 |
|---|---|---|
annotation_id | String | 주석의 고유 식별자 |
annotation_title | String | 짧은 제목 |
annotation_content | String | 본문 |
part_instance_id | String | 주석을 붙일 부품 인스턴스 |
annotation_attachment_x | Double | 모델 좌표의 X |
annotation_attachment_y | Double | 모델 좌표의 Y |
annotation_attachment_z | Double | 모델 좌표의 Z |
annotation_sphere_size | Double | 모델 단위의 마커 반지름. 0이면 점 마커 |
annotation_created_by | String | 작성한 사용자 식별자 |
annotation_intent | String | 마커 색을 정하는 의도 |
annotation_timestamp | Timestamp | 생성 시각 |
의도 값은 none의 회색, primary의 파랑, success의 녹색, warning의 노랑과 danger의 빨강입니다. 새 주석의 기본값은 primary입니다. Vulcan이 심각도나 업무 의미를 강제하지 않으므로 해당 색의 의미는 워크플로에 맞춰 정합니다.
Measurement 객체
다음 네 속성은 모두 필수입니다.
| 유형 클래스 name | 자료형 | 역할 |
|---|---|---|
measurement_id | String | 측정의 고유 식별자 |
measurement_points | Double 배열 | 순서가 있는 3D 점 좌표 |
measurement_created_by | String | 작성한 사용자 식별자 |
measurement_timestamp | Timestamp | 생성 시각 |
점은 [x1, y1, z1, x2, y2, z2, ...] 순서의 평탄한 숫자 배열입니다. 두 점은 6개, 세 점은 9개 숫자로 표현합니다. 중첩 배열이 아니며, 순서대로 잇는 각 구간의 길이를 합쳐 총 거리를 계산합니다.
Section plane 객체
다음 다섯 속성은 모두 필수입니다.
| 유형 클래스 name | 자료형 | 역할 |
|---|---|---|
section_plane_id | String | 절단 평면의 고유 식별자 |
section_plane_position | Double 배열 | 정확히 세 값의 [x, y, z] 위치 |
section_plane_quaternion | Double 배열 | 정확히 네 값의 [x, y, z, w] 쿼터니언 |
section_plane_created_by | String | 작성한 사용자 식별자 |
section_plane_timestamp | Timestamp | 생성 시각 |
저장 액션의 공통 책임
Vulcan은 매개변수 유형 클래스의 조합으로 저장 액션을 찾습니다. 도구가 제공하는 입력 외에 객체의 다른 필수 속성은 액션이 채워야 합니다.
세 액션 모두 객체 ID와 작성자 속성을 액션에서 설정하고, 작성자는 액션을 제출한 사용자로 지정해야 합니다. 주석은 Vulcan이 annotation_timestamp를 제공하지만 측정과 절단 평면의 생성 시각은 액션에서 채워야 합니다.
추가 액션 매개변수에는 Vulcan 유형 클래스가 없어도 됩니다. Workshop 위젯에서 기본값을 제공하거나 사용자 입력으로 노출할 수 있습니다.
Create annotation 입력
| 매개변수 유형 클래스 name | 자료형 | 필수 |
|---|---|---|
annotation_title | String | 필수 |
annotation_content | String | 필수 |
part_instance_id | String | 필수 |
annotation_attachment_x | Double | 필수 |
annotation_attachment_y | Double | 필수 |
annotation_attachment_z | Double | 필수 |
annotation_sphere_size | Double | 필수 |
annotation_intent | String | 필수 |
annotation_timestamp | Timestamp | 필수 |
cad_object | Object reference | 필수 |
좌표와 반지름은 모델 단위를 사용하며 반지름 0은 점 마커입니다. cad_object는 주석이 속한 CAD 객체를 참조합니다.
Create measurement 입력
필수 입력은 measurement_points이며 Double 배열입니다. 객체 속성과 같은 순서의 평탄한 3D 점 배열을 받습니다.
Create section plane 입력
필수 입력은 Double 배열인 section_plane_position과 section_plane_quaternion입니다. 각각 정확히 3개와 4개의 값을 앞의 순서로 받습니다.
CAD와 주석의 링크
주석을 부모 CAD 객체에 연결하는 링크 유형에는 필수 유형 클래스 cad_object를 붙입니다. 이 링크 클래스와 액션의 같은 이름 Object reference 매개변수는 서로 다른 구성 대상입니다.