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

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

  1. Hunter23071985

    Hunter23071985 Форумчанин

    alz, спасибо огромное!
    TXT-файл получился, за пару минут сделал выборку в Excel, данные правильные. Было бы удобно:
    - добавить в txt перед именем блока слово "Имя" и табулятор (чтобы упростить выборку)
    - добавить в txt X и Y центра блока (если это возможно)
    - подписать к имени txt кол-во блоков (если не сложно)
    С визуализацией проблема - в слое "!_Экспортировано" 269 блоков, как и должно быть, но их не видно...
    --- Сообщения объединены, 23 сен 2024, Оригинальное время сообщения: 23 сен 2024 ---
    Ещё проблема: в границах линии пропущены ЗОУИТ 18:21-6.44, 18:21-6.387...
     
  2. alz

    alz Форумчанин

    1) имя и координаты добавил
    2) ЗОУИТ 18:21-6.44 это огромный блок, который касается вашего контура краем одной из линий в нем, центр этого блока за километр от вашего контура, как вы предлагаете определить что он внутри? Кстати, могут быть и ошибки, когда центр блока, который идет в виде какого-нить полукруга и находится снаружи контура попадет внутрь этого контура, так что тут только руками проверять.
    3) проблемы с визуализацией от того, что внутри блоков все в соответствующих слоях, что бы проверить вам наоборот надо погасить (кнопкой заморозки слоя а не выключения) слой "!_Экспортировано" тогда эти блоки выключатся и останутся остальные. Так же можно скопировать все попавшее в слой в другой чертеж, тогда будет видно что в него попало.
     

    Вложения:

    • AttExport.zip
      Размер файла:
      25,9 КБ
      Просмотров:
      4
    Последнее редактирование: 23 сен 2024
  3. Hunter23071985

    Hunter23071985 Форумчанин

    alz, спасибо! Txt и слой заполняются, визуализация заморозкой слоя "!_Экспортировано" тоже работает.
    Хорошо бы ещё и перекрасить блоки в слое "!_Экспортировано", если можно.
    И исправить маленькую проблему - сейчас пишет "Экспортировано блоков - 0" и к имени txt тоже ставит "_0".
     
  4. alz

    alz Форумчанин

    Понял, сначала добавил еще нумерацию блоков в текстовике, в этой же строчке еще и подсчет идет, потом ее закомментировал, поэтому 0, если надо могу включить, или просто поправлю подсчет.
     
  5. Hunter23071985

    Hunter23071985 Форумчанин

    alz, да, было бы здорово просто поправить подсчёт без нумерации блоков в текстовике.
    А задать другой цвет блокам, которые попадали в слой "!_Экспортировано" не реально?
    Это позволило бы раскрасить их по зонам, что визуально было бы очень наглядно.
     
  6. alz

    alz Форумчанин

    Можно, но тут вопрос уже к наполнению блока, что бы работал цвет блока, все что внутри блоков должно иметь цвет - По блоку, что там в вашем чертеже не скажу, скорее всего По слою, проверьте, если так то можете можете воспользоваться программой, перекрашивающей объекты в блоках. В общем завтра сделаю такой вариант и посмотрим.
     
  7. Hunter23071985

    Hunter23071985 Форумчанин

    alz, да, внутри блока все свойства (цвет, тип, вес, прозрачность, материал) заданы "По слою".
    Лисп для перекрашивания объектов в блоках у меня есть, поэтому, если проблематично это добавить, то не заморачивайтесь.
    Спасибо огромное! До завтра!
     
  8. alz

    alz Форумчанин

    Нумерацию и перекрашивание сделал, перекрашивание внутри блоков уже сами.
     

    Вложения:

    • AttExport.zip
      Размер файла:
      28,7 КБ
      Просмотров:
      2
  9. Hunter23071985

    Hunter23071985 Форумчанин

    alz, спасибо огромное! Вечером буду тестировать... Но только сначала заново соберу исходный чертёж из XML.
    Ранее я подрезал часть блоков по самой внешней полилинии (граница района) с помощью CookieCutter2 v1.2 mod by VVA.
    Вероятно, это не критично, но лучше перепроверю. )) Кстати, может есть lisp для подрезки блоков по линии без разбивки?
    PS: пока нашёл команду CLIPIT - вводим, выбираем полилинию, выбираем блок, допуск 0.1ю
    Вроде все атрибуты на месте, но работает для 1 блока.
     
    Последнее редактирование: 24 сен 2024
  10. alz

    alz Форумчанин

    https://geodesist.ru/resources/trimobjects.350/
    Вот такую когда-то писал, режет внутри блоков сохраняя на чертеже обрезанный вариант, но желательно сохраняться перед обработкой, один раз у меня зафаталило, не помню здесь поправленная версия лежит или нет.
     
  11. Hunter23071985

    Hunter23071985 Форумчанин

    alz, круто! Но, наверное, здесь не исправленная версия, - ошибку выдаёт.
    Если что, ссылка на чертёж прежняя, но версия там чуть более полная, чем ранее.
    Подрезать пытался по линии в слое "Линия 3" с разными настройками.
     
  12. alz

    alz Форумчанин

    Не, это похоже на то, что версия автокада не та, потестирую на 2024, раньше только на 2021 тестировал, старая прога, обновлю может.
    --- Сообщения объединены, 24 сен 2024, Оригинальное время сообщения: 24 сен 2024 ---
    В общем моя версия сработала без ошибок в 2024, но не подойдет, видимо что-то не учел и в копиях атрибуты теряются, возможно потому что невидимые, ну и по хорошему неплохо было бы конечно эту программу чутка переделать, но там столько наверчено с этими блоками что явно не на час работы, будет свободное время поразбираюсь.
    upload_2024-9-24_20-33-31.png
     
    Hunter23071985 нравится это.
  13. Hunter23071985

    Hunter23071985 Форумчанин

    alz, было бы конечно очень здорово доработать TRIMOBJECTS!
    Всегда можно создать копию файла. Может быть без копий блоков обойтись или вся логика программы на этом завязана?
     
  14. alz

    alz Форумчанин

    У вас частный случай, когда каждый блок индивидуален, обычно же блоки на чертеже имеют несколько вставок, соответственно обрезал что-то в одном - обрезалось во всех. Можно в принципе сделать опционально и без копий, но это уже наверное для темы именно по программе обрезания, и явно будет не быстро, сейчас не до нее.
    Именно в вашем файле в любом случае обрезка будет работать с потерей атрибутов, они в блоках сидят в точке 0,0,0, при обрезании оказываются за границей вашего контура обрезки и удаляются, так что именно обрезка тут не поможет, если только что-то индивидуальное ваять, но это уже слишком трудозатратная программа получится, а времени сейчас нет, под программу экспорта у меня в принципе все вспомогательные функции уже готовые были, а тут с нуля кучу всего делать. Может кто-то на форуме решит заняться вашим случаем или все же есть что-то готовое.
     
  15. Hunter23071985

    Hunter23071985 Форумчанин

    alz, за счёт обрезки я надеялся повысить точность выборки и качество визуализации AttExport.
    И попутно избавиться от неудобства таскать с чертежом небольшого завода обрывки кадастра целого муниципального района. ))
    Ради этого с чертежом можно делать, что угодно: временно перенести всё в 0,0; сделать атрибуты видимыми и т.д.
    Результат за любую точку можно притащить в основной чертёж. Лишь бы подрезать, выбрать инфо по зонам и не потерять атрибуты.
    Вообще CLIPIT хорошо режет с сохранением атрибутов, но поштучно: видео. Может программно им можно пройтись по всем блокам?
     
  16. alz

    alz Форумчанин

    Если это лисп то по идее можно, надо только ее достать в виде отдельного файла и спец по лиспу по сделает ее массовой.
     
  17. Hunter23071985

    Hunter23071985 Форумчанин

    alz, а где же такого спеца найти? )) Вообще CLIPIT - это стандартная команда AutoCAD, возможно из набора Express Tools.
     
  18. alz

    alz Форумчанин

    https://forum.dwg.ru/showthread.php?t=3370 вот тут ее кто-то находил и редактировал, можете попробовать апнуть темку
     
    Hunter23071985 нравится это.
  19. Hunter23071985

    Hunter23071985 Форумчанин

    alz, апнуть не вышло - пост стёрли Админы, создал в бесплатном разделе - тоже стёрли, написал VVA - молчит, в платный раздел не пошёл.
    Дождался получения всех выписок, пролечил новую версию XML Converter, собрал DWG и пошёл по такому алгоритму:
    1. Создать DXF из XML выписок ЕГРН в XML Converter
    2. Создать DWG из DXF в Acme CAD Converter
    3. Нанести полилиниями границы предприятия, СЗЗ и т.д.
    4. Собрать информацию о блоках внутри этих границ в AttExport:
    а) ввести команду NetLoad - выбрать AttExport.dll - Всегда загружать (или Загрузить один раз)
    б) ввести AttExport - Enter (2 р.) - указать линии (н-р, забор) - Enter - сохранить txt с/без перекраски блоков и с созданием слоя "!_Экспортировано"
    в) заморозить слой "!_Экспортировано"
    г) ввести AttExport - Enter (1 р.) - выбрать пропущенные блоки - данные будут дописаны в txt и слой "!_Экспортировано"
    д) переименовать слой "!_Экспортировано" по смыслу (н-р, _Забор) и повторить п. 4б-4г с другими линиями-границами
    5. Подрезать блоки по самой внешней границе с помощью CLIPIT
    6. Обработать блоки, заменив цвет "По слою" на цвет "По блоку" в bgtools (команда BGBLFIX)

    Но пункт 4г как-то не так работает... Можно поправить или пояснить логику?
     
  20. alz

    alz Форумчанин

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