프로그램
캐드 분류

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

컨텐츠 정보

  • 29 조회
  • 4 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

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

관련자료

댓글 4 / 1 페이지

♡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) ))

D.Mir님의 댓글

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

COYG님의 댓글

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

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

전체 7,152 / 1 페이지
번호
제목
이름
알림 0