|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Сообщений: n/a
|
ОК
Вот как это выглядит, не понимаю почему двойные слэши (определил подбором), но это работает как планировалось: (command "saveas" "dxf" "16" (strcat (VL-REGISTRY-READ "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" "Desktop") "\\ris\\" (rtos Высота 2 0) "x" (rtos Ширина 2 0) "x" (rtos Глубина 2 0) ".dxf")) Теперь дальше: (и в правду говорят - лень двигатель прогресса) Начало: (setq Высота ( getreal "Высота шкафа =")) (setq Ширина ( getreal "Ширина шкафа=")) (setq Глубина ( getreal "Глубина шкафа=")) После всех нарисовок надо сохранить: (command "saveas" "dxf" "16" "00000.dxf") Сохранили. А можно ли сделать, чтобы эти 3 числа вводить одной строкой и желательно командной например написать .бат типа: C:\Program Files\AutoCAD 2004\acad.exe <сомманда> <число_1> <число_2> <число_3> Это вообще возможно??? |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Про слэши. Дело в том, что обратный слэш в строках Лиспа - часть служебных символов, таких как \n, \t, \r, \" и конечно \\ Вот потому слэши и оказались двойными.
Теперь по Цитата:
|
|||
![]() |
|
||||
Сообщений: n/a
|
ПОДРОБНОСТИ
Предположим начало файля лисп такое: (defun C:hkaf ( ) (setq Высота ( getreal "Высота шкафа =")) (setq Ширина ( getreal "Ширина шкафа=")) (setq Глубина ( getreal "Глубина шкафа=")) А заканчивается: (command "saveas" "dxf" "16" "hkaf_1.dxf") Как это работает: 1) открыть автокад 2) команда hkaf 3) число Высота 4) число Ширина 5) число Глубина 6) закрыть автокад (хотя это я уже автоматизировал :)) ) Как хочу: написать .bat файл с содержанием: C:\Program Files\AutoCAD 2004\acad.exe <комманда> <число_1> <число_2> <число_3> C:\Program Files\AutoCAD 2004\acad.exe <комманда> <число_1> <число_2> <число_3> C:\Program Files\AutoCAD 2004\acad.exe <комманда> <число_1> <число_2> <число_3> и т.д. По идее должен открыться автокад, все нарисоваться, сохраниться и закрыться, Потом опять открыться, все нарисоваться, сохраниться и закрыться. Согласен, много лишних движений - зато какой умный вид... Только вот Пуск>Выполнить уже не понимает "Program Files" (пробел в команде) Но можно запускать из каталога AutoCAD 2004, только вот как это сделать VK, огромное тебе спасибо за помощь... |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Мдааааа.... Вопросы сооовсем не простые.
Значит, идея №1 такая: запрашивать длину, ширину, высоту не по отдельности через getreal, а всем скопом, через getpoint и полученный список раскидывать на составляющие. Как это передать через .bat не проверял - только мысля..... Идея №2 : пусть программа сама читает данные в любом количестве из .bat файла (или любого другого текстового или даже Экселевского, если уж сильно замудряться). И не надо дверью хлопать, то биш, АКАД перезапускать. Остается придумать, как ентот .bat найти. Ведь запуск может быть сделан в принципе из любого места. С отдельным файлом данных, место которого определено, нет проблем. Попутно следует сделать обработку всевозможных ошибок и накладок (данные не того типа или отсутствие таковых, файл уже существует и т.д. и т.п.) Цитата:
|
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Впрочем, есть еще идея №3. Исходные данные наверняка не с потолка в .bat падают и не ручками туда пишутся....
Ворд? Эксель? Что то другое с VBA? Если так - то можно вызывать АКАД и рулить им непосредственно оттуда в невидимом режиме (работает быстрее). Без батников ![]() |
|||
![]() |
|
||||
Сообщений: n/a
|
Вопрос в том как запустить acad.exe с ключем, чтобы сразу после открытия запускалась команда с параметрами.
А "дверью хлопать", это может и неверно, но зато не надо думать что созданы слои, стили (если слой есть - то не создавать). А вопрос о быстродействии пока не стоит. Идея №1 универсальна, можно и "как сейчас" пользоваться и "в полуавтоматическом режиме". |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Цитата:
![]() Ключем /t можно задать шаблон. Что касается запуска... Можно указать ключ /b - вызов скрипта после старта АКАДа. В скрипт соответственно прописать вызов команды и параметры. Не забыть обеспечить автозагрузку программы. ![]() Кажись, сформировать такой .scr файл можно непосредственно из .bat файла, но я в этом не силен. Можно, конечно, сделать автозапуск програмы при старте АКАДа, но возьмет ли она параметры непосредственно из батника....? Вряд ли. Скорей всего, будет ждать ввода с клавы. Или как то иммитировать из .bat клавиатурный ввод. Впрочем, тут уже просматриваются проблемы "нормальной" работы (можно обойти, изменив профиль ключем /p). |
|||
![]() |
|
||||
Сообщений: n/a
|
Вот нашел в инете и вобщем переделал под свою задачу:
При открытии AutoCAD автоматически создает новый чертеж Drawing1.dwg. Чтобы отменить это, проделайте следующее: 1. В корневом каталоге AutoCAD создайте текстовый файл с названием close.scr. Добавьте в него строку _close _y. 2. Добавьте в конец строки вызова программы текст /b close. Например, "C:\Program Files\AutoCAD 2002\acad.exe" /b close Но только осталась одна зацепка: после сохранения закрывается командой "close", а какой командой в *.scr автоматически создать новый чертеж Drawing1.dwg А главное, как и где она вводится??? |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Давайте для начала разберемся, что такое *.scr или говоря иначе, скрипт. Это текстовый файл, для управления АКАДом, который содержит совершенно тот же самый текст, который набирался бы на клавиатуре, если бы команды вводились с клавиатуры, а не мышкой с экрана. Другими словами, откройте Блокнот и сделайте вид что работаете в АКАДе (понимаю, что сложно). В результате должен получиться файл, куда записано все что Вы набираете во время работы на клаве. Мышку не трогать!!!! :evil: При запуске в ключе /b укажите этот скрипт - и он выполнится при старте АКАДа.
Кстати, этот файл не обязательно должен быть в корневом каталоге. Если его размещение не попадает в пути поиска файлов поддержки, то необходимо указать путь и имя. Цитата:
Цитата:
![]() |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Ммммдаааа.....
Цитата:
Цитата:
|
|||
![]() |
|
||||
Сообщений: n/a
|
Подскажите пожалуйста
создаю 2 слоя в Lisp (command "_.layer" "new" "Основная" "_lw" "0.7" "Основная" "") (command "_.layer" "new" "Размеры" "_c" "5" "Размеры" "") и рисую ими Почему слой "Основная" - рисует как заложено толщиной 0.7. а слой "Размеры" НЕ синего цвета (хотя квадратик цвета - синий), что не так в создании слоя строке. |
|||