Jump to content

EdwardSt

Пользователи
  • Posts

    1,287
  • Joined

  • Last visited

  • Days Won

    46

Everything posted by EdwardSt

  1. Можно предложить еще немного уточнить условия задачи. Осуществляется ли поиск именно вершин полилиний или пересечение сегментов тоже считается искомой точкой? Что делать, если найденная вершина от другой полилинии не является конечной (стартовой)? Куда же бе дуговых сегментов? С ними как? И еще из экзотики: что делать если полилинии пересекает саму себя? Предполагая, что изначально задача звучала как-то так: Есть некая сеть канализации, представленная полилиниями. Колодцы - вершины полилиний. Переход с одной полилинии на другую может быть только в узлах. Необходимо проложить кабель из точки А в точку Б по кратчайшему маршруту по канализации. В такой постановке нет необходимости в поиске пересечения областей. Достаточно проверки на совпадение вершин с заданной точностью (единственный параметр). Условие задачи - выбранные полилинии или имеющие некий отличительный признак (например, слой) Ну и каким-либо образом указание точки А и Б. Теоретически возможно составить некую матрицу "из любой вершины в любую вершину". Хотя представление такой матрицы может быть затруднительным при большом количестве вершин. Отмечу, что у нас сейчас есть рабочая похожая задача, где есть несколько полилиний и составляется матрица пересечений всех со всеми между собой. Запаковано это все в vlx (но и в нане просто лиспами тоже работоспособно), считает во вменяемое время, результат сбрасывается в текстовый файл. На мой взгляд, лучше изначально почесать репу над постановкой задачи, решение может оказаться более простым, чем казалось вначале.
  2. Очень уж заковыристо. А что должно было получиться?
  3. Трудно не согласиться. Концепция параметрического проектирования согласно инету идет от начала 19 века. А динамический блок - это изобретение автостола (изобретение не концепции, а маркетированного термина) , анонсированное в 2006. Ну и по своей сути концепция динамических блоков и выросла из необходимости представления типовых изделий в разных начертаниях. Но оооочень многим пользователям из всей этой параметризации особенно "зашла" фича, связанная с видимостями, хотя, на мой взгляд, это было второстепенным или побочным инструментом от общей концепции. Да и рассматривалась эта фича, как элемент параметризации, когда в связи с изменением свойств объекта могли изменяться или пропадать отдельные начертания объекта. Но на практике зачастую использование видимостей сводится к тому, что в один блок стали запихивать и самолет и бегемота, отдалившись от изначальной темы, связанной с параметризацией.
  4. Очень очень ждем этих функций Офф. К сожалению, джин из бутылки выпущен. И эта ересь успела захватить массы А если серьезно, то для создания полноценного механизма создания/редактирования динблоков есть серьезное препятствие в виде авторских прав. Автодеск не патентовал интерфейс САПРа, не патентовал формат DWG, но запатентовал механизм создания динблоков. В связи с этим, а так же в связи со сложной механикой и отсутствием документирования по данному вопросу реализация сторонними разработчиками очень затруднена. Думаю, именно по этой причине нанософт пошел по пути создания собственного аналога динблоков - параметрических объектов. А динблоки АС анонсированы только в части работоспособности "как-есть". Ну и (как-бы) возможность небольшой модификации какой-нибудь статической составляющей таких блоков. Существенным является то, что для создания/модификации параметрических объектов в нане нужен дополнительный модуль по цене платформы. В то время, как в АС динблоки поддерживаются без дополнительных нашлепок.
  5. Такую задачу решал на лиспе. Естественно, как отмечалось выше, выгрузка приложением будет уже не отчетом,. И такой способ не будет автоматизацией, как в случае использования таблиц нанокада. Хотя может быть очень эффективным приемом массовой нестандартной обработки атрибутов блоков. В связи с давностью решения этой задачи собственного лиспа нет под рукой. но если требуется, могу поискать в загашнике.
  6. Выложил скрипт в виде файла. Далее в командной строке APPLOAD (или ЗАГПРИЛ) и указать имя файла. В системе появится команда ROUND_KOORDS. Набираем в командной строке ROUND_KOORDS и следуем подсказкам (всего две или одна). Точность может быть любой (5.5 - координаты будут кратными числу 5.5, 10 - все будет исчисляться десятками и т.д.) Этим скриптом никак. Только если разобрать стены до примитивов. test.lsp
  7. я лучше придумал. Скорее не лучше, а эффективнее) добавлено через 0 минут Попробуйте начать Правда, он работает только с простыми примитивами из платформы ((( К объектам СПДС не подходит
  8. Вот это номер! Повторяется в 23. Дополню только, что повторяется, если штриховка создавалась через точку , а не через контур.
  9. Вся ветка началась с того, что не устраивал разброс координат в пределах 0,0000001. Где гарантия, что к величинам углов не будет претензий, как координатам? И отсылки к стройке не совсем уместны. Там не увидят и обсуждаемого разброса координат (а то и целых перегородок). Но попытки округлять координаты существующих объектов для красоты в чертеже могут приводить к тяжелым последствиям в виде разрыва контуров и потере (или появлению) характерных точек в виде точек пересечения и связанных с ними ассоциативных элементов (штриховки, размеры). Саму функцию "оперпендикуляривания" или "координатовразумления" вполне можно считать полезной и желательной к применению. Только неплохо бы дать еще несколько дополнительных наводок, как быть в случаях "если". Хотя бы из числа перечисленных в этом обсуждении.
  10. Это все более-менее работоспособно, если чертеж горизонтально-перпендикулярный. Если есть какие-либо углы, пусть даже вообще выраженные целыми числами градусов (или даже десятков градусов), то это однозначно приведет к появлению точек пересечений с априори многоразрядными координатами. Округление таких координат приведет к изменению углов. Причем процесс может затронуть и горизонтально-перпендикулярные образующие. Но собственно функцию типа "округлить все координаты до 0,01" реализовать несложно. Сложно может быть потом разгребать результаты. добавлено через 0 минут а если там женщины 50+? Цветы подари! В лепешку расшибется. но брак гнать не будет)
  11. Это как раз тот случай, когда просто логикой не отделаться. Нужны все равно более детальные указания. Например, можно относительно легко (и даже без относительно!) реализовать задачу - для всех выбранных объектов все характерные точки (координаты вершин, центров дуг и окружностей, точки вставки и т.д.) округлить с заданной точностью. Но сразу возникнет несколько "если": что при этом произойдет с отрезком, у которого разность dx была 0.001? Одна вершина запросто может округлиться влево, а другая вправо, т.е. dx еще больше увеличится, когда желательным был бы результат в виде вертикального отрезка с дугами будет еще больше вопросов. Смещение центра приводит к смещению обоих концов, смещение концов изменяет угол и т.д, и т.п. Все фаски и сглаживания вообще рассыпятся. Если произойдет разрыв контуров, то штриховки могут потерять ассоциативность. В общем, список возможных "если" растет как снежный ком. И практически для каждого "если" нужно свое уточнение.
  12. Косяк это... Вылечить можно, если отключить Причем, включение цвета фона на любой некорректно влияет только на штриховку типа SOLID (проэкспериментировал только с неколькими). Бага наблюдается только в версии 23.
  13. вот тут походу собака порылась. Если штриховать НЕассоциативно через "Точку выбора", то контур штриховки получается "с гранями", а если через "Выбор объектов", то "без граней" В АС14 это реализовано более гармонично: как только штриховка теряет ассоциативность, у нее сразу появляются ручки и в вершинах, и на гранях, независимо от изначального построения с помощью точки или выбора объектов. Кроме того, можно включить автоматический выбор и контура при выборе тычком штриховки, что сразу делает доступным редактирование ребер и вершин контура.
  14. Конечно же бывает. Неудобство тут есть однозначно. Следовательно говорить об отсутствии совместимости не приходится. Но просто в командном режиме это не напрягает. Проблемы только в скриптах (например, обсуждалось в Если речь исключительно о командном режиме, то пока приходится мириться с отсутствием фичи. Реализацию же поддержки переменной EXPERT в нанокаде поддерживаю.
  15. Это одно из перечня препятствий при переносе лиспов с АС в NC (на данный момент всех версий). Пока остается только искать костыли. Каждый раз проблема может решаться индивидуальным способом. Самый частый - стараться по максимуму уходить от функции (command .... Достойные (и, главное, универсальные!) аналоги присутствуют. Для более конкретных рекомендаций требуется взглянуть на код.
  16. нанодев должен включать его в комплект поставки, вместе с костылями его - это бубен? )))
  17. Действительно, одинаковые атрибуты не отображаются. Но при этом поиск блоков, содержащих такой одноименный атрибут, При этом на таком же выделении Явная недоработка от нанософта, хотя и ошибкой это можно не считать. добавлено через 7 минут А чего "огород городить"? Вопрос в том, как: На самом деле вопрос поставлен верно. @Bucho спросил про отображение одноименных атрибутов, а @Михаил_ЛМГТ про поиск блоков с одноименными видимостями. Очевидно, что это две разных задачи. И только вторая из них имеет адекватное решение.
  18. Не изменяется в NC и АС14. Стараюсь всегда избегать аннотативных объектов, т.к. не умею ими пользоваться. Но всетаки хотелось бы задать вопрос: а как должно быть? Если у размера отключить аннотативность, то дальше меняется и высота текста с изменением масштаба символов. В чертеже установлена системная переменная в "показать все маассштабы" Если в АС добавить для размеров другие масштабы аннотаций, то их отображение (и масштаб) может регулироваться отключением этой системной переменной и переключением между масштабами. К сожалению в NC добавить масштабы аннотаций и установить текущий масштаб для элементов мы не можем. Поэтому остается только сбрасывать аннотативность и дальше уже шуровать в новых реалиях.
  19. так не получится. Не работает почему то. Извиняюсь, не проверил работоспособность конструкции в NC. Отдельно попросил бы разработчиков обратить внимание на эту коллизию!!!! В АС это работает. Вот за это и не люблю функцию (command ... Нет никакой гарантии в полной совместимости. В общем, тем более имеет смысл уходить от использования этой функции по максимуму. В дополнение к изложенному методу от @Kreator рекомендовал бы к использованию функцию (entmake, Ее преимущество в том, что она вообще относится к базовым функциям автолиспа, не требует подключения к COM. Она напрямую работает со структурой объектов DWG и почти один в один соотносится с записями объектов при сохранении файла в DXF-формате. В вашем случае можно сразу создавать текст Итого два оператора: формирование списка и создание элемента. Первые три строки в операторе формирования списка - это обязательная часть, если хотим создать программно мтекст. Остальное на ваше усмотрение. При желании и с опытом это все можно будет располагать в одну строчку без использования вспомогательной переменной da.
  20. Автодеск не патентовал интерфейс. Именно поэтому можно создать полную копию интерфейса (всякие шит-кады от китайских разработчиков) без нарушения авторских прав. Не запатентован Автодеском также и формат DWG (DXF). Возможно написание любых библиотек для работы с форматом, которые подцепляются к интерфейсам. Сочетание этих факторов позволяет легально создавать визуально практически неотличимые от оригинала продукты, но с другой математикой под капотом, а также с возможными проблемами, связанными с ошибками в математике этих библиотек. Кроме того возможны проблемы и с совместимостью , если автодеск, как законодатель мод, будет вводить новые фичи.
×
×
  • Create New...