미리 만들어논 블록에 이름을 단순화 하여 리습 內
차트화 한 후에,
리습 실행 -> ABCD -> 엔터 -> A,B,C,D 블록이 어떠한 기준에 의하여 X 거리 값 만큼 이동 된 후에 생성
EX) ABCD 실행 ( 자간 1.0 ) -> A 1mm b 1mm c 1mm d 이런 순으로 블록 생성 하려 합니다.
현재 abc 입력시, 첨부 한 대표 이미지 처럼 나오는데, z값은 0이고, x,y 거리 값이 기준 없이 작성 되고 있습니다.
해당 a 글자 내에 보라색은 스플라인 이며, a 초록색 글자는 각개 라인이 끊어진 형태 입니다.
블록 기준점 또는 블록내에 point 삽입 하여 point와 2번째 삽입되는 블록 기준점 거리를 일정한 비율로 삽입 되게 하는게 목표 입니다…
리습에서 구현 가능 한지 자체도 의문입니다… 고수님들 많은 의견 부탁드립니다.
아래는 작성 한 리습 내용 입니다.
========================
(defun c:CreateBlocks (/ inputStr char height spacing pos blockName index pointPos)
(setq inputStr (getstring “n문구를 입력하세요 (예: GOCAD): “))
(setq height 1.0) ; 축척 (X 및 Y)
(setq spacing 0.5) ; X축 방향 자간 설정
(setq pos (getpoint “n첫 번째 블록의 배치 지점을 선택하세요: “))
;; 문자열의 각 문자에 대해 블록 삽입
(setq index 0)
(while (< index (strlen inputStr))
(setq char (substr inputStr (1+ index) 1)) ; 현재 문자 가져오기
(setq blockName (strcat "대원_2.0T_" char)) ; 블록 이름 생성
;; 블록 삽입
(command "INSERT" blockName pos height height 0) ; X, Y 축척과 각도 고정
;; 블록 내의 점 객체 위치 가져오기
(setq pointPos (list (car pos) (cadr pos) (caddr pos))) ; 초기 위치
;; 블록 내에서 점 객체의 위치를 찾습니다.
(setq pointObj (ssget "X" '((0 . "POINT")))) ; 모든 점 객체 선택
(if pointObj
(progn
(setq pointPos (cdr (assoc 10 (entget (ssname pointObj 0))))) ; 첫 번째 점의 위치 가져오기
)
)
;; 다음 블록의 위치 설정 (점 기준으로 X좌표를 증가)
(setq pos (list (+ (car pos) spacing) (cadr pointPos) (caddr pos))) ; X축 방향으로만 이동
(setq index (1+ index)) ; 인덱스 증가
)
(princ)
)
(princ "n리습이 로드되었습니다. 'CreateBlocks' 명령어를 사용하세요.")
===========================
자료실에 다중출력 ( 멀티플롯 / 일괄출력 )리습 프로그램 업그레이드(최종)
리습 다운받아 사용해보세요
멀티플롯 / 멀티 파일 플롯 / 멀티 파일 삽입
구상하고 있는 프로그램과는 근본적으로 다른 프로그램 이지만 도움이 될 것으로 보입니다.
감사합니다 ! 한번 해보겠습니다 !
음,, 좋은 자료지만 제가 원하는거와는 조금 달라서,, 도움 주셔서 감사합니다
당연히 구상하는 프로그램과 다르죠.
하지만 방법은 비슷합니다.
파일 도면을 삽입한 결과 입니다.
크기에 상관없이 도면간 거리가 10mm 간격입니다.(변경하면 1mm 가능하죠)
제 프로그램은 폴더를 검색하고 폴더 내에 모든 파일을 삽입합니다.
1. 도면 파일 A.dwg, B.dwg, C.dwg, …..만든다.
2. 문자 입력은 그림에 대화 상자에서 A부터 Z까지 숫자 0에서 9까지 받아서 하나씩 분석.
3. 문자 입력과 같이 차례로 폴더에서(A.dwg, B.dwg, C.dwg,…..) 문자 파일을 삽입한다. 끝.
ps. 대/소문자 구분 또는 구분없이 입력.
저는 문자를 여러개 넣는게 필요한데,, 중복으로 블록을 넣을수 있나요 ? 해보니까 안되는거 같아서,, 예를들면 Auto CAD 를 넣을꺼면 a 가 두번 들어가게 되는거라 ,,
혹시 이런건가요??
https://blog.naver.com/khs12kim/223598910466
이곳 게시판에 이미지 첨부하는 방법좀 알려주실 수 있나요?
일부분을 공개합니다.
아직 추가 해야 될 부분이 많습니다.
헉….
AUTOCAD가 아니라 AUTODAD로 나오는데 “C.DWG”에 “D”로 저장되어 있네요.