프로그램
캐드 분류

다중 옵셋 명령 리습입니다. 동일레이어로 생성되는것을 신규레이어로 추가 입력가능한가요

컨텐츠 정보

  • 226 조회
  • 6 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

여기에 동일레이어로 생성되는것은 다른 레이어로(레이어명 입력) 생성되게 하거나
레이어가 힘들면 
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))

관련자료

댓글 6 / 1 페이지

CATS_Developer님의 댓글

제가 리습은 잘 몰라서 이해를 못했었네요.

오늘 내일 중으로 해당 기능에 대해 개발해서 공유해볼게요 …

dukujuku님의 댓글

네 딱 맞습니다.

그러면 한가지 추가해서요 옵셋전것은 삭제되고 변경 된것만 남게도 되나요?
전체 6,913 / 1 페이지
번호
제목
이름

최근글


새댓글


알림 0