本帖最后由 Sylvanas 于 2016-9-29 15:02 编辑
 - (defun c:tt ()
- (setq cmdecho (getvar "cmdecho"))
- (setvar "cmdecho" 0)
- (setq osmode (getvar "osmode"))
- (setvar "osmode" 0)
- (setq ss (ssget '((2 . "自动坐标"))))
- (while (setq en (ssname ss 0))
- (setq ss (ssdel en ss))
- (setq ss1 (ssadd))
- (setq ss1 (ssadd en ss1))
- (setq dxf (entget en))
- (setq en1 (entnext en)
- dxf1 (entget en1)
- )
- (setq FXYZ nil)
- (setq obj (vlax-ename->vla-object en))
- (foreach att (vlax-invoke obj 'GetAttributes)
- (setq tag (strcase (vla-get-TagString att))
- str (vla-get-TextString att)
- )
- (cond ((= "FXYZ" tag) (setq FXYZ str))
- ((= "FX" tag) (setq FX str))
- ((= "FY" tag) (setq FY str))
- ((= "FZ" tag) (setq FZ str))
- )
- )
- (while (/= FXYZ (setq FXYZ (vl-string-subst " " "," FXYZ))))
- ;(setq FXYZ "1,2,3")
- (setq FXYZ (read (strcat "(" FXYZ ")")))
- (if (= 3 (length FXYZ))
- (setq pt FXYZ)
- (setq pt (list (atof FX) (atof FY) (atof FZ)))
- )
- (command "move" ss1 "" (cdr (assoc 10 dxf)) (trans pt 1 0))
- )
- (setvar "cmdecho" cmdecho)
- (setvar "osmode" osmode)
- (princ)
- )
好像没问题,你试一下 |