| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > Экспорт и импорт атрибутов и динамических свойств блоков

Экспорт и импорт атрибутов и динамических свойств блоков

Ответ
Поиск в этой теме
Непрочитано 12.02.2018, 11:49 5 |
Экспорт и импорт атрибутов и динамических свойств блоков
Boxa
 
КЖ; C#
 
Санкт-Петербург
Регистрация: 03.11.2005
Сообщений: 2,588

Программа в общем то, как прототип или демка, готова, но доработки вносить можно и нужно.
Слегка протестил на нескольких блоках.

Назначение программы:
Экспорт и импорт свойств, атрибутов и динамических свойств блоков AutoCAD в csv файл, для правки этих свойств во внешних программах.

Принцип работы:
Такой же как и у ATTIN и ATTOUT из Express Tools, выбираем куда будем сохранять, потом выбираем блоки из которых будем вытягивать данные.
По сути программа просто расширенная версия версия ATTIN и ATTOUT.

Команды для запуска:
dynOUT - сохранить в текстовый файл
dynIN - прочитать из текстового файла

Запуск / загрузка:
Скачиваем dynINOUT_UI.dll и dynINOUT_20ХХ.dll (ХХ -версия автокада)
Размещаем обе dll-ки в одном, удобном для Вас месте, на локальном жестком диске, не на сетевом диске и не в сетевой папке.
Проверяем в свойствах библиотек, что бы они были разблокированы
Командой _netload грузим dynINOUT_20ХХ (ХХ -версия автокада) в автокад

Open Source:
Написано на C#, код опубликован тут: https://github.com/BoxaShu/dynIN_dynOUT


Видео
Вот тут: ссылка на видео, можно посмотреть пример подсчета арматуры и назначения позиций
Вот тут: ссылка на видео, можно посмотреть пример показывающий составления ведомости отверстий
Вот тут: ссылка на видео, можно посмотреть пример показывающий экспорт свайного поля из Lira SAPR. подробности

Скачать dll
Все последние версии библиотеки, для AutoCAD 2013 - 2019, можно скачать тут: _Release
Так же обращаю внимание на файлик dynINOUT_UI.dll, он один для всех версий и его так же нужно скачивать и так же разблокировать.

Последний раз редактировалось Boxa, 13.11.2018 в 11:24. Причина: про dynINOUT_UI.dll файл дописал; дописал про загрузку
Просмотров: 40521
 
Автор темы   Непрочитано 15.06.2018, 10:30
#21
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Удалил архив из шапки данной темы, т.к. пользователи не читают текст.
Некоторая особенность: изменение блоков на заблокированных слоях, вызовет исключение. Как корректнее изменить данное поведение пока не решил, либо при изменениях разблокировать слой или просто пропускать такие блоки/атрибуты.
Возможно кто нибудь предложит что то еще...
Boxa вне форума  
 
Непрочитано 15.06.2018, 16:50
| 1 #22
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


я бы не стал заморачиваться - пускай пользователь решает:
Миниатюры
Нажмите на изображение для увеличения
Название: Заблокир_слои_выбор_действия.JPG
Просмотров: 196
Размер:	37.7 Кб
ID:	203583  
Сергей812 вне форума  
 
Непрочитано 19.06.2018, 12:51
#23
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Boxa Посмотреть сообщение
Удалил архив из шапки данной темы, т.к. пользователи не читают текст.
Некоторая особенность: изменение блоков на заблокированных слоях, вызовет исключение. Как корректнее изменить данное поведение пока не решил, либо при изменениях разблокировать слой или просто пропускать такие блоки/атрибуты.
Возможно кто нибудь предложит что то еще...
В .NET API есть же возможность обработки объектов на заблокированных слоях. При открытии объекта надо указать параметр forceOpenOnLockedLayer = true.

----- добавлено через ~11 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
я бы не стал заморачиваться - пускай пользователь решает:
Здесь можно использовать встроенный Task Dialog: http://www.keanw.com/2008/11/implementing-ta.html
Выглядит презентабельнее, и пользователям привычнее.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Автор темы   Непрочитано 19.06.2018, 13:56
#24
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Do$ Посмотреть сообщение
В .NET API есть же возможность обработки объектов на заблокированных слоях. При открытии объекта надо указать параметр forceOpenOnLockedLayer = true.
я не про возможность спрашивал, я про так с пользователем это урегулировать... наверное сделаю окошко с вопросом... со временем пока никак не получается...
Boxa вне форума  
 
Непрочитано 19.06.2018, 15:08
#25
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
наверное сделаю окошко с вопросом
задолбаешь им пользователя, лучше сделать несколько команд - с разным поведением
trir вне форума  
 
Непрочитано 19.06.2018, 15:51
#26
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от trir Посмотреть сообщение
лучше сделать несколько команд
Лучше, наверное, одну команду, но с настройками (опциями).
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 19.06.2018, 15:58
#27
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от Do$ Посмотреть сообщение
Здесь можно использовать встроенный Task Dialog: http://www.keanw.com/2008/11/implementing-ta.html
Выглядит презентабельнее, и пользователям привычнее.
ну это голый wpf - настраивай как хочешь, сделал один раз стили - все программы будут узнаваемы по внешнему виду.. И все внутри сборки будет все равно - так что дело вкуса)
Сергей812 вне форума  
 
Автор темы   Непрочитано 19.06.2018, 16:47
#28
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


trir, Do$, и если довести ваши предложения до логического конца, то получится лисп функция с параметрами фильтрации блоков и настройками обработки заблокированных и замороженных слоев. А там уж какие кнопки хочешь, такие и делай...
Boxa вне форума  
 
Непрочитано 13.11.2018, 10:30
#29
LAmyk


 
Регистрация: 05.02.2009
Сообщений: 37


Цитата:
Не удалось загрузить сборку. Сведения об ошибке: System.IO.FileLoadException: Не удалось загрузить файл или сборку "file:///D:\рабочий комп\Downloads\dynINOUT_UI.dll" либо одну из их зависимостей. Операция не поддерживается. (Исключение из HRESULT: 0x80131515)
Имя файла: 'file:///D:\рабочий комп\Downloads\dynINOUT_UI.dll' ---> System.NotSupportedException: Предпринята попытка загрузить сборку из сетевого ресурса, что в предыдущих версиях .NET Framework могло привести к помещению сборки в "песочницу". Этот выпуск .NET Framework не включает политику CAS по умолчанию, поэтому данная загрузка может быть опасной. Если эта нагрузка не предназначена для изоляции сборки, включите переключатель loadFromRemoteSources. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkId=155569.
как это победить?
LAmyk вне форума  
 
Автор темы   Непрочитано 13.11.2018, 10:48
#30
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от LAmyk Посмотреть сообщение
как это победить?
Легко, достаточно внимательно читать описание к программе и внимательно читать текст ошибки.

1. В первом сообщении темы, в разделе Запуск/загрузка, написано, что рекомендуется размещать библиотеки локально, а не в сети.
2. В Вашем сообщении в тексте ошибки написано "...Предпринята попытка загрузить сборку из сетевого ресурса..."

Соответственно, победить это просто: или загружайте с локального диска или Если Вы хотите все таки загружать программу из сетевого ресурса, то необходимо изменить политики безопасности, как это сделать написано по ссылке указанной в тексте ошибки.
Boxa вне форума  
 
Непрочитано 13.11.2018, 11:05
#31
LAmyk


 
Регистрация: 05.02.2009
Сообщений: 37


Цитата:
Сообщение от Boxa Посмотреть сообщение
Легко, достаточно внимательно читать описание к программе и внимательно читать текст ошибки.

1. В первом сообщении темы, в разделе Запуск/загрузка, написано, что рекомендуется размещать библиотеки локально, а не в сети.
2. В Вашем сообщении в тексте ошибки написано "...Предпринята попытка загрузить сборку из сетевого ресурса..."

Соответственно, победить это просто: или загружайте с локального диска или Если Вы хотите все таки загружать программу из сетевого ресурса, то необходимо изменить политики безопасности, как это сделать написано по ссылке указанной в тексте ошибки.
D:\рабочий комп\Downloads\dynINOUT_UI.dll загружаю с диска Д
LAmyk вне форума  
 
Непрочитано 13.11.2018, 11:12
#32
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


там в свойствах сборки нужно убрать галочку
trir вне форума  
 
Непрочитано 13.11.2018, 11:16
#33
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


В свойствах файла *.dll заходите - там будет написано типа "Файл был скачен с другого компьютера..." - нажимаете кнопку рядом.
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.11.2018, 11:17
#34
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


1. То, что диск D у Вас локальный, совершенно не очевидно, он может быть подключенным сетевым диском.
2. Зачем Вы загружаете именно dynINOUT_UI.dll, почему Вы не хотите загружать файл dynINOUT_20ХХ.dll соответствующий Вашей версии автокада? В описании программы сказано, что dynINOUT_UI.dll это дополнительный файлик для программы, его нужно скачать и разблокировать, а вот про запускать ничего нет.

Наверное нужно дополнить описание...
Boxa вне форума  
 
Непрочитано 13.11.2018, 11:22
#35
LAmyk


 
Регистрация: 05.02.2009
Сообщений: 37


Цитата:
Сообщение от Boxa Посмотреть сообщение
1. То, что диск D у Вас локальный, совершенно не очевидно, он может быть подключенным сетевым диском.
2. Зачем Вы загружаете именно dynINOUT_UI.dll, почему Вы не хотите загружать файл dynINOUT_20ХХ.dll соответствующий Вашей версии автокада? В описании программы сказано, что dynINOUT_UI.dll это дополнительный файлик для программы, его нужно скачать и разблокировать, а вот про запускать ничего нет.

Наверное нужно дополнить описание...
оба файла попробовал у обоих такая фигня
LAmyk вне форума  
 
Автор темы   Непрочитано 13.11.2018, 11:29
#36
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от LAmyk Посмотреть сообщение
оба файла попробовал у обоих такая фигня
Цитата:
Сообщение от LAmyk Посмотреть сообщение
Не удалось загрузить сборку. Сведения об ошибке: System.IO.FileLoadException: Не удалось загрузить файл или сборку "file:///D:\рабочий комп\Downloads\dynINOUT_UI.dll" либо одну из их зависимостей. Операция не поддерживается. (Исключение из HRESULT: 0x80131515)
Имя файла: 'file:///D:\рабочий комп\Downloads\dynINOUT_UI.dll' ---> System.NotSupportedException: Предпринята попытка загрузить сборку из сетевого ресурса, что в предыдущих версиях .NET Framework могло привести к помещению сборки в "песочницу". Этот выпуск .NET Framework не включает политику CAS по умолчанию, поэтому данная загрузка может быть опасной. Если эта нагрузка не предназначена для изоляции сборки, включите переключатель loadFromRemoteSources. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkId=155569.
Вам же тут ВАШ собственный компьютер говорит, что ВАШ диск D - сетевой и грузить с него DLL ВАША операционная система не хочет, либо измените настройки политик безопасности для того, что бы ОС разрешила загрузку, как это сделать написано по ссылке (либо вызовите админа, который это настроит), либо переместите обе библиотеки на локальный диск.
Boxa вне форума  
 
Непрочитано 13.11.2018, 11:43
#37
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Когда не разблокируешь в свойствах файла после скачивания - тоже самое пишет.
Сергей812 вне форума  
 
Непрочитано 21.02.2019, 05:19 Autocad 2012
#38
700367


 
Регистрация: 20.02.2019
Сообщений: 1


Добрый день! Есть ли возможность собрать dll под Autocad 2012 или были какие то ограничения по версии?
700367 вне форума  
 
Непрочитано 21.02.2019, 07:33
#39
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


есть, просто пропиши свои библиотеки в ссылках и собирай
trir вне форума  
 
Непрочитано 02.07.2019, 17:37
#40
VicZel


 
Регистрация: 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()
VicZel вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > Экспорт и импорт атрибутов и динамических свойств блоков

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение значения атрибутов с одинаковым тегом во множестве блоков 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