양쪽 끝단 얼마씩 남기고 중간 짜르는 리습이라고 얻었는데
리습 적용이 안되네요.. 뭐가 문제인지 모르겠습니다..
(defun c:test( / sl-mapcar-ens ss)
(defun sl-mapcar-ens (func ss) (mapcar func (vl-remove-if ‘listp (mapcar ‘cadr (ssnamex ss)))))
(princ “n선 양끝 남기기”)
(and
(setq ss (ssget ‘((0 . “LINE”))))
(or *dis* (setq *dis* 20))
(setq *dis* (cond ((getdist (strcat “n남길 길이 입력 <” (vl-princ-to-string *dis*) “>:”))) (*dis*)))
(sl-mapcar-ens
‘(lambda (en / ent1 len ep ent2 sp)
(setq ent1 (entget en) len (vlax-curve-getdistatparam en (vlax-curve-getendparam en)))
(if (> len *dis*)
(progn
(setq ep (vlax-curve-getpointatdist en *dis*) sp (vlax-curve-getpointatdist en (- len *dis*)))
(setq nen (entmakex (vl-remove ‘(lambda (-1 5)) (entget en))) ent2 (entget nen))
(entmod (subst (cons 10 sp) (assoc 10 ent1) ent1))
(entmod (subst (cons 11 ep) (assoc 11 ent2) ent2))
)
(princ “n입력한 길이보다 선이 짧습니다.”)
)
)
ss
)
)
(princ)
)
잘 됩니다