;;;램프 T4
(C:T4206()
재미없다사용자는 매개변수 없이 T4206 실행 명령을 입력하여 후속 프로그램을 로드하고 즉시 실행합니다.
(graphscr)
(setvar "cmdecho" 0)
;;명령줄 표시가 꺼졌습니다
(setq P1(getpoint "n램프의 배치 위치를 지정하십시오(T4 206.5mm 6W):"))
;;삽입점 P1과 복귀점 설정
(명령 "-INSERT" "D:/YZ_ZCAD/TK/DGT/T4206.dwg" "S" "1" P1 "0")
CAD 표준 명령을 실행할 때 명령 앞에 "-"를 추가하면(CAD 명령 참조) 대화 상자를 사용하지 않고 명령줄에서 직접 명령을 실행할 수 있습니다.
프로그램 실행 시 대화상자를 이용하여 조작할 수 없습니다. 명령 앞에 "-" 기호를 추가하거나 FILEDIA 변수를 사용하여 제어할 수 있습니다. 다른 방법으로 제어할 수 있는 특별한 경우도 있습니다.
(setvar "cmdecho" 1)
;;명령줄 표시가 켜져있습니다
(프린스)
;;;결론
)
;;;위 텍스트를 LISP에 넣고 아무 영문이름으로 저장하세요
파일을 저장한 후 AP를 사용하여 CAD에서 파일을 로드할 수 있습니다.
;; T4206 명령을 실행하여 insert 명령을 실행합니다. (파일 존재 확인)
개인적인 생각으로는 LISP보다 VBA 개발이 더 편리한 것 같아요. LISP를 배우려면 기본 지식만 익히면 되고, 깊게 공부할 필요는 없습니다. LISP 대화 상자 개발(DCL)은 VBA보다 훨씬 복잡합니다. 그러나 VBA 기능을 실행하기 위해 LISP 기능을 사용해야 하는 경우도 있습니다. AutoCAD 도움말 문서에는 개발자를 위해 특별히 제공되는 도움말이 있으며 여기에는 자세한 내용이 많이 포함되어 있습니다. 많은 편집자들은 이러한 문서의 리소스를 직접 사용하기도 합니다. 한 번 살펴보시는 것이 도움이 될 것 같습니다.
(defun c:dz (/oce1 n1 zn h1 sxh1 p1)
(vl-load-com)
(setq oce1 (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq ms(vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object)) 이 코드 줄은 AutoCAD에서 현재 활성 문서의 객체를 가져오는 데 사용됩니다. AutoCAD의 VLAX(Visual LISP ActiveX) 인터페이스를 사용하고 vlax-get-acad-object 함수를 통해 AutoCAD 응용 프로그램 개체를 얻은 다음 vla-get-activedocument 메서드를 사용하여 현재 활성 문서의 개체를 가져옵니다. 이러한 방식으로 현재 문서에서 속성 액세스, 객체 수정 등과 같은 다양한 작업을 수행할 수 있습니다. 이 코드 줄은 AutoCAD의 LISP 프로그래밍에서 매우 일반적이며 문서 객체로 작업할 때 매우
)
)
(만약 qz
()
(setq qz "")
)
(hz라면
()
(setq hz "")
)
(initget "c")
(setq nqz (getstring (strcat "n 접두사 /c(비어 있음): " )))
(조건
((= nqz "c") (setq qz ""))
(T (if (/= nqz "")(setq qz nqz)))
)
(setq hz "")
(if (not (setq n1 (getint "n시작 시퀀스 번호를 입력하세요 : ")))
(setq n1 1)
)
(setq zn 1)
(if (not (setq h1 (getreal "n 텍스트 높이를 지정하세요 : ")))
(setq h1 2.5)
)
(setq sxh1 (strcat qz (itoa n1) hz))는 일반적인 LISP 표현식입니다. 이 표현식에서 qz, n1, hz는 변수이고, 이들 값을 연결하여 새로운 문자열 sxh1이 생성됩니다. 이 표현이 무엇을 의미하는지 정확하게 설명해 드리겠습니다. - qz는 "prefix"와 같은 문자열을 저장하는 접두사를 나타내는 변수입니다. - n1은 10
과 같은 숫자 값을 저장하는 정수 변수입니다.(setq p1 (getpoint "n삽입 지점을 지정하세요: "))
(while (/= p1 nil)
(setq p1 (vlax-3d-point p1))
(setq txt(vla-addtext
ms
sxh1
p1
h1
)
)
(setq
n1 (+ n1 zn)
sxh1(strcat qz(itoa n1) hz)
p1(getpoint "n다음 삽입 지점을 지정하십시오: ")
)
)
(setvar "cmdecho" oce1)
(vlax-release-object ms)
(프린스)
)
다음으로 변경:
(c:sdd(dwg)를 무시하세요
(setq dwg (getfiled "경로 및 파일 이름 선택" "" "Dwg" 1))
(if (wcmatch dwg "* ####-##-## ##:##.dwg")
(setq dwg (substr dwg 1 (vl-string-search " " dwg)))
문자열 변수 `dwg`가 주어지면 `(setq dwg (substr dwg 1 (- (strlen dwg) 4)))`를 사용하여 처리할 수 있습니다. 이 코드 줄의 기능은 `dwg` 문자열의 마지막 4자를 자르고 결과를 `dwg` 변수에 다시 할당하는 것입니다. 이는 파일 이름이나 기타 식별자에서 파일 확장자를 제거하기 위해 수행될 수 있습니다. 이 코드 줄을 통해 `dwg` 문자열을 수정하여 특정 요구 사항이나 형식을 충족할 수 있습니다.
)
(setq dwg (strcat dwg " " (menucmd "M=$(edtime,$(getvar,date),YYYY-MO-DD HH:MM)") ".dwg"))
(명령 "_.saveas" ""dwg)
(프린스)
)
위 내용은 CAD Autolisp의 2차 개발은 어떻게 진행하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!