프로그램
캐드 분류

블록 일괄 교체하는 리습 있나요?

컨텐츠 정보

본문

A라는 블록을 B라는 블록으로 변경하는데…
제가 가지고 있는건 여러개를 선택해도 하나면 변경되는데…
여러개 선택해서 한번에 다른 블록 변경하는 리습을 찾고 있습니다…
혹시 있으시면 부탁드리겠습니다…

관련자료

댓글 4

ne7942님의 댓글

명령어 : BB

;; 선택한 Block들을 특정 Block으로 일괄 교체하기 ;; z level = 0.0 / x, y, z scale = 1.0 / rotation ang = 0.0 ;; 20210923 (defun c:BB ( / olds new new_name len n dxf_block ) (prompt “nSelect block: “) (if (setq olds (ssget ‘((0 . “INSERT”)))) (progn (prompt “n…Select blocks to be replaced: …”) (setq new (ssget “:E:S” ‘((0 . “INSERT”)))) (setq new_name (assoc 2 (entget (ssname new 0)))) (setq len (sslength olds)) (setq n 0) (repeat len (setq dxf_block (entget (ssname olds n))) (setq dxf_block (subst new_name (assoc 2 dxf_block) dxf_block)) (setq dxf_block (subst (cons 30 0.0) (assoc 30 dxf_block) dxf_block)) (setq dxf_block (subst (cons 41 1.0) (assoc 41 dxf_block) dxf_block)) (setq dxf_block (subst (cons 42 1.0) (assoc 42 dxf_block) dxf_block)) (setq dxf_block (subst (cons 43 1.0) (assoc 43 dxf_block) dxf_block)) (setq dxf_block (subst (cons 50 0.0) (assoc 50 dxf_block) dxf_block)) (entmod dxf_block) (setq n (1+ n)) );repeat );progn (princ) );if (princ) );defun

COYG님의 댓글

한 제작자 분께서 오토캐드용 리습 모음(?) 같은 걸 배포하시고 계실텐데 사용법이 일반 리습보다 다소 귀찮고 까다로워서 급할 때 한 번 사용하고 안 쓰고 있기는 해요ㅎㅎ 그 때 찾았던 영상 링크 공유 드릴게요 아마 거기서 파일 구하실 수 있으실 거에요~

D.Mir님의 댓글

감사하게 잘 받았습니다… 근데 주신걸로 리습파일 만들어서 추가 했는데 안되네요… ㅡ.ㅡ

♡GISKOREA♡님의 댓글

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;; 선택한 블럭을 다른심볼로 바꿔주기 명령어 : BC ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun C:BC() (prompt “n 심볼병경리습 “) (setq ss1 (ssget)) ;;;심볼 선택(복수선택 가능) (setq ht (getstring “n 바꿀 블럭이름 ?: “)) (setq num (sslength ss1)) (setq index 0) (repeat num (setq entl (entget (ssname ss1 index))) (setq index (1+ index)) (setq ass (assoc 0 entl)) (if (= “INSERT” (cdr ass)) (progn (setq ass1 (assoc 2 entl)) (setq co (cons (car ass1) ht)) (setq entl1 (subst co ass1 entl)) (setq ass2 (assoc 8 entl1)) (setq coo (cons (car ass2) ht)) (setq entl2 (subst coo ass2 entl1)) (entmod entl2)

(setq old(assoc 2 entl)) (setq oldd(cdr old)) (prompt “nOld Block ==> “) (setq new1(assoc 2 entl1)) (setq neww(cdr new1)) (prompt “New Block “) (setvar “cmdecho” 0) (princ) ) ) ) )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;; 블럭 복사해서 바꾸기 명령어 : CB ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun c:CB(/ a a1 a2 a3 b b1 b2 b3 c1 c2 ent1 index num) (grtext -2 “layer chanage by khc”) (prompt “n 블럭속성을 가져올 대상선택”) ;;; 원본심볼 (setq a (entsel)) (setq a1(entget (car a))) (setq a2 (assoc 2 a1)) (setq a3 (assoc 8 a1)) (prompt “n 블럭 대상선택”) ;;;바꿀 심볼들 선택(복수선택 가능) (setq b (ssget)) (setq num (sslength b)) (setq index 0) (repeat num (setq entl (entget (ssname b index))) (setq index (1+ index)) (setq b1 entl) (setq b2 (assoc 2 b1)) (setq b3 (assoc 8 b1)) (setq c1 (subst a2 b2 b1)) (setq c2 (subst a3 b3 c1)) (entmod c2) ))

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