이학봉의 AutoCAD part1 현대 사회의 Data 처리 등에 있어서 많은 분야에서 Computer를 이용하고 있으며, 그중 도면 관리를 위해 CAD라는 특수한 Program을 이용하여 전에 많은 양의 보관용 자료를 단지 Disk 몇 장에 보관함으로서 편집의 용이성과, 자료 보관 관리의 편리성을 갖출 수 있게 되었으며, 이제는 설계사무실에서 CAD는 선택이 아닌 필수로서 위치를 확고히 다지고 있다.
이러한 시점에서 CAD관련 교육 기관의 증가와 많은 양의 서적들로 인하여 자칫 미래 설계를 위해 CAD를 공부하려는 이들에게 혼란을 초래하고 있으며, 혹 자는 스스로를 CAD에 있어서 독보적인 존재로 CAD에 있어서 정석이 있는 것처럼 말하기도 한다. 하지만, CAD에 있어서 정석은 CAD 자체에 있는 것이 아닌 실무에 있어서 자신에게 필요한 방법이 바로 정석임을 인식하지 못한 체 자신의 주장만을 고집하며, 다른 이들에게 그 방법을 주입하려 한다.
사실 이러한 잘못된 관점으로 인하여 실질적으로 CAD를 처음 공부하려는 사람들이 피해를 보고 있으며, 이에 따른 전반적인 원인은 가르치는 사람과 상업성을 띈 서적들이라 할 수 있다.
CAD에서 정석대로 배우는 것을 말하라면 도면을 그리기 위한 기초 지식과, 도면 에 맞는 적절한 명령어 사용을 통하여 효율적으로 관리함에 있어 수작업 보다 빠른 업무 처리 속도와 Data 관리의 용이성 등을 들 수 있다.
보통 CAD 상에서 좌측 하단의 좌표 값이 2,2이고, 한 변의 길이가 2인 정사각형을 만드는 방법은 단일 명령으로 옵션 포함하여 40여가지 방법이 있다.
하지만, 그중 어떤 것이 정석이라 말하라 하면 모두가 정석이다.
그중 자신에게 맞는 방법을 찾아 개발하고 노력하면서 자신에게 맞는 방법을 이용하기만 하면 된다.
이러한 점에 있어서 지금 올려지는 내용 또한 정석이라 말할 수 없음을 밝혀 드립니다.
단지, 지금 올려지는 자료는 책이나 기타 교육 기관에서 거의 다루어지지 않는 내용으로서 이것을 공부하였을 경우 CAD 명령에 대한 확실한 이해를 할 수 있다는 확신과 처음 캐드를 배울 때부터의 시행착오에 비추어 이것을 공부한 사람과 하지 않은 사람의 도면 처리 능력이 많게는 3배 이상의 차이를 보이는 것을 확인하였기에 조금이나마 도움이 되었으면 하는 바람으로 이 글을 쓰게 되었습니다.
이 글은 CAD를 공부하는 사람 및 처음 공부하려는 사람을 위해 쓰여진 관계로 여러 가지의 눈높이가 다를 수 있음으로 견문을 넓히는 기회 및 무슨 목적으로 사용하든지 캐드는 도구일 뿐임을 절대 잊지 않았으면 한다.
그리구 캐드관련 공부를 할 때 조급하면 머리만 아프니깐 천천히 느긋하게 쉬어가면서 하면 좋을거라 봐요
......학봉 생각 ♥
CAD의 세대
제 1세대
도면 (Drawing) : 2D 평면상에 Edge들을 투영하여 표현. 일반적인 엔티티(Line, Circle, arc, text)들을 입력할 수 있고, 출력할 수 있다.
제 2세대
와이어 프레임(wire-frame) : 3D공간에 edge들을 표현한 것. 화면을 회전하여 2D view를 추출할 수 있다.
제 3세대
서피스 (surface) : Wire-frame의 edge들을 수학적 공식하에 연결한 것. 쉐이딩(shading) 된 이미지를 추출할 수 있다.
제 4세대
솔리드 (solid) : 서피스 내부에 대한 정보를 가지고 있어 물성치(중량, 부피, 표면적, 관성 모멘트...)를 구할 수 있고, 간섭 검사등을 할 수 있다.
WIRE FRAME, SURFACE, SOLID
WIRE
FRAME
정의 : 공간상에 점들을 지정하고 이것을 연결함. 정의는 이러한 방법으로 생성된 edge로 구현
장점 : 최소의 정보만으로 원하는 형상을 구현
시스템 구축이 쉽다.
단점 : 구현하려는 모델은 형상이 간단하고 명확해야만 한다.
경계 정보나 또는 부피에 대한 정보가 없다.
물성치 계산과 해석이나 가공으로의 연장 작업이 불가능하다.
제품 : 스케치나 도면 생성의 수준
SURFACE
정의 : 간단히 설명하면 와이어 프레임의 에지를 수학적으로 넓이를 부여하는 것.
부드러운 곡면을 생성하거나 또는 NC tool path 경로를 생성하기 위하여 많이 사용
(현재는 위와 같은 부분을 솔리드로 처리할 수 있는 프로그램이 많이 있다. ex, UG)
장점 : 자동으로 Tool-Path를 생성을 할 수 있다. (2D, 2.5D의 경우에는 wire-frame으로 처리를 할 수 있고, 3D의 경우에는 솔리드로 처리를 할 수도 잇다.)
컴퓨터내에서 가상적인 목-업을 만들어 실사화 할 수 있다.
단점 : 물성치 계산이 불가능하다. (중량, 관성 모메트... )
만일 모든 면이 논리적으로 닫혀있다면 부피나 표면적은 계산을 할 수 있을 것이다.
FEA에서 shell 메시는 생성을 할 수 있지만 솔리드 메시는 생성을 할 수 없다.
제품 : CATIA, UG, Alias...
적용 : CAM이나 CG
SOLID
정의 : 간단히 설명하면 서피스를 이용하여 일정 영역을 닫고, 부피에 대한 정의를 하는 것.
서피스의 정보에 제품 내/외부의 정보를 추가로 가지고 있음.
장점 : 물성치 계산을 할 수 있다.
FEA에서 솔리드 메시를 생성할 수 있다.
부품간 간섭 검사를 할 수 있다.
서피스 모델러와 마찬가지로 가상적인 목업을 생성하고 실사화 할 수 있다.
NC tool-path 생성 및 시뮬레이션을 해 볼 수 있다.
단점 : 많은 정보를 가지고 있고, 논리적으로 완전히 채워진 모델만 허용을 함.
많은 정보를 가지고 있다는 것은 가상 메모리, 파일 크기, 속도등에서 한계를 드러낼 경우가 많다.
제품 : UG, Pro/E, Solid Edge, SolidWorks, Parasolid
기능 : 기본적인 형상 + 불리언 연산
(근래 발표되고 있는 캐드들은 불리언 연산을 하지 않는다고 하지만 명령이 없다는 것이고, 내부적으로는 불리언 작업을 하고 있다고 생각을 하는 것이 좋다.)
서피스 이동을 이용한 기능 (Sweeping)
기존 모델 변경의 기능 : 라운딩 (블렌딩 또는 필렛)
경계 조건을 이용한 모델링 (Boundary Modeling)
Feature-Based Modeling
솔리드 모델링의 장점
본 내용은 일반적인 이론적인 내용에 치우치기 쉽기 때문에 Handbook of Solid Modeling에 나온 Eaton Corp.를 예로 들었습니다.
2D DB의 문제
첫째, 만일 도면이 변경되거나 또는 수정되어 정면도가 수정되었을 때 측면도, 평면도 등을 모두 수동으로 수정하여야 한다. 이때 추가로 오류가 발생할 수 있다. 하지만 솔리더 모델링을 할 경우에는 이러한 뷰가 몇 개 또는 몇 백개라고 하더라도 자동으로 수정을 해 주기 때문에 최소한 오류가 발생할 염려는 없다.
둘째, 치수를 변경해도 실제 형상이 변경되지 않기 때문에 도면의 오류가 발생한다. 만일 이렇게 작업된 도면을 IGES등으로 하청업체나 또는 발주 업체에 제출하였을 경우에는 추가적인 오류가 발생할 수밖에 없다. 하지만 솔리더 모델링을 할 경우에는 치수를 변경하면 자동으로 형상이 변경되므로 이러한 오류를 미리 막을 수 있다.
셋째, 대부분의 제품에서 두께까 있는 경우 이러한 부분을 2D에서는 제대로 표현을 할 수 없다. 만일 형상이 극단적으로 간단하면 가능하겠지만 면과 면이 만날 경우에는 설계자가 정확한 투시를 할 수 없기 때문이다.
설계 변경을 위한 도면 작업
2D CAD에서 도면 변경이 일어날 경우 각각의 엔티티의 연계성이 없어 작업을 처음부터 다시해야 하는 경우도 많이 발생한다. 하지만 솔리드 모델링에서는 엔티티와 엔티티 그리고 피쳐와 피쳐, 부품과 부품간에 연계성을 부여할 수 있으므로 최소한의 작업만으로 도면 변경을 할 수 있다.
2D 기능의 부족
첫째, 2D CAD에서 단면도를 생성할 경우 설계자는 단면도를 생성할 때마다 형상을 처음부터 투상을 해야 한다. 많은 시간과 설계 오류가 발생하는 부분이다. 하지만 솔리드 모델링은 대부분 자동으로 처리를 해 주기 때문에 설계 시간과 정밀도에서 많은 효과가 기대된다.
둘째, 2D로 설계를 할 경우 제품 물성치에 관련된 자료가 없어 설계자가 제품에 대한 정확한 판단을 내리기 힘들지만 솔리드 모델링은 이러한 부위를 간단히 처리할 수 있다.
제품의 정보와 도면과의 연계
만일 2D CAD로 설계를 한다면 현재 조립도 도면내에 몇 개의 부품이 있는지 각각의 부품은 어떤 즉, 제품명, 재질, 수량, 물성치등을 가지고 있지 않다. 물론 특수 목적으로 개발된 3'rd party 프로그램이 있지만 각 회사의 업무 특성을 만족해 주지 못하고 있지만 대부분의 솔리드 모델링 시스템에서는 이러한 문제를 해결하고 있다.
생산과 관련된 부분
사실 아무리 간단한 제품이라도 2차원 도면으로는 형상을 완벽히 표현하기가 힘들다.
제품을 개발한 설계 담당자가 아닌 도면 검토, 자재-구매, 가공, 품질 검사(QC), 조립 및 승인의 작업에서 도면의 오판으로 인한 오류가 발생할 수 있지만 솔리드 모델링 시스템으로 작업을 할 경우 형상에 대한 어떤 투상이라도 가능하기 때문에 2D CAD로 작업한 제품에 비하여 오류를 비교적 줄일 수 있다. 또, 사출 제품이나 주물의 경우 필수적으로 필요한 빼기 구배를 2D CAD로는 정확하게 표현하기가 힘들다. 제품의 조립 지시서나 또는 품질 검사등에 필요한 분해도를 2D CAD에서는 처음부터 작업을 다시 해야하지만 대부분의 솔리드 모델링 시스템에서는 이러한 분해도를 자동-반자동으로 생성할 수 있다. 복잡한 주물 제품(복잡한 곡면이 많다.)을 가공할 때 2D CAD에서는 Jig나 Fixture가 정확하게 설계하기가 힘들다. 하지만 솔리드 모델링 시스템을 사용할 경우 제품과 Fixture간 간섭이 일어나고 있는지 아니면 얼마의 허공이 있는지를 쉽게 검사할 수 있다.
NC tool-path를 생성할 경우 기존 2D CAD의 데이터를 이용해서는 2.5D밖에 되지 않지만 CAM 시스템이 지원하는 한 솔리드 모델링 시스템에서 만든 데이터를 이용하면 5축 가공까지 할 수 있다.
솔리드 모델링의 한계
아래와 같은 분야는 아직까지 대부분의 솔리드 모델러가 해결하기 힘든 분야이다.
(아래의 예는 서피스 모델링 기능이 없거나 또는 서피스 모델링 기능이 있다고 하더라도 서피스를 수정할 수 있는 기능이 약한 경우를 적용한 것임)
♥인체와 닿는 부품
♥면의 품질이 중요한 제품(자동차 외곽, 항공기, 선박 외곽...)
♥외부에서 서피서 데이터를 받아오는 경우
♥Reverse Engineering을 수행하는 경우
♥형상이 난해하여 솔리더 모델러로는 시간이 너무 많이 걸릴 경우
♥복잡한 주물이나 사출물들 설계할 경우..
CAD INTRODUCTION은 대략적으로 이러하다.
짧은 시간과 데이터 용량이라는 최대 단점이 있는 관계로 어쩔 수 없이 이정도만 기술하겠다.
하지만 CAD에 관한 이론적인 배경과 바탕이 더 필요하다면 메일로 질문을 하시던지 게시판에 공개적으로 글을 올리시기 바랍니다.
최대한 가르쳐 드리겠습니다.
이학봉의CAD part2 이 강좌는 제가 CAD를 처음 시작하며 궁금했었던 각 CAD명령의 설명서입니다.
(본 강의는 시중에서 구입할수 있는 사용설명서가 아닌 CAD명령의 이해를 위한 지침서로의 활용을 위해 만들었고 강의 전이든 후든 반드시 CAD로 연습을 해야만 효과를 볼수 있을 것입니다.)
강의 진행은 Auto CAD의 Pull Down Menu에 있는 순서 대로 하겠습니다.
(단 누구나 아는 open, save등의 명령이나 거의 안쓰는 명령은 따로 설명안할께용!..) .............작업이 넘 많아서(학봉입장)
이학봉의 AutoCAD part3
AutoCAD Lisp
*본 강좌는 AutoCAD 에서 사용자 스스로 자기만의 Program을 만들수 있도록 도와주기 위해 만들었다.
본 강좌는 Lisp 명령의 매뉴얼로 사용할수 있도록 만들었고 잘 쓰지 않는 명령은 언급하지 않았다.
AutoLisp의 개요 AutoLisp는 AutoCAD프로그램안에 내장된 인터프리터 언어로 AutoCAD와 결합하여 강력한 기능을 발휘할 수 있다.
LISP는 'List Processor'혹은 "LISt Programming'의 준말로 여러 가지 LISP언어중 'Common LISP'과 유사하다.
아래에서 설명할 몇가지 예제를 익히면 AutoLISP에 대한 기본적인 이해를 할수 있을 것이다.
CAD에서의
실행
ex) COMMAND : (LOAD"aaa") (파일이름이 aa.lsp라고 가정)
-ps : 혹시 LOADING이 되지 않고 이상한 메시지가 출력되면 거의 99%가 LISP 소스에 문제!!
프로그램
입력 규칙
AutoLISP의 입력은 키보드로부터 입력되거나 ASCII화일이나 문자열 변수로부터 읽혀 진다.
또한 프로그램 내부에서 사용되는 심벌의 이름은 () . ' " ; 와 같은 특수문자들을 제외한 어떤 문자열에 의해서도
구성될 수 있다. AutoLISP에서 사용되는 심벌과 함수의 이름은 대,소문자 어느 것이나 사용할 수 있지만
숫자로 이름을 시작해서는 안된다. (아래 ex와 같이 대 소문자 구분을 하지 않음)
ex) (defun draw() ) or (DEFUN Draw() )
세미콜론의
사용
Auto LISP프로그램은 다른 언어와 마찬가지로 프로그램 중에 주석문을 포함시킬수 있다.
주석문은 세미콜론으로 시작되어 그 줄의 끝까지 이다. 프로그램이 로드될 때 세미콜론 뒤의 주석은 무시되며,
로드되지 않는다. 프로그램 작성자는 프로그램을 작성할 때 주석을 붙이는 습관을 가져야 한다.
ex) ; This is entire comment line
(setq a (+ 2 b) ) ; computer bplus 2
괄호의 사용
괄호는 AutoLISP프로그램을 작성하는데 필수적이다. 모든 명령어는 위의 ex에서 처럼 괄호에 의해 둘러싸인다.
한 명령어는 여는 괄호"("와 닫는 괄호 ")"한 쌍이 사용된다. 따라서 중첩을 여러번 하는 경우 열고 닫는 괄호수가
반드시 맞아야 한다. 그렇지 않을 경우에는 에러가 발생하여 프로그램이 실행되지 않는다.
변수의 사용
변수는 특수문자와 숫자를 사용할수 없고 대,소문자를 구별하지 않아 'x'와 'X'는 값은 값을 가진다.
변수는 문자 A - Z와 숫자 0 - 9만을 사용한다.
ex) ao or alist or pnt12 (올바른 변수)
2pt : 문자로 시작해야 한다. (틀린 변수)
ab+c : 문자 A - Z만 사용할수 있다. +는 사용할 수 없다. (틀린 변수)
ca$ : 특수문자는 사용할수 없다. (틀린 변수)
AutoLISP이 다른 언어와 틀린점은 변수 하나에 여러 값을 가질수 있다는 것이다.
ex) (setq a ( 3 4 5) ) a에는 3, 4, 5가 대입된다.
지역변수
와
광역변수
지역변수는 프로그램의 실행이 끝나고 나면 그 변수의 값이 사라지는 것을 말하며, defun문 다음의 괄
호의 '/'기호 이후에 그 변수명을 적으면 지역변수가 된다
. 광역변수는 프로그램 실행이 끝난후에도 계속 메모리에 남아있는 변수를 말하며,
AutoCAD가 끝나기 전까지 또는 다른 파일을 불러오기 전까지 메모리에 남아있다.
ex) (defun c:**** ( a / c d e) ) - a는 외부로 부터 값을 입력받는 변수이다. c, d, e는 지역변수이다.
괄호안에 언급되지 않은 기타 모든 변수는 광역변수로 취급된다.
ex) (defun c:**** ( ) )
DEFUN 명령
defun은 다른언어의 function과 sub와 같다고 할수 있다. LISP에서 defun은 없어서는 안될 명령어다.
defun명령은 지역변수와 광역변수 와 독립변수의 적절한 사용을 function과 sub문을 대신하고 있다.
ex) (defun kk () ) or (defun C:kk () )
위의 두 예는 모두 맞는데 사용방법에 있어 약간의 차이가 있다.
첫 번째 예제는 CAD상에서 실행할 때 '(kk)'라고 실행하야 되며, 두 번째의 경우는 'kk'로 실행된다.
SETQ 명령
형식 : (setq <변수1> <표현1> | <변수2> <표현2> | .....)
기능 : 값을 지정(저장, 대입)한다.
setq는 BASIC의 Let문과 같은 기능을 하는데, 지정을 의미하는 명령어로 표현에 나온 값을 변수에 저장한다.
ex) (setq a b) b의 값이 a에 저장된다.
(setq a ( + b c ) ) b와 c를 더한 값이 a에 저장된다.
(setq k 5 ) k에 5가 저장된다.
수식 함수
(+, -, *, / )
다른 언어와 마찬가지로 더하기, 빼기, 곱하기, 나누기를 하는 명령어 들이며 연산의 우선순위는 * / + -순이다.
내용 : angle은 두 점 사이의 각을 radian으로 측정한다. 이때 주의해야 할 사항은 CAD에서 사용하는 각도는
degree이고, LISP에서 사용하는 각도는 redian이어서 이값을 변환해 줄 필요가 있는데, 다음과 같이 한다.
ex) (defun dtr( an )
(* pi ( / an 180 )) )
(defun rtd( an )
(/ (* an 180 ) pi) )
DISTANCE 명령
형식 : (distance <점1> <점2>
기능 : 두점 사이의 거리를 측정한다.
내용 : 두점 사이의 거리를 측정하는 명령어로서 사용 방법은 다음과 같다.
ex) (setq ki (distance p1 p2) ) 점1과 점2 사이의 거리를 ki에 저장한다.
POLAR 명령
형식 : (polar <점> <각도> <거리> )
기능 : 극좌표에서의 거리를 측정한다.
내용 : polar는 점에서 각도만큼의 거리의 점을 위치를 측정한다.
ex) (setq t (polar '(0 0) 45 100) ) 점 0,0에서 45각도를 가지고 거리가 100인 점의 위치를 t에 저장한다.
t의 값은 141, 141(x,y)가 될 것이다.(의심이 생기면 확인하시오! ...^.^;)
삼각 함수
형식 : (sin <각도> ) or (cos <각도> ) or (tan <각도> )
기능 : sine, cosine, tangent값을 구한다.
ex) (setq a (tan 45) )
기타 수식함수
(max x y .... ) x와 y값중 최대값
(min x y .... ) x와 y값중 최소값
(abs x ) x의 절대값
(sqrt x ) x의 제곱근
(exp x ) e(자연대수)의 x승을 구한다.
(expt x p ) x의 p승을 구한다. x, p가 모두 정수인 경우에만 결과가 정수가 된다.
(log x ) x의 자연대수 값을 구한다.
(float x ) x값을 실수로 변환한다.
(fix x ) x값의 정수부분만을 구한다.
(type a ) 변수a의 타입을 구한다.
수학적 계산
관련 명령어
(+ ... ) + 이후의 숫자 를 모두 더한다.
(- ... ) 에서 이후의 숫자를 모두 뺀다.
(* ... ) * 이후의 숫자를 모두 곱한다.
(/ ... ) 에서 이후의 숫자들의 곱으로 나눈다.
(1+ ) 에 1을 더한다.
(1- ) 에 1을 뺀다.
(gcd ) 과 의 최대 공약수를 구한다.
(logand ... ) logand 이후의 숫자의 논리곱 AND를 구한다.
(logior ... ) logand 이후의 숫자의 논리합 OR를 구한다.
(max ... ) 나열된 수치 중 가장 큰수를 구한다.
(min ... ) 나열된 수치 중 가장 작은 수를 구한다.
(rem ) 을 로 나누고 나머지를 구한다.
관계 논리
명령어
(= ...) 과 가 같은지 검사한다.
(/= ...) 과 가 다른지 검사한다.
(< ...) 이 보다 작은지 검사한다.
(<= ...) 이 보다 같거나 작은지 검사한다.
(> <atom1> ...) 이 보다 큰지 검사한다.
(>= ...) 이 보다 같거나 큰지 검사한다.
(and ...) , 모두가 T이면 T를 응답한다.
(zerop ) 가 0인지 검사한다.
화면 출력
명령어
(alert ) 대화상자를 통해 경고 메시지를 출력한다.
(graphscr) 화면을 그래픽 화면으로 전환한다.
(prin1 []) 을 화면 또는 파일에 출력한다.
(princ []) 을 화면 또는 파일에 출력한다.
(print []) 을 화면 또는 파일에 출력한다.
(prompt ) 화면에 를 출력한다.
(textscr) TEXT 화면으로 전환한다.
조건 분기 및
반복 명령어
(cond ...) 각각의 조건식의 결과가 T이면 다음의 를 실행한다.
(if [])
이 nil이 아니면 을, 그외의 경우에는 을 실행한다.
(progn ...) 여러개의 실행문 및 수식을 하나의 문장으로 묶어 처리한다.
(repeat ...) 을 만큼 반복한다.
(while ....) 이 nil 이 될 때까지 을 계산한다.
기하 명령어
(angle ) 에서 까지 직선의 각을 구한다.
(atan []) 아크탄젠트값을 라디안으로 응답한다.
(angtos [ []]) .
라디안 단위를 여러단위로 변환하여 문자열로 응답한다
(cos ) 의 코사인 값을 구한다.
(distance ) 과 사이의 거리를 구한다.
(osnap ) 에 의해서 점에 적용한 점을 구한다.
(pi) 상수로 3.1415926, π
(polar )
점에서 각으로 거리 만큼 떨어진 점을 구한다.
(rtos [ ]) 를 여려 형태의 문자열로 응답한다.
(sin ) 의 사인값을 구한다.
문자열 관련
명령어
(ascii ) 의 ASCII 문자 CODE를 응답한다.
(atof ) 을 실수로 변환한다.
(atoi ) 을 정수로 변환한다.
(char ) 를 해당 ASCII문자를 응답한다.
(itoa ) 정수를 문자로 변환한다.
(strcase []) 을 대문자 또는 소문자로 응답한다.
(strcat ...) 나열된 , ...을 연결하여 응답한다.
(strlen ) 의 문자수를 구한다.
(substr []) 을 부터 수 만큼 응답한다.
list 관련
명령어
(append ...) 나열된 을 하나의 list로 만든다.
(apply ) 의 인수를 가진 을 실행한다.
(atom ) 이 list인 경우 nil을 응답한다.
(cadr ) 의 두 번째 요소를 구한다.
(car ) 의 첫 번째 요소를 구한다.
(cdr ) 의 첫 번째 요소를 제외한 모든 요소를 구한다.
(length ) 의 요소수를 정수로 응답한다.
(list ...) , 이후의 요소를 묶어 하나의 list로 응답한다.
(listp ) 이 리스트이면 T, 그렇지 않으면 nil을 응답한다.
(member ) 를 검색하여 을 찾는다.
(nth ) 의 번째 요소를 응답한다.
(null ) 이 nil이면 T를 응답한다.
(numberp ) 이 실수 또는 정수이면 T를 응답한다.
(quote ) 을 계산 없이 그대로 응답한다.
(read ) 의 첫 번째 list또는 atom을 응답한다.
(reverse ) 를 거꾸로 배치한다.
(subst ) 의 을 으로 바꾼다.
(type ) 의 형태를 응답한다.
사용자 입력
명령어
(getangle [] [prompt>]) 사용자로부터 각도를 요구한다.
(getcorner [prompt>]) 사용자로부터 점을 기준으로 점를 요구한다.
(getdist [] [prompt>]) 사용자로부터 거리를 요구한다.
(getreal []) 사용자로부터 실수 입력을 요구한다.
(getstring [] []) 사용자로부터 문자열 입력을 요구한다.
(initget [] []...) getxxx 함수에 의해서 사용되는 각종 옵션을 설정한다.
시스템 변수
관련 명령어
(getenv ) 시스템 환경변수의 값을 응답한다.
(getvar ) AutoCAD의 시스템 변수를 구한다.
(setvar ) AutoCAD의 시스템 변수를 로 설정한다.
파일 입출력
관련 명령어
(close ) 파일을 닫는다.
(findfile ) 의 파일을 찾는다.
(load []) AutoLISP 파일을 loading한다.
(open ) 파일을 오픈한다.
(read-char []) 키보드 또는 파일에서 하나의 문자를 읽어 들인다.
(read-line []) 키보드 또는 파일에서 하나의 문자열을 읽어 들인다.
(write-char []) 파일에 의 ASCII 코드에 대당하는 문자를 기록한다.
(write-line []) 파일에 을 기록한다.
도면요소
(Entity) 관련
명령어
(assoc ) 의 에 해당하는 list를 구한다.
(entdel ) 을 삭제하거나 복구한다.
(entget ) 의 entity list를 구한다.
(entlast) 가장 최근에 그려진 도면요소를 선택한다.
(entmod ) 도면요소의 바뀐 내용을 화면에 반영한다.
(entnext []) 다음에 있는 도면요소를 구한다.
(redraw [ []]) 도면 전체 또는 을 REDRAW한다.
(ssadd [ []])
에 을 추가시킨다.
(ssget [ ] []) 하나 이상의 도면요소를 선택한다.
(sslength ) 에 있는 도면요소의 갯수를 구한다.
(ssname ) 에서 번째의 도면 요소의 이름을 구한다.
(tblsearch [ ]) 의 에 대한 정보를 응답한다.
기타 명령어
(boundp ) 일반 논리 boole함수를 응답한다.
(defun ...) 이라는 이름으로 함수를 정의한다.
(eval ) 의 계산결과를 응답한다.
(foreach ...) 내의 모든 요소를 로 실행한다.
(lambda ...) anonymous(무영) 함수를 정의한다.
(mapcar ... ) list의 개별 요소를 갖는 을 실행한다.
김화연의 AutoCAD part4
AutoCAD R14 Files
* AutoCAD에서 쓰는 확장자 들의 설명입니다. (한번쯤은 궁금하다고 생각해 보셨을 겁니다.) .3ds
3d Studio 파일
.adt
Audit Report 파일
.ahp
Acadcad Help 파일
.arx
Arx 애플리케이션 파일
.asm
샘플 Ads 소스 코드 파일
.avi
비디오 클립
.bak
도면 백업 파일
.bas
Microsoft Visual Basic 파일
.bat
Batch 파일
.bdf
Vesa 폰트 파일
.bk
비상 백업 파일 번호로 하나씩 증가된다.
.c
Ads 소스 코드 파일
.cpp
Adsrx와 Arx 소스 코드 파일
.cfg
구성(Configuration) 파일
.cnt
Windows Help 내용 파일
.cus
사용자 사전(Custom Dictionary) 파일
.dbf
Dbase Database 파일
.dce
Dialog Box Error Report 파일
.dcl
Dialog Box 정의 파일
.dct
Dictionary 파일
.def
Adsrx 소스 코드 파일
.dll
Dynamic-linked Library 파일
.dwf
도면 Web 파일
.dwg
도면 파일
.dwt
도면 템플릿 파일
.dxb
Binary 도면 교환 파일
.dxf
도면 교환 파일(Ascii 또는 Binary)
.dxx
Attribute 추출 파일 (Dxf Format)
.eps
Encapsulated Postscript 파일
.err
오토캐드가 문제 발생시 생성되는 보고 리스트
.exe
실행 프로그램 파일
.frm
Microsoft Visual Basic 파일
.frx
Microsoft Visual Basic 파일
.fts
Windows Help Support 파일
.gid
Windows Help Support 파일
.h
Adsrx Include 파일
.hdi
애플리게이션 Support 파일
.hdx
Help 인덱스 파일(Associated Ahp 파일을 위한)
.hlp
Windows Help 파일
.lib
Adxrx 라이브러리 파일
.lin
Linetype 라이브러리 파일
.lsp
Autolisp 라이브러리 파일
.map
태양각 계산을 위해 사용되는 도시의 위치 리스트
.mdb
Microsoft Visual Basic 파일
.mid
Identification Information 파일
.mli
Autocad Render 재질 라이브러리 파일
.mln
Multiline 라이브러리 파일
.mnc
Complied 메뉴 파일
.mnd
메뉴 정의 파일(Mc 명령과 함께 하는)
.mnl
Menu Autolisp 파일
.mnr
Menu 리소스 파일
.mns
Menu 소스 파일
.mpu
Menu Template 파일
.mpr
질량과 특성 파일(Massprop 명령에 의해 기록됨)
.old
변환된 도면의 원본 파일
.pat
Hatch Pattern 라이브러리 파일
.pcp
Plot Configuration Parameters 파일
.pfb
Postscript 폰트 파일
.pfm
Postscript 폰트 매트릭 파일
.plt
Plot 출력 파일
.ps
Autocad Supprot 파일(또는 비요약 Postscript 파일
.rpf
Hewlett-packard 래스터 패턴 파일
.sat
표준 Asci 텍스트 파일
.sab
표준 Asci Binary 파일
.scr
명령 스크립트 파일
.shp
Autocad 쉐입/폰트 소스 파일
.shx
Compiled 쉐입/폰트 파일
.slb
슬라이드 라이브러리 파일
.sld
슬라이드 파일
.stl
Stereo Lithography 파일
.tga
Tagar Format Image 파일
.ttf
Truetype 폰트 파일
.txt
Attribute 추출 또는 임시 파일(Cdf/Sdf Format)
.vbp
Microsoft Visual Basic 파일
.xlg
외부 참조 로그 파일
.xls
Microsoft Excel Spreadsheet 파일
.xmx
외부 메시지 파일
김화연의 AutoCAD part5
AutoCAD 2000
AutoCAD 2000(이하 2000이라 함)은 발표와 동시에 많은 사람들의 관심을 모았습니다. 모든 설계도면이
3D위주로 변하는 그 시작점에 있어서 우리들이 앞으로 나아갈 방향을 제시해 준다고 해야 겠지요!
본 강좌는 2000을 사용하기 위해 시작하시는 분들에게 도움이 되고자 많들었고 처음 CAD를 접하시는
분들을 위해 AutoCAD R14 강좌와 중복되는 내용도 있습니다.
1. AutoCAD 2000의 환경
▶AutoCAD 2000은 위에서 보는 바와 같이 Pool Down Menu, 기본 Icon Bar, 사용자 Icon Bar,작업 공간, Command Bar로 구성 됩니다
① Pool Down Menu : AutoCAD의 기본적이며 포괄적인 Menu들로 구성되어 있습니다.
② 기본 Icon Bar : 현제 화면상의 Pool Down Menu의 아래 두줄로 즐겨쓰는 Icon을 보아놓은 기본 Icon Bar.
(이 Icon Bar는 사용자의 용도에 맞게 수정할수 있다)
③ 사용자 Icon Bar : 좌측 화면의 Icon Bar로 draw, edit등의 그룹별 Menu Bar로 사용자의 편의대로 편집가능.
④ 작업 공간 : 도면 작업을 하는 공간. 하단에 있는 'Model , Layout1'이 눈에 들어 오는데 이게 바로 AutoCAD 2000에서 새로이 추가된 내용중 하나로 R14에서는 모델링 스페이스와 페이퍼 스페이스로 전환하는데 항상 command line에서 명령을 줘야 했지만 2000에서는 이렇게 모델링 스페이스와 페이퍼 스페이스의 작업공간을 이동하기 쉽도록 하여 3D작업에 대한 배려를 옅볼수 있습니다.
⑤ Command Bar : 명령창으로 CAD의 명령을 입력합니다. (드레그로 창의 줄수를 늘일수도 있고 F2를 누르면 크게볼 수도 있습니다.)
▶ 우측 화면 역시 2000에서 새로이 선보이는 환경으로
델파이를 아시는 분들은 눈에 익을 것입니다.
한개 또는 다수의 엔티티를 선택하여 보시는 바와 같이
이 대화창 하나로 엔티티의 거의 모든 설정을 할수
있는 편리한 창입니다.
화면에서 차지하는 영역이 커서 조금 답답할 수도 있겠네요
하여간 하나의 대화창에서 모든 설정을 할수 있다는 것이 좋다는 생각이 드네요!
▶ 이번엔 Icon Bar를 편집하는 방법을 알아 봅시다!!!
편집하고자 하는 Icon Bar위에 마우스를 올려놓고 오른 클릭을 합니다.
그러면 오른쪽과 같은 window창이 뜨지요~ 휴 홈피 올리느 것 생각보다 손이 넘 많이 가네요 -화연생각
이 창의 좌측은 그룹별 icon을 기본적으로 만들어
놓은 것이고 우측의 Customize...를 클릭하면
개인 설정창(우츱 아래 화면)이 나옵니다.
Icon Bar에서 필요없는 Icon을 버리고자 할때는
필요없는 icon을 왼 클릭한 상태 그대로 화면으로
가져와 놓으면 버려 집니다.
(지워지는게 아니니 마구 버려도 됨!!)
Icon을 추가할 때에는 Customize Toolbars에서
원하는 명령 icon을 찾고 그 icon을 왼 클릭한
상태 그대로 추가하고자 하는 Bar로 가져가서
놓으면 됩니다.
icon이 비슷하여 명령 찾기가 힘들면
Customize Toolbars의 icon을 눌러보면
Description에 해당 icon의 설명이 나옵니다.
▶ 이 외에도 2000에는 R14와는 좀 다른 대화창이 있지만 그것들은 직접 해보심 금방 알수 있습니다.
이글을 읽은 분들은 잘 아시겠지만 명령어 하나하나의 나무보단 숲을 위주로 컴 전반에 관한 이해를 하기위한
글 이었습니다. 명령어 하나하나를 아는 것도 좋지만 전반전인 배경이 필요하다 여기고 저의 경험에 비추어
알차게 꾸밀려고 애썼어요. 명령어 위주로 공부하고 싶으신 분들은 제 메인 홈의 "김화연의 캐드특강"을 참조
하시구 내용이 조금 무거운 부분이 있으므로 흘러가듯이 보시분은 차후에 또 들러 꼼꼼히 그리구 느긋하게
연구하시면 많은 도움이 되리라 감히 장담합니다. 귀하의 건강상 모니터 50분정도 봤으면 저 멀리 있는 구름한점
이제 보시죠...............귀하의 인생에 행복이 가득하시길........
-학봉 생각