| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как в скрипте запретить выполнять следующий пункт команды пока предидущий активен?

Как в скрипте запретить выполнять следующий пункт команды пока предидущий активен?

Ответ
Поиск в этой теме
Непрочитано 09.07.2008, 13:41 #1
Как в скрипте запретить выполнять следующий пункт команды пока предидущий активен?
DonVik
 
Украина
Регистрация: 07.02.2007
Сообщений: 222

В общем я с тем же _amviewout.

Пишу скрипт:
Код:
[Выделить все]
cmddia 0
filedia 0
_amviewout o v c 2000 c:\temp\q.dwg
cmddia 1
filedia 1
т.е. автоматизирую отрыв вида.
Так вот проблема в том что после выполнения пункта команды "v" акад просит выделить вид, который нужно оторвать, но продолжает выполнять остальные, вот выдержка из командной строки.

Цитата:
Command: '_script
Command: cmddia
Enter new value for CMDDIA <0>: 0
Command: filedia
Enter new value for FILEDIA <1>: 0
Command: _amviewout
Source=select Views Convert=Yes Flatten=Yes Preview=Yes
Export to=external File Space=Model space
Enter an option [sOurce/conVert/Flatten/Preview/Export to/Space] <Continue>: o
Enter a source option [Current layout/select Views] <select Views>: v
Select objects to export <all views>: c
Specify first corner: 2000 Specify opposite corner: c:\temp\q.dwg
Invalid window specification.
А мне нужно чтоб опция "с" всмысле выбор имени файла куда будет отрыв выполнялась только когда я выберу что отрывать.

Так вот как проверить выполнилась ли опция (т.е. скажем нажал ли я Энтер) и уж только потом выполнялась следующая.

А вот еще попробовал так:
Код:
[Выделить все]
(command "cmddia" 0)
(command "filedia" 0)
(command "_amviewout" "o" "v")
(while (= (getvar "cmdactive") 2)

)
(command "c" "2000" "c:\temp\q.dwg")
(command "cmddia" 1)
(command "filedia" 1)
Вот подскажите какую проверку в while писать, чтоб дальнейшие действия были только после моего выбора но никак не раньше.

Последний раз редактировалось DonVik, 09.07.2008 в 13:53.
Просмотров: 2865
 
Непрочитано 09.07.2008, 14:01
#2
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


В скрипте, по идее так должно быть:
Код:
[Выделить все]
cmddia 0
filedia 0
_amviewout o v \c 2000 c:\temp\q.dwg
cmddia 1
filedia 1
На лиспе:
Код:
[Выделить все]
(command "_amviewout" "o" "v" pause "c" "2000" "c:\temp\q.dwg")
Не проверял.
Alaspher вне форума  
 
Непрочитано 09.07.2008, 14:03
#3
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Может так?

Сделай скрипт, состоящий из одной строчки. Примерно так.
Код:
[Выделить все]
(load "d:\\run.LSP")
А в файле run.LSP набей такой код:
Код:
[Выделить все]
(setvar "cmddia" 0)
(setvar "filedia" 0)
(command "_amviewout" "o" "v" pause "c" "2000" "c:\temp\q.dwg")
(setvar "cmddia" 1)
(setvar "filedia" 1)
ЗЫ Сам проверить не могу, потому что ни я, не мой Автокад не знаем команду _amviewout
Makswell вне форума  
 
Непрочитано 09.07.2008, 14:23
#4
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Скрипты - весчь чрезвычайно примитивная (хотя иногда незаменимая). В них тупо передается в командную строку каждая строка и никакой "интеллектуальности", например, проверки условий, не предполагается.

Для серьезных вещей надо писать LISP, а вот запустить его можно и через скрипт (хотя имеются гораздо лучшие способы). Но иногда это бывает предпочтительней.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 09.07.2008, 14:33
#5
DonVik


 
Регистрация: 07.02.2007
Украина
Сообщений: 222


Makswell, Alaspher так тоже не получается. Действительно скрипты не особо подходят.
Цитата:
Для серьезных вещей надо писать LISP
Если не сложно подскажи примером. Собственно мне всего-то нужно в лиспе задержать выполнение скажем пустым циклом пока я чего-то не выберу и по обычаю не нажму Энтер.
А уж запустить Лисп прогу я сумею
DonVik вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как в скрипте запретить выполнять следующий пункт команды пока предидущий активен?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46