[vba]CAD도면 작성-문자열 쓰기(DXF)

도면파일(DXF 파일)에 내가 원하는 문자열을 쓰기

작성의도 : 도면 작성 자동화

[vba]Format Function

[문제]
변수를 사용자가 원하는 형식으로 문자열로 출력하기

[설명]
User-Defined String Formats (Format Function) You can use any of the following characters to create a format expression for strings:

Excerpted and translated from Format Function (Visual Basic for Applications)

Character Description
@ 문자 표시자. 문자를 표시하거나, 아니면 공백을 표시한다. 문자열 중에서 골뱅이 ( @ )가 나타나는 위치에 문자가 있으면, 그 문자를 표시한다. 그렇지 않으면 그 자리에 공백을 표시한다. 문자표시자를 우측부터 좌측으로 채워진다. 다만, 느낌표( ! )가 있으면, 좌측부터 우측으로 채운다.
&; 문자 표시자. 문자를 표시하거나, 아니면 아무것도 표시하지 않는다. 문자열 중에서 앰퍼샌드ampersand ( &; )가 나타나는 위치에 문자가 있으면, 그 문자를 표시한다. 그렇지 않으면, 아무 것도 표시하지 않는다. 문자표시자를 우측부터 좌측으로 채워진다. 다만, 느낌표( ! )가 있으면, 좌측부터 우측으로 채운다.
< 소문자로 표시. 모든 문자를 소문자로 표시한다.
> 대문자로 표시. 모든 문자를 대문자로 표시한다.
! 문자표시자의 좌측부터 문자를 채움. 기본은 문자표시자의 우측부터 채운다.

[예제]
세 칸 안에 숫자를 출력한다. 해당 자리에 숫자가 없으면 빈칸으로 처리한다. 오른쪽 정렬로 표시한다.

위 예제의 출력 결과는 다음과 같다.

[FYI]
String.Format Method

[vba] CAD도면 작성 – Line 그리기(DXF)

DXF를 사용하면 고품질의 CAD 파일을 출력할 수 있다. 즉 VBA를 통하여 자동으로 도면을 그릴 수 있다. DXF는 AutoCAD와 호환이 되도록 설계된 파일형식이다.

작성의도 : 도면 작성 자동화

아래의 코드는 여기에 있는 DXF파일을 출력하는 코드이다.

LINE명령어를 처리하는 함수는 다음과 같이 작성할 수 있다.

이와 같은 요령으로 AutoCAD의 line뿐만 아니라 circle, arc, pline 등 모든 도면 요소(drawing entities)를 그릴 수 있다.

[VBA]파일 쓰기

[문제]
-엑셀에서 계산 결과를 텍스트 파일로 저장하고 싶다.

[해법1] Write 함수를 사용 (큰따옴표로 묶인 문자열)

자료의 문자열을 큰따옴표가 있는 텍스트 파일로 쓴다.

이 프로그램의 실행결과는 다음과 같다.

문자열을 큰따옴표로 묶인다는 점을 잊지 말자.

[해법2] Print 함수를 사용 (큰따옴표가 없는 문자열)

이 프로그램의 실행결과는 다음과 같다.

아마도 Print함수를 쓸 경우가 많을 것이다.

[참고]
Excerpted from http://analystcave.com/vba-write-file-vba/

[ubuntu]IP setup

[문제]
서버로 사용하던 컴퓨터를 교체하였다. 그 컴퓨터를 다른 네트워크에 물려서 검사하려 했다. 서버일 때는 고정 IP를 사용하였으나, 자동 IP를 사용해야 했다.

[해결]
ubuntu에서 IP 설정하기

How to know the size of a file, a directory, or a disk

https://askubuntu.com/questions/1224/how-do-i-determine-the-total-size-of-a-directory-folder-from-the-command-line

ls -l, which only displays the size of the individual files in a directory, nor
df -h, which only displays the free and used space on my disks.

The command du “summarizes disk usage of each FILE, recursively for directories,” e.g.,

du -hs /path/to/directory
-h is to get the numbers “human readable”, e.g. get 140M instead of 143260 (size in KBytes)
-s is for summary (otherwise you’ll get not only the size of the folder but also for everything in the folder separately)

migration from ubuntu to mac mini

[문제1]
우분투 서버가 계속 문제를 일으켰다. 하드웨어 문제인 것으로 추정된다.
[해결1]
다른 하드웨어로 옮기기로 했다. 현재 보유중인 맥미니로 옮기기로 했다.

[문제2]
우분투 서버의 database를 백업하기
[해결2]
-ubuntu mysql설치 위치

우분투 서버의 /home/mysql 폴더에 데이터파일들을 두고 실행 폴더 안에 링크를 걸어둔 상태였다.
혹시 내부적인 permission이 문제가 될까봐 sudo 명령으로 폴더를 아래와 같이 묶었다.

[문제3]
데이터베이스를 맥서버로 옮기기
[해결3]
1.맥서버에서 터미널을 통해서 scp로 복사를 한다. 복사할 곳에서 아래 명령어를 실행한다.

2.묶어둔 것을 푼다.

3.맥서버에는 mysql소유자가 _mysql이므로, 소유자를 변경한다.

4.macOS mysql설치 위치에 데이터베이스가 복사된 곳의 링크를 걸어둔다.

[문제4]
웹문서를 맥서버로 옮기기
[해결4]
0.우분투서버에서 홈페이지를 tar로 묶는다.

1.맥서버에서 터미널을 통해서 scp로 복사를 한다. 복사할 곳에서 아래 명령어를 실행한다.

2.묶어둔 것을 푼다.

3.맥서버에는 웹문서소유자가 _www이므로, 소유자를 변경한다.

[ubuntu]boot log files

[문제]
서버에 자꾸 다운되면서 작동을 하지 않는다. 무엇이 문제인지 부팅과정부터 확인하고 싶다.

[해결]
부팅할 때 시스템 차원의 경고나 오류가 발생했는지 확인한다. 확인할 파일은 다음과 같다.

학생 졸업작품

지도학생들이 2017년 건축전에 ‘빛환경 개선’이라는 주제로 졸업작품을 냈다.
문제를 파악하고, 해석프로그램으로 개선안을 도출하는 과정을 거쳤다.