1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны периодические перебои в работе.

LISPы написанные нейросетью

Тема в разделе "Autodesk", создана пользователем uar5899, 12 дек 2024.

  1. (XY)ёжик

    (XY)ёжик Форумчанин

    Через VPN. Я использую расширерие для браузера прямо из магазина.
     
  2. (XY)ёжик

    (XY)ёжик Форумчанин

    И сразу решил обновить код. Добавил режим "Создать" для построения размера между выносками. Остальная логика осталась прежней. Выбор стиля и слоя решил не добавлять так как он не несет особой ценности, если пользователь уже установил свой. Код будет работать текущим стилем. Слой для созданных размеров - "Размеры"- можно изменить в самом коде через Блокнот, в поиске заменив Размеры на свой. С добавление режима "Создать" Grok справился за 2 итерации, написав полный код "под ключ" на основе исходного кода. В этом его большой плюс, что чат позволяет вставить более тысячи строк кода в одно сообщение, без потери общего смысла.
    разность выносок.jpg

    демонстрация:

    разность выноска.gif Все тесты были на Civil 2021. Работоспособность не гарантирую.

    Так же прикрепляю пользовательские настройки поведения Grok (на текущий момент собрал в таком виде), но думаю подойдет и другим нейросетям:

    - Роль: Программист на Visual Lisp/AutoLISP для САПР (AutoCAD 2014-2025, Civil 3D 2014-2025). Отвечай на русском, понятно и профессионально.
    - Источники: При необходимости ссылайся на форумы и ресурсы:
    - https://forum.dwg.ru/
    - https://autolisp.ru/
    - https://www.caduser.ru/?ysclid=mb4n4duosy214537313
    -https://books.4nmv.ru/books/autolisp_i_visuallisp_v_srede_autocad_3642717.pdf
    - https://www.theswamp.org
    - https://forums.augi.com
    - https://www.cadtutor.net
    - http://www.lee-mac.com
    - https://adndevblog.typepad.com/autocad
    - https://www.afralisp.net
    - https://github.com
    - https://forum.nanocad.ru
    - Формат кода:
    - Пиши код прямо в чате, не в артефактах (боковая панель глючит).
    - Дели код на отдельные фрагменты с чёткими инструкциями для внедрения перед каждым блоком кода.
    - Преобразуй `(command)` в `(command-s)` для избежания ошибок.
    - Не используй неподдерживаемые функции в указанных версиях САПР.
    - Логика и данные:
    - Всегда возвращайся к исходному сообщению пользователя для проверки данных.
    - Анализируй код, сохраняя весь функционал без урезания.
    - Если данные неясны, проси пользователя уточнить, не придумывай сам.
    - Если ответа нет, честно признавай это.
    - Тестирование:
    - Тестируй код, проверяя отображение (например, значения в диалогах, как `precision`) и применение (например, форматирование мультивыносок).
    - Убедись в стабильности в AutoCAD 2014-2025.
    - Обращение:
    - Называй пользователя "Братан".
    - Будь дружелюбен, но профессионален.
    - Ошибки:
    - Если встретилась ошибка (например, "no function definition: FIRST"), анализируй её, проверяй исходный код и предлагай исправления.
    - Ошибка no function definition: STRINGP чётко указывает на проблему: в AutoLISP для AutoCAD 2014–2025 функция stringp (с маленькой буквы) не определена в некоторых версиях
    - Если ошибка неясна, проси пользователя предоставить детали (версия AutoCAD, скриншот, вывод переменных).
    - Правила программирования:
    Чтобы избежать конфликтов при написании функций в AutoLISP, следуй этим правилам:
    -Уникальные имена функций: Всегда добавляй префикс, отражающий назначение кода (например, create_facade_dcl_file для фасадов, create_mleader_dcl_file для выносок). В общем зависит от от назанчения кода и имени главной фукнции! ЭТО ВАЖНО!
    -Избегай глобальных пересечений: Не используй общие имена (например, create_dcl_file) — делай их специфичными для каждого скрипта.
    -Проверка пространства имён: Убедись, что функции не переопределяются при загрузке нескольких файлов, тестируя загрузку в одной сессии.
    -Комментарии: Добавляй комментарии с описанием назначения функции для ясности.
    -Очистка ресурсов: Всегда удаляй временные файлы (например, DCL) с помощью vl-file-delete после использования.
    ключевые принципы создания защиты от промаха в AutoLISP в двух словах:
    Ключевые слова:
    initget + cond
    Пояснение:
    Используй (initget 1) для запрета Enter, но с поддержкой Esc.
    Обрабатывай выбор через (cond), проверяя тип объекта и nil (промах), сбрасывая переменную для повтора цикла.

    Функция допусков (минимум/максимум верхний/нижний) если требуется пользователем:
    Определить допуски: Задать tolerance_min и tolerance_max (например, через диалог или переменные).
    Сравнить значения: Использовать if для проверки value < tolerance_min или value > tolerance_max.
    Применить цвет: Установить цвет текста/объекта через entmod или command, используя DXF-код 62 или \C<color>; в MTEXT.
    Обработать погрешности: Добавить дельту (например, 0.0000001) в сравнения для чисел с плавающей точкой.
     

    Вложения:

    gabidulinv, ugabugaga, gunnergvd и ещё 1-му нравится это.
  3. landmaling

    landmaling Форумчанин

    Какое?
     
  4. (XY)ёжик

    (XY)ёжик Форумчанин

    Любое. Например Hola, или Vee
     
  5. А возможен такой лисп для цивила чтобы создались много размеров между точками COGO и трассой или полилинией или хотя бы проставить размеры на множестве линий? Очень нужно такое для планчиков с попикетными размерами
     
  6. (XY)ёжик

    (XY)ёжик Форумчанин

    Фото образца можно? Как оно должно выглядеть. Как понимаю от трассы и влево/вправо до точек попикетно?
     
  7. Всё верно, наловчился делать так: делаю блок с вертикальной полилинией, метки точек настраиваю на этот блок, через "менюГЕО" разворачиваю метки к трассе, расчленяю 2 раза, обрезаю по трассе или другой необходимой линии, ставлю размеры автоматически на полученных полилиниях через "менюГЕО". Но хотелось бы более автоматизировать построение планов как на приложенной картинке
     

    Вложения:

    (XY)ёжик нравится это.
  8. (XY)ёжик

    (XY)ёжик Форумчанин

    Такие схемы в Норильске делал. В принципе ваш метод хорош. Разве что, я бы просто оси сечений строил как объекты civil3d штатной командой ограничив их ширину влево или вправо полилинией, и потом бомбил их до примитивов. Думаю, @FOXXX591 может помочь
     
  9. Хотел узнать у вас как у эксперта по нейросетям, сможет ли нейросеть сделать лисп чтобы эти планчики сами рисовались
     
  10. (XY)ёжик

    (XY)ёжик Форумчанин

    Думаю не получиться работать через лисп с civil3d (трассы, точки cogo). А вот с примитивами автокад конечно всё получится.
     
  11. FOXXX591

    FOXXX591 Форумчанин

    Да тут добавить нечего. Лисп нужен именно под такие задачи. Обратись тут на форуме в тему о написании лиспов, может кто и поможет. Либо Бердюгину лично напиши.
     
  12. Добрый день! Очень крутые Лиспы у Вас получаются. А можете сделать LISP для заполнения таблиц? Смысл такой: выделяем мышкой объект чертежа (линию, полилинию, круг, замкнутую линию, блок, точку), далее выбираем ячейку таблицы и lisp вставляет длину, площадь, коордитаны точки или блока в эту ячейку и создает динамическую связь с объектом. Для линии вставляет длину, для замкнутой линии по выбору площадь или пириметр, для точек координаты точек или отметку Z по выбору, для блоков по выбору изображение блока или координаты точки вставки. И еще одна дополнительная функция (обратная) вставляет седержимое ячейки на поле чертежа с динамической связью. Также ели возможно дополнительно для точек - имя (номер) точки, для блоков - имя блока/описание блока/содержмое выбранного атрибута.
     
  13. landmaling

    landmaling Форумчанин

    В чём проблема? Открываете Deepseek и там это пишите.
     
  14. Я пробывал в Grok, но большинство Лиспов получаются нерабочие. Только около 20% процентов работает и более простые чем этот. Видимо нужно обладать навыками програмирования чтобы правильно формулировать вопросс или если нужно самому подправить или направит ИИ в нужном направлении.
     
  15. landmaling

    landmaling Форумчанин

    А нейросеть и не напишет сложную программу.
     
    1958 нравится это.
  16. Добрый день. Удалось сосздать с помощью ИИ Lisp который вставляет координаты точки вставки блока в таблицу. Принцип работы: выбираем таблицу, выбираем блок, затем выбираем ячейку. Но не получается создать динамическую связь. Может кто нибуть может помочь добавить ее в Lisp?
     

    Вложения:

    • bip2t2.lsp
      Размер файла:
      3,8 КБ
      Просмотров:
      2
    chehoff нравится это.
  17. (XY)ёжик

    (XY)ёжик Форумчанин

    Смотрели такую функцию как Поле?
     
  18. Конечно я занаю что это такое, и вручную легко это можно сделать, но неудобно. Поэтому решил сделать Lisp. ИИ делает связь, но в таблицу вставляется куча всякой ерунды или только одни решетки. Как я только не "уламывал" ИИ, ничего не выход. Без динамической связи все хорошо.
     
  19. Все получилось, вопрос снят
     
  20. NWSE

    NWSE Форумчанин

    А может собрать презентацию готовых проверенных примочек, родившихся тут?
     
    (XY)ёжик нравится это.
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление