수고가 많으십니다
다름이 아니라 단면계수를 자동으로 계산해주는 리습을 쓰고있는데
오토캐드에서는 좌표가 원점으로 고정돼서 따로 좌표 수정 안해도 됐었는데
지스타캐드에서는 좌표가 원점으로 고정이 안됩니다.
확인 부탁드리겠습니다.
(defun c:qq ()
(setvar "cmdecho" 0)
(setq ssP (entsel "\n Select object : "))
(if (not ssp)
(exit)
)
(setq na (car ssp))
(setq b (entget na))
(setq ename (cdr (assoc 0 b)))
(if (= ename "REGION")
(progn
(setq f_name (strcat (getvar "dwgprefix") (getvar "dwgname")))
(setq leng (- (strlen f_name) 4))
(setq mp_name (substr f_name 1 leng))
(command "_massprop" ssp "" "Y" mp_name)
(setq ffi (open (strcat mp_name ".mpr") "r"))
(repeat 7 (read-line ffi))
(setq xp (atof (substr (read-line ffi) 25))
yp (atof (substr (read-line ffi) 25))
)
(setq os_v (getvar "osmode"))
(setvar "osmode" 0)
(close ffi)
(setvar "pdmode" 3)
(command "point" (list xp yp) "UCS" "o" (list xp yp))
; (command "UCSICON" "or")
(setvar "osmode" os_v)
(command "_massprop" ssp "" "Y" mp_name)
(textscr)
(COMMAND "UCS" "")
(princ)
)
(progn
(PRINC "\nNot a REGION ")
(PRINC)
)
)
)
;=======SMP=======
(defun c:SMP ()
(setvar "cmdecho" 0)
(setq ssP (entsel "\n Select object : "))
(if (not ssp)
(exit)
)
(setq na (car ssp))
(setq b (entget na))
(setq name (cdr (assoc 0 b)))
(if (= name "REGION")
(progn
(setq f_name (strcat (getvar "dwgprefix") (getvar "dwgname")))
(setq leng (- (strlen f_name) 4))
(setq mp_name (substr f_name 1 leng))
(command "_massprop" ssp "" "Y" mp_name)
(setq ffi (open (strcat mp_name ".mpr") "r"))
(repeat 7 (read-line ffi))
(setq xp (atof (substr (read-line ffi) 25))
yp (atof (substr (read-line ffi) 25))
)
(setq os_v (getvar "osmode"))
(setvar "osmode" 0)
(close ffi)
(setvar "pdmode" 3)
(command "point" (list xp yp) "UCS" "o" (list xp yp))
; (command "UCSICON" "or")
(setvar "osmode" os_v)
(command "_massprop" ssp "" "Y" mp_name)
(textscr)
(COMMAND "UCS" "")
(princ)
)
(progn
(PRINC "\nNot a REGION ")
(PRINC)
)
)
)
(princ "\nLoaded MassProperties")
(princ)