本帖最后由 作者 于 2007-1-26 17:27:55 编辑
问题解决,龙版主的指点是正确的,再次感谢! (defun C:uu () (vl-load-com) (setq *APP (vlax-get-acad-object) *DOC (vla-get-activeDocument *APP) *MSP (vla-get-Modelspace *DOC) ;可以不用这句 *UTI (vla-get-Utility *DOC) ;取得Utility集 *UCS (vla-get-UserCoordinateSystems *DOC) ;取得UCS集 ) (if (= (getvar "UCSNAME") "") ;当前UCS名,如果未命名,则 (progn (setq OldOrg (vla-GetVariable *DOC "UCSORG") ;取当前UCS原点 OldXDr (vla-getVariable *DOC "UCSXDIR") ;取当前X方向 OldYDr (vla-getVariable *DOC "UCSYDIR") ;取当前Y方向 OldUcs (vla-add *UCS (vlax-3d-point '(0 0 0)) OldXDr OldYDr "OLDUCS") ) ;建立当前UCS,但原点在(0,0,0)处 (vla-put-origin OldUcs OldOrg) ;改变原点为当前UCS原点 ) (setq OldUcs (vla-get-activeucs *DOC)) ;取得UCS物体 ) (princ) ) 奇怪的很,如果你不用(vlax-3d-point '(0 0 0)),而直接使用OldOrg就会出现错误! |