|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
![]() |
Поиск в этой теме |
![]() |
2 | | #1 |
LISP. Плагин создания кабельных линий и генерации КЖ раздела КИПиА. Протестировано на AutoCAD 2015...2021 и офис 2013...2019
Проектировщик
СПб
Регистрация: 06.10.2016
Сообщений: 294
|
||
Просмотров: 112770
|
|
||||
Цитата:
Написано вроде чётко и понятно... Цитата:
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же! |
||||
![]() |
|
||||
ТОО Регистрация: 22.05.2014
Аршалы
Сообщений: 52
|
Я дико извиняюсь, но ваш файл "Планы с кабелями для тестов.dwg " имеет внутри макрос....
Вы нам трояна втюхать хотите? С трояном это в лабораторию касперского https://www.youtube.com/watch?v=nURH6dKb9ac А рамку чертежа специально из "кусков" делаете, чтобы жизнь усложнить ? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,350
|
В качестве намека, где и как можно хранить подобные вещи: http://autolisp.ru/2011/04/11/data-set-and-get-03-2/
При первом запуске запрашивать каталог установки и записывать полученные данные, а потом просто к ним обращаться. Offtop: P.S. Предоставление "готовой" программы обычно не подразумевает правки исходного кода.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||||
Цитата:
Единственное я не сильно проверял подложку от нашего отдела АР, но и там сидят спецы не пальцем деланные.... Так что просто не загружайте ничего и да будет Вам счастье... Цитата:
![]() Цитата:
![]() ![]() Цитата:
----- добавлено через ~5 мин. ----- Цитата:
При том данная программа делалась под себя.. кому понравится, тому понравится. Я никого не заставляю ![]()
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же! |
||||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 10,577
|
Чем защищает? Как полилинию могут случайно удалить, так и блок. Так же как и скопировать. Защищается от изменений, если блокировать слой, например. Так что это чисто вопрос реализации)
|
|||
![]() |
|
||||
Цитата:
А далее плагин эти кабели не учитывает в работе. Так что достаточно перед выгрузкой или маркировкой вызвать функцию проверки кабелей на соответсвие ![]() Так что какая никакая, но защита есть.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же! |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,350
|
А тот факт, что в реестр лезет почти каждая программа, установленная на компе - это так, мелочь? Ну-ну...
----- добавлено через ~1 мин. ----- Ключевое слово - "мне". Ладно, оставлю критику - все равно времени на посмотреть у меня нет
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Ну я просто поделился. Кому понравится возьмёт и попользуется.
![]() ![]() А так уже как бы 5 больших проектов сделали и всё как часы работает. Так что не надо пессимизма ![]() ----- добавлено через ~2 мин. ----- Художника обидеть может каждый ![]() Каждый делает наверное всё же под себя. Так что тут любое решение приемлемо. ----- добавлено через ~4 мин. ----- Далее я не вижу смысла писать ответы не по теме. Будут вопросы именно по реализации плагина - пишите. Остальные сообщения я думаю есть смысл игнорировать.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же! |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,350
|
----- добавлено через ~7 мин. ----- И заменить монстра Код:
Код:
----- добавлено через ~11 мин. ----- Ох, елки! Там код упрощать можно оооочень долго... Уже под more прятать не буду ![]() Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 21.06.2017 в 23:52. |
|||
![]() |
|
||||
Ну докопаться и до столба можно, но:
1. При единичном вызове функции не имеет никакой разницы... 2. Абсолютно нет, так как это немного логически разные операции с флагом. Сказать, что там всё не так и при этом не вдаваться в логику запроса, легко. Но не всегда очевидные пути логичны. 3. Невероятно, но не лень. По скорости обработки разница никакая, а по удобству при редактировании - колоссальна. 4. Откровенный бред. Не всегда nth можно заменить на caadr и им подобные. Такое мог бы написать школьник, но не Вы... nth возвращает единичное значение всегда. car..cadr и им подобные могут вернуть остаток списка, вместо единичного значения... т.е. мне всегда надо точно знать, что будет возвращено и иметь шанс хапнуть на вход не 1 параметр, а несколько. Зачем??? Цена вопроса применения (по скорости обработки) абсолютно одинакова. Так что это просто из серии доебаться лишь бы что то написать. ![]() 5. В процессе написания плагина логика поменялась, так что там контролируется наличие или отсутствие данных, а не их тип... Переделывать функцию не стал, а просто оставил такой. 6. Ну ту дело вкуса... Можно вообще битами флаги выставлять в реестре, ну если у тебя например микроконтроллер, а можно и осмысленные имена давать переменным и завести их ровно столько, сколько тебе требуется. Как бы одна переменная или 50 нет разницы, а вот шанс вписать в сводную переменную лишнюю инфу и порушить работу плагина - увеличится. Так что это так себе замечание. 7. Опять же замечание из серии я не разобрался и лишь бы что то написать. Просто опишу - момент работы (написания) плагина растянулся на несколько месяцев. В процессе работы некоторые функции переписывались, у некоторых расширялись возможности. Так уж получилось, что функция (PDKFKG-remember-layer) и функция ( PDKFKG-back-remembers-layer) а так же (PDKFKG-all-restore-settings) стали запоминать и восстанавливать более расширенный комплект переменных, включая и cmdecho. Позже, что бы не проверять и переписывать каждую функцию я просто оставил как есть. Так что данная переменная восстанавливается, а с ней и куча других. Код конечно же можно вылизать до идеала, но принцип работает - не лезь править, никто не отменял.. 8. Ответ как и в пункте выше, про не разобравшись в логике работы. Имя текущего слоя в данный список не попадает... 9. Можно, но в определённый момент времени (я всё же не проф программист LISP) мне не нравилось направо и налево применять этот функционал (mapcar, foreach...). Сейчас бы я переписал это так, но с другой стороны это работает и читаемо, так что не вижу смысла переписывать. Можно конечно переделать и так. И даже выиграть 18 наносекунд в скорости выполнения операции ![]() Будет время - оптимизирую этот жутчайший косяк из за которого мне лучше пойти и удавиться, так как я точно не программист а полное г...о момент... ![]() Цитата:
Но по мне мой вариант читается намного внятней при отладке кода, чем предложенный вариант с "apply 'and mapcar"... Я всегда выступаю за то, что если читабельность кода глазами вызовет написание лишних 10-х строк - значит надо написать эти строки. Компу (компилятору) глубоко похфиг, а мне для отладки легче и удобней. Так что последних несколько замечаний - это просто обычная вкусовщина.. ![]() Больше всего меня добила Ваша ремарка "Ну и так далее. В код изменения не вносил, работоспособность не проверял." - это вообще истинный подход профессионала... написать кучу замечаний, не разбираясь ни в логике работы, ни запуская прогу... Вы мне напомнили работу наших некоторых экспертов в доблестной экспертизе - которые тоже пишут замечания к проекту, не открывая его ![]()
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же! Последний раз редактировалось petro_f, 22.06.2017 в 01:56. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,350
|
petro_f, ок, ок, уговорил. Я дурень, влез куда не просили
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
ТОО Регистрация: 22.05.2014
Аршалы
Сообщений: 52
|
Цитата:
У меня никогда такого не выдавало. Вы в файле чего то мудрили с макросами, удалили, а следы остались. Чтобы такого небыло создавайте новый файл и копируйте в него содержимое. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,560
|
Подтверждаю, в dwg файле имеется внедренный vba проект. Пустой.
Для удаления этого мусора: Команда _vbaman нажать отмеченную кнопочку ![]() А вообще в самом файле очень много мусора и прокси объектов, его бы почистить... Хотя, я уже знаю что ответит автор... =о) Последний раз редактировалось Boxa, 22.06.2017 в 09:12. |
|||
![]() |
|
||||
Цитата:
Давайте без обид общаться. Ок? Я всегда готов к конструктивному диалогу. Если где высказался резко, то это не со зла ![]() Цитата:
P.S. Посмотрел я на то, что Вас там с макросами пугало ))) Видимо от АР наследие с пустым проектом VBA из подложки прилетело. Сейчас почищу и заменю файл. Так что можете его перекачать заново. ----- добавлено через ~34 мин. ----- Цитата:
Выгрузил, от прокси объектов не стал чистить, так как это объекты СПДС и при весе в 900 кб файла, перерывать всю АР я не вижу смысла. Данный файл был просто прилеплен для демонстрации, Так как с него писались гифки. Никто и никогда в нём работать то не будет. Смысл его чистить? Или Вас смущают стандартные СПДС объекты?
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же! Последний раз редактировалось petro_f, 22.06.2017 в 09:32. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,350
|
petro_f, без вникания - что такое кабельные линии, что такое разделы КИПиА, без понимания (хотя бы примерного) специфики работы, я так полагаю, электриков - по функционалу лично я сказать ничего не могу. По коду - да, но это максимум.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 23.09.2015
Сообщений: 146
|
petro_f. Молодец! Хорошая программа. Видно человек старался! Кому надо, тот возьмет на вооружение.
Кулик Алексей aka kpblc, хорошие замечания по коду. Некоторые остальные, да. Много необоснованной критики. Человек поделился своим творением. Заметьте, бесплатно. Не каждый на такое способен. Я вот думаю, все эти свойства все-таки через расширенные данные пользовать. По моему, если кабелей будет много, как то не удобно будет пользоваться чертежом с большим количеством блоков. или уж в грубы объединять.
__________________
Проекты СС |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Адаптация древних lisp-приложений под AutoCad 2016 | trushev | LISP | 36 | 08.02.2016 10:33 |
Autocad 2016 не понимает последовательность команд с ^C^C... | Santa123 | AutoCAD | 0 | 27.01.2016 10:31 |
Проблема открытия файлов в Autocad 2010 после установки Autocad 2015 | Volodya | AutoCAD | 18 | 30.10.2014 14:30 |