|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Для начала - ты запускаешь приложение (которого, кроме как у тебя, ни у кого нет), и не факт, что ты дожидаешься окончания его работы.
Что это приложение делает - тайна великая и мраком покрытая. Особенно почему было невозможно всю задачу сделать на одном языке. И как-то ковырять три сотни строк кода, учитывая невозможность повторения ситуации, лично у меня желания нет.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Цитата:
Цитата:
|
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Не хотелось бы углубленно что-то сейчас изучать. Я редко делаю какие-то примочки для автокада. Вот когда-то был сделал программку для заполнения спецификаций, все хорошо работало. А тут захотел расширить функционал - добавил строку спецификаций для изделий - блок "СпецСтрИзд". Сама-то эта строчка нормально формируется, но вот с подсчетом суммы по всем строчкам возникла проблема.
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
ну там очень глубоко и не надо для начала - объявление переменных, циклы, массивы - а потом втянетесь..)) Вот как будет выглядеть возможный пример реализации на .Net функции подсчета общей массы аналогичный вашему коду в шапке темы:
Код:
насколько понятнее кода на лиспе?) чтобы вносить изменения, причем в значительно части заимствованный чужой код - это надо вникать достаточно глубоко в лисп, имхо. Иначе так и будет - "то хвост увязнет, то клюв..." |
|||
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
Открываешь чертеж с блоками, на которых вылезает ошибка, из него вызываешь _vlide, там в меню отладка метишь пункт "прервать на ошибке", открываешь lsp с функцией, вызывающей ошибку, загружаешь из код из редактора Ctrl+Alt+E, переключаешься в чертеж, вызываешь функцию, когда выбросит на ошибке, вызываешь окно поиска ошибок Ctrl+Shift+R, копируешь содержимое в журнал, копируешь из журнала сюда, продолжаешь обсуждать здесь причину возникновения ошибки.
----- добавлено через 58 сек. ----- На порядок понятнее лисп будет
__________________
На работе было скучно:shout: |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Привычнее конечно, но это ж нужно знать все эти классы автокада, их методы и свойства.
Цитата:
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Offtop:
Цитата:
частичные русскоязычные переводы - сайт Бушмана Андрея (на года не обращайте внимание - большая часть актуальна до сих пор), официальный сайт разработчиков. Нашли нужный пример, забили в поисковик по первой ссылке нужные названия классов и получили их описание - на английском, но разобраться можно. ----- добавлено через ~15 мин. ----- и крякозябры кириллические из редактора лиспа уберите - первый рецепт из поста №8 |
|||
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
Теперь правый клик по [2] и выбери перейти к месту вызова функции и где это выложи, и значение параметра функции.
Но вообще, ничего, что эта ошибка отличается от той, что в посте 5? ----- добавлено через ~3 мин. ----- По [2] в окне ошибок.
__________________
На работе было скучно:shout: |
|||
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
В определение функции cs_numeration в список локальных переменных type добавь:
004 (defun c:cs_add_specification (/ point file mode block сюда-добавь-type) 009 (setq type (read-line file)) Это из листинга в посте 19. Offtop: Наверное, ибо предположения с телефона. У тебя в этом виде 009 связывается переменная type (сейчас глобальная) с прочитанной строкой, а в момент [02] она выполняется. И у тебя строки в файле по разному в двух случаях формировались. [32] тоже выполни, и посмотри значение type
__________________
На работе было скучно:shout: Последний раз редактировалось ciril, 22.01.2020 в 23:46. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Цитата:
----- добавлено через ~1 мин. ----- Да нет, ошибка вроде такая же. Внешне так же выглядит и появляется в тот же момент. ----- добавлено через ~3 мин. ----- А это же другая функция - нумерация строк спецификации. Она, кстати, тоже перестает работать вместе с cs_calculate_weight с той же самой ошибкой. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Добавил эту переменную, при программном добавлении блока со строкой спецификации (cs_add_specification), выскочило вот такое сообщение.
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
в справку смотрите хоть иногда)
type |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Так, я сейчас перезапустил автокад. В cs_add_specification добавлена переменная type. Добавляю в чертеж блоки строк спецификации - функция суммирования работает без ошибок. Надо завтра посмотреть будет ли эта ошибка появляться снова.
Кстати, подскажите с одной вещью, если это не сложно. У меня весь этот набор функций по работе со строками спецификаций практически не защищен от возникающих ошибок. Например я в функции cs_add_specification открываю файл spec.txt: Код:
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
ciril, type - зарезервированное слово.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Требуется написать программу для автоматической расстановки блоков по полилинии. | Mozgolom | Поиск исполнителей | 0 | 30.12.2019 15:50 |
Как создать одно 3д тело из двух цветов (или материалов)? | Loksana | AutoCAD | 5 | 26.01.2018 14:30 |
народ помогите создать линию проектируемой телефонной канализации | ОлегD | AutoCAD | 13 | 23.08.2011 19:30 |
Подсчет и сортировка блоков на текущем слое. Помогите отредактировать. | Kortes | Программирование | 17 | 26.03.2010 18:46 |
Как создать сопряжение двух швеллеров по косому срезу | BM60 | AutoCAD | 3 | 24.04.2009 14:56 |