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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > запуск программы из AutoCADа

запуск программы из AutoCADа

Ответ
Поиск в этой теме
Непрочитано 17.04.2006, 22:00 #1
запуск программы из AutoCADа
kminas
 
Регистрация: 25.02.2006
Сообщений: 71

Можно ли и как в меню AutoCADа вставить запуск другой программы?
Просмотров: 31230
 
Непрочитано 17.04.2006, 22:57
#2
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
<phrase 1=


А зачем тему-то новую создавать... Нажмите F1 и в разделе поиск наберите acаd.pgp
Там подробно разжовано. Я помнится QuakeIII кнопкой запускал
Одна тонкость: в разных версиях винды по-разному может называться командная строка (cmd или commаnd). Можно и расшариться и попробовать пойти дальше(это уже "/?" в командной строке; из элементарного "net" ну или другие операции,которые Вы делаете не один раз на дню по сети или в проводнике).Если постараться, можно отформатировать диск у соседа нажатием кнопки
pyatifan вне форума  
 
Непрочитано 18.04.2006, 05:51
#3
Serge Krasnikov

Конструктор, инженер-механик на пенсии
 
Регистрация: 03.10.2003
Новосибирск
Сообщений: 6,953


Цитата:
Сообщение от pyatifan
...Если постараться, можно отформатировать диск у соседа нажатием кнопки
Ну уж, наговоришь
Serge Krasnikov на форуме  
 
Непрочитано 18.04.2006, 06:07
#4
Pelar

3D моделирование
 
Регистрация: 07.02.2006
Новосибирск
Сообщений: 70


Ой, как мне это нравиться, а можно поподробней.

Научите меня, пожалуйста, пожалуйста.
Pelar вне форума  
 
Непрочитано 18.04.2006, 06:22
#5
Serge Krasnikov

Конструктор, инженер-механик на пенсии
 
Регистрация: 03.10.2003
Новосибирск
Сообщений: 6,953


Цитата:
Сообщение от Pelar
Ой, как мне это нравиться, а можно поподробней.
Научите меня, пожалуйста, пожалуйста.
Вообщето оффтопик..
1. Нужно сначала подключиться к сУседнему компьютеру с помощью например телнет, ну или какой-нибудь терминальной программой.
Именно эти терминальные ппрограммы и порлволяют запустить процесс на соседнем компьтере. Ну и делай, что хочешь
2. Запустить серверную часть какой-либо программы удаленного администрирования, например с помощью автозагрузки или занесения в реестр, ну а дальше подключаешься клиентвкой частью и вуаля..
Serge Krasnikov на форуме  
 
Непрочитано 18.04.2006, 10:08
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


На всякий случай выдержки из русского хелпа
ACAD.PGP
Цитата:
; Файл параметров для AutoCAD 2004
; Определение псевдоимен команд и внешних команд

; Copyright (C) 1997-2002 by Autodesk, Inc.

; Всякий раз при открытии нового или существующего рисунка
; AutoCAD достает из папки вспомогательных файлов (support)
; файл acad.pgp и читает его.

; -- Внешние команды --
; Во время работы AutoCAD можно вызывать другие программы и
; утилиты, например, системные команды или приложения Windows.
; Внешняя команда может быть определена путем задания имени
; команды (которая вводится в строке команд AutoCAD) и исполняемого
; выражения (которое передается операционной системе).

; -- Псевдокоманды --
; Часто используемые команды можно заменить их аббревиатурами
; (псевдоименами), которые тоже описываются в файле acad.pgp.
; Псевдоимя можно присвоить любой команде AutoCAD, команде
; драйвера устройства или внешней команде.


; Совет: сделайте резервную копию этого файла перед тем, как
; редактировать его.


; Формат внешних команд:
; <Имя команды>,[<Подсказка DOS>],<Битовый флаг>,[*]<Подсказка>,

; Далее идет описание битов флага:
; Бит 1: если установлен, не ждать завершения приложения
; Бит 2: если установлен, выполнять приложение в свернутом виде
; Бит 4: если установлен, выполнять приложение "скрытым"
; Бит 8: если установлен, взять строку аргумента в кавычки


; Битовый флаг образуется путем суммирования требуемых битов.
; Биты 2 и 4 взаимно исключают друг друга; если заданы оба, используется 2 бит.
; Наиболее часто употребляются значения 0 ((запустить приложение и ждать
; его завершения), 1 (запустить приложение и не ждать завершения), 3 (свернуть
; и не ждать) и 5 (скрыть и не ждать). Обычно, значения 2 и 4 не используются,
; поскольку они делают AutoCAD недоступным до окончания работы приложения.

; Бит 8 позволяет таким командам, как DEL правильно работать с именами файлов,
; включающими пробелы (например, "long filename.dwg"). Заметим, что установка
; этого флага может препятствовать использованию в качестве аргументов команды
; списка файлов, разделенных пробелами. В этом случае бит 8 не следует устанавливать.

; Примеры вызова внешних команд

КАТАЛОГ, DIR /W, 8,Спецификация файлов: ,
DEL, DEL, 8,Удалить файл(ы): ,
DIR, DIR, 8,Спецификация файлов: ,
РЕД, START EDIT, 9,Редактировать файл: ,
ДОС1, , 1,*Команда ОС: ,
ДОС, , 1,*Команда ОС: ,
SH, , 1,*Команда ОС: ,
START, START, 1,*Выполнить приложение: ,
TYPE, TYPE, 8,Распечатать файл: ,

; Примеры внешних команд для Windows
; См. также AutoLISP-функцию (STARTAPP) как альтернативный метод.
И сам HELP
Цитата:
В файле acad.pgp можно определить новую внешнюю команду AutoCAD для запуска нужного приложения. В приведенном ниже примере определяется команда ЗПРИЛ1, которая вызывает приложение app1.exe из папки c:\vbapps\. (Этот фрагмент кода необходимо добавить в раздел внешних команд файла acad.pgp.)

ЗПРИЛ1, start c:\vbapps\app1, 0
Если при запуске приложения требуется задавать определенные параметры, можно воспользоваться следующим примером:

ЗПРИЛ2, start c:\vbapps\app2, 0, *Параметры: ,
В этом примере определяется команда ЗПРИЛ2, при выполнении которой запрашиваются параметры, передаваемые впоследствии запускаемому приложению.

Другой способ запуска приложений, использующих Automation, заключается в применении функции AutoLISP startapp. При этом после запуска внешнего приложения управление его выполнением из AutoLISP невозможно. Однако с помощью AutoLISP можно вызывать различные приложения в зависимости от значения тех или иных параметров.

Работая в AutoCAD, можно вызывать на выполнение другие программы и утилиты:

Системные команды и утилиты Windows, такие как start, type, dir и copy
Приложения (например текстовые редакторы и текстовые процессоры)
Системы управления базами данных, электронные таблицы, коммуникационные программы
Созданные пользователем программы (командные файлы, приложения на Visual Basic)
Если в командной строке введена последовательность символов, не являющаяся встроенной командой, AutoCAD ищет ее в файле acad.pgp, расположенном в папке support. В первом разделе файла acad.pgp описываются внешние команды. Добавить собственные описания команд можно, отредактировав файл acad.pgp в Блокноте или любом другом текстовом редакторе, поддерживающем сохранение файлов в формате ASCII. Чтобы открыть PGP-файл, нужно в меню «Сервис» выбрать «Адаптация» «Редактирование файлов» «Параметры программ (acad.pgp)».

Замечание Перед редактированием файла acad.pgp следует создать его резервную копию, которую при необходимости впоследствии можно будет восстановить.

Процесс создания описания внешней команды заключается в указании ее имени, вводимого в командной строке AutoCAD, и строки, передаваемой в операционную систему. Каждая запись в разделе внешних команд состоит из пяти полей, разделенных запятыми:

команда,[исполняемая_команда],флаги[,[*]подсказка[,код_возврата]]
команда

Имя, вводимое в ответ на подсказку «Команда:». Если имя совпадает с именем встроенной команды AutoCAD, оно игнорируется. Имя может быть написано в любом регистре.

исполняемая_команда

Строка, передаваемая в операционную систему при вводе имени команды. Такой строкой может быть любая команда, которую можно выполнить в ответ на подсказку операционной системы. Она может содержать параметры и опции. Чувствительность строки к регистру зависит от исполняемого приложения.

флаги

Обязательный параметр, представляющий собой сумму битовых значений (битовый вектор). Значение параметра строится путем суммирования следующих элементов:

0 Запустить приложение и дождаться завершения его работы.

1 Не дожидаться завершения работы приложения.

2 Запустить приложение в свернутом окне.

4 Запустить приложение в скрытом режиме.

8 Заключить строку аргументов в кавычки.

Значения 2 и 4 — взаимоисключающие; поэтому, если задано и то, и другое, приоритет имеет значение 2. Следует избегать использования значений 2 или 4 без значения 1, т.к. в этом случае AutoCAD становится недоступен до тех пор, пока не завершится внешнее приложение.

Значение 8 позволяет командам, подобным del, правильно обрабатывать файлы, в именах которых имеются пробелы. Однако, это ограничивает возможность передачи в команды списков файлов с разделением элементов пробелами. Для того, чтобы выполнять групповую обработку файлов, не следует использовать значение 8.

подсказка

Этот элемент не обязателен. Он задает подсказку, выводимую в командной строке AutoCAD. Ответ на нее присоединяется к постоянной командной строке, указанной в элементе «исполняемая_команда». Если первым символом элемента является звездочка (*), ответ может содержать пробелы, и для завершения ответа необходимо нажать клавишу ENTER. В остальных случаях ответ заканчивается нажатием либо клавиши ПРОБЕЛ, либо ENTER. Если подсказка не требуется, но за ней должны следовать какие-либо поля данных, в описании команды ставится просто запятая. Запятую также нужно ставить, чтобы отделить подсказку от последующего текста пробелом.

код_возврата

Необязательный параметр, представляющий собой сумму битовых значений (битовый вектор). Значение параметра строится путем суммирования перечисленных ниже значений. Например, если активными должны быть значения 1 и 2, в качестве кода возврата следует ввести 3. Коды 0 и 4 не имеют смысла в графической многооконной среде, и поэтому здесь не описаны.

1 Загрузка DXB-файла. По окончании выполнения внешней команды AutoCAD загружает в рисунок DXB-файл с именем $cmd.dxb. После загрузки файл $cmd.dxb удаляется с диска. Процесс подобен вызову команды ИМПОРТД.

2 Создание описания блока по DXB-файлу. AutoCAD создает описание блока из объектов файла $cmd.dxb. В качестве имени блока берется ответ на подсказку. Введенное имя должно быть допустимым именем блока, еще не определенного в данном рисунке. Переопределение существующих блоков здесь не допускается. После загрузки файл $cmd.dxb удаляется с диска. Имя созданного блока становится именем по умолчанию для команды ВСТАВИТЬ.

Файл также может содержать строки комментариев, которые должны начинаться символом точки с запятой (;).

Вызов системных команд Windows
При описании внешних команд AutoCAD часто используются системные команды Windows start и cmd. Если в строке исполняемой команды нет ни start, ни cmd, AutoCAD остается недоступным до тех пор, пока не будет закрыто окно внешнего приложения.

Команда start открывает новое окно и запускает в нем указанную в аргументе программу. Если команда start вызвана без параметров, она открывает новое окно командной строки. Команда может сопровождаться опциями, которые определяют вид нового окна. Для того, чтобы запустить приложение Windows в обычном режиме, нужно использовать start без опций. Команда start также может применяться для открытия документов, для которых в системе имеются соответствующие приложения. Таким образом, например, открывают текстовые документы, HTML-файлы и т.п.

Команда cmd открывает окно командной строки, действующее как средство обращения из AutoCAD в операционную систему. Для того, чтобы управление было возвращено командной строке AutoCAD, необходимо закрыть это окно. Для выполнения внешних команд можно использовать опции /c и /k. Опция /c вызывает выполнение указанной команды с последующим автоматическим закрытием окна. Опция /k вызывает выполнение указанной команды, но по ее завершении окно командной строки остается открытым. При использовании опции /k окно следует закрывать вручную (с помощью команды exit).

Итак, команду start следует использовать для приложений, которые представляют собой отдельные от AutoCAD процессы. В свою очередь, командой cmd запускают командные файлы, которым не нужно отдельное окно, а также кратковременные процессы. Подробнее об упомянутых здесь командах и переключателях можно узнать в документации по Windows.

Пользовательские команды
В следующем примере описано создание трех новых команд: RUN, LISTSET, и DXB2BLK.

RUN, cmd /c,0,*Имя командного файла: ,
LISTSET,cmd /k SET,0
DXB2BLK,cmd /c DXBCOPY,0,DXB-файл: ,2
Команда RUN вызывает на выполнение командный файл операционной системы. Команда cmd, за которой следует переключатель /c, открывает окно командной строки, выполняет командный файл, а затем закрывает окно.

Команда LISTSET выводит на экран перечень текущих значений параметров среды операционной системы. Так как в ее описании использовано cmd /k, а не start, перед возвратом в AutoCAD необходимо вручную закрыть окно командной строки. Если же требуется, чтобы окно и далее оставалось активным, нужно вызывать команду с помощью start /realtime. Подробнее об упомянутых здесь командах и переключателях можно узнать в документации по Windows.

Команда DXB2BLK создает описание блока из указанного DXB-файла. Все объекты в DXB-файлах представлены в виде отрезков. Полезный побочный эффект данной процедуры — возможность простого преобразования текстовых объектов в отрезки.

DXB2BLK передает указанное имя DXB-файла в командный файл dxbcopy. Тот, в свою очередь, создает копию DXB-файла, носящую имя $cmd.dxb. Затем AutoCAD создает из этого файла блок. В качестве имени блока принимается имя, введенное в ответ на подсказку об имени DXB-файла. Для того, чтобы создать файл dxbcopy.cmd, нужно ввести в ответ на подсказку ОС следующее:

echo copy %1.dxb $cmd.dxb > dxbcopy.cmd
Файл dxbcopy.cmd создается в текущей папке. Впоследствии его можно переместить в одну из папок, путь к которым известен операционной системе. Альтернативным способом является указание полного пути к файлу при описании команды в acad.pgp. Например, если dxbcopy.cmd располагается в папке D:\cad, в разделе описания внешних команд файла acad.pgp можно ввести:

DXB2BLK, cmd /c D:\CAD\DXBCOPY,0,DXB-файл: ,2
VVA вне форума  
 
Непрочитано 18.04.2006, 20:22
1 | #7
ynopum


 
Регистрация: 26.03.2006
Сообщений: 20


Попробуй просто:

(startapp "путь к программу с ЕХЕ" "аргументы")

Например:
(startapp "C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE")

Другой пример:
(startapp "C:\\IRAN\\WARBEGIN.EXE" "\"For the democracy, not for oil!\"")

Здесь \" равно толко кавычка ", если надо посылать кавычки.
ynopum вне форума  
 
Непрочитано 18.04.2006, 20:41
#8
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
<phrase 1=


Если интересно...можно начать и с Ftp (попроще)
pyatifan вне форума  
 
Непрочитано 19.04.2006, 10:52
#9
Zouss


 
Регистрация: 14.03.2006
Сообщений: 863


ээх ммолодежжж... аж завидно блин... вот помню в десяточке под dos вызвать из под acada Norton commander aka синяя таблица или edit.exe чтоб тех. требования подправить... вот оно счастье где было
Zouss вне форума  
 
Автор темы   Непрочитано 19.04.2006, 22:13
#10
kminas


 
Регистрация: 25.02.2006
Сообщений: 71


Спасибо, все получилось и в менюшку вставил.
kminas вне форума  
 
Непрочитано 09.02.2010, 22:06
#11
Арт17


 
Регистрация: 07.02.2010
Сообщений: 2


Добрый вечер!Ребята, помогите.Закидывал макрос в Акад (макрос мономаховский) Нормально церез настройки, как то не захотел!и я его нагло просто кинул в АКАД!
Вобщем: менюшка мономаховская появилась и работает!а все панели просто вылители!осталась толька командная строка и мономаховская панель!!как вернуть все назад настройки и панели?ПОМОГИТЕ.Пожалуйста.

Последний раз редактировалось Арт17, 09.02.2010 в 22:36.
Арт17 вне форума  
 
Непрочитано 09.02.2010, 22:10
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772


А ты еще по 50 восклицательных знаков поставь. При этом еще меньше информации дай. Тогда точно никто не ответит.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.02.2010, 22:39
#13
Арт17


 
Регистрация: 07.02.2010
Сообщений: 2


ну а, по теме будет ответ?У меня АКАД 2007.
Арт17 вне форума  
 
Непрочитано 09.02.2010, 23:23
#14
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,763


Не будет, мне кажется. И описание путаное, еле понял, что вам нужно (сомнения берут, правильно ли).
Почему бы вам не почитать темы про пропавшие панели и пути их повторного обретения?
И вообще это оффтопик для данной темы.

Последний раз редактировалось engngr, 09.02.2010 в 23:44.
engngr вне форума  
 
Непрочитано 17.02.2010, 11:08
#15
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Если коротко, то под кнопочку меню можно написать скажем такую команду:
^C^C(command "_sh" "ИМЯ ИСПОЛНЯЕМОГО ФАЙЛА.exe")
E-degtyarev вне форума  
 
Непрочитано 17.02.2010, 11:12
#16
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772


Только не _sh, а _.shell
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.02.2010, 11:16
#17
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Согласен, _.shell как-то надёжнее.
E-degtyarev вне форума  
 
Непрочитано 15.06.2012, 10:08
#18
Nesco


 
Регистрация: 15.06.2012
Сообщений: 2


Подскажите пож-та чайнику в AutoLisp, но не в программировании вообще.
Недавно помогал одному коллеге с установкой давно разработанных для Autocad-Autolisp комплексов программ на новый компьютер.
Один комплекс запустить удалось.
А вот с другим начались проблемы.
Из Autolisp вызывается внешняя программа, делает расчёты, результаты записывает в текстовый файл, возвращается в Autolisp.
Данные находящиеся в сформированном текстовом файле позже будут использованы Autolisp.
Но когда Autolisp доходит до использования этих данных, то выясняется что текстовый файл ещё не сформирован.
Т.е. получается рассинхронизация работы Autolisp и внешней программы, Autolisp не ждёт завершения работы внешней программы и продолжает тупо идти вперед.
Когда коллега рассказал что это известная проблема, я сначала не поверил. Но потом в интернете наткнулся на информацию, что действительно так оно и есть.

Вроде бы можно запускать программу с флагом

флаги
Обязательный параметр, представляющий собой сумму битовых значений (битовый вектор). Значение параметра строится путем суммирования следующих элементов:
0 Запустить приложение и дождаться завершения его работы.

Вроде у меня так и запускается.

Сейчас не могу найти эту инфу по рассинхронизации, и не получается нормально сформулировать запрос к Yandex.
Дайте пож-та ссылочку где можно найти информацию по этому вопросу, или подскажите правильный запрос к поисковику.

Возможна эта проблема уже давно решена, простоя я об этом не знаю.
Nesco вне форума  
 
Непрочитано 15.06.2012, 10:59
1 | #19
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Вам сюда
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.06.2012, 13:42
#20
Nesco


 
Регистрация: 15.06.2012
Сообщений: 2


Дмитрий, спасибо за наводку.
Nesco вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > запуск программы из AutoCADа

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск