;예전에 사용하던….상용리습의 코드중 일부입니다…..지금은 상용이 아니기에….
;사용상 의문이 있어 질문드립니다…..
;Block WIN15 references itself
;*Invalid*
;error: Function cancelled
;*Invalid*
;error: Function cancelled
;라는 에러가 뜨면서…실행이 중단되는데…..
;제 리습 실력으로는 도무지…해석이 안되서…도움 요청드립니다…..
;정상적으로 사용하려면….어느 부분이 수정되어야 하는지…….
;아시는 분….꼭 좀…..알려주셨음…합니다……..
;읽어주셔서…감사합니다……….
;제 리습 실력으로는 도무지…해석이 안되서…도움 요청드립니다…..
;정상적으로 사용하려면….어느 부분이 수정되어야 하는지…….
;아시는 분….꼭 좀…..알려주셨음…합니다……..
;읽어주셔서…감사합니다……….
(defun m:WIN(/ CC CEC SSE E pt1 pt2 pt3 d1 pt4 ang ss ls no)(princ(strcat “ntWIN, Version ” version “,” logo “”))
(setvar “cmdecho” 0) (setq cor (getvar “orthomode”))
(MENUCMD “S=X”)(MENUCMD “S=WIN”)
;여기………
;(MENUCMD) 함수가 뭔지 잘 모르겠구요……..
(if(= wn nil) (setq wn “WIN15”))
;”WIN15″ 역시 잘 모르겠고…….
(setq wnk (getstring (strcat “n>> Enter Window Name<” wn “>: “)))
(if (/= wnk “”) (setq wn wnk))
(MENUCMD “S= “)(MENUCMD “S= “)
(setvar “OSMODE” 512)
(initget 1)
(setq pt1 (getpoint “n>> Upper-left Corner of Opening: NEAREST to “))
(while (/= pt1 nil)
(while (/= pt1 nil)
(setq pt2 (getpoint pt1 “n>>Upper-right Corner(or Enter @size<angle):NEAREST to”))
(setvar “OSMODE” 128)(setvar “orthomode” 0)
(setq pt3 (getpoint pt1 “n>> Touch Other side of Wall: PERPEND to “))
;하지만 여기까진 실행이 되는거 같습니다………..
(setvar “OSMODE” 0)(setvar “BLIPMODE” 0)
(setq ang (angle pt1 pt2))
(setq d1 (distance pt1 pt2))
(setq pt4 (polar pt1 ang (/ d1 1.1) ) )
(setq ss (ssget “C” pt3 pt4))
(RMV) ;이 넘이 문제인것 같기도 하구요…
(SETQ CEC (GETVAR “CECOLOR”)) (SETQ SSE (SSGET PT1))
(SETQ E (ENTGET (SSNAME SSE 0))) (SETQ CC(CDR(ASSOC 62 E)))
(SETQ cel(CDR(ASSOC 8 E)))
(SETLAY cel) ;이 넘이 말하는게 무엇인지 모르겠고…….
;여기서 부터……..
(COMMAND “COLOR” CC) ;여기에서…CC를 잘 모르겠습니다……
(command “LINE” pt1 pt3 “”) (command “COPY” “L” “” pt1 pt2)
(command “TRIM” “L” “P” “”)
(repeat ls (setq no(1+ no) )
(command (list (ssname ss no) pt4 ) ) )
(command “”) (COMMAND “COLOR” cec)
;여기서 cec를 잘 모르겠습니다….
(RTNLAY) ;이 것도 잘 모르겠어요……
(SETVAR “BLIPMODE” 0)
(SETLAY “WINDOW”) ; 여기….(setlay)를 잘 모르겠고…..
(command “INSERT” wn pt1 “” “” (rtd ang) )
(RTNLAY)
(setvar “OSMODE” 512)(setvar “orthomode” cor)
;cor도 모르겠습니다….
(prompt “n>> If stop Window Creating, Strike Return Key. “) (prompt “n>> Otherwise, “)
(setq pt1 (getpoint “Pick Upper-left Corner of Opening: NEAREST to “) ) ) ; 여기 ) 가 왜 3개인지….
(setvar “OSMODE” 0) (princ) )
(defun C:WIN() (m:win)) (princ “ntWINdows creating loaded. Command: WIN”) (princ)
;여기까지 입니다……….
아~~~리습에 대한 부분은 완벽하군요……
문제는 리습이 아니고..블럭에 있다는 느낌이 들기도 하는군요…..
제가 이제 막 리습에 대한 책한권을 읽은 상태라 잘은 모르겠어요….
답변 감사합니다…..
그런 함수와 변수가 어떤게 있을까요?…..
이런리습류는 함수끼리 서로 연결 돼 있기 때문에 통째로 있어야 사용이 가능합니다