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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Получение и перенос свойств чертежа

Получение и перенос свойств чертежа

Ответ
Поиск в этой теме
Непрочитано 28.02.2020, 16:48 #1
Получение и перенос свойств чертежа
mr.frai1992
 
Регистрация: 10.04.2019
Сообщений: 47

Возникла необходимость перенести заполненные свойства чертежа (в т.ч. и из вкладки "Прочие") в текущий документ.
Подход "скопируй все и перенеси в шаблон" опробован и принят не очень красивым)
Поискал и нашел DwgRuLispLib: Функции чтения и установки свойств рисунка (_dwgprops)
Но что-то не получается перенести свойства из образцово заполненного в текущий чертеж. Получается только их считывать
Нашел еще программу Александра Ривилиса Получение/изменение из AutoLisp свойств чертежа (Summary Info)
С ней такая же история. 99% что я неправильно понял синтаксис команд.
Может кто-нибудь добрый и терпеливый на пальцах объяснить как этим пользоваться?
В идеале мне надо понять как работает команда и сделать кнопку чтобы нужные свойства из чертежа-шаблона по одному клику переносились в текущий чертеж

Последний раз редактировалось mr.frai1992, 29.02.2020 в 11:13.
Просмотров: 4801
 
Непрочитано 28.02.2020, 17:44
2 | #2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от mr.frai1992 Посмотреть сообщение
Нашел еще программу Александра Ревилиса Получение/изменение из AutoLisp свойств чертежа (Summary Info)
1. Не Ревилиса, а Ривилиса
2. Вот такая строка позволит переписать свойства чертежа из файла C:\Чертеж1.dwg в файл C:\Чертеж2.dwg
Код:
[Выделить все]
 (setdwgprops "C:\\Чертеж2.dwg" (getdwgprops "C:\\Чертеж1.dwg"))
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 29.02.2020, 13:29
#3
mr.frai1992


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


Я пробовал так, но попробовал еще раз заново вот что получается в ком. строке:
Код:
[Выделить все]
Команда: _appload GetDwgProps2015x64.arx успешно загружено.
Команда: (setdwgprops "D:\\Проекты\\2020 год\\Чертеж1.dwg" (getdwgprops "D:\\Проекты\\2020 год\\Чертеж2.dwg"))
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
(("Title" "") ("Subject" "") ("Author" "") ("Keywords" "") ("Comments" "") ("HyperlinkBase" "") ("RevisionNumber" "") ("LastSavedBy" "User"))
И ничего не переносится на всякий случай прилагаю файлы (хотя они пустые только в одном Чертеж1 есть пару свойств в прочих а другой совсем пустой)
P.S. Александр Ривилис, извините за ошибку за нумером 1
Вложения
Тип файла: dwg
DWG 2013
Чертеж1.dwg (649.1 Кб, 12 просмотров)
Тип файла: dwg
DWG 2013
Чертеж2.dwg (393.6 Кб, 10 просмотров)
mr.frai1992 вне форума  
 
Непрочитано 29.02.2020, 13:33
2 | 1 #4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от mr.frai1992 Посмотреть сообщение
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Unable to find the rules file: C:\C3DPipeRules.xml
Это к моей программе отношения не имеет.
Какие свойства установлены у файла "D:\\Проекты\\2020 год\\Чертеж2.dwg" ? Похоже, что они все пустые, кроме "LastSavedBy":

Так что тут и переносить то нечего.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 29.02.2020, 13:36
1 | #5
mr.frai1992


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


может еще какой-то способ есть?
Ура!! получилось) я перепутал местами файлы наоборот надо было сделать

Подскажите еще где правильно опцию T дописать?
Так заработало
(setdwgprops "D:\\Проекты\\2020 год\\Чертеж2.dwg" (getdwgprops "D:\\Проекты\\2019 год\\97.19 Рек-ция зд. отдела сбыта по адресу г.Лида, ул.Советская,37А\\Фунд. Энергосбыт\\97.19_Фундамент_Энергосбыт.dwg") T)

осталось правильно макрос составить чтобы он сам узнавал полный путь текущего файла и добавлял в него необходимые свойства
Макрос для кнопки выглядит так (вдруг еще кому-то понадобится). Главное путь через // писать
Код:
[Выделить все]
^C^C(setdwgprops (getdwgprops "c://Program Files//Autodesk//Sample.dwg") T);

Последний раз редактировалось mr.frai1992, 29.02.2020 в 15:59.
mr.frai1992 вне форума  
 
Непрочитано 15.03.2020, 18:02
1 | #6
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от mr.frai1992 Посмотреть сообщение
Главное путь через // писать
Неа. Это если использовать обратный слэш, то пишется через двойные ("\\"), а если прямой слэш, то через одинарные ("/")
Александр Ривилис вне форума  
 
Непрочитано 31.07.2021, 17:15
#7
bichner


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


Александр, здравствуйте. По какой причине при вводе команды getdwgprops в ответ приходит такое: Неизвестная команда "GETDWGPROPS".
при этом попробовал команду setdwgprops, но с неактуальными для меня свойствами - эта команда работает. Утилита загружена, все проверил несколько раз
bichner вне форума  
 
Непрочитано 31.07.2021, 21:34
1 | #8
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от bichner Посмотреть сообщение
По какой причине при вводе команды getdwgprops в ответ приходит такое: Неизвестная команда "GETDWGPROPS".
Потому что это не команда, а функция. Поэтому в командной строке нужно вводить не GETDWGPROPS, а (GETDWGPROPS)
Александр Ривилис вне форума  
 
Непрочитано 01.08.2021, 13:20
1 | #9
bichner


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


Цитата:
Сообщение от mr.frai1992 Посмотреть сообщение
Ура!! получилось)
Можно еще так делать:
список сгенерированный командой getdwgprops копируем в блокнот и чистим с помощью ЗАМЕНА (надо зачистить лишние скобки): в параметр ЧТО вводим ) ( в параметр ЧЕМ вводим пробел, далее ЗАМЕНИТЬ ВСЕ.
Потом вставляем полученный список вместо фразы[list_summary_info] и все - команда готова!!!
Пример того, что должно получится:
(setdwgprops ["Title" "Здание оказания услуг связи по ул. Семенова в г. Тюмень" "Subject" "01-04/18-" "Author" "." "Keywords" "" "Comments" "" "HyperlinkBase" "" "RevisionNumber" "" "LastSavedBy" "Сергей" "Разработал" "Пухленкина" "Проверил" "Гейнбихнер" "Н.контроль" "Гейнбихнер" "ГИП" "С.А. Гейнбихнер" "Стадия" "П" "Дата разработки" "04.20" "Дата изменения" "12.17" "Номер ГП" "ГП-1.7" "Документация П или Р" "Проектная документация" "Название_Семенова" "Здание оказания услуг связи по ул. Семенова в г. Тюмень" "Шифр_Семенова" "02-04/18-"] [T])
bichner вне форума  
 
Непрочитано 02.08.2021, 21:26
#10
bichner


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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
1. Не Ревилиса, а Ривилиса
2. Вот такая строка позволит переписать свойства чертежа из файла C:\Чертеж1.dwg в файл C:\Чертеж2.dwg
Код:
[Выделить все]
 (setdwgprops "C:\\Чертеж2.dwg" (getdwgprops "C:\\Чертеж1.dwg"))
попробовал этой командой выполнить перенос свойств из файла в файл. Не получилось. В ответ пришло nil. В чем может быть проблема?
bichner вне форума  
 
Непрочитано 02.08.2021, 21:33
1 | #11
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от bichner Посмотреть сообщение
В чем может быть проблема?
Возможно несколько вариантов:
1) Нет файла "C:\\Чертеж1.dwg" или его нельзя открыть
2) Файл "C:\\Чертеж1.dwg" сохранён в той версии, которую нельзя открыть в данной версии AutoCAD.
3) Файл "C:\\Чертеж1.dwg" не содержит dwgprops
4) Нет файла "C:\\Чертеж2.dwg" или его нельзя открыть
5) Какой-то сбой при чтении/записи dwgprops

А что возвращает в командную строку:
Код:
[Выделить все]
 (getdwgprops "C:\\Чертеж1.dwg")
?
Надеюсь, что указанные пути к файлам корректные.
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Получение и перенос свойств чертежа

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение значений свойств чертежа в одной строке Ruslan88 AutoCAD 1 20.12.2017 19:00
Создание нового слоя и перенос на них с другого чертежа. Arraders AutoCAD 5 13.09.2013 10:59
Hp laserjet 5035 MFP смещение чертежа на формате A3 при печати из Autocad 2011 и 2013 merdoc2003 AutoCAD 6 18.04.2013 23:59
зависание меню свойств єлементов в AutoCad 2010 rus x86 при работе в Windows 7 micropyhcher Баги и пожелания в Autodesk 3 21.11.2009 11:05
Заливка, перенос свойств объекта DDlis Программирование 1 11.02.2005 08:19