|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
))) Спокойствие, сейчас разберемся)
Активным окно становится после его открытия, в монитор я вижу новый чертеж, все значения, которые были на предыдущем чертеже стали нил, кроме новых двух. Я выполняю действие в новом чертеже, а после закрытия возвращаюсь назад. Все я понял свой косяк. Попробовал нарисовать линию и она нарисовалась есессено на 1 чертеже. А если мне нужно выполнить 200 команд на втором чертеже, все писать через vla-SendCommand??? Как этот файл потом физически закрыть? Он все равно остается висеть во вкладках((( Последний раз редактировалось Zaghim, 07.10.2010 в 11:34. |
|||
|
||||
Цитата:
Код:
Цитата:
|
||||
|
||||
Делай все аккуратно.
Убедись, для начала, что кроме твоего рабочего документа там никого нет. Запусти в рабочем документе Код:
Запусти в рабочем документе Код:
Посмоти вкладки, файла там больше нет У меня все именно так. Если хочешь чтобы запускаемый код выполнялся сразу в процессе загрузки файла, то в функцию его не объединяй, а если хочешь чтобы он выполнился только после полной загрузки - весь код объедини в функцию и последней строкой ее запусти. Последний раз редактировалось Supermax, 07.10.2010 в 12:41. |
||||
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
vlax-false - значит, что сохранять не нужно, так и делаю.
С этим все понятно и вроде файл закрылся. Вопрос в том как должен выглядить второй лисп файл, можешь дать пример файла, который запустится точно и выполнит там ну скажем полар и потом вернет назад полученную координату. Вот это непонятно если хочешь чтобы он выполнился только после полной загрузки - весь код объедини в функцию и последней строкой ее запусти. |
|||
|
||||
Кода файл загружается, то буквально выполняеются все его директивы. Если в коде в середине ошибка, то до ошибки все выполнится, а на ней загрузка прервется. Если код объединен через (defun бла-бла-бла ..., то сначала загружается в память вся функция с твоим кодом и только потом, второй директивой, коей является последняя строка лиспа (бла-бла-бла) запускается эта вся хрень. Если в коде есть ошибки - прервется и сама загрузка в память функции и сама загрузка файла.
Вот создай файл с такой строчкой и все (setq bp2 (polar bp2 0 10000)) |
||||
|
||||
Гы-гы-гы Ну, так, как ты написал - точно работать не будет.
Разберем по косточкам: Код:
В таком виде она nil далее: Код:
Код:
Код:
|
||||
|
||||
Код:
Осталось вернуться назад. Хотя это нужно в самом последнем файле. Сделай глобальную переменную доступную всем для указателя на самый первый активный документ и сделай в конце его (vla-Activate... . |
||||
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
Я в шоке... все равно не работает)))) ужа зла не хватает
это первый лисп и 1 чертеж в коде Код:
Код:
Команда застревает после (vla-SendCommand doc1 "(load \"D:\\\\Программирование\\\\mip1.lsp\") ") [FONT=monospace]т.е. если я вручную переключусь на 1 окно, а потом обратно, то тогда она выполняет то что нужно((( брееед([/FONT] Последний раз редактировалось Zaghim, 07.10.2010 в 16:33. |
|||
|
||||
Верю.
Только перед впадением в полную истерику скажи: А почему у тебя вместо Код:
Код:
Это что за ...? Код:
Код:
Для начала присвой им всем хоть что-то, а только потом vl-propagate После того, как ты запустил файл и обработку в нем, сделай прокрутку с ожиданием исполнения второго файла. Для этого сделай еще одну глобальную переменную доступную всем типа Код:
обратно в первый документ запустив во втором файле Код:
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Ох, мудрите на ровном месте...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
В общем вчера психанул и сделал, как говорил VVA. Так работает без проблем, НО ОЧЕНЬ ДОЛГО... так как рисунки большие (10-12мб) и нужно все заморозить, потом ждать пока чертеж подгрузится, потом пробиндится, потом его взорвать нужно (не спрашивайте почему, но нужно), потом определить точку и сохранить ее, а потом все это дело вернуть назад))))) и только после всех этих махинаций можно вставить блок со всем чем нужно)))
|
|||
|
||||
Не знаю, что там у тебя биндится, но на sendCommand для других открытых файлов все гуру себе чую зубы-то пообломали.
Для меня тут дело принципа. Я в одном документе, рядом открыт другой, как там запустить лисп? И не просто запустить, а чтобы еще и результат вернул в первый документ. И я эту задачу решу Закон 1. Любые лиспы работают только в активном документе. Если в процессе выполнения программы идет переключение активности с текущего документа на другой, то дальнейшее выполнение программы приостанавливается до возврата активности данному документу. Закон 2. Метод sendCommand переключает активность на другой документ раньше, чем успевает передать в командную строку данные. Поэтому этот метод надо запускать только из другого потока, не зависящего от активности документов. Последний раз редактировалось Supermax, 08.10.2010 в 11:01. |
||||
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
Не понял зачем делать бесконечный цикл и где его делать в 1 или вызываемом лиспе?
Учел все твои замечания. В общем результат практически такой же. Т.е. файл открыл, переменные вначале забил потом объявил их глобальными, затем sendCommand и застреваю на четреже, но уже без ошибки, переменные внутри второго лиспа по-прежнему не заполняются и вернуться назад могу только руками((( Последний раз редактировалось Zaghim, 08.10.2010 в 11:58. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
2. Если уж без взрыва невозможно, то вставляй другой рисунок сразу как блок, командой Insert, а перед именем файла укажи * - будет вставляться сразу расчлененным. Только используй команду _-Insert (с минусом в начале) Из справки Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Видеоуроки AutoCAD | kosmax | AutoCAD | 173 | 17.02.2017 15:08 |
Проблемма с установкой AutoCAD 2008 | Alxndr1697 | AutoCAD | 27 | 24.04.2010 21:43 |
Ищу любое рукодство пользователя AutoCAD Electrical 2008 | DAM | Поиск литературы, чертежей, моделей и прочих материалов | 3 | 07.10.2009 17:20 |
Книга Хейфеца А.Л. 3D-технология построения чертежа. AutoCAD. 3-е изд. | BM60 | Разное | 22 | 16.02.2009 09:55 |
не удаляется AutoCAD Architecture 2008 | ПалычЪ | AutoCAD | 4 | 19.12.2007 09:53 |