Community
오토캐드 AutoCAD - 한국어
프로그램에 관한 사용 방법, 기술, 정보 등을 검색하고, 질문을 통해 서로 도움을 주고 받을 수 있습니다.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

AutoLISP(5): Switch Point

1 REPLY 1
SOLVED
Reply
Message 1 of 2
WeTanks
239 Views, 1 Reply

AutoLISP(5): Switch Point

WeTanks_0-1718490522078.png

 

;;;------------------------------------------------------------;;;
;;; By WETANKS
;;; Version 1   -    6-14-2024
;;;------------------------------------------------------------;;;
(defun c:WE-PD (/)
  (if (null ZDTOGGLE)
    (setq ZDTOGGLE 0)
  )
  (setq ZDTOGGLE (abs (- 1 ZDTOGGLE)))
  (if (= ZDTOGGLE 0)
    (setvar "PDMODE" 35)
    (setvar "PDMODE" 0)
  )
  (princ)
)
;;;------------------------------------------------------------;;;
;;; End of File
;;;------------------------------------------------------------;;;

 

 

We.Tanks



A couple of Fusion 360 improvement ideas that could your vote/support:
図面一括印刷

1 REPLY 1
Message 2 of 2
exceeds
in reply to: WeTanks

전역 변수 ZDTOGGLE이 없을 경우, 0으로 지정하여 생성하고

0-1 > ABS(-1) > 1 

1-1 > ABS(0) > 0 

로 루프를 만들어서, 토글 할 수 있게끔 구성되어있습니다.

 

시스템변수가 1과 0값이 그대로 들어가는 경우는,

별도 전역변수 없이 GETVAR한 값으로도 만들 수 있고,

주로 LT 유저가 DIESEL 표현식으로 변환하여, 메뉴나 툴 바 버튼을 만들 때 많이 씁니다.

 

전역 변수를 쓰지 않는다면 이런식으로 쓸수도 있을듯합니다.

(defun c:WE_PD ( / )
  (if (= (getvar 'PDMODE) 0)
   (setvar 'PDMODE 35)
   (setvar 'PDMODE 0)
  )
)

(defun c:WE_PD ( / )
  (cond
    ((= (getvar 'PDMODE) 0) (setvar 'PDMODE 35))
    ((= (getvar 'PDMODE) 35) (setvar 'PDMODE 0))
    (t (setvar 'PDMODE 0))
  )
)

 

혹은 defun-q를 써본다면

(defun-q c:WE-PD ( / pdlst )
   (setq pdlst '(0 32 64 96 1 33 65 97 2 34 66 98 3 35 67 99 4 36 68 100))
   (setq c:WE-PD (append (list (list '/ 'pdlst )) (list (list 'setq 'pdlst (list 'quote (append (cdr pdlst) (list (car pdlst)))))) (cddr c:WE-PD)))
   (princ (strcat "\n Set PDMODE - " (rtos (car pdlst) 2 0) "\n"))
   (setvar 'PDMODE (car pdlst))
   (princ)
)

이런 식으로도 쓸 수 있을듯합니다.

확인은 이걸로..

(defun-q-list-ref 'c:WE-PD)

 

 

 

무엇보다 PDMODE와 PDSIZE의 주의할 점은 

객체 특성이 아닌, 도면에 저장되는 시스템 변수이기 때문에

해당 도면에 존재하는 모든 점 객체가 변경된다는 점입니다.

결과물에 보이지 않길 원하는 객체를 주로 점으로 표현하기 때문에 (TITLE BLOCK의 인쇄 여백 표기 등)

다른 도면에 추가로 작업하는 경우나 협업하는 도면인 경우에는 변경 시 주의해야 합니다.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums