단면 1차 모멘트(단면의 중심, centroid)를 구하는 방법은 캐드 명령상에 “massprop”를 사용했습니다.
근데 선의 중심을 구할때는 방법이 없어서 리습으로 하나 만들어보고 싶었습니다.
(참고로 저는 리습을 배운적도 없고..그냥 따른 리습가져다가 수정해서 쓰고 있습니다..ㅠㅠ)
그래서 선의 길이를 구하는 리습으로 수정하고 있었는데 잘 안되네요..
수정좀 부탁드려요..제발..
;;선의 단면 1차 모멘트??
(defun c:123(/)
(setq os (getvar “osmode”))
(setq in (getvar “clayer”))
(setq DD 0.0)
(setq LL 0.0)
(setvar “osmode” 33)
(command “layer” “new” “inchul” “color” “161” “inchul” “s” “inchul”””) (terpri)
(while (/= (setq pt1 (getpoint “Pick 1st Point : “)) nil)
(setq pt2 (getpoint pt1 “Pick 2nd Point : “))
(setq x1 (car pt1))
(setq x2 (car pt2))
(setq y1 (cadr pt1))
(setq y2 (cadr pt2))
(setq dx (- x2 x1))
(setq dy (- y2 y1))
(setq l1 (sqrt (+ (* dx dx) (* dy dy))))
(setq a1 (sqrt (* x1 x1)))
(setq b1 (sqrt (* x2 x2)))
(setq p1 (/ (+ a1 b1) 2))
(setq o1 (* p1 l1))
(setq dd (+ o1 dd))
(setq ll (+ l1 ll))
(command “layer” “s” “inchul”””)
(command “line” pt1 pt2 “”)
(setq de (/ DD LL)
(PRINC)
)
(setq pnt (getpoint “Text a Point : “))
(setvar “osmode” 0)
(setq de (rtos de 2 dec)) ;de에 저장된 숫자를 문자로 변환;2째짜리 까지
(command “.text” “j” “c” pnt “” “” DE “”)
(print DE)
(setvar “osmode” os)
(setvar “clayer” in)
)
공유