;移動した座標値オブジェクトを更新



;+++++++++++++
(defun C:IDupdata ( / Obj cnt num MyEnt Ent  Pt )
;+++++++++++++
	(princ "\n<座標文字列を選択>")
	(setq Obj (ssget '((0 . "MTEXT"))))
	(if (not(= Obj nil));座標文字列が選択されていたら・・・
		(progn
			(setq cnt 0)
			(setq num (sslength Obj))

			(while (< cnt num);
				(setq MyEnt (ssname Obj cnt))
				(setq Ent (entget MyEnt))
				(setq Pt (cdr(assoc 10 Ent)));円の中心
				(setq Pt (trans Pt  MyEnt 0));OCS座標からWCS座標に変換 ;ename-circle
				(setq Pt (trans Pt  0 1));WCS座標からUCS座標に変換
				;+++++++++++++
				(setq Xp (car Pt)
							Yp (cadr Pt))
				(setq Xp (rtos Xp )
                     Yp (rtos Yp ))
            ;+++++++++++++	
				;+++++++作図単位による調整
				(setq Xp (rtos (* (atof Xp) (atof (getenv "係数")))))
				(setq Yp (rtos (* (atof Yp) (atof (getenv "係数")))))
				;+++++++小数点揃え
				(setq Xp (rtos (atof Xp) 2 (atoi (getenv "小数点"))))
				(setq Yp (rtos (atof Yp) 2 (atoi (getenv "小数点"))))
				;+++++++



            (setq  Orgtxt (Cdr(Assoc 1 Ent)))
            ;(setq MyVal 0)
            ;+++++ Pn
            (setq MyValx (vl-string-search "X=" Orgtxt));検索
            (if (= MyValx 0)
                  (progn
                     (setq Pn "")
                     (Setenv "Pn" Pn);測点名なし
                  );progn	
                  (progn
                     (setq MyVal (+ MyVal 1))
                     (setq  Pn (substr Orgtxt 1 (- MyValx 2)))
                     (Setenv "Pn" Pn)
                  );progn
            );if
           
            ;+++++ Yn
            (setq MyValz (vl-string-search "Z=" Orgtxt));検索
            (if (>= MyValz 0)
                  (progn
                     (setq  Zn (substr Orgtxt (+ MyValz 3)))
                     (Setenv "Zn" Zn)
                  );progn
                  (progn
                     
                     (setq Zn "")
                     (Setenv "Zn" "");Znなし	
                  );progn
            );if
            ;+++++
            
            (setq Orgtxt (strcat "X=" Xp "\\PY=" Yp ))
            ;++++++ Pn
            (setq Pn (Getenv "Pn"))
            (if Pn;<-----(if (/= Pn nil)・・・Pn が nil でないとき
                  (setq MyText (strcat Pn "\\P" Orgtxt ))
                  (setq MyText Orgtxt )
            );if
            ;++++++ Zn
            (setq Zn (Getenv "Zn"))
            (if Zn;<-----(if (/= Zn nil)・・・Zn が nil でないとき
                  (setq MyText (strcat MyText "\\PZ=" Zn ))
            );if
            ;=====================
            (setq Ent;書き直した文字列をEntに入れ直し
               (subst;差し替え
                     (cons 1 MyText); 新しい値
                     (assoc 1 Ent); 古い値
                     Ent);
            );setq
            (entmod Ent);DXF図形情報を図形に反映
            ;=====================



            (setq cnt (1+ cnt))
         );while
      );progn
      ;座標文字列が選択されていなかったら・・・
      (alert "選択エラー：座標文字列が選択されていません") 
   ):if
   (princ)
)



