可能是因为(vla get MomentOfInertia…返回了一个变体,而不是真实的
试试这个(不是很多测试)
- (defun c:MMNT ()
- (vl-load-com)
- (if (and (setq ent (car (entsel "\nSelect Object: ")))
- (setq pt (getpoint "\nPick a Point: ")))
- (progn
- (setq obj (vlax-ename->vla-object ent))
- (if (vlax-property-available-p obj 'momentOfInertia)
- (progn ; SUBPROGN
- (setq var (vla-get-MomentOfInertia obj)
- sa (vlax-variant-value var)
- lst (vlax-safearray->list sa)
- MNT (strcat (rtos (car lst) 2 4) " "(rtos (cadr lst) 2 4 ))
- )
- (entmakex (list (cons 0 "TEXT")
- (cons 10 pt)
- (cons 40 (getvar "TEXTSIZE"))
- (cons 1 MNT)
- ) ; end LIST
- ) ; end entmakex
- ) ; end SUBPROGN
- (princ "\n** Invalid Object Selected **")
- ) ;END IF
- ) ; END PROGN
- ) ; END IF
- (princ)
- )
|