자동 LISP

AutoLISP
자동 LISP
가족리스프
설계자데이비드 베츠
개발자오토데스크, Basis 소프트웨어
처음 등장한1986년 1월, 36년 전(1986-01)
안정된 릴리스
1995년 2월 13일; 27년 전 (1995-02)
타이핑 분야역학
범위역학
플랫폼IA-32
OS리눅스
사투리
Vital-LISP, Visual LISP
영향을 받다
리스프, XLISP

AutoLISPAutoCAD Map 3D, AutoCAD ArchitectureAutoCAD [1]Mechanical같은 AutoCAD의 정식 버전과 함께 사용하기 위해 특별히 개발된 프로그래밍 언어 Lisp의 방언입니다.AutoCAD LT 제품 [2]라인에는 API(애플리케이션 프로그래밍 인터페이스)와 AutoLISP 코드를 실행하기 위한 인터프리터가 포함되어 있지 않습니다.AutoLISP 기능의 서브셋은 브라우저 기반의 AutoCAD 웹 앱에 포함되어 있습니다.

특징들

AutoLISP는 가비지 컬렉션, 불변의 리스트 구조 및 설정 가능한 기호를 가진 작고 역동적인 스코프의 Lisp 언어 방언으로 매크로 시스템, 레코드 정의 기능, 배열, 변수 수를 가진 함수 또는 렛 바인딩과 같은 일반적인 Lisp 기능이 없습니다.핵심 언어를 제외하고 대부분의 기본 기능은 지오메트리, AutoCAD의 내부 DWG 데이터베이스 액세스 또는 AutoCAD의 그래픽 도면요소 조작에 사용됩니다.이러한 그래픽 도면요소의 특성은 AutoLISP에 정의점, 반지름, 색상, 도면층, 선 유형 등의 특성을 나타내는 AutoCAD 그룹 코드와 값이 쌍을 이루는 연결 목록으로 표시됩니다.AutoCAD는 에서 AutoLISP 코드를 로드합니다.LSP [3]파일

AutoLISP 코드는 AutoCAD의 그래픽 편집기를 통해 사용자가 포인트를 선택하고 화면에서 개체를 선택하고 숫자 및 기타 데이터를 입력할 수 있는 원시 기능을 사용하여 사용자와 상호 작용할 수 있습니다.AutoLisp는 또한 AutoCAD [3]내에 자동 레이아웃을 갖춘 모달 대화 상자를 만들기 위한 내장 그래픽 사용자 인터페이스(GUI) 미니 또는 도메인별 언어(DSL)인 대화 상자도 갖추고 있습니다.

역사

AutoLISP는 David Betz가 [4]만든 XLISP의 초기 버전에서 파생되었습니다.이 언어는 1986년 1월 AutoCAD 버전 2.18에서 도입되었으며 1995년 2월 13 릴리스까지 계속해서 개선되었습니다.그 후 오토데스크는 VBA(Visual Basic for Applications)와 같은 보다 세련된 개발 환경을 위해 개발을 소홀히 했습니다.NET 프레임워크 및 객체ARX. 하지만 AutoCAD의 주요 사용자 사용자 지정 언어입니다.

Vital-LISP는 통합 개발 환경(IDE), 디버거, 컴파일러ActiveX 지원을 포함한 AutoLISP의 상당히 강화된 버전이며, 서드파티 개발자 Basis Software에 의해 개발 및 판매되었습니다.Vital LISP는 AutoCAD 객체 모델, 리액터(AutoCAD 객체에 대한 이벤트 처리), 일반적인 ActiveX 지원 및 기타 일반적인 Lisp 기능에 대한 VBA급 액세스를 추가한 기존 AutoLISP 언어의 슈퍼셋이었습니다.오토데스크는 이 제품을 구입하여 Visual LISP로 이름을 바꾼 후 1997년 5월에 출시된 AutoCAD 릴리즈 14의 추가 기능으로 잠시 판매했습니다.1999년 3월에 출시된 AutoCAD 2000에 AutoLISP를 대체하기 위해 통합되었습니다.그 이후로 오토데스크는 Visual LISP에 대한 주요 개선 기능을 중단하고 VBA 및 에 더 많은 노력을 기울였습니다.NET 및 C++.2014년 1월 31일부로 오토데스크는 7.1 이전 버전의 VBA를 더 이상 지원하지 않습니다.이는 VBA에서 로의 장기 변경 프로세스의 일부입니다.사용자 [5][6]맞춤용 NET.

AutoLISP는 다른 CAD(Computer-Aided Design) 애플리케이션 벤더가 제품에 추가할 정도로 강력한 추종 기능을 갖추고 있습니다.Bricscad, IntelliCAD, DraftSight 등은 AutoLISP 기능을 갖추고 있어 AutoLISP 사용자가 AutoCAD의 대안으로 사용할 수 있습니다.AutoCAD 2000 이후 AutoLISP와 관련된 대부분의 개발은 원래 AutoLISP 엔진이 Visual LISP 엔진으로 교체된 이후 Visual LISP에서 수행됩니다.AutoLISP 또는 Visual LISP(LSP,[7][8] FAS 및 VLX 파일로 배포됨)를 사용하여 개발된 유틸리티 및 애플리케이션은 수천 개입니다.

1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
LISP 1, 1.5, LISP 2(abandoned)
마클리스프
인터리스크
MDL
리스프 기계 리스프
스킴 R5RS R6RS R7RS 소형
없음
ZIL(Zork 구현 언어)
프란츠 리스프
일반적인 리스프
르 리스프
MIT 스킴
T
체즈 스킴
Emacs 리스프
자동 LISP
피코리스프
EuLisp
ISLISP
오픈리스프
PLT 방식 라켓
GNU Guile
비주얼 LISP
클로쥬르
LFE
하이

AutoLISP의 간단한 Hello 월드 프로그램은 다음과 같습니다.

(삭제하다 안녕 ( )     (프린터 "\nHello World!")     (프린터) ) 

함수 정의의 마지막 줄에 주의해 주세요.인수 없이 평가하면princ함수는 AutoCAD 명령줄 인터페이스에는 표시되지 않는 null 기호를 반환합니다.AutoCAD 명령줄은 Read-Eval-Print Loop(REPL; 읽기 평가 인쇄 루프)으로 기능하기 때문에 일반적으로 명령줄에 "Hello World!"라고 인쇄된 후 바로 콜의 반환 값이 다음 주소로 반환됩니다.princ그 때문에, 에의 최종 콜은 없습니다.princ그 결과는 다음과 같습니다.

Hello World!"\nHello World!"

prin1동일한 결과를 얻기 위해 함수를 사용할 수도 있습니다.

보다 복잡한 예는 다음과 같습니다.

(삭제하다 c: 포인트라벨 ( / 포인트 )     (한다면 (설정 포인트 (취득점 "\n포인트 지정: "))         (예후             (엔트                 (목록.                    '(0 . 포인트)                     (단점 10 (트랜스 포인트 1 0))                 )             )             (엔트                 (목록.                    '(0 . '텍스트")                     (단점 10 (트랜스 (단점 (+ ( 포인트) 0.6) (CDR 포인트)) 1 0))                     (단점 40 (getvar '텍스트 사이즈))                     (단점  1 (스트랫 "X:" (하지 않다 ( 포인트)) "Y:" (하지 않다 (캐더 포인트))))                 )             )         )     )     (프린터) ) 

위 코드는 특정 지점에 AutoCAD 점 객체를 생성하는 새로운 함수를 정의하고, 그 옆에 X 및 Y 좌표를 표시하는 한 줄 텍스트 객체를 정의합니다.함수 이름에는 AutoCAD가 함수를 일반 명령으로 인식하도록 하는 특수 접두사 'c:'가 포함됩니다.AutoCAD 명령줄에 'pointlabel'을 입력하면 X 및 Y 좌표를 입력하거나 도면의 위치를 클릭하여 점을 선택하라는 메시지가 표시됩니다.그런 다음 해당 지점에 마커를 배치하고 마커 옆에 활성 UCS(사용자 좌표계)에 대해 표현된 점의 X 및 Y 좌표를 포함하는 한 줄 텍스트 개체를 만듭니다.함수에는 파라미터가 필요하지 않으며 하나의 로컬 변수('pnt')가 포함됩니다.

위의 예는 내장된 AutoCAD 명령을 사용하여 작성할 수도 있지만, 이 방법은 AutoCAD 릴리스 간에 명령 프롬프트가 변경될 수 있습니다.

레퍼런스

  1. ^ "AutoLISP". Retrieved 14 April 2014.
  2. ^ "AutoCAD LT vs. AutoCAD". Archived from the original on 15 April 2014. Retrieved 14 April 2014.
  3. ^ a b "AutoLISP Developer's Guide" (PDF). Retrieved 14 April 2014.
  4. ^ "History of AutoLISP".
  5. ^ "Microsoft Visual Basic for Applications Module FAQ". Retrieved 14 April 2014.
  6. ^ "VBA support in AutoCAD 2011". Archived from the original on 15 April 2014. Retrieved 14 April 2014.
  7. ^ "BricsCAD Compare versions". Archived from the original on 2014-03-15. Retrieved 14 April 2014.
  8. ^ "IntelliCAD CAD Platform – Features and Benefits". Retrieved 14 April 2014.

외부 링크