Тема: Как вызвать команды RasterDesk из LISP без диалоговых окон?

Предусмотрен ли для команд RASTERDESK режим без диалоговых окон, как для стандартных команд Акада, набираемых со знаком "-" (-layer, -insert)?
Или каким еще образом можно вызывать их из LISP-программ?

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

Так что? Есть ли какие-нибудь варианты? Подскажите, PLS

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

Список команд вы можете посмотреть в файле \Program Files\Consistent Software\RasterDesk Pro 70\AC2007\RasterDesk.ssp
Так же можно запустить в командной строчке arx Command и посмотреть как вызываются команды ARX группы CSAPP.

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

arx-> Command->Group->csapp выдает только имена команд.
Да, эти команды можно использовать в функциях command или vl-cmdf. Но вызываются они только с диал. окнами.
Никаких опций, отвечающих за отключение диал. окон, там не видно:-(
По поводу файла RasterDesk.ssp. Простите за ламерский вопрос, но на каком языке он написан и как можно задействовать в Лиспе то, что в нем приведено?

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

Отключиь вызов диалоговых окон команд AutoCAD и, соответственно, приложений Arx (RasterDesk), можно с помощью системной переменной "Cmddia".
Файл RasterDesk.ssp - это список команд для Standalone версии (Spotlight). В AutoCAD эти ssp-скрипты не используются.

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

Cmddia=0 не помогло:-(
Как пишут на этом сайте, Cmddia работает только для версий до 2004 включительно. У меня на Cmddia=0 среагировал только Express. Штатные команды  типа ARRAY и команды RASTERDESK как выкидывали окна, так и выкидывают. Есть ли еще средства?

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

CDF, а где ты хочешь применить такие команды, если не секрет? Я чесно говоря все автокадовские средства перепробовал - безрезультатно. В RasterDesk подобный вызов команд не предусмотрен как мне кажеться. Капать придеться глубоко...

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

shoorup пишет:

CDF, а где ты хочешь применить такие команды, если не секрет?

Например, мне не нравится команда "сохранить растр как" - она предлагает в качестве начального пути неизвестно что. Хочу сделать свою функцию, которая бы получала имя файла более удобным способом, а потом передавала его команде CS_RSAVEAS собственно для сохранения. Есть еще варианты, но этот самый нужный. Но если ты уже все перепробовал...:-((

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

> CDF
У меня не стоит RasterDesk поэтому проверить не могу, но можешь попробовать переменную FILEDIA. Она управляет появлением диалоговых окон открытия/сохранения файлов для команд AutoCAD. Возможно и RasterDesk ее анализирует.

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

Команда "Сохранить растр как" предлагает путь для сохранения по следующему принципу:
- если сохраняется растр, открытый с определенного места на диске, то путь запоминается и указывается на тот же каталог;
- если сохраняется новый растр, то указывается дефолтный путь AutoCAD для сохранения файлов.
Переменная FileDIA, как указал CDF, отключает диалог сохранения. Напишите, какие еще команды Вы планируете использовать в LISP. Некоторые команды RasterDesk требуют обязательно диалога для ввода значений и не могут быть использованы в бездиалоговом режиме.

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

Команды, описанные в SSP файле, запускаются при помощи команды CS_rCsRun. См. примеры скриптов.
save.scr:

_filedia 0
_cmddia 0
_new
acadiso.dwt
_zoom
_e
cs_rnew
_Format
ISO A6
_Attributes
Bitonal
Create
0,0
cs_rsave
c:\Temp\test.tif
TIFF
_filedia 1
_cmddia 1

tools.scr:

_filedia 0
_cmddia 0
image
attach
CS_MECH.TIF
0,0,0
1
0
_zoom
_e
CS_rCsRun /setlogfile FNAME: "CS_MECH.log"
CS_rCsRun /RemoveHoles E
CS_rCsRun /RemoveSpeckles E
CS_rCsRun /Rotate180
CS_rCsRun /rotate90_CW
_regen
CS_rCsRun /rotate90_ccw
_regen
CS_rCsRun /invert
_filedia 1
_cmddia 1

Re: Как вызвать команды RasterDesk из LISP без диалоговых окон?

> Александр Ривилис
Да, действительно, Filedia подействовала. Век живи, век учись. Спасибо!

> Илья Слободин
Благодарю за примеры скриптов. Буду разбираться!