여기에 동일레이어로 생성되는것은 다른 레이어로(레이어명 입력) 생성되게 하거나
레이어가 힘들면
offset 되기전것은 지원지고 새로 생성된 그림들만 남아도 됩니다.
사용중인 리습은 실행하고 나서 기존 그림들은 삭제해줘야 하기 때문입니다.
해결방법이 있으면 조언 부탁드립니다.
또 한가지는 옵셋의 방향이 내측으로만 됩니다.
바깥쪽으로는 안됩니다.
(defun c:mOff (/ ss tmp safe lst)
(vl-load-com)
(or *moff (setq *moff 10.0))
(setq doc (vla-get-ActiveDocument
(vlax-get-acad-object)))
(if (setq ss (ssget ‘((0 . “ARC,CIRCLE,ELLIPSE,*LINE”))))
(progn
(initget 6)
(and (setq tmp (getdist (strcat “nSpecify Offset <” (vl-princ-to-string *moff) “> : “)))
(setq *moff tmp))
(vla-StartUndoMark doc)
(foreach var (mapcar (function (lambda (x) (vla-offset x *moff)))
(mapcar ‘vlax-ename->vla-object
(vl-remove-if ‘listp (mapcar ‘cadr (ssnamex ss)))))
(cond ((<= 0 (vlax-safearray-get-u-bound
(setq safe (vlax-variant-value var)) 1))
(setq lst (cons (vlax-safearray->list safe) lst)))))
(foreach Obj (setq lst (apply ‘append lst))
(if (vl-some
(function
(lambda (x)
(vlax-invoke obj ‘IntersectWith x acExtendNone)))
(vl-remove Obj lst))
(vla-put-color Obj acred)))
(vla-EndUndoMark doc)))
(princ))
네 딱 맞습니다.
이 기능이 맞나요?
제가 리습은 잘 몰라서 이해를 못했었네요.
레이어 설정가능하게 개선했는데,
혹시 이 기능이 맞나요? ㅎㅎ