기본 콘텐츠로 건너뛰기

4월, 2023의 게시물 표시

PCF 파일 뷰어 제작

PCF 파일은 배관 스풀의 정보를 가지는 텍스트 파일입니다. 아주 단순한 구조를 가지고 있기 때문에 내용을 파악하기 쉽습니다. 파이프의 경우 양 끝점과 BORE 사이즈를 가지고 있기 때문에 쉽게 3D을 생성할 수 있습니다. ELBOW의 경우에는 3D 형상을 그리기위해 몇가지 작업이 필요합니다. 일단 ELBOW는 양 끝점($P_1,P_2$)과 CENTER POINT(교차점),BORE 사이즈 그리고 각도를 가지고 있습니다. ELBOW를 그리는 방법은 먼저 $P_1$에 $\overrightarrow{CENTER - P_1}$을 법선 벡터로 가지는 지름이 BORE 사이즈인 원을 생성합니다. 그리고 생성한 원을 Origin 기준으로 $P_1,CENTER,P_2$로 이루어지는 평면의 법선을 축으로 하여 Angle만큼 회전하면 됩니다. $P_1,CENTER,P_2$로 이루어지는 평면의 법선 벡터는 아래와 같이 구할 수 있습니다. $\overrightarrow{Normal} = \overrightarrow{CENTER - P_1}\times \overrightarrow{P_2 - P_1}$ Origin 좌표를 구하기 위해 먼저 CENTER와 Origin사이의 거리(L)를 구합니다. $L=\frac{l}{sin(Angle/2)},(l = \left|\overrightarrow{CENTER - P_1}\right|)$ 거리를 구했으니 CENTER에서 Origin으로 향하는 방향 벡터만 구하면 Origin의 좌표를 구할 수 있습니다. 방향 벡터는 아래와 같이 구할 수 있습니다. $\overrightarrow{\text{방향 벡터}}=\overrightarrow{M-CENTER}, (M=\frac{P_1+P_2}{2})$ (삼각형 합동 규칙을 통하여 위 내용이 사실임을 확인할 수 있습니다.) 이제 방향 벡터까지 구했으니 Origin의 좌표를 구할 수 있습니다. Origin은 CENTER에서 방향 벡터 방향으로 L만큼 떨어진

사용자 설정값 유지

윈폼 프로그램에서 필요한 정보를 사용자 설정(Properties.Settings.Default)에 저장하여 프로그램 종료 후에도 사용할 수 있도록 합니다. 손쉽게 정보들을 사용자 설정에 저장하여 사용할 수 있는데, 프로그램이 업데이트(버전 정보 변경)되면 이러한 정보들이 초기화 된다는 문제점이 있습니다. 예를 들어 S/W 라이선스 키를 받아 사용자 환경 설정에 저장하여 사용하고 있다가 프로그램이 업데이트되어 재 설치하면 라이선스 키가 초기화가 되어 라이선스 키를 다시 받아야 합니다. 이러한 원인은 사용자 설정 파일이 어셈블리\버전별로 관리되고 있기 때문입니다. 버전 이름의 폴더 안의 user.config 파일에 사용자 설정 데이타가 저장됩니다. 따라서 새로운 프로그램을 설치하면 버전이 변경되기 때문에 기존 데이터를 잃어 버리게 됩니다. 이를 방지하기 위해서 프로그램에서 사용자 설정 데이터에 접근하기 전에 데이터 유효성을 검사하여 데이터가 초기화되었다면 업그레이드를 통해 기존 데이터를 가져와야 합니다. 1 2 3 4 5 6 #region 프로그램 업데이트 후 기존 설정값을 유지하도록 함 if  (Properties.Settings.Default.x_auth_token.Equals( string .Empty)) {     Properties.Settings.Default.Upgrade(); } #endregion Colored by Color Scripter cs 위는 라이선스 키가 비어 있다면 기존 라이선스 키로 복원하는 코드입니다. 프로그램 업그레이드 후에 사용자 설정 데이터가 초기화된다면 위 코드를 적용하여 문제를 해결할 수 있습니다. 참조 링크 : https://www.arclab.com/en/kb/csharp/save-and-restore-position-size-windows-forms-application.html