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

Написал лисп bblocks_collect - собирает разбитые объекты в блоки

Discussion in 'Autocad' started by Аристарх, Dec 18, 2023.

  1. Добрый день.
    Написал лисп, который собирает разбитые блоки (и не только) обратно в блоки.
    Ссылка на лисп в описании к видео. По всем вопросам писать на электронку, указанную в описание к видео.
     
  2. АлексЮстасу

    АлексЮстасу Форумчанин

    Очень полезный лисп! Давно искал подобный, когда блоки оказывались разбитыми.
    Но никто до этого момента эту задачу не решил.

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

    Еще посмотрел внутрь - точки вставки блоков сейчас не в 0,0,0. Если в редакторе блоков элементы перенести в 0,0,0, то почему-то в модели изображения блоков отлетают от своих точек вставки. (Сколько раньше ни переносил содержание в редакторе на 0,0, такого эффекта у меня не было ::blink.gif::).

    Название команды не сохраняется в вызовах команд AutoCAD. Что-то, видимо, там слегка ему не нравится. Но действует нормально. :)
     
    Last edited: Dec 22, 2023
  3. alz

    alz Форумчанин

    Точка вставки блока в чертеж берет данные с координат базовой точки, по умолчанию он 0,0,0 но можно поменять в редакторе блоков, соответственно что бы все осталось на местах надо переносить не только элементы, но на эту же величина и относить базовую точку.
    upload_2023-12-22_20-44-33.png
     
    Аристарх likes this.
  4. АлексЮстасу

    АлексЮстасу Форумчанин

    Мне кажется, что лучше программно сразу делать блоки с точкой вставки в 0,0,0. Это же правильнее для обычного случая.
     
  5. Специально сделал точку вставки вхождения блока - точку вставки от первого выбранного объекта для блока. Чтобы потом редактировать эти блоки. Например заменить их на другие объекты с помощью лиспа frto. Или вытащить какие-то значения из блока, в том числе, координаты вставки с помощью извлечения данных.
    Для разворотов блоков специально сделал разноименные блоки.
     
  6. АлексЮстасу

    АлексЮстасу Форумчанин

    Пробовал Вашу утилиту в недонастроенном AutoCAD, возможно у меня переменные еще установлены не подходящие. Пока не соображу...
    FRTO заменяет блоки вне зависимости от их точек вставки. (Кстати, FRTO заменяет, кажется, на основе центра габарита наборов элементов, но не у всех блоков точка вставки в геометрическом центре).
    Может быть я некорректно описал вопрос. Когда я Вашей утилитой создаю блоки, то в редакторе блоков точка вставки не в 0,0,0, а, допустим, в -879.307,11705.147,0. Или т.п.
    Например, блоки кустарничковой растительности, камней каменистых поверхностей нужно расставлять с разными поворотами. Те же фонари поворачивают, чтобы они не накладывались на другие объекты. И т.п.
    Если при создании блоков из набора элементов и повернутые наборы элементов принимаются за одинаковые блоки, то лучше сохранять их разворот. Т.к. это одинаковые, одноименные блоки, вставленные с разными углами.
     
    Аристарх likes this.
  7. АлексЮстасу

    АлексЮстасу Форумчанин

    Еще - не получается создать блок из одного элемента, например, из замкнутой полилинии (внемасштабного строения), из окружности (заполняющие знаки лесов) или т.п.
     
  8. АлексЮстасу

    АлексЮстасу Форумчанин

    Наверное, было бы лучше подходить к созданию блоков по аналогии с ручным способом - БЛОК/BLOCK.
    Т.е. сначала запрашивать базовую точку, потом указывать составные элементы. Базовую точку в описании блоков в 0,0,0.
    В т.ч. потому, что точки вставки реальных блоков могут быть вне элементов.
    Это бы сразу уменьшило количество обязательных переделок.
     

    Attached Files:

  9. Из одного элемента не стал делать. Потому что лисп собирает блоки по определенным характеристикам, в том числе по одинаковому расстоянию между объектами. А здесь просто один объект, который может как нужным так и не нужным. Здесь поможет лисп frto с заменой блоков на обьекты, если очень надо.
    --- Сообщения объединены, Dec 25, 2023, Оригинальное время сообщения: Dec 25, 2023 ---
    Спасибо за обратную связь. Будет время-желания доделаю. Подожду еще замечаний, чтобы потом все скопом переделать.
     
  10. АлексЮстасу

    АлексЮстасу Форумчанин

    Удобнее пользоваться одним инструментом. Учитывая, что каждый инструмент всегда таит свои ограничения и сюрпризы.
    И идея программы, и начало отличные. Довести бы до общего случая - была бы оч. полезная и удобная программа.
     
  11. АлексЮстасу

    АлексЮстасу Форумчанин

    Лисп больше уже не работает?
    Есть соответствующий вопрос на форуме - https://geodesist.ru/threads/s-pomo...om-s-blokom-v-ego-atribut.67032/#post-1123929
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice