자동 Plotting
Program name : ALLPLOT.LSP,
setallplot, aplot.lsp, mkbdr.lsp, plotbdr.lsp
CAD를 막
배우기 시작하던 시절, 자기 손으로 그린 도면이 plotter라는 신기한 녀 석(?)을
통해 한장의 도면으로 태어났을 때, 그 도면을 보고서 감격의 눈물을 흘 리지 않은
CAD사용자는 없었으리라. 그렇다! 화면속에만 존재하던 나의 도면을 세상밖으로 불러내어
나의 오감을 통해 느낄 수 있게 해주는 것이 바로 plotting인 것이다. 하지만 납품날짜를
얼마 남겨 놓지 않고 수백장에 달하는 도면을 plotting 해야하는 상황에선 plotting
또한 고통스런 작업일 뿐 더이상 감격스럽고 성스런 작업이 될 수 없다. 좀더 쉽게
plotting을 할 수는 없을까?
우리의
목표
1. 한개의 파일 안에 여러개의 도면을 그렸을
경우 프로그램이 그 border의 위치 를 인식하여 출력할 수 있어야한다.
2. 또한
여러개의 파일을 스스로 열고 닫으면서 그 안에 있는 도곽들을 찾아서 scale을 인식하여
출력하도록 하면 좋겠다.
제안 하나!ALLPLOT 명령 이용하기
LISP으로
프로그램을 만들어 사용하자. ALLPLOT.LSP의 기능은 - 도곽을 찾는다. (ssget) 기능을 이용하여 block name이
'border'로 시작하는 도곽을 찾음
- 찾은 도곽을 순서대로 plot해준다.
- 도각이 여러개일 때는 plt file의 이름은 dwg name에 순차적으로 번호를 붙 인다.
-
1. Printer셋팅하기 : allplot용 printer와 종이크기, style, offset을 설정합니다.
-
사용예

POPUP메뉴의 DJDG/UTITITY에서 Setallplot icon을 선택하거나 utility toolbar에서 setallplot button을 선택하면 아래 그림과 같은 대화창이 나타난다.

위에서부터 차례로 프린터기종, 종이크기, plotstyle명, offset을 정의해주고 ok버튼을 눌러 프로그램을 종료시킵니다.
프로그램은 djdg방에 allplot.set이란 파일에 위의 정보들을 기록하게 됩니다. allplot.set을 열어보면 아래와 같이 되어있을 것입니다
---- Allplot.set ----
HP LaserJet 4V
A3 297 x 420 mm
acad.ctb
-5,2
이제 allplot을 사용하기 위한 준비는 끝났습니다.
-
2. Allplot사용하기 : 파일안에 있는 도곽들을 찾아서 프린터로 또는 파일로 출력해줍니다.
-
Command: allplot
- Write the plot to a file? ile/< P >lotter: f
- [출력을 파일로 할 것인지 plotter로 할것이지 선택합니다. P를 선택할 경우에는 setallplot에서 설정한 내용이 적용됩니다. 즉 djdg방의 allplot.set
파일에 있는 프린터,종이크기,스타일,offset이 적용됩니다]
- Plot Millimeters=Drawing Units or Fit or ? it/< S >cale/: a3
- [프린트스케일을 설정합니다.
F는 Scale to Fit,
S는 도곽의 스케일대로 출력합니다. 즉 A1에 출력할 때 사용됩니다.
A3는 A3에 정확할 스케일로 출력할 때 적용되는 것으로서 A1을 A3에 출력하게 되므로 정확하게 도곽스케일의 두배스케일 즉 1:100도면은 1:200으로 출력하게 됩니다. 따라서 Scale to Fit와는
달리 출력된 도면의 scale은 정확하게 됩니다.]
- C:\Program Files\ACAD2000\Drawing1 is Plotted
◆ 한개의 파일에 적용할 경우
현재의 DWG파일에 존재하는 모든 border출력할 때
command: ALLPLOT 
F F ← 이렇게만
치면 모든게 끝~
|
◆ 여러개의 파일에 적용할 경우
여러개의 DWG file안에 있는
여러개의 border들을 출력할 때 예를 들어 현재 디렉토리에 TEST1.DWG 와
TEST2.DWG라는 파일이 있고, TEST1.DWG에는 2개의 border가, TEST2.DWG에는 3개의
border가 있다고 하자. 우리는 지금 두개의 파일 안에 있는 모든 border를 plt파일로
만들려한다. ALLPLOT기능을 이용한 작업순서 를 알아보자.
① 우선 notepad등을 이용하여 Script file을 만든다.
Script의 이름은 kkk.scr 이라하자. (Script file의
확장자는 SCR이다.)
open "d:\geo\dwg\d01.dwg" allplot f a3 qsave close
open "d:\geo\dwg\d02.dwg" allplot f a3 qsave close
open "d:\geo\dwg\d03.dwg" allplot f a3 qsave close
|
script파일에 qsave close를 추가한 이유는 allplot할 때 적용한 프린터 정보가 기존파일에 저장된 정보다 다를경우
파일을 닫을때 저장할 것인가를 물어보는 메시지창이 뜨게 됩니다. 이창을 뜨지 않게 하기 위해 qsave를 하고서 파일을 닫는 것입니다.
② AutoCAD를 실행시킨다.
command: script
[대화상자가 나오고 kkk.scr을 선택] 위의 명령을 내렸을 때 컴퓨터가 하는
행동을 차근 차근 쫓아가보자. → script file을 열어보니..
open test1이라는 명령이 나와서 그것을 그대로 실행 한다(실제로 command: 상태에서
open test1 이라고
친것과 같다) → script의 다음 명령인 ALLPLOT이란 명령을 읽어 수행한다(ALLPLOT이란
명령 은 test1.dwg file안의 모든 도곽을 찾아서 plot해준다)
→ 이제 한개의 파일에 대한 임무수행은 끝났다. 현재 directory에 test1.plt, test11.plt가
만들어졌다.
→ ALLPLOT명령을 무사히 끝냈으니 다음 script명령을 읽어 수행한다.
다음 Script명령은 open test2 allplot이다. 앞에서 한 것과 동일한 방법으로 plot을
수행한다. 이제 test2.plt, test21.plt, test22.plt도 만들어졌다.
→ 모든 임무를 무사히 마쳤다. 자~ 집에 갑시다~ 낼 아침에 출근해서 확인만
해보면 되겠죠?
현재 디렉토리에 있는 DWG파일 리스트만들기 |
dir *.dwg /b > ppp.scr
현재디렉토리에 있는 *.dwg파일 list를 ppp.scr이란 파 일에 저장한다.
dir *.dwg /f > ppp.scr (단 4DOS를 사용해야합니다.)
현재 디렉토리에 있는 *.dwg파일의 full path명 list를 ppp.scr이란
파일에 저장한다.(Windows 95의 긴파일 사용시 필요) |
|
제안 두울!APLOT.LSP 이용하기!
위의 기능들은 대부분 DWG FILE내의 모든 도각들을 찾아서 PLOTTING하는 기능들입니다.
하지만 이런 경우가 있습니다. DWG FILE내에 10개의 도각이 있 는데 그중에 3개만
출력하고 싶을 때. 이 때는 ALLPLOT이나 PLOTA1을 사용 하면 낭비가 되겠죠. 이런
상황에는 APLOT.LSP라는 프로그램을 사용할 수 있습 니다. COMMAND: 상태에서 APLOT
하면 도각들을 선택하라고 합니다.
원하는 도각 들을 선택하고
으로 선택을
마치면, 선택한 도각들이 차례로 빤짝(?)이면서 이 름을 붙여주라고 요구합니다.
차례대로 이쁜 이름을 지어주면 PLT FILE을 열심 히 만듭니다.
제안 셋!크기가 다른 도각
자동 출력하기
정식도면의 경우에는 border를 insert하거나 xref로 외부참조하므로 자동플롯프로
그램인 allplot이나 aplot등의 프로그램을 사용할 수 있습니다. 하지만 구조계산
삽도같은 정식도면이 아닌경우에는 그런 프로그램을 사용할 수가 없습니다. MKBDR.LSP와
PLOTBDR.LSP 두 프로그램은 한 쌍으로 작동하는 것으로서 크 기가 정해지지 않는
border들을 자동으로 축력하기 위한 프로그램입니다. 앞의 MKBDR.LSP는 도각을 만들어주는
프로그램이고 뒤의 PLOTBDR.LSP는 그렇게 만들어진 도각들을 찾아서 plot해주는 프로그램입니다.
※참고사항
-
mkbdr.lsp로 border를 만들면 그 border의 이름은 BDR$1, BDR$2, BDR$3.. 등 과 같이
'BDR$'로 시작합니다. border를 계속 만들면 'BDR$' 에 지금까지 만 들어진 border의
마지막번호에 1을 더하여 만들어집니다. - 만일 똑같은 도각들이 여러개 필요하다면
계속해서 mkbdr명령을 이용하는 것 보다 한개만 만들어서 복사해서 사용하는 것이
좋습니다. 왜냐하면 새로만들면 그만큼 메모리를 많이 차지하기 때문입니다.
- plotbdr명령에서 모든 border를 plot하거나 선택된 border만 plot할 수 있습니
다.
사용예
border만들기 MKBDR.LSP
Pick point: {p1} [plot window의 첫점]
Pick Second point: {p2} [plot window의 끝점] → BDR$1이라는 이름의 block만들어짐
Pick point: {p3} [plot window의 첫점]
Pick Second point: {p4} [plot window의 끝점] → BDR$2이라는 이름의 block만들어짐
사용예
만들어진 border 자동출력하기 (모든 도면
출력하기)
All/<Select>: a
→ 모든 도각(BDR$로 시작하는 block) 출력
사용예
만들어진 border 자동출력하기 (선택된 도면
출력하기)
All/<Select>: s
Select object: {출력할 border 선택}
Select object:
[선택끝내기] → 선택된
border만 출력