여러개의 중심선을 선택하여 각 선의 시작점과 길이 값을 가져와
선택한 블럭을 각선에 시작점의 위치에 길이만큼 y방향 스케일을 늘려 붙혀넣기를 하려 합니다.
시작점의 위치를 가져와 블럭을 붙혀넣기까지는 작업을 했지만
부재의 길이만큼 y스케일을 늘려주려고 하는데
subst를 어떻게 사용해야 되는지 몰라서 문의 드립니다.
(Defun c:istbl(/ center_line blockobj i lent ptc ptlist sp ep dist distlist blockdata)
(prompt “n중심선을 선택 : “)
(setq center_line (ssget ‘((0 . “line”))))
(setq blockobj (car (entsel “n블럭 선택 : “)))
(repeat (setq i (sslength center_line))
(setq i (1- i))
(setq lent (entget (ssname center_line i)))
(setq ptc (list (cdr (assoc 10 lent))))
(setq ptlist (append ptlist ptc))
(setq sp (cdr (assoc 10 lent))) ;시작점 가져오기
(setq ep (cdr (assoc 11 lent))) ;끝점 가져오기
(setq dist (list (distance sp ep))) ;거리를 가져와 리스트 만들기
(setq distlist (append distlist dist)) ;새로 만든 리스트 기존 리스트에 추가하기
)
(setq blockdata (entget blockobj))
(foreach x ptlist
(entmake (subst (cons 10 x) (assoc 10 blockdata) blockdata))
)
)
답변감사합니다.