프로그램
캐드 분류

블럭 레이어 변경 리습인데 지난글이 잘못되서… 수정좀 도와주세요.

컨텐츠 정보

본문

(defun bkee()
 (setvar "cmdecho" 0)
 (setq uu (entsel "nSelect object to be Layer change block : "))
 (setq blk1 (car uu))
 (setq ptins (cadr uu))
 (if (= blk1 nil)
    (and (setq bna (strcase (getstring "nType Block Name change of Layer : ")))
   (setq ptins (getpoint "nPick Block Insertion Point : ")))
   (setq bna (cdr (assoc 2 (entget blk1)))))
 (setq ebl (ssget "X" (list (cons 0 "INSERT") (cons 2 bna))))
 (setq qtts 0)
 (setq la (car (entsel "n Select an object target LAYER : ")))
 (setq la (cdr (assoc 8 (entget la))))
 (prin1)
 (if (not (equal ebl nil))
   (progn
      (command "erase" ebl "")
      (command "oops")
      (command "chprop" "previous" "" "layer" la "color" "bylayer" "")
      (setq qtts (sslength ebl))
   )
   (prin1)
 )
 (setq ebl nil)(gc)
 (prompt (strcat "nComplete! selected ["bna"] block(s) Changed = "))
 (prin1 qtts)
 (prompt (strcat "…Layer to ["la"]"))
 (prin1)
)
(defun c:bcrr()
 (bkee)
 (setvar "cmdecho" 0)
 (setvar "regenmode" 0)
 (setq BBB bna)
 (command "insert" BBB ptins "" "" "")
 (command "explode" (entlast))
 (command "chprop" "p" "" "layer" la "c" "bylayer" "")
 (command "block" BBB "yes" ptins "p" "")
 (prin1)
)

저번에 올린 글의 리습이 조금 잘못되어 실행이 안되더군요.
다시 올렸습니다.
제가 위의 리습을 사용하려고 하는데요.
이 리습은 블럭의 레이어를 한번에 선택한 레이어로 바꿔주는 리습입니다.
그런데 블럭이 한번에 한번에 하나씩 밖에 선택이 안되요…
블럭을 다 깨부시고 레이어를 수정하자니 용량이 너무 커지고
블럭을 하나하나 찾아서 수정하자니 블럭이 수없이 많고…
제가 리습에 무뇌한이라 수정이 가능하지부터 알고 싶습니다.
1번 요구사항
선택한 블럭이 선택됬다고 표시가 됬으면 좋겠습니다.(cad 뭔가를 선택했을때 점선으로 보이는것 처럼..)
2번 요구사항
선택이 한번에 한개가 아닌 드래그로 전체 블럭을 잡을수 있도록 할수 있으면 좋겠습니다.

아니면 다른 리습이나 다른 방법이 있으면 추천해 주셨으면 좋겠습니다.
고수님들 도와주세요.

관련자료

댓글 0 / 1 페이지
등록된 댓글이 없습니다.
전체 80 / 3 페이지
번호
제목
이름

최근글


새댓글


알림 0