Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Помогу бесплатно разработать любую программу на autolisp.

Тема в разделе "Autodesk", создана пользователем Германup, 3 фев 2014.

  1. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Меняет положение текстов, мтекстов и блоков.
    Либо предварительно выбрать, тогда обработает выбранные заранее элементы или если ничего не выбрано предложит выбрать рамочкой. После выбора предложит выбрать базовую окружность, если выбрать будет закидывать в ближайшую окружность того же цвета и слоя что и базовая, если отменить будет закидывать в любую ближайшую окружность чертежа.
    Загружать через netload команда Entityincircle, на всякий случай проверяйте что бы архив был не заблокирован после скачки.
     

    Вложения:

    #1401
    SalemsGhost нравится это.
  2. SalemsGhost

    Регистрация:
    15 апр 2023
    Сообщения:
    3
    Симпатии:
    0
    Огромное спасибо!!! Все работает именно так как нужно, вы сэкономили просто неимоверное количество времени на рутине, свяжитесь со мной в ЛС мне бы хотелось Вас как то отблагодарить
     
    #1402
  3. Hunter23071985

    Форумчанин

    Регистрация:
    30 янв 2014
    Сообщения:
    44
    Симпатии:
    3
    Товарищи, подскажите, как из командной строки AutoCAD 2022 RU задать ГЕОПОЛОЖЕНИЕ 58.30825 44.778478? Смотрю в справку и не могу найти...
     
    #1403
  4. A-Jumaev

    Форумчанин

    Регистрация:
    6 фев 2019
    Сообщения:
    30
    Симпатии:
    0
    Здрваствуйте товарищи!
    При загрузге данные с компьютера на FTP(File Zilla Client) некоторые автокадовские файлы(dwg) сохранились в DWL формате как в FTP, так и в самом компьютере и не показываются.

    Как переобразовать их обратно в dwg формат ?

    Нуждаюсь в вашей помощи.

    upload_2023-5-22_9-57-14.png
     
    #1404
  5. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Никак, это служебные файлы, которые показывают что файл .dwg в данный момент открыт и не являются чертежом.
     
    #1405
  6. Hunter23071985

    Форумчанин

    Регистрация:
    30 янв 2014
    Сообщения:
    44
    Симпатии:
    3
    А по моему вопросу можно услышать комментарий? Собственно у меня весь чертёж строится автоматически, не хватает только автоматизации привязки к географическим координатам... Как задать ГЕОПОЛОЖЕНИЕ командой / лиспом?
     
    #1406
  7. MrBrown

    Форумчанин

    Регистрация:
    31 июл 2013
    Сообщения:
    35
    Симпатии:
    9
    Здравствуйте!
    Помогите усовершенствовать один макрос (см. приложенный файл LSP).
    Он суммирует числовые значения в Мтекстах, обозначающих диаметр и длину трубопроводов.
    По приглашению ком. строки указываешь диаметр, выделяешь нужный фрагмент схемы и получаешь суммарную длину труб данного диаметра.
    Если не указываешь диаметр, то макрос считает общую длину вообще всех труб.

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

    Спасибо.
     

    Вложения:

    • Макрос.dwg
      Размер файла:
      567,9 КБ
      Просмотров:
      2
    • SumD.lsp
      Размер файла:
      5,7 КБ
      Просмотров:
      2
    #1407
  8. Steinar

    Форумчанин

    Регистрация:
    30 авг 2012
    Сообщения:
    721
    Симпатии:
    514
    Адрес:
    Асгардия
    Сейчас ради прикола спросил у ChatGPT:

    Напиши код плагина для AutoCAD 2022 на Visual Basic .NET, который рисует красную полилинию по двум точкам, при вводе команды "NEWPLINE".

    И получил результат:


    Для создания плагина AutoCAD 2022 на Visual Basic .NET, который рисует красную полилинию по двум точкам при вводе команды "NEWPLINE", вам потребуется использовать библиотеку AutoCAD .NET API. Вот пример кода, который можно использовать в качестве основы для вашего плагина:


    Imports Autodesk.AutoCAD.ApplicationServices

    Imports Autodesk.AutoCAD.DatabaseServices

    Imports Autodesk.AutoCAD.EditorInput

    Imports Autodesk.AutoCAD.Geometry

    Imports Autodesk.AutoCAD.Runtime


    Public Class NewLinePlugin

    <CommandMethod("NEWPLINE")>

    Public Sub NewLineCommand()

    ' Получение текущего документа AutoCAD

    Dim doc As Document = Application.DocumentManager.MdiActiveDocument

    ' Получение базы данных текущего документа

    Dim db As Database = doc.Database

    ' Получение редактора текущего документа

    Dim editor As Editor = doc.Editor


    ' Запрос первой точки

    Dim pprOpts As New PromptPointOptions("Введите первую точку:")

    Dim pprRes As PromptPointResult = editor.GetPoint(pprOpts)

    If pprRes.Status <> PromptStatus.OK Then

    Exit Sub

    End If

    Dim startPoint As Point3d = pprRes.Value


    ' Запрос второй точки

    Dim sprOpts As New PromptPointOptions("Введите вторую точку:")

    sprOpts.UseBasePoint = True

    sprOpts.BasePoint = startPoint

    Dim sprRes As PromptPointResult = editor.GetPoint(sprOpts)

    If sprRes.Status <> PromptStatus.OK Then

    Exit Sub

    End If

    Dim endPoint As Point3d = sprRes.Value


    ' Начало транзакции

    Using trans As Transaction = db.TransactionManager.StartTransaction()

    ' Открытие таблицы блоков текущего пространства модели

    Dim bt As BlockTable = trans.GetObject(db.BlockTableId, OpenMode.ForRead)

    Dim btr As BlockTableRecord = trans.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite)


    ' Создание полилинии

    Dim polyline As New Polyline()

    polyline.AddVertexAt(0, New Point2d(startPoint.X, startPoint.Y), 0, 0, 0)

    polyline.AddVertexAt(1, New Point2d(endPoint.X, endPoint.Y), 0, 0, 0)

    polyline.Color = Color.FromColorIndex(ColorMethod.ByAci, 1) ' Красный цвет


    ' Добавление полилинии в пространство модели

    btr.AppendEntity(polyline)

    trans.AddNewlyCreatedDBObject(polyline, True)


    ' Завершение транзакции

    trans.Commit()

    End Using


    ' Обновление экрана

    editor.Regen()

    End Sub

    End Class



    Важно убедиться, что вы добавили ссылку на библиотеку AutoCAD .NET API в вашем проекте, чтобы использовать необходимые классы и методы.

    Господь всемогущий!
    Попробуйте спросить написать код на AutoLISP, кто в нём понимает.
     
    #1408
    АлексЮстасу нравится это.
  9. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    948
    Адрес:
    Новосибирск
     
    #1409
    АлексЮстасу нравится это.
  10. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    переписанный пример из справки походу)
    --- Сообщения объединены, 5 июл 2023, Оригинальное время сообщения: 5 июл 2023 ---
    Если еще надо, могу накидать.
     
    #1410
  11. MrBrown

    Форумчанин

    Регистрация:
    31 июл 2013
    Сообщения:
    35
    Симпатии:
    9
    alz, Дык, надо, милай!
    Уважь пенсионЭра. Свечку за здравие поставлю.
    :))
    А серьёзно - ну да, конечно, хотелось бы иметь такой макрос. Как говорится, "лень - двигатель прогресса".
    Сам в лиспе не шарю, только слегка на VBA, и то в Excel.
    Моя благодарность не припозднится.
     
    #1411
  12. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Проверить архив, что бы не был заблокирован, запускать через netload на ленте появится панелька с кнопкой, рамочкой выделить все и в выбранном месте вставить в чертеж таблицу с результатами. Просуммирует если выбранный текст удовлетворяет следующим требованиям:
    1) текст состоит из двух строк
    2) в первой строке должен быть значек диаметра, прописанный через %%C
    3) во второй строке должно быть число, после которого стоит буква "м"
    в файле примера все прекрасно сложилось один в один с уже вставленной таблицей.
    Тестировал на 2021 автокаде, в более старых должно работать версии до 17, более ранние не уверен, так же не уверен про более поздние чем 2021.
     

    Вложения:

    • SumD2.zip
      Размер файла:
      29,3 КБ
      Просмотров:
      2
    #1412
  13. MrBrown

    Форумчанин

    Регистрация:
    31 июл 2013
    Сообщения:
    35
    Симпатии:
    9
    alz, благодарю за труды, однако пользоваться не смогу: во-первых, не умею, а во-вторых, боюсь "dll" и др. разных библиотек и примочек, как любой пенсионЭр страшится нового айфона, привыкши крутить номеронабиратель. И потом, куда мне эти "dll" вставлять?
    Спасибо. Однако мне нужен макрос на AutoLISP или CommonLISP, чтобы нормально подгрузить, как я умею, и не шарахаться от новизны.
    p.s. Весьма желательно, чтобы хотя бы основные строки кода были закомментированы (хочется хоть немного разобраться в кухне). И макрос не был конвертирован в fas и др. формы. Только ".lsp"

    p.p.s Мастера-лисперы, отзовитесь на #1407!
     
    #1413
  14. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Надо учиться жить в ногу со временем, для загрузки dll в автокаде специальная команда есть - netload называется, на лиспе что-то попроще еще можно сделать, но какие-то визуальные вещи типа таблиц на нем сделать уже реально мастер нужен.
    Вот небольшая видюшка как подгрузить и использовать этот макрос.
     
    #1414
  15. MrBrown

    Форумчанин

    Регистрация:
    31 июл 2013
    Сообщения:
    35
    Симпатии:
    9
    alz, а в моём архиве только два файла - SumD2.dll и System.ValueTuple.dll
    автокад у меня 2020. Стиль классический, не лента.
    Вообще, считаю, что использовать ленту - гробить автокад. Эта лента занимает полэкрана, а кнопок на ней - полторы штуки.
    А главное в автокаде - это пространство модели, а не красивые кнопочки. Ну, это так, лирическое отступление.
    По команде _netload в появившемся меню выбираю файл SumD2.dll.
    И ничего не происходит.
    --- Сообщения объединены, 5 июл 2023, Оригинальное время сообщения: 5 июл 2023 ---
    alz, так, с лентой всё получилось. Моя благодарность не знает границ.
    И всё же есть тут недоделка, этакая "заноза" - работаю в классике, а чтобы посчитать длины труб, придётся переключать на ленту. А потом снова в классику.
    Беда...
    --- Сообщения объединены, 5 июл 2023 ---
    alz, заметил "кривизну", правда, небольшую: неплохо было бы расположить диаметры в таблице по порядку, сверху вниз по возрастающей.
    --- Сообщения объединены, 5 июл 2023 ---
    alz, угадываю ворчание в стиле "Ну вот, начались дополнительные хотелки..."
    :))
     
    #1415
  16. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Проверьте что бы скачанный архив был не заблокирован

    так как ленты нет можете просто воспользоваться командой "sumd2" после загрузки dll она должна появиться, кнопка на ленте это так, бонусом
     

    Вложения:

    #1416
  17. MrBrown

    Форумчанин

    Регистрация:
    31 июл 2013
    Сообщения:
    35
    Симпатии:
    9
    alz, да команда sumd2 работает в классике. Прекрасно.
    А можно ли сделать так, чтобы диаметры в таблице шли сверху вниз по возрастающей?
    Я вот просто поменял один диаметр 40 на диаметр 20. И он (20) оказался в самом низу таблицы. А должен был сверху.
    --- Сообщения объединены, 5 июл 2023, Оригинальное время сообщения: 5 июл 2023 ---
    И ещё: при каждом включении автокада приходится подгружать файл dll, Как сделать, чтобы он после первой подгрузки оставался там и при последующих включениях? С файлами lsp такое возможно.
     
    #1417
  18. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Сделал сортировку, и возможность автозагрузки, для автоматической загрузки папку SumD2.bundle надо положить в папку C:\Program Files\Autodesk\ApplicationPlugins
    Проверьте что бы архив был разблокирован и папка не задвоилась при распаковке
    если интересно в текстовом файле текст самой программы
     

    Вложения:

    #1418
  19. MrBrown

    Форумчанин

    Регистрация:
    31 июл 2013
    Сообщения:
    35
    Симпатии:
    9
    alz, очень интересно, спасибо за код! Много схожего с VBA (в смысле, наименования команд).
    А что это за язык программирования?
     
    #1419
  20. paniva2010

    Форумчанин

    Регистрация:
    4 окт 2015
    Сообщения:
    73
    Симпатии:
    4
    Можно ли сделать программу для превращения 3д-полилинии, 2д-полилинии, мультилинии в полилинию?
     
    #1420

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление