Eyeshot에서 LinearDim을 생성하는 방법을 찾아봐도 자세한 설명이 나오지 않아 조금의 시행 착오를 거쳤습니다.
Eyeshot 도움말을 찾아보면 LinearDim의 생성자는 아래와 같습니다.
Parameters
dimPlane
The dimension plane
extLine1
First extension line point
extLine2
Second extension line point
dimLinePos
Dimension line position. Affects text position when the text cannot fit between extension lines.
textHeight
Text height
여기서 dimPlane을 변경하면 같은 위치의 extLine1, extLine2라도 표시되는 Dimension이 바뀌게 됩니다.
extLine1과 extLine2를 dimPlane의 X축으로 Projection한 거리가 Dimension의 값이 되고,
dimPlane의 Y축 방향으로 extLine1, extLine2에서 지시선이 생깁니다.
Dimension Text는 dimPlane의 법선 방향으로 dimLinePos의 위치에 표시됩니다.
만일 dimPlane의 법선 방향이 반대 방향으로 되면 Dimension Text가 뒤집혀서 표시됩니다.
샘플 코드입니다.
샘플 코드 결과입니다.
Eyeshot 도움말을 찾아보면 LinearDim의 생성자는 아래와 같습니다.
1 2 3 4 5 6 7 | public LinearDim( Plane dimPlane, Point3D extLine1, Point3D extLine2, Point3D dimLinePos, double textHeight ) | cs |
Parameters
dimPlane
The dimension plane
extLine1
First extension line point
extLine2
Second extension line point
dimLinePos
Dimension line position. Affects text position when the text cannot fit between extension lines.
textHeight
Text height
dimPlane은 Dimension이 놓여지는 평면입니다
음... 백문이불여일견이라 아무래도 말이나 글로 설명하는 것보다 그림으로 보여주는 것이 이해하기가 더 쉬울 것 같습니다
하지만 Eyeshot에서는 그림을 제공하지 않아 제가 그려봤습니다.
여기서 dimPlane을 변경하면 같은 위치의 extLine1, extLine2라도 표시되는 Dimension이 바뀌게 됩니다.
dimPlane 변경
extLine1과 extLine2를 dimPlane의 X축으로 Projection한 거리가 Dimension의 값이 되고,
dimPlane의 Y축 방향으로 extLine1, extLine2에서 지시선이 생깁니다.
Dimension Text는 dimPlane의 법선 방향으로 dimLinePos의 위치에 표시됩니다.
만일 dimPlane의 법선 방향이 반대 방향으로 되면 Dimension Text가 뒤집혀서 표시됩니다.
그럼 실제 형상에 LinearDim을 생성해보겠습니다. 아래는 플랜트에서 배관이 지나가는 파이프 랙 형상입니다.
파이프 랙의 X, Y, Z 축으로 LinearDim을 생성한 화면입니다.
파이프 랙의 X, Y, Z 축으로 LinearDim을 생성한 화면입니다.
1 2 3 4 5 6 7 8 9 10 | double TextHeight = 100; double ExtLineLength = 300; var dimPlane = new Plane(Point3D.Origin, Vector3D.AxisX, Vector3D.AxisY); var extLine1 = new Point3D(1000, 0, 0); var dim = new LinearDim(dimPlane, extLine1, -1 * extLine1, new Point3D(0, -ExtLineLength, 0), TextHeight) { LayerName = "Dimension", ColorMethod = colorMethodType.byEntity, Color = Color.Gray }; | cs |
댓글
댓글 쓰기