|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Значит влегкую не получится, диалог все равно будет вываливаться.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Хорошо, со всплывающим окном подтверждения придется мириться.
А можно ли как прописать условие проверки, выполнима ли команда _SPDSNET_ExportACAD? Т.е. чтобы если команда не найдена (модуль СПДС не установлен на машине), лисп продолжал выполнять следующие команды по списку, а не прерывался с ошибкой? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
vl-catch-all-apply - ИМХО самое простое
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 170
|
Цитата:
Параметр "_All", возможно, неверный. У меня взрывает только первый объект, а должен, вроде как, все ![]() Последний раз редактировалось Alxndr1697, 20.02.2024 в 12:25. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Угу, и разбить вообще все? Включая размеры, таблицы, что там еще попадется?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Да, хотел взрывать штатными средствами, раз есть такая опция, да и spds extension - очень специфические объекты, и лучше делать все так, как у них предусмотрел разработчик, иначе косяки вылезают в неожиданных местах.
Подскажите, как работает vl-catch-all-apply, какой у нее принцип? Ну т.е. эта функция похожа на оператор если: если ошибка делай то, если нет ошибки делай это? Т.е. после проверяемого условия мне нужно будет два раза написать продолжение кода, чтобы он выполнялся и при возникновении ошибки и без возникновения ошибки? |
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
Читай справку vl-catch-all-apply и vl-catch-all-error-p
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Это как?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Сносить SPDS Extension и дальше ExplodeAllProxy от А.Н.Ривилиса )
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Учитывая, что SPDS Extension надо сносить средствами винды, насколько я помню?
----- добавлено через ~2 мин. ----- Ну а на старт каждого документа поставить нечто типа (if (= (getvar "demandload") 3) (alert "Сначала demandload в 2, а потом и поговорим") (progn (if explodeproxyinentity (vl-cmdf "_.explodeallproxy" "_.removeallproxy" "_n")) ----- добавлено через ~2 мин. ----- Код написан на коленке, и рабочим не является
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
То была шутка, конечно, не наудаляешься и не наставишься потом обратно этот модуль ради только взрывания его объектов.
Есть отдельная тема на форуме, как средствами лиспа взорвать, но в новой версии модуль опять перелопатили и тот лисп теперь не работает. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ну, подобное я себе ставить как бы не собираюсь.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
подскажите еще по другой теме:
в коде присвоил переменной имя файла (setq с_dwg (strcat(getvar "DWGPREFIX")(getvar "DWGNAME"))) далее по этой переменной пытаюсь закрыть файл (vla-Close с_dwg :vlax-true) акад пишет ошибку: неверный тип аргумента: VLA-OBJECT "C:\\Users\\....имяфайла.dwg". в чем может быть дело? У Полещука функция vla-Close не описывается, хотя в примерах есть, например, на странице 402. добавлю, может это важно, что предварительно открываю другой документ т.е. код выглядит так: (setq с_dwg (strcat(getvar "DWGPREFIX")(getvar "DWGNAME"))) (vla-activate(vla-open (vla-get-documents (vlax-get-acad-object))(findfile o_dwg) :vlax-false)) (vla-Close с_dwg :vlax-true) вроде как пишут, что переменные при открытии другого чертежа обнуляются, но в коде ошибки верно указан файл и путь к нему, т.е. похоже неправильно что-то прописываю в функции закрытия Последний раз редактировалось posetitel, 21.02.2024 в 13:53. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Правильно. Потому что надо передавать указатель на документ, а не непонятную строку
----- добавлено через 59 сек. ----- Если что, лисп в каде работает только в текущем документе. И при смене документа можно словить самые разнообразные приколы, вплоть до остановки выполнения лиспа. ----- добавлено через ~2 мин. ----- ПыСы для работы с нетекущим документов настоятельно рекомендую использовать менее варварские способы. Например, ObjectDBX (ну или вообще поднимать отдельный экземпляр ACAD'а и работать с ним)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 395
|
Напоминаю идею: получить переменные с именем открываемого (o_dwg) файла и закрываемого (с1_dwg), а потом открыть открываемый и закрыть закрываемый соответственно.
Код был примерно такой (setq с1_dwg (strcat(getvar "DWGNAME"))) (setq с2_dwg (vla-Item (vla-get-documents (vlax-get-acad-object)) с1_dwg)) (vla-activate(vla-open (vla-get-documents (vlax-get-acad-object))(findfile o_dwg) :vlax-false)) (vla-Close с2_dwg :vlax-true ) нужный файл открылся, но закрыть первый не смог, получил ошибку "Ошибка Automation. Чертеж занят." Скорее всего это из-за попытки закрыть документ из которого выполняется лисп, несмотря на то, что я уже открыл другой чертеж. Ну и вообще моя идея изначально плохая, как пишут выше. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Сейсмозащита и сейсмоизоляция существующих, построенных зд. | IANationalInformAgentstvo | Прочее. Архитектура и строительство | 216 | 20.01.2015 16:51 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |