|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
14.02.2020, 10:57 | #1 | |
Как присвоить атрибуты для полилинии
Регистрация: 14.02.2020
Сообщений: 5
|
||
Просмотров: 11393
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
В чистом ACAD - нереально
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,057
|
https://knowledge.autodesk.com/ru/su...1DCBF-htm.html
1. Создать таблицу 2. Подключить к примитиву 3. Заполнить Или лучше использовать FDO, но там нужно знать SQL |
|||
|
||||
Генпланист, AutoCad 2009 Eng Регистрация: 26.06.2008
Москва
Сообщений: 33
|
Цитата:
Почитал, youtube посмотрел, наконец-то получилось. Да, шаг на ускорение процесса произошел, но я сделал это, выделяя в заданном порядке каждый контур штриховки по очереди. Более 500 выделять всё таки долго. =) Как-нибудь можно привязать номера к штриховкам? Чтобы выделить все разом и получить результат - таблицу с номерами зон и их площади. |
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,057
|
Цитата:
Цитата:
FDO Последний раз редактировалось trir, 17.02.2020 в 06:42. |
|||
|
||||
Регистрация: 14.02.2020
Сообщений: 5
|
Цитата:
Но при сохранении в dwg в autocad не открываются эти атрибуты!!! Пустота. как их экспортировать из Map 3D? |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
Цитата:
|
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
А команды xdata и xdlist из Экспресса считаются средством добавления/просмотра без дополнительных программ? |
|||
|
||||
в широком смысле их имхо можно считать атрибутами. можно даже прикрутить к полилиниям расширенные лисп данные. вопрос только в том как заказчик планирует видеть эти данные (кликать каждую полилинию, наезжать на неё, как-то ещё...), что с ними затем должно происходить?
|
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
ну если на .Net - несложно сделать немодальную палитру, куда будет выводиться информация о выделенных полилиниях. А чтобы без всяких надстроек - это в блоки перевести, как выше предлагал - тогда он увидит значения в стандартной панели свойств даже в LT.
|
|||
|
||||
|
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
|
|||
|
||||
|
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
ну тут через PointMonitor обработчик события можно подвеситься, наверно - только это жестоко, имхо: постоянно "прыгающая" туда-сюда по состоянию видимости палитра при перемещении мыши над примитивами) Тогда уж лучше всплывающие окно/контрол на указатель мыши прицепить...
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
ИМХО. Если бы мне нужно было бы сделать подобное и с полной совместимостью с чистым автокадом, то я бы смотрел в сторону псевдо кусомных объектов на основе анонимных блоков. А по поводу панели и свойств.... гуглится OPMNetExt
Но все это нужно обсуждать явно не в этом разделе форума... |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
Цитата:
|
|||
|
||||
Регистрация: 12.12.2016
Сообщений: 24
|
Возможно Вас поможет программа от уважаемого Lee Mac.
http://www.lee-mac.com/programs.html Length Field to Attribute - заносит длину полилинии в атрибуты блока. Area Field to Attribute - заносит площадь в атрибуты блока. ----- добавлено через ~1 мин. ----- Это ответ на просьбу в посте 12. ----- добавлено через ~2 мин. ----- площадь и длина заносятся в виде полей и меняются с изменением объекта |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Сергей812, угу, предлагал, статичные блоки: нарисовать линии и по ним сделать блоки, это просто, но с этими блоками потом не удобно работать и менять их... Моя идея, сделать несколько "расширенные" динамические блоки, т.е. что бы можно было как бы рисовать "полилинию" и менять/добавлять/удалять вершины, двигать за ручки , но при этом это был бы блок с атрибутами... по этому и "псевдо кустомные" объекты. Т.е. у исполнителя, у которого в акаде запущена соответствующая программа в работе были бы легко изменяемые и редактируемые "псевдодинамические" блоки, а у заказчика (без программы), простые статичные.
Но я думаю энтузиазма это у ТС мой подход вызовет еще меньше, чем идея со статичными блоками, т.к. такого рода программы и приложения крайне редки, да и примеров кода в сети кот наплакал.. ЗЫ Сейчас подумалось... псевдодинамические блоки .... наверное это максимально точное название для такого рода объектов.... |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
Boxa, честно говоря, не вижу смысла работы с псевдокастомными объектами в данном случае - исполнитель работает как обычно, а потом для заказчика с голым акадом вызовом команды надстройки делается копия файла с переведенными полилиниями в блоки с атрибутами. Не выхватывает же заказчик из под рук рабочие файлы, надеюсь)
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Сергей812, если атрибуты на самом чертеже не видны, но можно и так, а если видны, то править оформление каждый раз при передаче... ну такое.
В любом случае вариантов решения задачи масса, только ТС они до лампочки. =) |
|||
|
||||
Показ содержания Xdata при "наезде" на элемент - лисп от CADaSchtroumpf, read_XD.lsp.
Его же лисп конвертации Object Data (Map/Civil) в Xdata - OD2XD.lsp.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 26.02.2020 в 14:16. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
АлексЮстасу, чистый ACAD не знает функций ade_*
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
В read_XD.lsp нет никаких "ade_*".
А OD2XD.lsp, естественно, будет работать только у тех, у кого есть Object Data, т.е. есть Map/Civil, о которых речь была в начале темы.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
АлексЮстасу, вообще-то раздел не совсем вертикалок. И об обязательности вертикалки стоило бы предупреждать.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
И в теме обсуждали использование Map 3D.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Offtop: А я еще в #2 сказал, что в чистом ACAD подобное сделать невозможно Ты каждый раз, когда отвечаешь, перечитываешь всю тему?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Offtop: Разве я с этим твоим утверждением хоть в чем-то спорил?
Мне только что попались эти лиспы. Они соответствуют обсуждаемым в теме подходам. Вдруг, да кому-то пригодятся... Если считаешь эти лиспы неуместными, удали мои сообщения, пожалуйста.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
геодезист Регистрация: 22.12.2009
Киров
Сообщений: 23
|
http://odclass-odedit.com/od_ru.html это в тему?
|
|||
|
||||
Цитата:
Пользовательские описательные данные будут при этом храниться в XData. Т.е. будут одинаково доступны в любом AutoCAD.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
|
|||
|
||||
Цитата:
Атрибутами в информационных системах за пределами AutoCAD обычно называют описательные свойства объектов. В исходном посте это: Наименование, Номер колодца, Назначение, Диаметр, Материал и т.д. С соответствующими значениями. Всего здесь 10. Понятно, что может быть и 1, и 20. И понятно, что для одних полилиний нужен один набор таких свойств, а для других другие, с разным количеством описательных свойств. Одни свойства текстовые, другие числовые. Кроме того, нормален вариант, когда одна полилиния может быть с несколькими наборами описательных свойств одновременно. Например, полилиния - граница участка, забор, граница улицы, огорода, газона одновременно. Как это делать гиперссылкой? Вопрос без подвоха - поделитесь опытом.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
Судя по отсутствию ответа на мой предыдущий вопрос - никак не получить) т.е. заполнить расширенные данные, и нехай болтаются отдельно от той же актуальной длины полилинии.
ну split/merge строк никто не отменял. Костыль, конечно, но не больший - чем носиться годами с XData отдельно от самих реальных данных) |
|||
|
||||
Регистрация: 24.01.2017
Сообщений: 126
|
Цитата:
|
|||
|
||||
Цитата:
Но это другой вопрос - не в тему.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 24.01.2017
Сообщений: 126
|
Цитата:
но тема заслуживает внимания, на самом деле. вы мне дали интересную идею лиспа для создания кабельного журнала. осталось только изучить ЛИСП |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 24.01.2017
Сообщений: 126
|
Цитата:
что б не отходить от темы, я хочу написать Лисп, который ищет ближайшую точку к концу линии (будь то текст или атрибут блока) и записывает содержимое в гиперссылку, тогда у меня будет реальная привязка полилинии к блоку. а уж если сделать проверку на дублирование этого содержимого - так вообще круто получится. а дальше извлечение данных в эксель, где уже всё подготовлено, благо VBA маленько знаю (честно говоря, VBA у меня там применяется больше для форматирования/сортировки, расчёты производятся через формулы). |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
|
|||
|
||||
Регистрация: 24.01.2017
Сообщений: 126
|
да, но только если лисп ищет среди всех объектов, а не только среди выделенных. и плюс начальная точка не так важна, она чаще всего уже скрыта в маркировке конечной. согласен, что будет тяжко заставить считать КЖ между коммутаторами, но вот до абонентов (на что уходит уйма времени) вполне сойдёт.
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
Цитата:
|
|||
|
||||
И Вы дали мне интересную идею! Вместе с другими, кто советовал гиперссылки как альтернативу XData. (Не зная, что это тоже XData).
Можно сделать две программки: 1. Создавать гиперссылки с Текст для отображения из названий всех пользовательских XData. Например, с префиксом "XD=", чтобы отличать от собственно гиперссылки, если она была. И отделять друг от друга, если XData у одного графэлемента несколько. 2. Удалять из гиперссылок эти названия. Это сделает XData "видимыми" в окне Свойства и при наведении на графэлемент.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
С чего вдруг?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
для одиночных - в свойствах текст гиперссылки отражается, для множества объект - либо *различные*, либо общий одинаковый текст гиперссылкиссылки. При наведении отображается только для текущего элемента под курсором. Видимо, с практический стороны для чисто академической задачи описательных данных больше для счастья человеку и не нужно)
|
|||
|
||||
Конечно, видимы так могут быть только названия XData, не данные в них.
Но это лучше же, чем ничего. И уже позволяет понимать, что у объекта XData есть. Возвращаясь к апологетике гиперссылок как альтернативы - многие же уже видеть одни названия считают достаточным.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 09.02.2022 в 16:44. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Значит, я неправильно понял предложение
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
взять типа этого и переделать на получение данных из XData. Lisp все-таки не очень подходит для интерактивных вещей.
|
|||
|
||||
Цитата:
Но я написал же "из названий всех пользовательских XData", "эти названия".
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Цитата:
1. XDTOOLS_2HYPERLINKS - создание гиперссылок из названий XData. Имеющиеся гиперссылки сохраняются в XData "SAVED_PE_URL". 2. XDTOOLS_RETURNHYPERLINKS - восстановление исходных гиперссылок из сохраненных в XData "SAVED_PE_URL". Т.о., в любой момент можно сделать свои XData "видимыми" - как гиперссылки. Такие гиперссылки начинаются на "xd=". И в любой момент такие гиперссылки можно убрать. В т.ч. таким способом можно оптом и в розницу изменять гиперссылки средствами XData. И создавать из XData "SAVED_PE_URL" гиперссылки с нужным содержанием.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 18.02.2022 в 19:32. Причина: подправлен лисп |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
Тот же результат без всяких гиперссылок - выдает дополнительную информацию в виде списка пар { Код - Значение } значений XData примитивов под апертурой курсора.
Код:
----- добавлено через ~6 мин. ----- собственно об этом говорил в п.57 - сделать на основе кода от Kean Walmsley, заменив только сбор информации о кривых на получение XData. Зачем судорожно пихать лишние объекты в базу чертежа dwg... |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,049
|
Только никакой пользы от прямого вывода этих XData нет - см. рисунок. Чтобы была польза - надо зарегистрировать свое приложение, и договориться - что либо определенная последовательность данных в XData, либо что данные идут парами: идентификатор - значение. Тогда вывод можно сделать осмысленным и структурированным. Т.е. применительно к этой теме - в простейшем случае будут пары строк вида { Имя поля : Значение поля }. Для экономии ресурсов можно повторяющиеся имена полей вынести в отдельный словарь с ключем в виде целого числа и тогда будут пары в XData будут вида { Число : Строка }. А при выводе будет из словаря по считанному числу-ключу подставлять имя поля. Этот вспомогательный словарь можно сохранить в словаре чертежа *.dwg, либо хранить в виде xml рядом со сборкой (если набор полей фиксирован) и подхватывать при загрузке сборки в акад.
Ну а поскольку извлечение данных XData не видит, то логично не только полилинии, но и те же блоки тоже вместо занесения всей информации в атрибуты хранить информацию в XData. Тогда собрать информацию по зарегистрированному имени приложения и вывести в нужном виде не представляет особой сложности. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дублируются полилинии, блоки, атрибуты в динамических блоках. Как избежать? | Nemyheim | Динамические блоки | 30 | 22.10.2021 13:34 |
Проблемы с возвратом площади полилинии в динамическом блоке (поля и атрибуты) | Полусолнце | Динамические блоки | 10 | 11.11.2016 11:51 |
Атрибуты не в блоках, атрибуты как самостоятельный примитив | АлексЮстасу | AutoCAD | 11 | 13.05.2015 10:39 |
Можно ли полилинии присвоить доп. свойства посредством LISP | piter_ch | LISP | 1 | 20.11.2012 18:32 |
Атрибуты для полилинии | Botticelli | AutoCAD | 13 | 17.10.2011 23:17 |