1. 컴퓨터 사양 (간략히) : 윈7이고…캐드가돌아갈정도라는 것밖에..ㅠ ㅠ
2. 캐드버전 과 종류 : 오토캐드2012
3. 운영체제(윈도우)버전과 비트수 : – Windows 7 32비트
4. 보조프로그램 사용유무 : – 드림
블록으로 되어있는 것 여러개를 동시에 세배 키우려고하는데 기준점이 다르네요..
게시판을 뒤져서 lisp 짜논거 찾앗는데…
다행이도 블록은 커지는데 신기하게 블록안에 있는 글씨는 고대로네요..
커진후에 봐도 블록잡혀잇구요…보니깐 태그가걸려잇네요..
lisp는 이걸로 했습니다..
(defun c:qwe()
(setvar “CMDECHO” 0)
(setq tar 3 );;<=========이곳에 블록싸이즈 지정
(setq sel (ssget “x” ‘((0 . “insert”))));;<=======이곳에 블록이름지정 블록전체를 잡을경우 (0 . “insert”)
(if (/= sel nil)
(progn
(setq len (sslength sel)
index 0 )
(prompt “n Block Total Select :: “) (princ len) (prompt “n “)
(repeat len
(setq nam (ssname sel index)
ent (entget nam)
ent (subst (cons 41 tar) (assoc 41 ent) ent)
ent (subst (cons 42 tar) (assoc 42 ent) ent)
ent (subst (cons 43 tar) (assoc 43 ent) ent)
index (1+ index)
)
(entmod ent)
(prompt “r Block Changed :: “) (princ index)
)
)
) ;; re . pr . if
(princ)
)
ㅠ ㅠ도움좀주세요…
상위버전으로 저장되어 있어서 확인 불가능
블록과 어트리뷰트 태그가 한덩어리로 만들어져 있지만 서로 다른코드를 가지고 있어
블록의 코드만 변경해서는 함께 바뀌지를 않습니다.
간단하게 만드시는 경우에는 하나씩 확대하는 방법도 쓸만합니다.
(defun c:bx( / x1 x2 n sel ent ent_list p10)
(setq x2 (getdist “확대비율은:”))
(setq sel (ssget ‘((0 . “insert”))))
(setq n 0)
(while (setq ent (ssname sel n))
(setq ent_list (entget ent))
(setq p10 (cdr (assoc 10 ent_list)))
(setq x1 (cdr (assoc 41 ent_list)))
(command “scale” ent “” p10 “r” x1 x2)
(setq n (1+ n))
);while
);defun