Архитектору и проектировщику|Тепло- и звукоизоляция URSA.RU
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Плагин создания кабельных линий и генерации КЖ раздела КИПиА. Протестировано на AutoCAD 2015...2018 и офис 2013...2016

LISP. Плагин создания кабельных линий и генерации КЖ раздела КИПиА. Протестировано на AutoCAD 2015...2018 и офис 2013...2016

Ответ
Поиск в этой теме
Непрочитано 21.06.2017, 02:40 1 | #1
LISP. Плагин создания кабельных линий и генерации КЖ раздела КИПиА. Протестировано на AutoCAD 2015...2018 и офис 2013...2016
petro_f
 
Регистрация: 06.10.2016
Сообщений: 106

Плагин кабельных трасс с автоматическим подсчётом длины кабеля и внесением данных по типу прокладки кабеля.

В плагине реализованы функции:
  1. Создания кабельного блока с "цифровой подписью" созданного блока, с внесением информации по типу прокладки:
    • Создание кабельных блоков (кабеля) из линий, полилиний, дуг и сплайнов с автоматическим подсчётом длины кабеля. Ручным и полуавтоматизированным (из таблицы) вводом информации по кабелю и типу и количеству "упаковки" кабеля.
    • Создание новых кабелей на базе существующего кабеля с внесением новой информации по кабелю.
    • Пакетное создание кабелей на базе существующего кабеля с внесением новой информации по кабелям.
  2. Проверки и верификации существующих кабелей.
  3. Проверки и редактирования информации после ручной правки кабеля.
  4. Пакетного редактирования существующих кабельных трасс с функциями:
    • Обрезки кабелей по заданной линии, рамке или многоугольной рамке.
    • Добавления трассы к кабелю.
    • Добавление добавочной длинны к кабелю и пересчёт информации по длине и "упаковке" кабеля.
    • Пересчёта информации по длине вновь получившегося кабеля и пересчёта длины "упаковки" кабельной линии.
    • Объединения соприкасающихся линий трассы, для корректной обрезки кабеля при редактировании.
    • Смены "базовой точки" кабельного блока после редактирования.
  5. Замены существующей трассы кабеля на новую трассу с взятием информации от заменяемого кабеля.
  6. Пакетного переименования кабелей с указанием информации для переименования в виде таблицы.
  7. Экспорта данных для создания (редактирования) кабелей и кабельного журнала с возможностью:
    • Экспорта в программу Word с оформлением кабельного журнала (форматы А3, А4 вертикалый, горизонтальный).
    • Экспорта в програму Excel с функцией контроля длинн упаковки кабели и длины самого кабеля.
    • Экспорта в таблицы AutoCAD с разбивкой на листы с учётом рамки и штампа (большого и малого).
    • Технического экспорта в AutoCAD данных по кабелю из специальных кабельных блоков (с электрических схем).
    • Технического экспорта данных по кабелю в кабельные журналы Word (без указания длинн и типа упаковки).
    • Технического экспорта данных по кабелю в программу Excel (без указания длинн и типа упаковки).
  8. Импорта данных для создания кабелей с возможностью:
    • Импорт из программы Word с оформленного КЖ (форматы А3 и А4, вертикальный и горизонтальный) с преобразованием полученных данных в формат таблицы AutoCAD.
    • Импорта в AutoCAD данных по кабелю из специальных кабельных блоков (с электрических схем).
  9. Маркировки существующик кабелей на планах. Маркировка может быть осуществлена:
    • Мультивыноской - для единичных кабелей в месте маркировки.
    • Табличкой с именами кабелей - для множества кабелей в месте маркировки.
    • Табличкой с именами кабелей со стрелкой из мультивыноски - для множества кабелей в месте маркировки.
    • Табличкой с перечнем задействованных марок и сечений кабеля, с подсчётом общего сечения кабеля в месте выделения. Удобно для подбора сечений КНС (кабеле несущей системы).
  10. Поиска и выделения существующих кабелей для дальнейшей работы с ними.
  11. Просмотр и копирование типов кабелей из базы данных плагина, для дальнейшей работы с ними.
  12. Выгрузка табличной информации по занимаемому сечению кабеля и минимально необходимого сечения КНС (кабеленесущей системы), лотки..короба и пр. .

Ссылки на GIF-ки:
Создание кабеля с извлечением информации из блоков кабелей на электрической схеме
Создание копии кабеля на базе существующего кабеля
Создание множественных копии кабеля на базе существующего кабеля
Замена трассы уже существующего блока кабеля
Пакетное редактирование кабелей
Пакетное переименование кабелей КЖ
Маркировка кабеля на планах
Экспорт импорт КЖ


Основной файл плагина составляет файл PDKFKG.lsp расположенный по пути C:\PDKFKG\0_LISP.
Имя папки, её расположение и основные настройки плагина редактируются в двух файлах в разделе основных настроек (там везде даны подсказки):
  • Файл плагина PDKFKG.lsp расположенный по пути C:\PDKFKG\0_LISP - строки с 38 по 76 для версии плагина [>= v 14.20]
  • Файл загрузки плагина 0_PDKFKG_LOAD.lsp расположенный по пути C:\PDKFKG - строки с 1 по 13 для версии плагина [>= v 14.20]

Для загрузки плагина в AutoCAD необходимо распаковать архив PDKFKG.rar в корневую директорию диска C: (если Вы хотите распаковать в другую директорию, то не забудьте внести эти изменения в перечисленные выше файлы) и из получившейся папки C:\PDKFKG всего один раз загрузить файл загрузки плагина 0_PDKFKG_LOAD.lsp.
После загрузки появится две плавающих панели с иконками. Малая панель с "выпадающими" иконками дублирует большую панель и может быть без болезненна отключена. Данная панель предназначена для работы на маленьких мониторах и позволяет не занимать много места.

Расшифровки действующих функций даны при первой загрузке плагина (в консольную строку AutoCAD), а так же полностью указаны в всплывающих хелп-сообщениях при наведении и удержании курсора над иконками функций на панели плагина.

В коде плагина использованы переработанные части чужих кодов, которые полностью и комплектно вшиты в тело плагина. Для исключения пересечения имён функций и глобальных переменных все переменные и функции имеют префикс PDKFKG.

Для замены иконок по своему вкусу в файле PDKFKG.mnu по пути C:\PDKFKG можно заменить на свои, или как вариант просто подменить файлы иконок и удалив файл PDKFKG.cuix заново открыть AutoCAD.

При старте плагина меняются или проверяются следующие переменные:
  • USERR1 - проверяется что не равна 0.0 Отключить можно закомментировав или удалив строку 6 в файле PDKFKG.mnl по пути C:\PDKFKG
  • DIMSCALE - проверяется что не равна 0.0 Отключить можно закомментировав или удалив строку 7 в файле PDKFKG.mnl по пути C:\PDKFKG
  • CANNOSCALEVALUE - проверяется что не равно 0.0 Отключить можно закомментировав или удалив строку 8 в файле PDKFKG.mnl по пути C:\PDKFKG
  • MENUBAR - переводится в 1 для отображения строки плагина. Отключить можно закомментировав или удалив строку 9 в файле PDKFKG.mnl по пути C:\PDKFKG

Журнализация изменений проекта changelog:
  1. В версии [>= V 14.21] поправил переменную масштабирования, которая идёт в файле по умолчанию. Теперь для расчёта масштаба используется переменная DIMSCALE. Поправил оформление функции wcmatch и убрал не действующие строки - на работе плагина это никак не отразилось.
  2. В версии [>= V 14.22] переформатировал выводимое меню плагина. Сгруппировал команды и уточнил описания команд.
  3. В версии [>= V 14.24] добавил сводную таблицу по количеству кабеля. Табличка нужна для внесения данных в спецификацию проекта. Сводная таблица вставляется в таблицу "Таблица прокладки кабеля".
  4. В версии [>= V 14.25] Поправил заливку ячеек таблички при изменении имени кабеля в функциях "PDKFKGCPY" и "PDKFKGMCPY".
  5. В версии [>= V 14.30] Добавил функцию пакетного обмена упаковки кабеля "PDKFKGPACKSWAP". Например кабель был уложен в гофре, а заказчик захотел заменить на ПВХ-трубу. Эта функция как раз позволит сделать это для выбранных блоков разом.
  6. В версии [>= V 14.6] Добавил варианты маркировки кабеля с выбором точки привязки, сделал одинаковой установку маркировки кабеля (одиночного и множественного). Пофиксил часть мелких ошибок. Перевёл картинки в png. Добавил команды "PDKFKGALLMARKM2, PDKFKGALLMARKM2Q, PDKFKGALLMARKM2EQ, PDKFKGALLMARKM2E". Описание есть при загрузке плагина.
  7. В версии [>= V 15.0] Добавил варианты установки маркировки кабеля в виде ссылки (м-выноска) и таблички с номерами кабелей. Связь таблички и м-выноски реализована в виде связанного поля. Установка данной маркировки командой "PDKFKGMARKALLMARK". Описание есть при загрузке плагина.
  8. В версии [>= V 16.3] Добавил функционал в функции Пакетное изменение кабельных блоков "PDKFKGMCORRECT". Добавилась возможность в пакетном редактировании блока производить обрезку кабелей рамкой, а так же добавилась функция добавления или удаления добавочной длины кабеля. Так же добавил возможность осуществить простое обновление информации по кабелю, без правки кабеля.
  9. В версии [>= V 16.6] Добавил функционал в функции Пакетное изменение кабельных блоков "PDKFKGMCORRECT". Добавилась возможность в пакетном редактировании блока производить обрезку кабелей секущей рамкой. Так же добавил вариант отказаться от редактирования кабеля, если вдруг что то пошло не так.
  10. В версии [>= V 17.2] Добавил возможность осуществлять подсчёт текущего сечения выбранных кабелей, что необходимо для осуществления подборки КНС (лотков, коробов...). Команда "PDKFKGCABHOLD". Так же добавил команду для просмотра базы данных кабелей с возможностью копирования выбранного кабеля, для дальнейшего использования. Команда "PDKFKGCABBD".
  11. В версии [>= V 17.8] Прошло много изменений. Добавил новые поля в блок кабелей. Добавил возможность делить кабель на "контрольный" и "силовой". Добавил поле "Группа кабеля" и возможность ставить мультивыноску с данным полем. Добавил возможность осуществлять подсчёт текущего сечения выбранных кабелей с делением на контрольные и силовые кабели, а так же общий расчёт для всех кабелей. Это необходимо для осуществления подборки КНС (лотков, коробов...). Команды "PDKFKGCABHOLD" и "PDKFKGMARK_GROUP". Модернизировал команду для просмотра базы данных кабелей с индикацией диаметра и возможностью копирования выбранного кабеля, для дальнейшего использования. Команда "PDKFKGCABBD".
  12. В версии [>= V 18.0] Добавил в вывод команды "PDKFKGCABHOLD" вес кабеля на один погонный метр и вес всех кабелей в КНС так же на 1 погонный метр. Данные нужны для расчёта крепежа КНС.

P.S. Для получения последней версии надо скачать файл с исходным плагином (если он у Вас ещё не установлен), и файл обновления. Распаковать и заменить (добавить) все содержащиеся в обновлении файлы. Далее работать по исходной инструкции настройки, установки плагина.
P.P.S. Пересобрал исходный файл "PDKFKG.rar". Можно удалить предыдущую папку и установить плагин заново (хотя не обязательно, можно просто поступить как советовал выше).
P.P.P.S. Для преобразования блоков старого образца, достаточно использовать команду "PDKFKGBROKENV".

Вложения
Тип файла: zip Ссылки ГИФ.zip (2.6 Кб, 201 просмотров)
Тип файла: rar PDKFKG_v_17.3.rar (504.0 Кб, 29 просмотров)
Тип файла: rar PDKFKG_v_17.8.rar (506.2 Кб, 35 просмотров)
Тип файла: rar Планы с кабелями о образцами блоков.rar (957.0 Кб, 67 просмотров)
Тип файла: rar PDKFKG_v_18.0.rar (134.5 Кб, 60 просмотров)

__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!

Последний раз редактировалось petro_f, 22.05.2019 в 01:22. Причина: Добавление нового функционала плагина (22.05.2019).
Просмотров: 18083
 
Непрочитано 21.06.2017, 13:53
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,643


Что за тяга по умолчанию в корневой каталог системного диска ставить программу? Причем программу, которая по сути не требует прав выше пользовательских - насколько понимаю.
Сергей812 вне форума  
 
Автор темы   Непрочитано 21.06.2017, 14:02
| 1 #3
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Что за тяга по умолчанию в корневой каталог системного диска ставить программу? Причем программу, которая по сути не требует прав выше пользовательских - насколько понимаю.
Сергей, тяги никакой нет, но если бы Вы внимательно читали текст, то увидели бы, что это не обязательно...
Написано вроде чётко и понятно...
Цитата:
Сообщение от petro_f Посмотреть сообщение
Имя папки, её расположение и основные настройки плагина редактируются в двух файлах в разделе основных настроек (там везде даны подсказки):
Файл плагина PDKFKG.lsp расположенный по пути C:\PDKFKG\0_LISP - строки с 38 по 76 для версии плагина [>= v 14.20]
Файл загрузки плагина 0_PDKFKG_LOAD.lsp расположенный по пути C:\PDKFKG - строки с 1 по 13 для версии плагина [>= v 14.20]
Просто мне так уж исторически сложилось, что удобней кинуть туда папку было.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 21.06.2017, 19:27
#4
Erbol2014

ТОО
 
Регистрация: 22.05.2014
Аршалы
Сообщений: 50


Я дико извиняюсь, но ваш файл "Планы с кабелями для тестов.dwg " имеет внутри макрос....
Вы нам трояна втюхать хотите? С трояном это в лабораторию касперского https://www.youtube.com/watch?v=nURH6dKb9ac
А рамку чертежа специально из "кусков" делаете, чтобы жизнь усложнить ?
Erbol2014 вне форума  
 
Непрочитано 21.06.2017, 19:42
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,605


В качестве намека, где и как можно хранить подобные вещи: http://autolisp.ru/2011/04/11/data-set-and-get-03-2/
При первом запуске запрашивать каталог установки и записывать полученные данные, а потом просто к ним обращаться.
Offtop: P.S. Предоставление "готовой" программы обычно не подразумевает правки исходного кода.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.06.2017, 20:24
#6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,643


И использование в качестве кабеля вместо полилинии с расширенными данными (например) блока с атрибутами очень спорное решение, имхо.
Сергей812 вне форума  
 
Автор темы   Непрочитано 21.06.2017, 20:28
#7
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Erbol2014 Посмотреть сообщение
Я дико извиняюсь, но ваш файл "Планы с кабелями для тестов.dwg " имеет внутри макрос....
Уважаемый где и что Вы там нашли? Всё что у меня загружено это взято тут, SelSim и GeomProps.
Единственное я не сильно проверял подложку от нашего отдела АР, но и там сидят спецы не пальцем деланные.... Так что просто не загружайте ничего и да будет Вам счастье...

Цитата:
Сообщение от Erbol2014 Посмотреть сообщение
А рамку чертежа специально из "кусков" делаете, чтобы жизнь усложнить ?
Мне так удобнее и её я Вам и не предлагаю Меня данная рамка устраивает на 146%


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
В качестве намека, где и как можно хранить подобные вещи: http://autolisp.ru/2011/04/11/data-set-and-get-03-2/
При первом запуске запрашивать каталог установки и записывать полученные данные, а потом просто к ним обращаться.
Я конечно Вас уважаю, но лезть в реестр по всякому поводу считаю глупой затеей. Не у всех в корпоративной политике есть разрешение на доступ программ к реестру. Я понимаю, что кад и так там ковыряется, но мне проще в самом исходном файле внести один раз настройку. Зато потом при переносе, переустановки системы ничего не надо трогать.. как то так.. я из старых DOS-ников и винде не сильно доверяю

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Offtop: P.S. Предоставление "готовой" программы обычно не подразумевает правки исходного кода.
Это не конечная версия программы. Так же править никто никого не заставляет. Можно пользоваться как есть... а можно и не пользоваться. Я считаю, что лучше сразу показать где и что можно подкорректировать под себя. Кому не нравится тот просто пройдёт мимо.

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
И использование в качестве кабеля вместо полилинии с расширенными данными (например) блока с атрибутами очень спорное решение, имхо.
Решение не спорное, а на самом деле обдуманное. Оно позволяет мне контролировать линию от случайного копирования и прочих радостей жизни. Так же я сделал редактирование блоков (в том числе и пакетное). Так что не вижу в этом ничего плохого.
При том данная программа делалась под себя.. кому понравится, тому понравится. Я никого не заставляю
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 21.06.2017, 21:13
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,643


Цитата:
Сообщение от petro_f Посмотреть сообщение
Оно позволяет мне контролировать линию от случайного копирования и прочих радостей жизни
Чем защищает? Как полилинию могут случайно удалить, так и блок. Так же как и скопировать. Защищается от изменений, если блокировать слой, например. Так что это чисто вопрос реализации)
Сергей812 вне форума  
 
Автор темы   Непрочитано 21.06.2017, 21:24
#9
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Чем защищает? Как полилинию могут случайно удалить, так и блок. Так же как и скопировать. Защищается от изменений, если блокировать слой, например. Так что это чисто вопрос реализации)
От удаления практически защититься не возможно (хотя конечно блок можно просто восстановить)... а вот от копирования - попробуйте скопировать блок, а затем нажать на иконку с треугольником.. Функция тут же пометит этот блок как неисправный. Так же попробуйте изменить имя кабеля в атрибуте..
А далее плагин эти кабели не учитывает в работе. Так что достаточно перед выгрузкой или маркировкой вызвать функцию проверки кабелей на соответсвие и они автоматом далее не будут участвовать в работе плагина. Так же это произойдёт, если кабель перенести в другой чертёж.
Так что какая никакая, но защита есть.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 21.06.2017, 22:13
| 1 #10
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


намаешься ты с этим трешем
gomer вне форума  
 
Непрочитано 21.06.2017, 22:21
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,605


Цитата:
Сообщение от petro_f Посмотреть сообщение
лезть в реестр по всякому поводу считаю глупой затеей
А тот факт, что в реестр лезет почти каждая программа, установленная на компе - это так, мелочь? Ну-ну...

----- добавлено через ~1 мин. -----
Цитата:
Сообщение от petro_f Посмотреть сообщение
мне проще
Ключевое слово - "мне".
Ладно, оставлю критику - все равно времени на посмотреть у меня нет
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.06.2017, 22:24
#12
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от gomer Посмотреть сообщение
намаешься ты с этим трешем
Ну я просто поделился. Кому понравится возьмёт и попользуется. А кому не по душе такая реализация, тот не будет пользоваться. Остальные, кто просто решил поболтать без аргументов, пускай отправляются в пешее эротическое путешествие, его ещё никто не отменял

А так уже как бы 5 больших проектов сделали и всё как часы работает. Так что не надо пессимизма

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ключевое слово - "мне".
Художника обидеть может каждый
Каждый делает наверное всё же под себя. Так что тут любое решение приемлемо.

----- добавлено через ~4 мин. -----
Далее я не вижу смысла писать ответы не по теме.
Будут вопросы именно по реализации плагина - пишите.
Остальные сообщения я думаю есть смысл игнорировать.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 21.06.2017, 23:40
#13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,605


  1. Разница:
    Код:
    [Выделить все]
     (if (< (pdkfkg-number-rounding-numbers g_pdkfkg_certain_length_cabel) 1)
                        1
                        (pdkfkg-number-rounding-numbers g_pdkfkg_certain_length_cabel)
                        )
    и
    Код:
    [Выделить все]
     (min 1 (pdkfkg-number-rounding-numbers g_pdkfkg_certain_length_cabel))
    В первом случае функция вызывается дважды, во втором - только один раз.
  2. Код:
    [Выделить все]
     (if (= (pdkfkg-alert-question-answer
             "Ошибка заложенных параметров"
             "Длина \"упаковки\" кабеля превышает длину самого кабеля!\nИсправить?"
             (+ 4 48 4096)
             ) ;_ end of pdkfkg-alert-question-answer
           6
           ) ;_ end of =
        ;| предупреждаем, что длина кабеля меньше чем длина "упаковки" и предлагаем исправить |;
      (progn ;| если да, то продолжаем цикл и вызываем окно заново |;
        (setq pdkfkg_temp_work_permit_while t)
        )     ; end progn
      (progn ;| если нет, то разрешаем продолжить функцию |; (setq pdkfkg_temp_work_permit_while nil)) ; end progn
      ) ;_ end of if
    и
    Код:
    [Выделить все]
     (setq pdkfkg_temp_work_permit_while
           (= (pdkfkg-alert-question-answer
                "Ошибка заложенных параметров"
                "Длина \"упаковки\" кабеля превышает длину самого кабеля!\nИсправить?"
                (+ 4 48 4096)
                ) ;_ end of pdkfkg-alert-question-answer
              6
              ) ;_ end of =
          ) ;_ end of setq
    Второй вариант более логичен, мне кажется.
  3. Код:
    [Выделить все]
     (+ (pdkfkg-number-rounding-numbers g_pdkfkg_in_lotok_cabel)
       (pdkfkg-number-rounding-numbers g_pdkfkg_in_gofra_cabel)
       (pdkfkg-number-rounding-numbers g_pdkfkg_in_metrukav_cabel)
       (pdkfkg-number-rounding-numbers g_pdkfkg_in_cabelkanal_cabel)
       (pdkfkg-number-rounding-numbers g_pdkfkg_in_pvx_cabel)
       (pdkfkg-number-rounding-numbers g_pdkfkg_in_truba_cabel)
       (pdkfkg-number-rounding-numbers g_pdkfkg_in_shtroba_cabel)
       ) ;_ end of +
    и
    Код:
    [Выделить все]
     (apply '+
           (mapcar (function pdkfkg-number-rounding-numbers)
                   (list g_pdkfkg_in_lotok_cabel g_pdkfkg_in_gofra_cabel g_pdkfkg_in_metrukav_cabel g_pdkfkg_in_cabelkanal_cabel g_pdkfkg_in_pvx_cabel g_pdkfkg_in_truba_cabel g_pdkfkg_in_shtroba_cabel) ;_ end of list
                   ) ;_ end of mapcar
           ) ;_ end of apply
    Опять же, не лень было писать?
  4. Вместо (nth ...) нередко можно использовать car, cadr, caddr etc.
  5. Вызов конструкции типа
    Код:
    [Выделить все]
     (if pdkfkg_temp_flag_name_ucs ;| если тут есть текст |;
    вернет t, если pdkfkg_temp_flag_name_ucs не nil. Тип данных именно здесь не контролируется.
  6. Кстати, а зачем столько глобальных переменных? Не проще ли было бы создать одну глобальную переменную (если без нее не обойтись), куда загонять все данные, формируя соответствующий список?
  7. В функции pdkfkg-create-block-of-cabel-in-layout меняется cmdecho, но в локальном *error* исходное значение не восстанавливается.
  8. Попытка вызова
    Код:
    [Выделить все]
     (vlax-put-property
                            (vlax-invoke-method pdkfkg_vla_id_dictionary_layer 'item pdkfkg_temp_count)
                            'freeze
                            :vlax-false
                            )
    для текущего слоя гарантированно вызовет ошибку. Свойство Freeze для текущего слоя не меняется.
  9. Вместо
    Код:
    [Выделить все]
     (pdkfkg-block-set-one-attributes
                           pdkfkg_list_selected_block_for_update
                           "LENGTH_CABEL"
                           (if (< (pdkfkg-number-rounding-numbers g_pdkfkg_certain_length_cabel) 1)
                             1
                             (pdkfkg-number-rounding-numbers g_pdkfkg_certain_length_cabel)
                             ) ;_ end of if
                           ) ; ìèíèìàëüíîå çíà÷åíèå 1 ìåòð             
                         (pdkfkg-block-set-one-attributes
                           pdkfkg_list_selected_block_for_update
                           "IN_LOTOK_CABEL"
                           (pdkfkg-number-rounding-numbers g_pdkfkg_in_lotok_cabel)
                           ) ;_ end of PDKFKG-block-set-one-attributes
                         (pdkfkg-block-set-one-attributes
                           pdkfkg_list_selected_block_for_update
                           "IN_GOFRA_CABEL"
                           (pdkfkg-number-rounding-numbers g_pdkfkg_in_gofra_cabel)
                           ) ;_ end of PDKFKG-block-set-one-attributes
                         (pdkfkg-block-set-one-attributes
                           pdkfkg_list_selected_block_for_update
                           "IN_METRUKAV_CABEL"
                           (pdkfkg-number-rounding-numbers g_pdkfkg_in_metrukav_cabel)
                           ) ;_ end of PDKFKG-block-set-one-attributes
                         (pdkfkg-block-set-one-attributes
                           pdkfkg_list_selected_block_for_update
                           "IN_CABELKANAL_CABEL"
                           (pdkfkg-number-rounding-numbers g_pdkfkg_in_cabelkanal_cabel)
                           ) ;_ end of PDKFKG-block-set-one-attributes
                         (pdkfkg-block-set-one-attributes
                           pdkfkg_list_selected_block_for_update
                           "IN_PVX_CABEL"
                           (pdkfkg-number-rounding-numbers g_pdkfkg_in_pvx_cabel)
                           ) ;_ end of PDKFKG-block-set-one-attributes
                         (pdkfkg-block-set-one-attributes
                           pdkfkg_list_selected_block_for_update
                           "IN_TRUBA_CABEL"
                           (pdkfkg-number-rounding-numbers g_pdkfkg_in_truba_cabel)
                           ) ;_ end of PDKFKG-block-set-one-attributes
                         (pdkfkg-block-set-one-attributes
                           pdkfkg_list_selected_block_for_update
                           "IN_SHTROBA_CABEL"
                           (pdkfkg-number-rounding-numbers g_pdkfkg_in_shtroba_cabel)
                           )
    можно запросто обойтись примерно таким:
    Код:
    [Выделить все]
     (pdkfkg-block-set-one-attributes
      pdkfkg_list_selected_block_for_update
      "LENGTH_CABEL"
      (min 1 (pdkfkg-number-rounding-numbers g_pdkfkg_certain_length_cabel))
      ) ;_ end of pdkfkg-block-set-one-attributes
    (foreach item (list (cons "IN_LOTOK_CABEL" g_pdkfkg_in_lotok_cabel)
                        (cons "IN_METRUKAV_CABEL" g_pdkfkg_in_metrukav_cabel)
                        (cons "IN_CABELKANAL_CABEL" g_pdkfkg_in_cabelkanal_cabel)
                        (cons "IN_PVX_CABEL" g_pdkfkg_in_pvx_cabel)
                        (cons "IN_TRUBA_CABEL" g_pdkfkg_in_truba_cabel)
                        (cons "IN_SHTROBA_CABEL" g_pdkfkg_in_shtroba_cabel)
                        ) ;_ end of list
      (pdkfkg-block-set-one-attributes
        pdkfkg_list_selected_block_for_update
        (car item)
        (pdkfkg-number-rounding-numbers (cdr item))
        ) ;_ end of pdkfkg-block-set-one-attributes
      )
    Или вообще таким:
    Код:
    [Выделить все]
     (foreach item (list (list "LENGTH_CABEL" 1 g_pdkfkg_certain_length_cabel)
                        (cons "IN_LOTOK_CABEL" g_pdkfkg_in_lotok_cabel)
                        (cons "IN_METRUKAV_CABEL" g_pdkfkg_in_metrukav_cabel)
                        (cons "IN_CABELKANAL_CABEL" g_pdkfkg_in_cabelkanal_cabel)
                        (cons "IN_PVX_CABEL" g_pdkfkg_in_pvx_cabel)
                        (cons "IN_TRUBA_CABEL" g_pdkfkg_in_truba_cabel)
                        (cons "IN_SHTROBA_CABEL" g_pdkfkg_in_shtroba_cabel)
                        ) ;_ end of list
      (pdkfkg-block-set-one-attributes
        pdkfkg_list_selected_block_for_update
        (car item)
        (if (not (listp (cdr item)))
          (pdkfkg-number-rounding-numbers (cdr item))
          (min (cadr item) (pdkfkg-number-rounding-numbers (caddr item)))
          ) ;_ end of if
        ) ;_ end of pdkfkg-block-set-one-attributes
      ) ;_ end of foreach
Ну и так далее. В код изменения не вносил, работоспособность не проверял.


----- добавлено через ~7 мин. -----
И заменить монстра
Код:
[Выделить все]
 (or ;| если полученный элемент является чем либо из перечисленных, тогда |;
  (wcmatch (cdr
             (assoc 0
                    (entget
                      (handent (vlax-get-property
                                 (vlax-invoke-method pdkfkg_temp_vla_name_description_block 'item pdkfkg_temp_two_count)
                                 'handle
                                 ) ;_ end of vlax-get-property
                               ) ;_ end of handent
                      ) ;_ end of entget
                    ) ;_ end of assoc
             ) ;_ end of cdr
           "*POLYLINE"
           ) ;_ end of wcmatch
  (wcmatch (cdr
             (assoc 0
                    (entget
                      (handent (vlax-get-property
                                 (vlax-invoke-method pdkfkg_temp_vla_name_description_block 'item pdkfkg_temp_two_count)
                                 'handle
                                 ) ;_ end of vlax-get-property
                               ) ;_ end of handent
                      ) ;_ end of entget
                    ) ;_ end of assoc
             ) ;_ end of cdr
           "LINE"
           ) ;_ end of wcmatch
  (wcmatch (cdr
             (assoc 0
                    (entget
                      (handent (vlax-get-property
                                 (vlax-invoke-method pdkfkg_temp_vla_name_description_block 'item pdkfkg_temp_two_count)
                                 'handle
                                 ) ;_ end of vlax-get-property
                               ) ;_ end of handent
                      ) ;_ end of entget
                    ) ;_ end of assoc
             ) ;_ end of cdr
           "ARC"
           ) ;_ end of wcmatch
  (wcmatch (cdr
             (assoc 0
                    (entget
                      (handent (vlax-get-property
                                 (vlax-invoke-method pdkfkg_temp_vla_name_description_block 'item pdkfkg_temp_two_count)
                                 'handle
                                 ) ;_ end of vlax-get-property
                               ) ;_ end of handent
                      ) ;_ end of entget
                    ) ;_ end of assoc
             ) ;_ end of cdr
           "ELLIPSE"
           ) ;_ end of wcmatch
  (wcmatch (cdr
             (assoc 0
                    (entget
                      (handent (vlax-get-property
                                 (vlax-invoke-method pdkfkg_temp_vla_name_description_block 'item pdkfkg_temp_two_count)
                                 'handle
                                 ) ;_ end of vlax-get-property
                               ) ;_ end of handent
                      ) ;_ end of entget
                    ) ;_ end of assoc
             ) ;_ end of cdr
           "SPLINE"
           ) ;_ end of wcmatch
  )
на вменяемые
Код:
[Выделить все]
 (or ;| если полученный элемент является чем либо из перечисленных, тогда |;
  (wcmatch (cdr
             (assoc 0
                    (entget
                      (handent (vlax-get-property
                                 (vlax-invoke-method pdkfkg_temp_vla_name_description_block 'item pdkfkg_temp_two_count)
                                 'handle
                                 ) ;_ end of vlax-get-property
                               ) ;_ end of handent
                      ) ;_ end of entget
                    ) ;_ end of assoc
             ) ;_ end of cdr
           "*POLYLINE,LINE,ARC,ELLIPSE,SPLINE"
           ) ;_ end of wcmatch
  ) ;_ end of or


----- добавлено через ~11 мин. -----
Ох, елки! Там код упрощать можно оооочень долго...
Уже под more прятать не буду
Код:
[Выделить все]
 (assoc "NAME_CABEL" pdkfkg_temp_all_data_attrib_one_block) ;| проверяем наличие всех атрибутов|;
                 (assoc "IN_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "OUT_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "TYPE_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "MOD_OF_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "LENGTH_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "NOTE_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "IN_LOTOK_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "IN_GOFRA_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "IN_METRUKAV_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "IN_CABELKANAL_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "IN_PVX_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "IN_TRUBA_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "IN_SHTROBA_CABEL" pdkfkg_temp_all_data_attrib_one_block)
                 (assoc "ADD_LENGTH_CABEL" pdkfkg_temp_all_data_attrib_one_block)
vs
Код:
[Выделить все]
 (apply 'and
       (mapcar (function (lambda (x) (cdr (assoc x pdkfkg_temp_all_data_attrib_one_block))))
               '("NAME_CABEL"           "IN_CABEL"             "OUT_CABEL"            "TYPE_CABEL"           "MOD_OF_CABEL"         "LENGTH_CABEL"         "NOTE_CABEL"
                 "IN_LOTOK_CABEL"       "IN_GOFRA_CABEL"       "IN_METRUKAV_CABEL"    "IN_CABELKANAL_CABEL"  "IN_PVX_CABEL"         "IN_TRUBA_CABEL"       "IN_SHTROBA_CABEL"
                 "ADD_LENGTH_CABEL"
                 )
               ) ;_ end of mapcar
       ) ;_ end of apply
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 21.06.2017 в 23:52.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.06.2017, 01:48
#14
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Ну докопаться и до столба можно, но:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
По качеству кода
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...). Сейчас бы я переписал это так, но с другой стороны это работает и читаемо, так что не вижу смысла переписывать.


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Настоятельно советую изучить справку по wcmatch
Можно конечно переделать и так. И даже выиграть 18 наносекунд в скорости выполнения операции Но стоит ли оно того? Так мне на тот момент было удобней написать именно так.
Будет время - оптимизирую этот жутчайший косяк из за которого мне лучше пойти и удавиться, так как я точно не программист а полное г...о момент...

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ох, елки! Там код упрощать можно оооочень долго...
Уже под more прятать не буду
Ну тут часть ответа под номером 9 и предыдущий коммент так же подойдёт...
Но по мне мой вариант читается намного внятней при отладке кода, чем предложенный вариант с "apply 'and mapcar"... Я всегда выступаю за то, что если читабельность кода глазами вызовет написание лишних 10-х строк - значит надо написать эти строки. Компу (компилятору) глубоко похфиг, а мне для отладки легче и удобней.
Так что последних несколько замечаний - это просто обычная вкусовщина..

Больше всего меня добила Ваша ремарка "Ну и так далее. В код изменения не вносил, работоспособность не проверял." - это вообще истинный подход профессионала... написать кучу замечаний, не разбираясь ни в логике работы, ни запуская прогу... Вы мне напомнили работу наших некоторых экспертов в доблестной экспертизе - которые тоже пишут замечания к проекту, не открывая его
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!

Последний раз редактировалось petro_f, 22.06.2017 в 01:56.
petro_f вне форума  
 
Непрочитано 22.06.2017, 06:24
| 1 #15
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,605


petro_f, ок, ок, уговорил. Я дурень, влез куда не просили Умолкаю.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.06.2017, 07:25
| 1 #16
Erbol2014

ТОО
 
Регистрация: 22.05.2014
Аршалы
Сообщений: 50


Цитата:
Сообщение от petro_f Посмотреть сообщение
Уважаемый где и что Вы там нашли? Всё что у меня загружено это взято тут, SelSim и GeomProps.
При открытии вашего файла Автокад выдаёт - см. картинку
У меня никогда такого не выдавало.
Вы в файле чего то мудрили с макросами, удалили, а следы остались.
Чтобы такого небыло создавайте новый файл и копируйте в него содержимое.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 132
Размер:	99.5 Кб
ID:	190033  
Erbol2014 вне форума  
 
Непрочитано 22.06.2017, 09:07
#17
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,011


Подтверждаю, в dwg файле имеется внедренный vba проект. Пустой.
Для удаления этого мусора:
Команда _vbaman нажать отмеченную кнопочку


А вообще в самом файле очень много мусора и прокси объектов, его бы почистить...

Хотя, я уже знаю что ответит автор... =о)
__________________
_бложиг

Последний раз редактировалось Boxa, 22.06.2017 в 09:12.
Boxa на форуме  
 
Автор темы   Непрочитано 22.06.2017, 09:22
#18
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
petro_f, ок, ок, уговорил. Я дурень, влез куда не просили Умолкаю.
Алексей, ну не надо так демонстративно. Просто я ожидал бы замечания по делу. Согласен, что wcmatch просто затупил, а остальное по большому счёту не принципиально... каждый пишет так как ему удобно. И даже в таком варианте wcmatch работает.
Давайте без обид общаться. Ок?
Я всегда готов к конструктивному диалогу. Если где высказался резко, то это не со зла



Цитата:
Сообщение от Erbol2014 Посмотреть сообщение
При открытии вашего файла Автокад выдаёт - см. картинку
У меня никогда такого не выдавало.
Вы в файле чего то мудрили с макросами, удалили, а следы остались.
Чтобы такого небыло создавайте новый файл и копируйте в него содержимое.
Erbol2014 я этот файл просто приложил в последний момент. Если Вас прямо прёт, то можете смело нажать "не включать макросы".
P.S. Посмотрел я на то, что Вас там с макросами пугало ))) Видимо от АР наследие с пустым проектом VBA из подложки прилетело. Сейчас почищу и заменю файл. Так что можете его перекачать заново.

----- добавлено через ~34 мин. -----
Цитата:
Сообщение от Boxa Посмотреть сообщение
Подтверждаю, в dwg файле имеется внедренный vba проект. Пустой.
Для удаления этого мусора:
Команда и картинка

А вообще в самом файле очень много мусора и прокси объектов, его бы почистить...

Хотя, я уже знаю что ответит автор... =о)
Воха Вы не поверите, но пока я писал ответ, и чистил файл :0 Вы успели свой ответ написать.
Выгрузил, от прокси объектов не стал чистить, так как это объекты СПДС и при весе в 900 кб файла, перерывать всю АР я не вижу смысла.
Данный файл был просто прилеплен для демонстрации, Так как с него писались гифки. Никто и никогда в нём работать то не будет. Смысл его чистить? Или Вас смущают стандартные СПДС объекты?
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!

Последний раз редактировалось petro_f, 22.06.2017 в 09:32.
petro_f вне форума  
 
Непрочитано 22.06.2017, 10:12
#19
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,605


petro_f, без вникания - что такое кабельные линии, что такое разделы КИПиА, без понимания (хотя бы примерного) специфики работы, я так полагаю, электриков - по функционалу лично я сказать ничего не могу. По коду - да, но это максимум.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.06.2017, 11:54
#20
AlexZh


 
Регистрация: 23.09.2015
Сообщений: 143


petro_f. Молодец! Хорошая программа. Видно человек старался! Кому надо, тот возьмет на вооружение.

Кулик Алексей aka kpblc, хорошие замечания по коду.

Некоторые остальные, да. Много необоснованной критики. Человек поделился своим творением. Заметьте, бесплатно. Не каждый на такое способен.

Я вот думаю, все эти свойства все-таки через расширенные данные пользовать. По моему, если кабелей будет много, как то не удобно будет пользоваться чертежом с большим количеством блоков. или уж в грубы объединять.
__________________
Проекты СС
AlexZh вне форума  
 
Непрочитано 22.06.2017, 11:57
#21
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 36,605


У РД есть капитальное ограничение в 16 кб. Этого объема нередко не хватает. Но дело хозяйское ))
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.06.2017, 12:02
#22
AlexZh


 
Регистрация: 23.09.2015
Сообщений: 143



извиняюсь, ошибся) я еще учащийся!)

я имел в виду X-записи.
__________________
Проекты СС
AlexZh вне форума  
 
Автор темы   Непрочитано 22.06.2017, 12:25
#23
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от AlexZh Посмотреть сообщение
petro_f. Молодец! Хорошая программа. Видно человек старался! Кому надо, тот возьмет на вооружение.

Кулик Алексей aka kpblc, хорошие замечания по коду.

Некоторые остальные, да. Много необоснованной критики. Человек поделился своим творением. Заметьте, бесплатно. Не каждый на такое способен.

Я вот думаю, все эти свойства все-таки через расширенные данные пользовать. По моему, если кабелей будет много, как то не удобно будет пользоваться чертежом с большим количеством блоков. или уж в грубы объединять.
Ну у меня есть в работе файлы (планы) со средним количеством кабелей более 450 и всё нормально работает. Я тестил до 1500 кабелей на плане.
И всё работает.. создаётся, редактируется, выгружается.

P.S. Узнал что для большого (самого высокого) объекта в СПб моя знакомая в этом плагине делала более 2000 кабелей в одном файле. Так как схемы (КЖ) им пересылали в ворде, то она сначала КЖ импортировала из ворда в кад (табличку с 6 полями), а уже по ней создавала. Единственное ограничение (вернее рекомендация по ускорению) - отсутсвие лишних табличек с кабелями (уже заполненых) так как функция получения данных из ячейки таблички реализована в акаде методом сначала получения координат, а потом поиском ячейки во всех таблицах. Но тут уже не я виноват, а так работает кад. Ну и желательно таблички с данными по созданию кабелей делать не более 200-300 строк. Опять таки это всё требования для ускорения работы, не более. Т.е. объём таблички просто тупо влияет на время отклика плагина при считывании с неё (почти мгновенный отклик или задержка в 1.5 - 2 секунды).
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!

Последний раз редактировалось petro_f, 13.07.2017 в 13:03.
petro_f вне форума  
 
Непрочитано 23.06.2017, 01:03
#24
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от AlexZh Посмотреть сообщение
Много необоснованной критики. Человек поделился своим творением. Заметьте, бесплатно. Не каждый на такое способен.
поиск по файлу *error* - 275 штук, делим на 2, делим на 3...
поиск во файлу defun *error* - 168 штук, умножаем на 2...
вот такая простая арифметика твоих шарфов, я такое не то, что запускать, я такое смотреть брезгую...
gomer вне форума  
 
Непрочитано 26.06.2017, 09:50
#25
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


я тебе советую разбросать функции по файлам и скомпилировать код, а исходник положить в отдельную папку. имея проект, легче ориентироваться в коде и находить ошибки и несуразности, коих у тебя более, чем достаточно
gomer вне форума  
 
Непрочитано 26.06.2017, 10:30
#26
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,643


Хватит ругаться - время покажет) Пока у темы почти полторы тысячи просмотров, и не одного положительного отзыва о применении - кроме автора самой программы. Достаточно много людей (и даже некоторые фирмы для продвижения своего оборудования) пишут свои "приблуды" для КЖ и спецификации, так как трудоемкая и нудная задача.
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.07.2017, 11:45
#27
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Хватит ругаться - время покажет) Пока у темы почти полторы тысячи просмотров, и не одного положительного отзыва о применении - кроме автора самой программы. Достаточно много людей (и даже некоторые фирмы для продвижения своего оборудования) пишут свои "приблуды" для КЖ и спецификации, так как трудоемкая и нудная задача.
Странное послевкусие от чата осталось Плагин никто не попробовал, а мнение уже сформировано..

В общем и малом - частично поправил плагин по, как я считаю, реальным замечаниям. Далее уже кому интересно попробует.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 13.07.2017, 12:18
#28
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,643


понимаете, программа с подобными ограничениями по скорости работы
Цитата:
Сообщение от petro_f Посмотреть сообщение
Ну и желательно таблички с данными по созданию кабелей делать не более 50-70 строк. Опять таки это всё требования для ускорения работы, не более.
в 2017 году выглядит, мягко говоря, странно) Понятно, что использование лиспа накладывает определенные ограничения на реализацию надстройки - но не настолько же.
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.07.2017, 12:58
#29
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
понимаете, программа с подобными ограничениями по скорости работы

в 2017 году выглядит, мягко говоря, странно) Понятно, что использование лиспа накладывает определенные ограничения на реализацию надстройки - но не настолько же.
Хм.. это ограничение накладывает на Вас только то что отклик плагина при считывании будет мгновенным или (если больше строк) 1.2 секунды.
А так хоть 500 строк табличку.
P.S. Данное ограничение я написал исходя из расчёта, что комп совсем совсем "древний"... на более менее серьёзных машинах можно смело на 200-300 строк бить (а можно и не бить табличку).
P.P.S Да и строго говоря это ограничение идёт из функции определения ячейки таблицы по координатам. Я что-то не натыкался на другой вариант получения номера ячейки http://www.caduser.ru/forum/index.ph...D=23&TID=40802 как в посте #7. При большом количестве строк и таблиц эта функция и является основным тормозом. Если есть другой и более скорострельный вариант получения таких данных из точки клика, то покажите.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!

Последний раз редактировалось petro_f, 13.07.2017 в 13:16.
petro_f вне форума  
 
Непрочитано 13.07.2017, 13:32
#30
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,643


Цитата:
Сообщение от petro_f Посмотреть сообщение
на более менее серьёзных машинах можно смело на 200-300 строк бить (а можно и не бить табличку).
Да не должен пользователь подстраиваться под возможности плагина)

Так же вызывает "удивление" использования для выносок группы кабелей - мультивыноску и таблицу. Мультивыноска самодостаточна для выполнения подобных задач, лишнее "утяжеление" чертежа, имхо.

Про использовании переопределения *ERROR* уже писали выше. В свое время, когда пробовал писать на лиспе: в первую очередь написал обертки с использование vl-catch- для тех же функций ввода пользователя, чтобы возвращали nil в случае отказа - а не вываливалась ошибка, которую еще надо перехватывать. Код стал гораздо читабельнее и понятнее.

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от petro_f Посмотреть сообщение
Если есть другой и более скорострельный вариант получения таких данных из точки клика, то покажите.
я на NetAPI давно пишу - там такие вещи проще вынести с уровня чертежа на логический уровень надстройки и использовать уже диалоги. В лиспе написать диалог - это уже подвиг)
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.07.2017, 14:16
#31
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
я на NetAPI давно пишу - там такие вещи проще вынести с уровня чертежа на логический уровень надстройки и использовать уже диалоги. В лиспе написать диалог - это уже подвиг)
Согласен. Мне самому C++ ближе к сердцу. Думаю, что надо посмотреть в сторону ARX Но в ARX есть одно плохое качество - плагин надо компилировать под почти каждую версию када, код с места не поправить в блокноте и прочее..
А LISP позволяет это сделать ))) И именно из-за этого я не компилю плагины, иначе потом поправить стороннему человеку нет возможности.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 13.07.2017, 14:30
#32
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,643


Цитата:
Сообщение от petro_f Посмотреть сообщение
Согласен. Мне самому C++ ближе к сердцу. Думаю, что надо посмотреть в сторону ARX Но в ARX есть одно плохое качество - плагин надо компилировать под почти каждую версию када, код с места не поправить в блокноте и прочее..
А LISP позволяет это сделать ))) И именно из-за этого я не компилю плагины, иначе потом поправить стороннему человеку нет возможности.
если не собираетесь копать в ObjectARX в сторону создания своих примитивов или другие "низкоуровневые" вещи - то он избыточен. В .NET гораздо проще решать многие задачи. И если не использовать специфические вещи - зависимость от версии гораздо меньше. Править на месте - мелкие правки можно даже в бесплатном SharpDevelop сделать и заново откомпилировать. А стороннему человеку проще будет порою заново свое сделать, чем разбираться в мегабайтном файле лиспа)
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.07.2017, 17:25
#33
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
если не собираетесь копать в ObjectARX в сторону создания своих примитивов или другие "низкоуровневые" вещи - то он избыточен
Мне просто нормальные языки программирования ближе к сердцу
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 13.07.2017, 17:47
#34
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,643


Цитата:
Сообщение от petro_f Посмотреть сообщение
Мне просто нормальные языки программирования ближе к сердцу
С++ - это серьезный язык для задач с серьезными требованиями к быстродействию, экономии ресурсов, полному контролю над процессом и т.д..
C# - серьезный язык больше для прикладных программ, и для чего в С++ понадобиться использовать дополнительные библиотеки либо писать код -> в C# многое "зашито" во фреймворк. И без этого Фреймворка даже акад не встанет - т.е. он гарантировано присутствует в системе. В отличие от сторонних библиотек.

----- добавлено через ~8 мин. -----
Официальный сайт по программированию - сейчас с этим проще, несколько лет назад приходилось с англоязычных ресурсов учиться большей частью)
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.07.2017, 21:54
#35
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
С++ - это серьезный язык для задач с серьезными требованиями к быстродействию, экономии ресурсов, полному контролю над процессом и т.д..
C# - серьезный язык больше для прикладных программ, и для чего в С++ понадобиться использовать дополнительные библиотеки либо писать код -> в C# многое "зашито" во фреймворк. И без этого Фреймворка даже акад не встанет - т.е. он гарантировано присутствует в системе. В отличие от сторонних библиотек.

----- добавлено через ~8 мин. -----
Официальный сайт по программированию - сейчас с этим проще, несколько лет назад приходилось с англоязычных ресурсов учиться большей частью)
Да я как бы не маленькая девочка и все вот эти недоязыки типа .NET на дух не переношу. Фреймворки и всё остальное - они развращают
По этому, так как я изучал С++, буду на нём программировать.
P.S. За ссылку на профильный сайт - спасибо.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 14.07.2017, 09:05
#36
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от petro_f Посмотреть сообщение
Странное послевкусие
Ты нарушил все заповеди, оставленные Админом для программистов и все заповеди, оставленные Программистом, для программистов на AutoLISP. И теперь у тебя послевкусие. Странный ты.
gomer вне форума  
 
Автор темы   Непрочитано 14.07.2017, 09:39
#37
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от gomer Посмотреть сообщение
Ты нарушил все заповеди, оставленные Админом для программистов и все заповеди, оставленные Программистом, для программистов на AutoLISP. И теперь у тебя послевкусие. Странный ты.
gomer, что бы не покрывать тебя матом, просто пройди мимо этой темы

P.S. И не забудь потом, в известной тебе теме, показать свой супер код, после которого остальным программистам останется только идти в дворники.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 14.07.2017, 10:06
#38
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от petro_f Посмотреть сообщение
в известной тебе теме
это какой?
gomer вне форума  
 
Автор темы   Непрочитано 14.07.2017, 10:12
#39
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от gomer Посмотреть сообщение
это какой?
Тут а если точнее, то просто игнор этого текста и и этого и этого
Просто игнор просьб и перевод внимания на другую тему.

P.S. Далее gomer я думаю, что с Вами продолжать диалог нет смысла. От Вас сообщения я просто буду игнорировать. Если есть желание общаться можно писать в личку, что бы не засирать тему, глупыми замечаниями и претензиями типа -"А у тебя тут не так написано, как бы мне хотелось видеть!".
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 14.07.2017, 12:05
#40
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от petro_f Посмотреть сообщение
Тут а если точнее, то просто игнор этого текста и и этого и этого
"там" тонкие материи описаны, а у тебя индусский код, чуть менее, чем полностью, вредоносный и не работающий. Помогли тебе хорошие коды? Я вижу что нет. Ведь код как выглядит так и работает. А у тебя элементарно даже количество взаимообратных действий не совпадает. Следовательно ни в каком случае это поделие нельзя рекомендовать, а лучше маркировать его как вредоносное ПО. Тому же у тебя 60% мусора в файле, а то и больше. Это я еще только по верхам посмотрел твой код.

О чем говорить если ты даже не понимаешь что такое область видимости переменной? Ты даже коментариями не в состоянии пользоваться. так что игнорь и дальше, твое право
gomer вне форума  
 
Непрочитано 19.12.2018, 10:21
#41
Turpak


 
Регистрация: 18.12.2018
Сообщений: 1


petro_f, огромнейшее спасибо вам за такой колоссальный труд и за то, что поделились с нами! Искренне желаю вам и вашим близким добра и здоровья!!
Turpak вне форума  
 
Автор темы   Непрочитано 19.12.2018, 12:30
#42
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от Turpak Посмотреть сообщение
petro_f, огромнейшее спасибо вам за такой колоссальный труд и за то, что поделились с нами! Искренне желаю вам и вашим близким добра и здоровья!!
Спасибо.
Выложил свежую версию плагина. Я думал тема никому не интересна
Свежак лежит тут ну или в шапке.

P.S. Просто для статистики, на данный момент, этим плагином выполнена часть проектов башни (КНХ) и мфз (АОВ) стилобат (АОВ) (Лахта СПб). Часть разделов автоматики ПИК (Гатчина). Ну и куча мелких объектов...
Так что можно сказать в самых тяжёлых условиях его обкатали
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 20.12.2018, 11:58
#43
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 108


Цитата:
Сообщение от petro_f Посмотреть сообщение
Спасибо.
Выложил свежую версию плагина. Я думал тема никому не интересна
Свежак лежит тут ну или в шапке.

P.S. Просто для статистики, на данный момент, этим плагином выполнена часть проектов башни (КНХ) и мфз (АОВ) стилобат (АОВ) (Лахта СПб). Часть разделов автоматики ПИК (Гатчина). Ну и куча мелких объектов...
Так что можно сказать в самых тяжёлых условиях его обкатали
Судя по видюшка модуль классный, по мне так наверное один из самых проработанных в своем плане из бесплатных.
Попробовал подключить его к bricscad 14, что то стартонуло, получилось создать кабель и даже экспортировать, но по другим командам все плохо. Экспорт выполнился в офис 2007)))
Модуль вообще классный, был бы акад даже не думая начал его обкатывать.
Не которые подходы очень интересные, особенно заполнения кабелей беря строку из таблички. Я как понимаю, табличку вы сами руками быстро набросали что с чем надо соединить и поехали.
Продолжайте радовать дальше. Приятно что плагин с полностью открытым исходным кодом. Я в LISPе не бум бум, но на форуме есть несколько людей кто пытался решить эту же задачу на LISP, не много по другому. Вам бы усилия объединить.
С наступающим Новым Годом!

Последний раз редактировалось veb86, 20.12.2018 в 13:33.
veb86 вне форума  
 
Автор темы   Непрочитано 20.12.2018, 15:43
#44
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от veb86 Посмотреть сообщение
Судя по видюшка модуль классный, по мне так наверное один из самых проработанных в своем плане из бесплатных.
Попробовал подключить его к bricscad 14, что то стартонуло, получилось создать кабель и даже экспортировать, но по другим командам все плохо. Экспорт выполнился в офис 2007)))
Модуль вообще классный, был бы акад даже не думая начал его обкатывать.
Не которые подходы очень интересные, особенно заполнения кабелей беря строку из таблички. Я как понимаю, табличку вы сами руками быстро набросали что с чем надо соединить и поехали.
Продолжайте радовать дальше. Приятно что плагин с полностью открытым исходным кодом. Я в LISPе не бум бум, но на форуме есть несколько людей кто пытался решить эту же задачу на LISP, не много по другому. Вам бы усилия объединить.
С наступающим Новым Годом!
Ну плагин рассчитан на автокад. Брискад отличается названием переменных и команд, так что там работоспособность совсем не гарантирована.

Цитата:
Я как понимаю, табличку вы сами руками быстро набросали что с чем надо соединить и поехали.
Табличку я создаю из блоков кабелей на электросхеме и перекидываю в файл планов (см. прилагаемый файл). Но можно самому создать ручками или загрузить из кабельного журнала в формате word.

По поводу объединиться - у каждого проектировщика своё видение проектирования и очень редко кто готов договариваться )))

Так же всех с наступающим Новым 2019 Годом!!!
Миниатюры
Нажмите на изображение для увеличения
Название: Блок кабеля на ЭС.JPG
Просмотров: 57
Размер:	54.1 Кб
ID:	209277  
Вложения
Тип файла: dwg
DWG 2013
АТХ.Э3.dwg (2.29 Мб, 22 просмотров)
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 21.12.2018, 09:46
#45
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 108


Цитата:
Сообщение от petro_f Посмотреть сообщение
Ну плагин рассчитан на автокад. Брискад отличается названием переменных и команд, так что там работоспособность совсем не гарантирована.
Про Брикскад я конечно догадывался что что то работать будет, но я к этому привычный.
Цитата:
Сообщение от petro_f Посмотреть сообщение
Табличку я создаю из блоков кабелей на электросхеме и перекидываю в файл планов (см. прилагаемый файл). Но можно самому создать ручками или загрузить из кабельного журнала в формате word.
Посмотрел файл, чувствуется что подход у вас серьезный. Как все это Вы смогли сделать на лисп, даже не представляю. Удивили. Продолжайте так же...
А как вы храните базу приборов? Что она из себя представляет? Как вообще у Вас создается прибор и насколько сложно его создания? интересно, возможно почерпну идеи для своего модуля.
veb86 вне форума  
 
Автор темы   Непрочитано 21.12.2018, 10:34
#46
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от veb86 Посмотреть сообщение
А как вы храните базу приборов? Что она из себя представляет? Как вообще у Вас создается прибор и насколько сложно его создания? интересно, возможно почерпну идеи для своего модуля.
А причём тут приборы? Это плагин кабельных линий.
Если идёт речь о приборах в чертеже, то у меня они создаются 2-я способами:
1. если блок не динамический, то вставкой из исходного чертежа с преобразованием в блок.
2. если блок динамический, то копированием из исходника (базы) файлов.

Всё это работает из переделанной надстройки сбуго.
У меня то выглядит она уже по другому, много добавлено )))
если интересно, то посмотреть можно тут. Там же внутри лежит файл с описанием настройки. Скажу сразу на брискад не проверял.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 21.12.2018, 12:00
#47
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 108


Цитата:
Сообщение от petro_f Посмотреть сообщение
А причём тут приборы? Это плагин кабельных линий.
С кабельными линиями все понятно что происходит. Всегда интересно понять подход к проектированию. Ваш подход оказался схожим с моими представлениями.

Цитата:
Сообщение от petro_f Посмотреть сообщение
2. если блок динамический, то копированием из исходника (базы) файлов.
Это понятно, он динамический и внутри него расставлены контакторы. это видно из файла.

Цитата:
Сообщение от petro_f Посмотреть сообщение
1. если блок не динамический, то вставкой из исходного чертежа с преобразованием в блок.
А это интересно, как первый раз получается блок прибора? Вы сначала создаете блок, как внутри блока определяются коннекторы, они определяются нахождением габаритами внутри блока прибора?
Еще удивило что вы адреса жил кабелей тоже программно получается. Что бы их получить надо не только программно видеть блок прибора, надо видеть коннектор? тоже территориально находите?
вообще интересный проект. Может реально ускорить и повысить качество
veb86 вне форума  
 
Автор темы   Непрочитано 21.12.2018, 13:06
#48
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от veb86 Посмотреть сообщение
А это интересно, как первый раз получается блок прибора? Вы сначала создаете блок, как внутри блока определяются коннекторы, они определяются нахождением габаритами внутри блока прибора?
Ну изначально конечно рисую блок в соответствии со "своими стандартами" и расставляю коннекторы как мне удобно. Далее прописываю его в плагине вставке (вернее наборе переделанных плагинов под названием "sbugo"), а уж из неё вставляю.
Часть блоков у меня жёстко заданные, часть сделаны как конструктора - наборные элементы в зависимости от поставленной задачи.

Цитата:
Сообщение от veb86 Посмотреть сообщение
Еще удивило что вы адреса жил кабелей тоже программно получается. Что бы их получить надо не только программно видеть блок прибора, надо видеть коннектор? тоже территориально находите?
Что именно имеется ввиду? Просто у меня несколько разных плагинов под разные задачи.
Один из них из блока

делает таблицу соединений
.
Миниатюры
Нажмите на изображение для увеличения
Название: Исходник.PNG
Просмотров: 315
Размер:	22.6 Кб
ID:	209297  Нажмите на изображение для увеличения
Название: 2_ТС.PNG
Просмотров: 306
Размер:	13.3 Кб
ID:	209298  
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 21.12.2018, 14:34
#49
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 108


Цитата:
Сообщение от petro_f Посмотреть сообщение
делает таблицу соединений
Получается из схем блоков, то что вы дали в файле вы получаете таблицу соединений как на второй картинке.
Я представлял таблице соединений в виде таблице откуда и куда. А у Вас на второй картинке как будто такая же схема. Для каких целей требуется такая схема?

Цитата:
Сообщение от petro_f Посмотреть сообщение
Просто у меня несколько разных плагинов под разные задачи.
Я как понял у Вас не несколько, а куча плагинов, каждый из которых решает узкую задачу, из которых выстраивается вся картинка.

Я говорил про адреса эти:
Как Вы их определяли? Просматривали то что записано в контакторах, к которым подключается проводник?
Миниатюры
Нажмите на изображение для увеличения
Название: 2018-12-21_14-33-54.png
Просмотров: 39
Размер:	31.5 Кб
ID:	209302  
veb86 вне форума  
 
Автор темы   Непрочитано 21.12.2018, 15:20
#50
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от veb86 Посмотреть сообщение
Цитата:
Сообщение от petro_f
делает таблицу соединений
Получается из схем блоков, то что вы дали в файле вы получаете таблицу соединений как на второй картинке.
Я представлял таблице соединений в виде таблице откуда и куда. А у Вас на второй картинке как будто такая же схема. Для каких целей требуется такая схема?
Скажем так я забежал вперёд...Этот плагин для других целей. )) Просто как то Заказчик мне стал выедать мозг, что он не может понять схему в таком виде и что он понимает только схемы старого образца. Я тогда и сделал такой плагин. Эти таблицы соединений идут как приложением к файлу чертежа


Так то да из того блока плагин кабельных трасс делает таблицу из которой потом берётся инфа для кабеля на планах. Это к разговору о том, что я рисую схему электрическую, а потом с неё делаю выгрузку.


Цитата:
Сообщение от veb86 Посмотреть сообщение
Я как понял у Вас не несколько, а куча плагинов, каждый из которых решает узкую задачу, из которых выстраивается вся картинка.
Ну ссылку на сборник моих плагинов я давал тут Там много чего полезного и кабельный плагин вшит в том числе Я периодически пролистываю сайт, загружаю плагинчики которые мне могут подойти или просто пишу плагины под свои задачи. Всё это добавляю в сборник sbugo и пользуюсь сам и своим коллегам отдаю.



Цитата:
Сообщение от veb86 Посмотреть сообщение
Я говорил про адреса эти:
Как Вы их определяли? Просматривали то что записано в контакторах, к которым подключается проводник?
У меня есть плагин который автоматом подставляет указанные поля (адреса) вместо текста. А тот блок, что выделен, там есть основное поле и остальные поля ссылаются на него. Удобно для создания ссылок.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 24.12.2018, 15:02
#51
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 108


Цитата:
Сообщение от petro_f Посмотреть сообщение
Это к разговору о том, что я рисую схему электрическую, а потом с неё делаю выгрузку.
Все логично, пока не ясно как будет выглядеть управление чего рисовать то на плане. С начало схема затем план.

Цитата:
Сообщение от petro_f Посмотреть сообщение
Ну изначально конечно рисую блок в соответствии со "своими стандартами" и расставляю коннекторы как мне удобно.
Не скромная просьба, а могли бы снять видео о том как происходит создание прибора с коннекторами, вообще ход проектирования, небольшой кусок. Ну скажем ТРМ232, по температурному датчику управляет задвижкой. И сказать что удобно в этом подходе, что хотелось бы поменять, что добавить, вообще дать оценку самому. Рано или поздно все равно встанет у меня или у коллеги такая задача, хотелось бы получить новый подход к решению задачи. Т.е. подходы которые я встречаю у гигантов EPlan, Компас-Электрик кажутся слишком сложным для реализации. Хотелось бы получить что то добротное, для решения скажем 95% задач. Я думаю Вы меня поняли.
veb86 вне форума  
 
Автор темы   Непрочитано 24.12.2018, 17:15
#52
petro_f


 
Регистрация: 06.10.2016
Сообщений: 106


Цитата:
Сообщение от veb86 Посмотреть сообщение
Не скромная просьба, а могли бы снять видео о том как происходит создание прибора с коннекторами, вообще ход проектирования, небольшой кусок. Ну скажем ТРМ232, по температурному датчику управляет задвижкой. И сказать что удобно в этом подходе, что хотелось бы поменять, что добавить, вообще дать оценку самому. Рано или поздно все равно встанет у меня или у коллеги такая задача, хотелось бы получить новый подход к решению задачи. Т.е. подходы которые я встречаю у гигантов EPlan, Компас-Электрик кажутся слишком сложным для реализации. Хотелось бы получить что то добротное, для решения скажем 95% задач. Я думаю Вы меня поняли.
Для этого в сбуге у меня есть набор (конструктор) блоков. Синие модули могут быть как контролером, так и элементами. Пользуйтесь ими и будет счастье )))
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок1.PNG
Просмотров: 64
Размер:	7.9 Кб
ID:	209364  
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Плагин создания кабельных линий и генерации КЖ раздела КИПиА. Протестировано на AutoCAD 2015...2018 и офис 2013...2016

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Адаптация древних 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