프로그램
캐드 분류

무한반복 카피리습 질문요.

컨텐츠 정보

본문

무한반복 카피리습인데 오스넵이 처음엔 중심점에 잡히다가 풀리네요 계속 중심점으로 반복카피하고 싶은데요
물론 명령어가 끈나면 원래 오스넵 잡힌거로 돌아가게끔 (setvar "osmode" cqw) 문구를 넣었는데요…
(defun c:A2 ( / cqw)
 (setq cqw (getvar "osmode"))
 (setvar "osmode" 4)
(setq ss (ssget ))
  (princ "nt시작포인트 :")
    (command "copy" ss "" "m" pause)
 (setvar "osmode" cqw)
 (princ)
)



이 리습도 마찬가지로 처음엔 무한선을 되엇다가 몇번찍으면 1번이엇던게 현제 레이어로 바뀌고요 고수님 원인이 먼지좀 봐주세요
저는 계속 1번으로  갔다가 명령어 끈나면 되엇으면 하는데…..


(defun c:A2 ( / cqw)
 (setq cqw (getvar "CLAYER"))
 (setvar "CLAYER" "1″)
 (command "XLINE" "V" pause)
 (setvar "CLAYER" cqw)
 (princ)
)

관련자료

댓글 6

rnsdlsajfl님의 댓글

아 있었군요 상큼메론님 너무 고맙습니다. 휴일인데 쉬셔야 되는데 고캐드에 댓글 달아주시고 잘쓰겠습니다.^^

상큼메론90님의 댓글

emoticon

오타가 났었네요.  cqwde 요게 오타가 나서,,, 

무한선 리습은 이미 2014년도에 올린게 있어서, 댓글 안달았습니다. 검색하면 나올텐데…  못찾으시네요~

아래와 같습니다.

(defun c:A21 () (setvar "cmdecho" 0) (setq oldlayer (getvar "clayer")) (if (= (tblsearch "layer" "1″) nil) (command "-layer" "m" "1″ "")) (command "-layer" "s" "1″ "") (command "xline" "v")  (while (= 1 (getvar "cmdactive"))  (command pause))

(setvar "clayer" oldlayer) (princ) )

2014년도에 올린 리습은, 수평, 수직 등등 몇개 됩니다.

    <—에 있습니다. 참고하시면 좋겠습니다.

rnsdlsajfl님의 댓글

상큼메론님 cqwde 부분을 OSMODE 로 고치니 드디어 되네요^^ 

그런데 2번째 무한선도 똑같이 적용을 했는데

오류: AutoCAD 변수 설정이 거부됨: "CLAYER"  이렇게 나오네요 리습이란 참 어렵네요

;;;;;2번째 무한선 

(defun c:A33 (/ FR DD) 

(setq FR (getvar "CLAYER"))

(setvar "CLAYER" 1)

(if (setq DD (ssget))

   (progn

     (command "xline" DD "v")

     (while (/= (getvar "cmdactive") 0)

     (command pause)

       (setvar "CLAYER" 1) 

       ); while

   ); progn

); if

(setvar "CLAYER" FR) 

(princ)

)

상큼메론90님의 댓글

emoticon

리습을 살펴보면,  얼핏 보기에는 전혀 문제가 없습니다. 레이어와 오스냅을 설정하고, 원래대로 되돌리고…  문제가 없는데…

command 에서 pause 부분에서 레이어와 오스냅이 풀렸다가 그리고 마지막 cqw 로 돌아 가고, 명령어가 종료~   그렇게 된게 아닐까 생각합니다.

(defun c:A2 (/ cqw ss) (setq cqw (getvar "osmode")) (setvar "osmode" 4) (if (setq ss (ssget))    (progn      (command "_.copy" "si" ss "_m")        (while (/= (getvar "cmdactive") 0)        (command pause)        (setvar "osmode" 4)        ); while    ); progn ); if (setvar "osmode" cqw) (princ) )

그리고 요즘은 굳이 멀티복사는 리습을 사용하지 않아도 됩니다. 복사가 멀티로 됩니다.

그리고 명령어 중복은 자제하시기를…

/

수야12님의 댓글

실행할때마다 레이어와 오스냅을 설정하는 구문이라 풀릴일이 없는데 그러네요 ㅎㅎ;;

여분필드1 여분필드2 여분필드3
전체 71 / 3 페이지
번호
제목
이름
알림 0