Surface Entities and Complex Entity Instance at STEP-file
Entities of Curve
Hierarchy of Curve
편의상 사용되는 Curve들만 정리
- Line
- Conic
- Circle
- Ellipse
- Bounded Curve
- B-Spline Curve with Knots
Explanation of each entities and ideas to create edge feature for curve related entities
- Line: Start point, End point
- Circle: Start point, Center point, Radius, End point
- Ellipse: Start point, Center point, Radius1, Radius2, End point
- B-Spline Curve with Knots: Start point, [list of control points], [list of knot multiplicity], [list of knots], End point
Entities of Surface
Hierarchy of Surface
- Elementary Surface
- plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface
- Swept Surface
- surface_of_linear_extrusion, surface_of_revolution, surface_curve_swept_surface, fixed_reference_swept_surface
- Bounded Surface
- b_spline_surface, rectangular_trimmed_surface, curve_bounded_surface, rectangular_composite_surface, locally_refined_spline_surface
- Offset Surface
- Surface Replica
OPEN_SHELL, TRIMMED_CURVE는 코드를 이용해서 지워도 괜찮고, Inventor를 이용하여 solid를 제외한 후 지워도 된다.
Explanation of each entities and ideas to create node feature for surface related entities
참고: 아래에서 말하는 축 방향은 축의 위치는 고려하지 않고 orientation만 고려한 벡터 값을 의미함.- Elementary Surface
- Plane: 평면 방정식의 parameter \(a, b, c, d\)
평면은 평면 방정식 \( ax+by+cz+d=0 \)을 이용하여 표현할 수 있다.
한 점 \( (x_0, y_0, z_0) \)을 지나고 법선벡터가 \( \vec{n}= \langle a, b, c \rangle \)이면 평명 방정식 \( a(x-x_0)+b(y-y_0)+c(z-z_0)=0 \)을 얻을 수 있다. 여기에서 식을 전개하고 상수를 따로 모아 \( d=-ax_0-by_0-cz_0 \)라고 하면 위에 있는 식 \( ax+by+cz+d=0 \)을 얻을 수 있다. - Cylindrical Surface: 공간상 xyz위치(plane에 부착된 cylinder 원점), 축 방향, 반지름
Cylindrical surface equation을 이용하여 표현. Equation 자체만 보면(문자만 봤을 때) 원을 나타내는 방정식과 같다. 이는 cyllinder axis의 값이 unit vector이기만 하면 되기 때문이다. 다만, STEP-file을 보면 surface의 위치를 나타내는 entity인 AXIS2_PLACEMENT_3D에서 z-axis의 값에 부호가 들어가 있는데 neural net 학습이 용이하도록 축의 방향을 나타내는 벡터의 z값이 항상 양수가 되도록 표현하자. Cylindrical surface를 유일하게 표현하기 위함이다. - Conical Surface: 공간상 xyz위치, 축 방향, semi-angle
- Spherical Surface: 공간상 xyz위치, 반지름
- Toroidal Surface: 공간상 xyz위치, 회전 축 방향, major-radius(도넛의 반지름), minor-radius(도넛 단면의 반지름)
- Torus의 회전 축 방향을 나타낼 때도 회전 축 방향을 나타내는 벡터의 z값은 항상 양수가 되도록 한다.
- Swept Surface
- Surface of Linear Extrusion: 공간상 xyz위치, extrusion 축 방향
AP214기준, ellipse로 pad하거나 pocket으로 한 형상에만 적용된다. 따라서 하위에 있는 ellipse에 대한 parameter를 전부 feature vector에 넣을 필요는 없을 것 같다. - Surface of Revolution: 생성된 회전 축 위의 점 xyz위치, 회전 축 방향
회전 대상이 되는 edge를 별도로 참조하나, 360도 회전이 아닌 경우 회전을 위해 sketch했던 edge만을 참조하기 때문에 넣지 않았다. 원점을 지나지 않는 기울어진 축을 기준으로 360보다 작게 회전시켰을 때 생성되는 2 set의 단면을 모두 참조하지 않기 때문에 편향된 정보만 이용한다고 생각한다. - Surface of Revolution, Fixed Reference Swept Surface 따로 사용되는 것 같진 않다. 일단 고려하지 않는 것으로 한다. => 최종적으로 Inventor에서 사용되는지 볼트그려서 확인해 보자.
- Bounded Surface
- 아래 세 개의 항목만이 사용된다. 삼상전자 dataset에 한해서 아래 세 개의 entity가 한데 묶여서 사용되며, 다른 dataset에서는 B-Spline Surface with Knots만이 사용되었다.
- B-Spline Surface: Control point들의 공간상 xyz위치
- B-Spline Surface with Knots
- 단일 entity로 사용될 때:
Control point들의 공간상 xyz위치, u_multiplicity, v_multiplicity, u_knot, v_knot - 다른 entity와 묶여서 사용될 때:
u_multiplicity, v_multiplicity - Rational B-spline Surface: Control points들에 대한 weights_data
- Rational B-spline은 knot parameter 대신 control point들에 대한 weights를 나타내는 것으로 표현한다.
- 다른 타입에 비해 data를 처리하는데 난해한 부분은 parameter 개수가 많고 차원이 다르다는 것이다. Parameter 개수 문제는 control point sampling을 통해 해결해 보자.
- control point sampling을 통해 해결해 보자.
Complex Entity Instance
BOUNDED_SURFACE
B_SPLINE_SURFACE
B_SPLINE_SURFACE_WITH_KNOTS
GEOMETRIC_REPRESENTATION_ITEM
RATIONAL_B_SPLINE_SURFACE
REPRESENTATION_ITEM
SURFACE
B_SPLINE_SURFACE
B_SPLINE_SURFACE_WITH_KNOTS
GEOMETRIC_REPRESENTATION_ITEM
RATIONAL_B_SPLINE_SURFACE
REPRESENTATION_ITEM
SURFACE
- 복잡한 경우, 위와 같은 entity들이 하나의 entity에 같이 묶여있다. 여태까지 봐왔던 경험으론 B_SPLINE_SURFACE를 표현할 때 complex entity instance로 표현했다.
- B_SPLINE_SURFACE_WITH_KNOTS의 경우, 다른 entity를 참조할 때도 있으나, B_SPLINE_SURFACE와 함께 complex로 쓰일 때는 정수 값을 갖는다. \(\rightarrow\) knot multiplicity를 나타냄.
- B_SPLINE_SURFACE의 확장판이 B_SPLINE_SURFACE_WITH_KNOTS이기 때문에 complex entity의 feature를 만들어 줄 때, 따로 만들 것이 아니라 하나의 feature를 갖는 entity로 바라보자.
댓글
댓글 쓰기