<그룹to블록.lsp> 파일 첨부합니다
원하시던거와 다르면 댓글에 달아주세요
블록이름:
생성되는 블록 이름을 ctrl+shift+v 처럼 원하셨는데, 제가 ctrl+shift+v가 뭔지 몰라서 일단 하나씩 타이핑하는것으로 짰어요
첨부 리습으로 테스트해보시고 블록이름을 어떻게 정하면 좋은지 댓들이나 답글로 올려주세요
블록 삽입점:
그룹안의 임의의 객체의 dxf 10번값으로 했어요(객체 종류에 따라 끝점 또는 삽입점 또는 중심점 ...)
블록 이름 예:
- ctrl+shift+v 처럼 (좀 더 자세히 알려주세요, 화면 캡쳐나, 손으로 그려서 스캔뜨거나, ...)
- 그룹 이름을 블록 이름으로 사용할수도 있음 (그룹 이름 미지정의 경우 "*Axx" 이렇게 붙이나봐요)
- 파일이름 and/or 특정문자 and/or 블록이름 and/or 일련번호 and/or ... 등등 자유로운 조합으로 블록이름을 만들수도 있어요.
블록 삽입점 예:
- 항상 원점 (0 0 0)
- 그룹안의 임의의 객체의 dxf 10번값
- 그룹안에 있는 모든 객체의 외곽선박스(bounding box)를 그려서, 외곽선박스의 중간점, 좌하점, 아래중간점, ... 등
오류나면 오류메시지 전체를 올려주시고, 다른 조건 원하시면 댓들에 달아주세요
첫댓글 감사합니다^^ 올려주신 파일은 잘 됩니다
몇 가지만 수정 수탁드릴게요
블록 삽입점은 가능하면 외곽선 박스 좌하점으로 하면 좋을거 같습니다^^
블록 이름은 아래 자동 블록 만들기 리습처럼 이름이 생성되었으면 합니다
혹은 객체를 ctrl+c로 복사하고 ctrl+shit 누른채 v로 붙여넣기 하면 캐드에서 자동으로
일반 객체를 블록으로 변환하면서 붙어넣기가 되는 데요 아래와 같이 블록명이 설정 됩니다
G$C0C0F88E4
G$C1A883B7F
G$C65D160EE
G$C9156AA45
G$CA0143473
;;;자동 블럭 만들기 리습;;;;
(defun c:BN( / a p1)
(setvar "osmode" 565)
(setq p1 (getpoint "\n\t Base Point ? :"))
(setvar "osmode" 0)
(setq a (ssget))
(command "Copybase" p1 a "")
(command "Erase" "P" "")
(command "Pasteblock" p1)
(command "osmode" 565)
(princ)
)