|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 19.11.2014
Сообщений: 2,606
|
Цитата:
Еще есть сомнение в том, что я регистрирую довольно много приложений для расширенных данных (regapp). Их всего порядка 30-ти разных. При этом часто происходит повторная регистрация одного и того же приложения, я перед этим не проверяю зарегистрировано ли оно уже до того. Как я понял в такой проверке нет особой нужды. Но может все таки это неправильно? Все же выложу функцию, где происходит добавление расширенных данных. Она на самом деле работает в связке с другими функциями, но может кто-то при беглом просмотре найдет здесь явный косяк из-за чего иногда расширенные данные не присоединяются к объекту. Вообще программа предназначена для добавления строк спецификации. Строка спецификации - это блок с атрибутами, которые я програмно заполняю на основе чтения данных из внешнего файла. А кроме атрибутов добавляю и расширенные данные, где содержится различная техническая информация, которая нужна мне для взаимодействия с внешним exe-приложением, с помощью которого я, собственно, и формирую строку спецификации. Код где-то может выглядить несуразным, но как я и говорил - не являюсь спецом по лиспу, где-то что-то в интернете нарыл из нужных мне функций и применил в своей программе как умел. Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Я бы делал. А ограничение 16 кб это ж на все приложения, которые ты пытаешься на примитив засунуть. ЕМНИП, там еще и имена приложений участвуют в этом объеме.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 19.11.2014
Сообщений: 2,606
|
А для чего? Повторная регистрация ведь не дублирует приложение, там вроде просто возвращается nil и все.
У меня не больше 1 кб объем расширенных данных на объект получается. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Цитата:
регистрация приложений идет в отдельном списке/словаре, а в XData записывается лишь какой-то идентификатор - соответствующий указанному строковому названию зарегистрированного приложения. |
|||
![]() |
|
||||
Регистрация: 19.11.2014
Сообщений: 2,606
|
Когда вставил код функции сюда, то обратил, что среди локальных параметров подсветилась локальная переменная name, как будто это ключевое слово языка. В редакторе оно не подсвечивается. Имя name зарезервировано и его нельзя использовать для именования переменных?
|
|||
![]() |
|
||||
я же процитировал не расширенные данные.
__________________
K Lisp |
||||
![]() |
|
||||
Регистрация: 19.11.2014
Сообщений: 2,606
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Так надо модифицированный код предоставлять ИМХО
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 19.11.2014
Сообщений: 2,606
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
----- добавлено через ~24 мин. ----- а так пользуйтесь отладкой - пытаетесь в условии цикла запросить у логического значения T (в переменной blc) информацию через entget - тут даже лисп удивился) ----- добавлено через ~50 мин. ----- а происходит это по причине, написанной в справке Цитата:
|
|||
![]() |
|
||||
Регистрация: 19.11.2014
Сообщений: 2,606
|
Вот так модифицировал, вроде работает. Я здесь перед циклом определяю переменную blc и удалил еще в условии цикла проверку blc на nil, а также присваивание blc=true, если ERRNO=52.
Код:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
операция по умолчанию - если пользователь нажмет ввод в ответ на приглашение выбрать блок. А
Код:
----- добавлено через ~2 мин. ----- правда это не поможет, если пользователь нажмет Esc - для этого надо использовать функции лиспа vl-catch-all-*, как выше и показывали в примерах. |
|||
![]() |
|
||||
Регистрация: 19.11.2014
Сообщений: 2,606
|
В данном случае по нажатию ввода - ошибка. Но в любом случае <Отмена> - это же просто строка, а не какое-то ключевое слово, переменная или функция. Она же в сущности не работает. Или это просто такой стиль оформления запроса?
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
так трассировкой пройдите по коду и увидите - почему
естественно, предлагать пользователю выбрать ключевое слово для отмены выбора объекта - это уже издевательство над пользователем) |
|||
![]() |
|
||||
Регистрация: 19.11.2014
Сообщений: 2,606
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
как в любом другом языке программирования - поставить точку (точки) остановки, загрузить активный лисп-документ или выделенный фрагмент из него в акад, а когда исполнение кода прервется на точке остановки - пошагово пройтись через F8 (все хоткеи прямо в меню редактора лиспа написаны) - контролируя значения переменных. Без умения трассировать код невозможно научиться писать нормальный код - даже если прочитаешь всю теорию об этом.
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |