Can anyone tell me why this does not work correctly? Acac2002 The routine asks the user to pick a top center point as the start point of the dtext and then after the user selects that point, the actual start point is then moved south of the actual pick point. Thing is, that the routine checks and stores the osmode status and turns osmode off before picking the start point. This is not good if the user has an osmode selected and then the routine turns it off. So, I took out the turning off of the osmode. If there is an osmode and it is not turned off, the dtext does not get moved, but if the osmode is either turned off by the routine or there was no osmode set, then the dtext gets moved. Any ideas? I picked this code up from various posts in these groups and pieced it together for my use. ;;;;;;;;;; (defun DTR (A) (* PI (/ A 180.0)) ) ;;;;;;;;;; (defun C:MDT( / OSM OTHM SNM DIMSC SPA SPB) (setq OSM(getvar "OSMODE")) (setvar "OSMODE" 0) (setq OTHM(getvar "ORTHOMODE")) (setvar "ORTHOMODE" 0) (setq SNM(getvar "SNAPMODE")) (setvar "SNAPMODE" 0) (setq DIMSC(getvar "DIMSCALE")) (setq SPA(getpoint " Pick the TOP CENTER point: ")) (setq SPB(polar SPA (DTR 270.0) (* DIMSC 0.09375000))) (command "._dtext" "_J" "_TC" SPB (* DIMSC 0.09375000) "0.00000000") (setvar "OSMODE" OSM) (setvar "ORTHOMODE" OTHM) (setvar "SNAPMODE" SNM) (princ) ) Thanks in advance. John Hatfield