Тема: замена значения атрибута программно

Помогите, кто может!
Пытаюсь програмно заменить значение атрибута на новое без использования стандартного диалогового окна.
Если все действия, описанные ниже, делать из командной строки, то все получается - значение атрибута меняется.
Вот листинг процедуры:
Command: -attedit

Edit attributes one at a time? [Yes/No] :

Enter block name specification : alz5703

Enter attribute tag specification : color_alz

Enter attribute value specification :
Select Attributes: w

Specify first corner: 0,0
Specify opposite corner: 185,273

1 found
Select Attributes:

1 attributes selected.
Enter an option [Value/Position/Height/Angle/Style/Layer/Color/Next] : v
Enter type of value modification [Change/Replace] : r
Enter new attribute value: ddd

Enter an option [Value/Position/Height/Angle/Style/Layer/Color/Next] :

Command:
------------------------
Однако если подобное запустить из сонсоли Лиспа ,то не получается, происходит обрыв и в листинге акада список ошибок:

То, что запускаю с консоли:

(setq  w01 (list 0 0) w02 (list 185 273) nb "ddd")
(command "-attedit" "" "alz5703" "color_alz" "" "w" w01 w02 "" "v" "r" nb "")

То, что получается в результате:

Command: -attedit
Edit attributes one at a time? [Yes/No] :
Enter block name specification : alz5703
Enter attribute tag specification : color_alz
Enter attribute value specification : Select Attributes: w
Specify first corner: Specify opposite corner:

1 found

1 attributes selected.
Enter an option [Value/Position/Height/Angle/Style/Layer/Color/Next] :
Command: v Unknown command "V".  Press F1 for help.

Command: r Unknown command "R".  Press F1 for help.

Command: ddd Unknown command "DDD".  Press F1 for help.

Command: VLIDE Unknown command "VLIDE".  Press F1 for help.

Command:

-----------
Процесс обрывается выбором атрибута
В чем причина, немогу разобраться.

Re: замена значения атрибута программно

Kak ya ponjal, tebe nuzhno 4to-to wrode etogo?
Esli net, to uto4ni.

(defun att_edit ( / block att att_name att_value get_value value_new value seqend )

(setq block (car(entsel)))
(if block
(progn
(setq att (entnext block))
(setq seqend (cdr (assoc 0 (entget att))))
(while (not (eq seqend "SEQEND"))
(setq att_name (cdr (assoc 2 (entget att))))
(setq att_value (cdr (assoc 1 (entget att))))
(princ (strcat "\n" att_name " = " att_value))
(setq get_value (getstring T (strcat "\nNew value or [" att_value "] : ")))
(if (eq get_value "")
(setq value_new att_value)
(setq value_new get_value)
); end if
(setq value (subst (cons 1 value_new) (assoc 1 (entget att)) (entget att)))
(entmod value)
(entupd att)
(setq att (entnext att))
(setq seqend (cdr (assoc 0 (entget att))))
); end while
); end progn
); end if
); end defun

Re: замена значения атрибута программно

Сергей, спасибо,  я посмотрю что Вы мне предложили, но только непонятно, почему автокад после того, как нашел нужный мне атрибут в указанном рамкой месте нежелает воспринимать опцию V, хотя она присутствует в предложенном им же списке выбора опций, причем когда я её вводил с командной строки, то автокад её воспринимал.

Re: замена значения атрибута программно

> (command
"-attedit" "" "alz5703" "color_alz" "" "w" w01 w02 "" "v" "r" nb "")

удали ковычки "" после w02, т.е.

(command "-attedit" "" "alz5703" "color_alz" "" "w" w01 w02 "v" "r" nb "")

Вот как у меня было:
(command "ATTEDIT" "Y" "*" "*" "*" "L" "V" "R" "NEWSTR" "")
А вообще лучше работать не через command, а так как написал Serghei.