단순 반복업무가 있어서 리습으로 만들어 보려고 하는데,
기존 리습 응용해가며 리습 작성해보다가 막힌부분 질문좀 남김니다.
1. 여러 텍스트를 불러오기
(prompt “nSelect name of draw : “)
(setq input_name (ssget));;
(setq input_name
(cdr
(assoc 1 (entget (ssname input_name 0)))
)
)
이 명령으로 텍스트를 리습변수로 불러오는건 성공했는데, 2개이상의 텍스트가 있을때는 하나만 선택이 되더라고요. 여러 텍스트를 선택시 위에 있는 텍스트부터 불러와 하나의 문자열로 합치고 싶어요
예시)
10개 (발코니 제외) |
이렇게 선택하면
input_name = 10개(발코니 제외)
이렇게 나오도록
2.텍스트의 높이값 구하기
하나의 텍스트를 선택해서 해당 텍스트의 높이를 변수로 불러오고 싶습니다.
높이를 구하는 리습이 따로 없어서 해당 부분은 어떻게 짜야할지 모르겠네요;;;
3.dtext를 입력
최종적으로 텍스트를 입력해야하는데,
(command “dtext” “s” “나눔고딕” “j” “f” l_point r_point th res)
;;스타일은 나눔고딕 고정입니다.
;;l_point와 r_point는 좌표값입니다.
;;th는 2번에서 구한 텍스트 높이입니다.
;;res는 최종적으로 입력하려고 하는 텍스트입니다.
이렇게 입력했더니,
th 부분에서 실행이 정지되네요.
어떻게해야할지 모르겠어요….
꽤나 까다로운 리습인거 같은데 도와주시면 감사하겠습니다m(_ _)m
1. 여러 텍스트 문자열 합치기
(prompt “nSelect name of draw : “)
(setq input_name (ssget));;
(setq k 0)
(setq t_nm “”)
(repeat (sslength input_name)
(setq t_nm (strcat t_nm (cdr (assoc 1 (entget (ssname input_name k))))))
(setq k (1+ k))
)
문자열 합쳐지는 기준은 선택된 순서와 상관없이 가장 먼저 생성된 객체가 앞으로 오게 되어있습니다.
2. 텍스트 높이값 가져오기
(setq t_hi (cdr (assoc 40 (entget (ssname input_name 0)))))