Выбор относительно контуров

Тема в разделе "Autodesk", создана пользователем АлексЮстасу, 1 ноя 2024.

  1. АлексЮстасу

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

    Программка на lisp выбора объектов относительно контуров:
    1. Шесть Девять способов выбора:
    Внутри (аналог _WP), внутри и касаются, внутри и пересекаются (аналог _CP), извне, извне и касаются, извне и пересекаются. А так же (аналог _F или FS из Express): на линиях, на и пересекаются, вне линий.
    2. Выбор производится сразу для всех указанных контуров/линий. Предварительный или последующий выбор нужных контуров/линий.
    3. Выбор производится из указанных объектов. Enter означает - из всех.
    4. Контуры/линии могут быть из всех типов полилиний, сплайнами, окружностями, дугами, эллипсами - применены функции VVA из SelectContour.lsp.
    Со сплайнами возможны проблемы - побороть очень старались, пока удалось, но со снижением точности. Иначе очень медленно.

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

    Если перед вызовом программки было очень сильное увеличение, то может не сработать - слабое место многих функций AutoCAD, lisp.

    Для программистов. И не только.
    Выяснилось, что точность выбора и штатной команды _SELECT (ВЫБРАТЬ), и функций lisp ssget и vla-selectbypolygon всего лишь 0.001. А на этих функциях написаны все lisp выбора, в т.ч. известная SelectContour.lsp, да и остальные. И этот наш вариант так же.
    Поэтому, если в dwg координаты (которые внутри хранятся до 12 знаков, кажется) не округлены хотя бы до 0.001, то будут и не выбранные объекты, и ошибочно выбранные. Т.е. такими программами без внимательного ручного контроля и ручной же доработки пользоваться опасно.

    К программистам: Есть ли альтернативы другими, точными инструментами?
    ---

    Программка чуть подправлена.
    Еще приложил InOutSel_nc.lsc InOutOnSel_nc_v2.lsc - вариант под nanoCAD.
    ------
    Теперь команда InOutOnSel. Версия обновлена.
    ------
    Теперь с диалоговым окном - с ним быстрее и удобнее. Версия 3.
    Окно_InOutOnSel.png

    И лучше учтены объекты с точками вставки: блоки, надписи, размеры.
     

    Вложения:

    Последнее редактирование: 28 ноя 2024
    TulGeo нравится это.
  2. Neznayka

    Neznayka Форумчанин

    Есть, но Civil
     
  3. АлексЮстасу

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

    В Map 3D тоже есть встроенные в другие команды функции точного выбора. Пересекающееся с этим из Civil - разрезание, обрезание, выбор запросами и т.п.
    Конечно, показанное Вами круто!
    Кажется, что к собственно Civil эти возможности отношения не имеют. Т.е. могли бы быть добавлены в базовый AutoCAD. Как и многие возможности Map 3D были бы очень полезны в голом AutoCAD.
    Еще иллюстрация, как Autodesk развивает вертикальные решения, но при этом оставляет базовый AutoCAD в золушках...
     
  4. АлексЮстасу

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

    Добавили выбор относительно линий: на линиях, на и пересекают, вне линий.
    Со сплайнами может работать, но проблематично - и медленно, и может отказать. Но может и сделать. :)
     

    Вложения:

  5. 1958

    1958 Форумчанин

    Выбор внутри контура. Должен быть установлен Express Tools.
    Чтобы добавить выбор вне контура, нужно чуть подправить этот lisp, понадобится минут десять.
     

    Вложения:

    • countsel.LSP
      Размер файла:
      517 байт
      Просмотров:
      2
  6. АлексЮстасу

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

    Пробую. Например, выбирает 73 объекта из 93, попадающих в контур.
    А через раз выбрала 74, но часть пропустила, а другие добавила. В третий раз выбрала 78.
    78 выбранных из 93 в контуре - пока максимум, что смог добиться со многих попыток.
    Не выбранные объекты - касающиеся контура выбора.
    Похоже и с выбором "+" - 141 из 163. Тоже - не все касающиеся объекты.
    На другом тестовом файле выбирает 5 из 15.
    Объекты, лежащие на контуре выбора не находит или находит 1 из 3, или 1 из 6.
    Возможно, результат зависит от увеличения на экране. Или еще от чего-то.

    Находит от 86 до 0 процентов объектов.
    (Исправил сообщение по указанию 1958).
     
    Последнее редактирование: 18 ноя 2024
  7. 1958

    1958 Форумчанин

    Как много слов. Вы бы дали свой чертеж.
     
  8. АлексЮстасу

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

    Исправил. Приложил.
     

    Вложения:

  9. 1958

    1958 Форумчанин

    2_выбор внутри.jpg 2_выбор с пересечками.jpg dвыбор внутри.jpg выбор с пересечками.jpg
     
  10. 1958

    1958 Форумчанин

    Вышеприведенные скрины получены в AC2007. Сейчас проверил в AC2024 - картина идентичная. В AC2025 не сработало.
     
  11. 1958

    1958 Форумчанин

    Что-то Вы меня обижаете, батенька. Не указывал я Вам!
    Вариант, если не установлен Express Tools.
     

    Вложения:

    • cosel.LSP
      Размер файла:
      655 байт
      Просмотров:
      4
    zvezdochiot нравится это.
  12. АлексЮстасу

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

    55% и 3%.

    Видно, Вы пропустили в первом про 0.001.

    И, кстати, вчера обнаружил, что мы в InOutOnSel совсем забыли про точечные объекты. Что-то у ssget с ними сверх всего не того...
     
  13. 1958

    1958 Форумчанин

    Я не обнаружил этих цифирь. Ваше утверждение довольно спорно. Если объект лежит "внутри" контура, а его конечные точки лежат на линии контура или он (объект) касается контура, я бы не стал утверждать, что он находится полностью внутри контура. Ваши литературоведческие рассуждения о процентах как-то вне моего осознания. Чертеж с пояснениями, что относится к вашим %%, раскрыл бы ход ваших размышлений. А впрочем, как хотите.
     
  14. АлексЮстасу

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

    При работе нужны все варианты выбора:
    1. внутри контура и не касается его (_WP),
    2. внутри и касается,
    3. внутри и пересекается (_CP),
    4. вовне и пересекается,
    5. вовне и касается,
    6. вовне и не касается,
    7. на линии,
    8. пересекается линией (_F),
    9. вне линии.
    Что тут спорного? Что нужно при работе, то и нужно обеспечить. Разве нет?

    Сделал очередное обескураживающее открытие об ssget/_SELECT с точечными объектами. Если для точек задан размер отображения - PDSIZE, то выбор учитывает не сами точки, их координаты, а их изображение на экране. Не ожидал...
    Про блоки и надписи уже было понятно - найти блоки и надписи, привязанные к линиям, не захватив ненужного лишнего, практически невозможно.

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

    Ой! Штатный выбор еще и ширину линий с учетом типов линий учитывает! Т.е. если тип линий, например, ограждения или откоса или ЛЭП, или трубопровода с надписями, то нужно ставить допуск с учетом длин их штрихов и пр. или высоты надписей.
    Т.е. опять-таки, если на контуре выбора лежат линии с габаритным типом линий, то найти их, не рискуя прихватив ненужного, невозможно.
    Аут.
     
    Последнее редактирование: 20 ноя 2024
  15. 1958

    1958 Форумчанин

    Спорить против такого огромного перечня задач трудно, да и не нужно. Мне просто интересно, а что вы предполагаете делать с выбранными примитивами? Например у меня лет пять назад была такая задача: на нужном участке чертежа выбрать, скопировать и вставить в новый чертеж пикеты (высотные отметки в виде блоков). Исходный чертеж представлял собой съемку м.1:1000 на площади ~150 кв.км (чертеж весил ~ 250 мб). Что-то нарисовать или внести какие-то правки - тот еще гемор. Автокад зависал и частенько уходил в аут.
    Большинство ваших задач решается офсетом контура наружу или вовнутрь с нужной дистанцией. Выборка примитивов выполняется по полученному смещенному контору, который после выполнения задачи удаляется.
     
  16. АлексЮстасу

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

    Если он неправильный, то нужно.
    См. список команд.

    Фирма не сделала имеющегося во всех CAD, в графических системах полноценного выбора по контурам лишь из-за слишком слабой функции ssget/SELECT.
    У которых лишь 0.001 точности при возможных 0.00000001 для данных.
     
  17. 1958

    1958 Форумчанин

    Выборка с точностью до 1 мм.

    Выборка до сотых долей микрона?
     
  18. АлексЮстасу

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

    Или сотых нанометра.

    Примечательно, что AutoCAD при _SELECT после _WP, _CP или _F отключает привязки. В nanoCAD же пошли дальше - делают недоступным их включение обратно.
    Т.е. мешают или не дают пользователям точно обвести существующий контур. Типа, контур заведомо неточный, таков и результат - получайте только явно соответствующие объекты, т.к. учет касания в неточных контурах некорректен-невозможен.
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление