침실2_CAD

[CAD LISP] 라디오 버튼 DCL/LISP

다식군! 2021. 2. 15. 18:59
반응형
[CAD LISP] 라디오 버튼 DCL/LISP Auto CAD 명령어 실행
[CAD LISP] DCL 라디오 버튼으로 다른 리습 실행  CAD LISP 명령어 실행

DCL LISP 연습

먼저 DCL

VLISP \ 도구(T) \ 인터페이스 도구(I) \ 편집기에서 DCL 미리보기(E)

command:dialog
{label = "COMMANDS";
	:radio_column
	{	label = "Draw Commands";
		:radio_button
		{	label="Line";
			key = "lin";
			value = "1";
		}
        
		:radio_button
		{	label="Circle";
			key = "cir";
		}

		:radio_button
		{	label="Ellipse";
			key = "eli";
		}

		:radio_button
		{	label="Arc";
			key = "arc";
		}

		:radio_button
		{	label="Polygon";
			key = "pol";
		}
	}
ok_cancel;
}

여기에 LISP

(defun C:cmd()
	(setq dcl_id (load_dialog "cmd.dcl"))
  
	(if(not (new_dialog "command" dcl_id))
	(exit)
	);if

	(action_tile "lin" "(setq cmd \"line\")")
	(action_tile "cir" "(setq cmd \"circle\")")
	(action_tile "eli" "(setq cmd \"ellipse\")")
	(action_tile "arc" "(setq cmd \"arc\")")
	(action_tile "pol" "(setq cmd \"polygon\")")
	(action_tile "accept" "(done_dialog)(setq userclick T)")
	(action_tile "cancel" "(done_dialog) (setq userclick nil)")
  
 	(start_dialog)

 (unload_dialog dcl_id)

(cond
((= cmd "line" )(command cmd))
((= cmd "circle" )(command cmd))
((= cmd "arc" )(command cmd))
((= cmd "ellipse" )(command cmd))
((= cmd "polygon" )(command cmd))
);cond
);defun

근데, 이거는 CAD 기본명령(예를 들면 위에 나오는 것처럼, LINE, CIRCLE, ARC........)일때만, "COMMAND 변수"가 되니,

참고 하셔요.

[CAD LISP] 라디오 버튼 DCL/LISP Auto CAD 명령어 실행
[CAD LISP] DCL 라디오 버튼으로 다른 리습 실행 CAD LISP 명령어 실행

 

반응형