按照您描述的方法,尝试以下操作:
- (defun c:test ( / *error* cmd m o s )
- (defun *error* ( msg )
- (if cmd (setvar 'CMDECHO cmd))
- (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
- (princ (strcat "\nError: " msg))
- )
- (princ)
- )
- (setq cmd (getvar 'CMDECHO))
- (setvar 'CMDECHO 0)
- (if (setq s (ssget "_+.:E:S" '((0 . "REGION,3DSOLID"))))
- (progn
- (setq o (vlax-ename->vla-object (ssname s 0)))
- (command "_.ucs" "_origin" (vlax-get o 'centroid))
- (setq m (vlax-get o 'momentofinertia))
- (command "_.ucs" "_p")
- (print (mapcar '(lambda ( x ) (/ x 10000.0)) m))
- )
- )
- (setvar 'CMDECHO cmd)
- (princ)
- )
- (vl-load-com) (princ)
|