리습 실행순서 변경하기
컨텐츠 정보
- 1,129 조회
- 0 추천
- 0 비추천
- 목록
본문
교차점에 대각선의 선을 긋는 리습입니다.
이걸 실행 순서를 변경하고 싶습니다.
자세한 내용은 파일 첨부 하겠습니다.
(defun c:inline ( / _slashpt acDoc acSpc Sset dist oList IntPt )
(defun _slashpt(pt dst / p1 p2)
(setq p1(polar pt (/ pi 4) dst)
p2(polar pt (/(* 5 pi)4)dst)
)
(list p1 p2)
)
(setq acDoc (vla-get-activedocument (vlax-get-acad-object)))
(setq acSpc (vlax-get acDoc (if (= 1 (getvar 'CVPORT)) 'paperspace 'modelspace)))
(if (setq dist(getreal "n사선길이를 입력하세요:"))
(progn
(setq Sset (ssget ))
(setq dist (* dist 0.5))
(setq oList (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex Sset)))))
(vla-startundomark acDoc)
(foreach obj1 oList
(foreach obj2 (cdr oList)
(setq Index 0)
(if (setq IntPt (vlax-invoke obj1 'intersectwith obj2 acextendnone))
(if (= (length IntPt) 3)
(progn
(setq pLst(_slashpt Intpt dist))
(vlax-invoke acSpc 'addline (car pLst)(cadr pLst))
)
(repeat (/ (length IntPt) 3)
(setq Pt (list (nth Index IntPt) (nth (1+ Index) IntPt) (nth (+ Index 2) IntPt)))
(setq pLst1(_slashpt pt dist))
(vlax-invoke acSpc 'addline (car pLst1)(cadr pLst1))
(setq Index (+ Index 3))
)
)
)
)
(setq oList (cdr oList))
)
(vla-endundomark acDoc)
);progn
)
(princ)
)
(vl-load-com)
(prompt "n::[Inline]::")
(princ)