|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
12.02.2018, 11:49 | 5 | | #1 |
Экспорт и импорт атрибутов и динамических свойств блоков
КЖ; C#
Санкт-Петербург
Регистрация: 03.11.2005
Сообщений: 2,588
|
||
Просмотров: 40781
|
|
||||
Boxa, спасибо! Можно под 2018 акад версию?
__________________
Robot и Хобот |
||||
|
||||
начинающий инженер-гидротехник Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893
|
Спасибо за программу. Потестировал на 2015 автокаде - работает.
Из замеченных неудобств, но это проблема чисто Excel: при открытии txt-файлов с данными, похожими по формату на дату, Excel форматирует их на свою манеру. Например преобразует 15.02.18 в 15.02.2018, соответственно о таких вещах нужно помнить и отслеживать. Вот здесь решали эту проблему добавлением апострофа к экспортируемым данным. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
kacugu, не сталкивался, но спасибо. подправил код и пересобрал dll.
В обсуждении на сайте Алексея идет разговор про имя блока, а оно реально кому то нужно? (про костылик в виде атрибута с полем читал...) Просто привык, что нужные блоки лежат на одном слое и есть нужно экспортировать, то можно просто изолировать этот слой и махом выбрать нужные блоки. |
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,052
|
Цитата:
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
И вот первый вопрос, некоторые динамические свойства могут иметь метку ReadOnly, понятно что обновить значения таких параметров не получиться, а вот следует ли их при этом выводить в txt файл?
Спасибо, я не опытный пользователь ГитХаба и этой функцией еще не пользовался, но думаю для релиза пока рановато. Как не сложно заметить из кода, в классе DynIN в районе 215 строчке не обрабатываются "сложные" динамические свойства. Написан код за пару часов в "свободную минуту", когда чертежи достали, так что я думаю там есть что доделать. ЗЫ. Одна из целей публикации всего этого на ГитХабе в том числе научиться им пользоваться, посмотреть и поучиться как это работает в команде, как исправления и баги фиксируются, как пушаться и мержаться коммиты от других разработчиков. Последний раз редактировалось Boxa, 15.02.2018 в 09:39. |
|||
|
||||
Регистрация: 06.04.2015
Сообщений: 2,676
|
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
румата, для себя я его использую как очень удобную папку хранения кода.
Т.е. когда есть минутка пишу код на работе, проверяю какую то идею, потом отправляю коммит на гитхаб (или bitbucket), приходя домой я обновляю локальный репозиторий и продолжаю с того же места где остановился на рабочем компе и в обратную сторону. Но это все и облачная папке может, а вот попробовать совместную разработку и ветвление пока не приходилось, а очень хочется посмотреть что это. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
Изменения:
Экспортируются и импортируются не только атрибуты и дин. свойства, но и некоторые основные свойства блока: Слой, цвет, масштаб, точка вставки, поворот. При этом, в процессе импорта, если слоя с указанным именем нет в чертеже, то он будет создан. Добавлена возможность не только экспортировать/импортировать свойства блоков, но и вставлять копии существующих в чертеже блоков и назначать им нужные свойства. Релиз пока не обновлял, кто хочет поиграться, брать тут: Debug ----- добавлено через ~12 ч. ----- Обновил релиз и перегнал код в основную ветку. Из намеченного, осталось дописать настройку работы программы и что-то решить с полями в атрибутах и много строчными атрибутами. Есть предложения? Последний раз редактировалось Boxa, 26.03.2018 в 20:52. Причина: забыл про поворот |
|||
|
||||
начинающий инженер-гидротехник Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893
|
Мне задача кажется трудновыполнимой (но я не программист).
При обычном экспорте поля и мтекст превращаются в обычный текст, слетает форматирование и "коды" полей (всякие %<\AcVar...). Как следствие, нужно экспортировать, сохраняя все детали оформления. Но работать с таким экспортированным текстом в excel будет очень сложно. |
|||
|
||||
начинающий инженер-гидротехник Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893
|
Offtop:
так те, кому надо, либо придумали что-то своё, либо подстроились под стандартные возможности экспрессовских attin и attout. Мне тема интересна, но я знаю, что у меня так много работы, что в ближайшие месяцы мне эта программа банально не потребуется |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
Удалил архив из шапки данной темы, т.к. пользователи не читают текст.
Некоторая особенность: изменение блоков на заблокированных слоях, вызовет исключение. Как корректнее изменить данное поведение пока не решил, либо при изменениях разблокировать слой или просто пропускать такие блоки/атрибуты. Возможно кто нибудь предложит что то еще... |
|||
|
||||
Цитата:
----- добавлено через ~11 мин. ----- Здесь можно использовать встроенный Task Dialog: http://www.keanw.com/2008/11/implementing-ta.html Выглядит презентабельнее, и пользователям привычнее.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
я не про возможность спрашивал, я про так с пользователем это урегулировать... наверное сделаю окошко с вопросом... со временем пока никак не получается...
|
|||
|
||||
Лучше, наверное, одну команду, но с настройками (опциями).
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,039
|
Цитата:
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
trir, Do$, и если довести ваши предложения до логического конца, то получится лисп функция с параметрами фильтрации блоков и настройками обработки заблокированных и замороженных слоев. А там уж какие кнопки хочешь, такие и делай...
|
|||
|
||||
Регистрация: 05.02.2009
Сообщений: 37
|
Цитата:
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
Легко, достаточно внимательно читать описание к программе и внимательно читать текст ошибки.
1. В первом сообщении темы, в разделе Запуск/загрузка, написано, что рекомендуется размещать библиотеки локально, а не в сети. 2. В Вашем сообщении в тексте ошибки написано "...Предпринята попытка загрузить сборку из сетевого ресурса..." Соответственно, победить это просто: или загружайте с локального диска или Если Вы хотите все таки загружать программу из сетевого ресурса, то необходимо изменить политики безопасности, как это сделать написано по ссылке указанной в тексте ошибки. |
|||
|
||||
Регистрация: 05.02.2009
Сообщений: 37
|
Цитата:
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
1. То, что диск D у Вас локальный, совершенно не очевидно, он может быть подключенным сетевым диском.
2. Зачем Вы загружаете именно dynINOUT_UI.dll, почему Вы не хотите загружать файл dynINOUT_20ХХ.dll соответствующий Вашей версии автокада? В описании программы сказано, что dynINOUT_UI.dll это дополнительный файлик для программы, его нужно скачать и разблокировать, а вот про запускать ничего нет. Наверное нужно дополнить описание... |
|||
|
||||
Регистрация: 05.02.2009
Сообщений: 37
|
Цитата:
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
Цитата:
|
|||
|
||||
Регистрация: 25.06.2019
Сообщений: 3
|
Boxa
При попытке загрузить, откорректированные атрибуты в файл, при помощи команды dynIN - выскакивает ошибка Приложение не поддерживает оперативную (JIT) отладку. Подробная информацию приводится в конце данного сообщения. ************** Текст исключения ************** System.FormatException: Входная строка имела неверный формат. в System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt) в System.Double.Parse(String s) в dynIN_dynOUT.DynIN.IN() в dynIN_dynOUT.Commands.dynIN() в Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction) в Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction) в Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke() |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
VicZel, собственно ошибка возникает в процессе преобразования строки в число с помощью стандартных функций платформы. Коллеги уже подсказали Вам, что это связано с разделителем целой и дробной частей числа. Вы можете откорректировать настройки своей системы или пересобрать для себя библиотеку с требуемыми настройками разделителя. Как поступить, решать Вам.
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,039
|
|
|||
|
||||
Регистрация: 25.06.2019
Сообщений: 3
|
Понял. Спасибо
----- добавлено через ~6 ч. ----- Коллеги, понял в чем ошибка - я пытался в своем файле у блоком редактировать, сразу, несколько атрибутов. Если менять, только один, то все нормально. Для сведения, dp-att-export-import_1.3 Кулик Алексей aka kpblc - позволяет это делать. |
|||
|
||||
Регистрация: 28.01.2021
Сообщений: 1
|
Скажите, пожалуйста, как в интерфейсе автокада можно взять Handle, который находится в экспортируемом файле?
Если экспортировать атрибуты через ATTOUT, то значения Handle другие, нежели чем через DYNOUT. Если я в блок добавляю атрибут с полем с формулой %<\AcObjProp.16.2 Object(?BlockRefId,1).Handle>% , то оно выводит Handle из ATTOUT. Мне бы хотелось, чтоб в блоке был атрибут с значением Handle данного блока, как в DYNOUT. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
Цитата:
DYNOUT - хендел блока Это как бы разные вещи. команда _list PS/ То что в редакторе полей нет возможности выбрать вывод hendl, не означает, что этого вообще нельзя сделать... там не все свойства показываются, как пример: %<\AcDiesel $(substr,%<\AcObjProp Object(%<\_ObjId 1773027648>%).Handle>%,1)>% Последний раз редактировалось Boxa, 29.01.2021 в 10:53. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
Цитата:
Там уже довольно давно прописано сохранять путь до последнего выбранного файла: Ссылка на фрагмент кода |
|||
|
||||
Инженер-проектировщик Регистрация: 08.02.2007
С-Петербург
Сообщений: 127
|
|
|||
|
||||
Регистрация: 12.08.2009
Сообщений: 447
|
По ссылке на релизы с первой странице dll для 2019 не сохраняет путь к последнему месту расположения файла csv.
И к сожалению вообще не работает с аннотативными блоками. После загрузки данных блок уродуется так, что его можно привести к нормальному виду только сбросом. Импортированные параметры естественно пропадают. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменение значения атрибутов с одинаковым тегом во множестве блоков | Red Nova | Готовые программы | 15 | 22.09.2019 17:13 |
Назначение свойств атрибутов блока без attsync | Кулик Алексей aka kpblc | Программирование | 9 | 15.08.2017 06:32 |
Применение готового lisp-а для динамических блоков | Denver-22 | LISP | 6 | 15.09.2016 15:32 |
Извлечение значений атрибутов блоков AutoCAD Electrical с помощью AutoLisp | zaraki_kenpachi | LISP | 16 | 19.02.2011 15:30 |
Ошибка 0xC0000005 (access violation) при импорте свойств динамических блоков | Ax3 | Программирование | 17 | 24.12.2010 09:43 |