티스토리 뷰


** 블럭 만들어서 제자리 붙이기

 
카피클립(ctrl+shift+c , ctrl+shift+v) 을 이용한 간단한 리습입니다.(귀차니즘때문에 만듬 ㅋ)

-> 명령(MB<-바꿔도 됨)입력

-> 객체 선택

-> 기준점 선택

-> 엔터

-> 기존 객체가 있던 자리에 새로운 블럭이 생성되고 기존 객체는 삭제함

 

아주 간단하져? 간단하지만 편할때가 있더라구요....

 

저 컴에는 이런 잡다한 것들이 너무 많아서리

잠시 만들어서 쓰고나면 나중엔 명령어를 모릅니다.

나중에 다시 쓸땐 한참을 찾거나(두뇌 버전이 낮아서) 새로 만든답니다.

(찾는 시간에 수작업을 하는 것이 빠를 때도 있음 ㅋㅋㅋ)

 

;;카피클립으로  블럭 만들어서 제자리 붙이기(일반 객체는삭제됨)


(defun c:MB (/ ent bp)
   (graphscr)

   (prompt " >> 객체 선택 <<")
   (setq ent (ssget ))
   (setq bp (getpoint "\n 삽입점 클릭 : "))(terpri)
   (command "_copybase" bp ent "" "_pasteblock" bp "erase" ent "")
   (princ)
);defun




;;일반객체를 카피클립으로  블럭 만들어서 제자리 붙이고 원본은 삭제함-블럭이름 지정가능
(defun c:MB (/ os ent bp blk_nme obn ins rnam byn byn2)
 (defun *error* (msg)(princ "error: ")(princ msg)
  (setvar "osmode" os) (princ))
   (graphscr)(terpri) (setvar "CMDECHO" 0)
   (setq os (getvar "osmode"))
   (prompt "≫ 블럭으로 만들 객체를 선택을 하세요... ")
   (setq ent (ssget ))
   (setq bp (getpoint "\n≫ 삽입점 클릭하세요 : "))(terpri)
   (command "_copybase" bp ent "" "_pasteblock" bp "erase" ent "") 
   (setq blk_nme (getstring "\n≫ 블럭이름을 지정하시겠습니까? [Yes/No][Y]  : "))  
   (if (or (= blk_nme "")(= blk_nme "Y") (= blk_nme "y"))
   ;;블럭 이름 설정
      (if (setq ent (entlast))
   (progn (setq elist (entget ent))
        (setq obn (cdr (assoc 2 elist)))
        (setq ins (cdr (assoc 10 elist)))
        (setq rname nil)
        (while (= rname nil)
          (setq rname (getstring t "\n≫ 블럭이름을 입력하세요 : "))
          (setq byn (assoc 2 (tblsearch "block" rname)))
          (setq byn2 (cdr byn)) ; byn2 블럭이름
          (if (= rname byn2)
            (progn (setq rname nil)
               (prompt "≫ 중복된 이름입니다 -> 다시 입력해 주세요")
            ) ;progn
          );if
        ) ;while
        (if (/= rname "")
          (progn (command "explode" ent)
            (setvar "osmode" 0)
            (command "_.block" rname ins "P" "")
            (command "_.insert" rname ins "" "" "")
            (setvar "osmode" os)
          (princ "≫ 블록이름 : ")(princ "[ ")(princ obn)(princ " ]")(princ " 에서 ")
    (princ "[ ")(princ rname)(princ " ]")(princ "(으)로 설정되었습니다.")
          );progn
        );if
      );progn
     );if
   ;;블럭 이름 설정 끝
   );if
   (setvar "osmode" os)
   (princ)
   );defun


'CAD > AutoLisp' 카테고리의 다른 글

공차 기입 메뉴  (0) 2009.03.21
치수에 "pi" 기호 넣기  (0) 2009.03.20
선종류/레이어/라인타입/색상 바꾸는 리습  (2) 2009.03.20
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함