inters 라인의 포인트를 이용해서 교차점은 얻는다.
(inters <point1> <point2><point3><point4> [flag])
flag 가nil 이면 무한상의 교차점 t 이면 아니고.
textbox <elist>
text인 elist를 감싸는 box의 대각선 좌표를 두 점의 list로 출력한다.
2011년 10월 24일 월요일
2011년 10월 19일 수요일
(defun c:test()
(setq select_set(ssget '((0 . "line"))))
(setq setname(ssname select_set 0))
(setq ent (entget setname))
(setq xpon1(abs(nth 1(assoc 10 ent))))
(setq xpon2(abs(nth 1(assoc 11 ent))))
(setq ypon1(abs(nth 2(assoc 10 ent))))
(setq ypon2(abs(nth 2(assoc 11 ent))))
(setq len(rtos(distance
(setq p2(cdr(assoc 10 ent)))
(setq p2(cdr(assoc 11 ent)))
)2 0))
(if (> xpon1 xpon2)
(setq xlen(rtos(- xpon1 xpon2)2 0))
(setq xlen(rtos(- xpon2 xpon1)2 0))
)
(if (> ypon1 ypon2)
(setq ylen(rtos(- ypon1 ypon2)2 0))
(setq ylen(rtos(- ypon2 ypon1)2 0))
)
(setq p1(getpoint))
(command "-insert" "vbal" p1 "" "" len ylen xlen)
(princ xlen)
(princ "\n")
(princ ylen)
(princ)
)
선택한 라인의 길이를 써준다.
2011년 10월 18일 화요일
BOLT 그리기
(defun insert_bolt(bolts len bolt_d bolt_h bs / p1 p2 p3 pon1 pon2 pon3
pon4 pon5 pon6 pon7 pon8 pon9 pon10 pon11 pon12 pon13 oldos)
(setq oldos(getvar "osmode"))
(setvar "osmode" 33)
(setq p1(getpoint"\n\"첫번째점 지정\""));insert point
(setq p2(getpoint"\n\"두번째점 지정\""));방향과 각도를 얻는다.
(setvar "osmode" 0);그리기위해서 오스넵을 꺼둔다.
(setq p3(angle p1 p2))
(setq pon1(polar p1 (+ p3 (/ pi 2)) (/ bolts 2)))
(setq pon2(polar pon1 p3 bs))
(setq pon3(polar pon2 p3 len))
(setq pon4(polar pon3 (- p3 (/ pi 2)) bolts))
(setq pon5(polar pon4 (+ p3 pi) len))
(setq pon6(polar pon5 (+ p3 pi) bs))
(setq pon7(polar p1 p3 (+ bs len)))
(setq pon8(polar pon7 (+ p3 (/ pi 2))(/ bolt_d 2)))
(setq pon9(polar pon8 p3 bolt_h))
(setq pon10(polar pon9 (- p3 (/ pi 2)) bolt_d))
(setq pon11(polar pon10 (+ p3 pi) bolt_h))
(setq pon12(polar pon7 p3 (+ bolt_h bolt_h)))
(setq pon13(polar p1 (+ p3 pi) bolt_h))
(command "color" "3" "" );볼트는 녹색
(command "pline" pon1 pon2 pon5 pon6 pon1 "")
(command "pline" pon2 pon3 pon4 pon5 pon2 "")
(command "pline" pon8 pon9 pon10 pon11 pon8 "")
(command "color" "1" "");중심선은 빨강색
(command "line" pon13 pon12 "");center line
(setvar "osmode" oldos)
(command "color" "bylayer" "")
);end
(defun c:ib();insert bolt(t.s bolt 규격참조)
(initget 1 "16 20 22 24")
(setq bolt_size (getkword"\n\"bolt size를 선택해주세요.(16 20 22 24)\""))
(setq len(getint"\n\"길이를 입력해주세요.\""))
(cond
((= bolt_size "16")(insert_bolt 16.0 len 27.0 10.0 15.0));볼트사이즈,길이,d(머리지름),h(머리두께),s(덜어져 나갈부분)
((= bolt_size "20")(insert_bolt 20.0 len 34.0 13.0 18.0))
((= bolt_size "22")(insert_bolt 22.0 len 39.0 14.0 19.0))
((= bolt_size "24")(insert_bolt 24.0 len 43.0 15.0 20.0))
)
(princ)
)
규격화된 볼트를 그린다.
딴건 없고 서브 함수에 매게변수를 건네주는 것을 본격적으로 활용한것에 의의
상수와 변수 모두 잘 건네주었다.
지역변수 지정도 정상작동 돼었다.
딴건 없고 서브 함수에 매게변수를 건네주는 것을 본격적으로 활용한것에 의의
상수와 변수 모두 잘 건네주었다.
지역변수 지정도 정상작동 돼었다.
2011년 10월 12일 수요일
2011년 10월 7일 금요일
피드 구독하기:
글
(
Atom
)