CAFE

Re:사각박스 원 안에 x라인 그리는 리습 부탁드립니다^^

작성자달수|작성시간09.03.14|조회수514 목록 댓글 0

(defun c:lx (/ p1 p2 p3 p4 cp ra ds)

 (princ "x line")(terpri)
 (setq p1 (getpoint "\n  좌측하단 : "))
 (setq p3 (getcorner p1 "\n  우측상단 : "))
 (setq p2 (list (car p1)(cadr p3))
          p4 (list (car p3)(cadr p1))
          cp (inters p1 p3 p2 p4 nil)
          ra (/ (min (distance p1 p2)(distance p2 p3)) 2)
          ds (sqrt (/ (expt ra 2) 2))
          p1 (list (- (car cp) ds)(- (cadr cp) ds))
          p2 (list (+ (car cp) ds)(- (cadr cp) ds))
          p3 (list (+ (car cp) ds)(+ (cadr cp) ds))
          p4 (list (- (car cp) ds)(+ (cadr cp) ds))
 )

 (command "line" p1 p3 "" "line" p2 p4 "")
 (prin1)

)(princ)

 

 

 

박스가 정사각형 또는 직사각형이라고 하고 박스의 중심에서 가로변과 세로변중에서

작은쪽으로 내접하는 원이 있다는 가정하에 만들었습니다. (load "LX") 해주시고

캐드에서 명령은 LX으로 만들었는데 위에서 LX를 편하신대로 명령을 바꾸어서 사용하세요

 

그런데 질문이 좀더 구체적이였으면 좋겠군여^^

제가 추정해서 생각해보면 굳이 사각형안의 원이 아니더라도 원만 선택하면

X라인이 그려지게 하면 될듯해서 위에거를 다시 수정해보았습니다.

위에만든 리습은 사각형 박스의 두군데 모서리를 찍어주어야 하지만

아래 만든 리습은 원만 선택하면 X라인이 그려지게 했구

또한 원의 갯수가 많을시는 계속해서 원의 선택을 요구하고

X라인이 그려지게 만들어봤어여..

리습의 줄수는 적은듯해도 님덕에 수학을 하게 되네여..ㅎㅎ

두 리습중 편하신거로 사용하세요^^

 

(defun c:cx (/ se p1 p2 p3 p4 cp ra ds)
   (princ "circle in x line")(terpri)
   (while (setq se (entsel "\n  원을 선택 : "))
   (setq cp (cdr (assoc 10 (entget (car se)))))
   (setq ra (cdr (assoc 40 (entget (car se)))))
   (setq ds (sqrt (/ (expt ra 2) 2))
            p1 (list (- (car cp) ds)(- (cadr cp) ds))
            p2 (list (+ (car cp) ds)(- (cadr cp) ds))
            p3 (list (+ (car cp) ds)(+ (cadr cp) ds))
            p4 (list (- (car cp) ds)(+ (cadr cp) ds))
  )
  (command "line" p1 p3 "" "line" p2 p4 "")
 )
 (prin1)
)(princ)

  

첨부파일 lx.lsp

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼