Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Александр Пекшев aka Modis от 12-04-2016, 21:34:02

Название: Уникальный идентификатор файла чертежа
Отправлено: Александр Пекшев aka Modis от 12-04-2016, 21:34:02
Всем привет. Вопрос задаю для перестраховки - лучше лишний раз заранее спрошу  :D
В общем вопрос такой - какое свойство чертежа является постоянным и неизменным, начиная с самого его создания? Чтобы никакие действия с файлом не приводили к его изменению.
Мое предположение, что это Handle...
Название: Re: Уникальный идентификатор файла чертежа
Отправлено: Андрей Бушман от 12-04-2016, 21:51:20
Ты определись, тебе нужно "постоянным и неизменным" или же тебе нужно "Уникальный". Это "четыре совершенно разных человека" :)
Название: Re: Уникальный идентификатор файла чертежа
Отправлено: Александр Ривилис от 12-04-2016, 21:51:45
В общем вопрос такой - какое свойство чертежа является постоянным и неизменным, начиная с самого его создания? Чтобы никакие действия с файлом не приводили к его изменению.
Никакого.
Мое предположение, что это Handle...
Нет. Handle у объекта, а не у чертежа.

А для чего это тебе нужно?
Название: Re: Уникальный идентификатор файла чертежа
Отправлено: Александр Пекшев aka Modis от 13-04-2016, 07:28:55
Я вчера, когда написал вопрос и лег спать - еще подумал подумал... Ну да, логично, что уникального нет точно. Постоянный и неизменный - может быть...

Вообще задумка такая: есть функция, которая позволяет пользователю работать с определенными данными. Не графическими. Эти данные хранятся в отдельном xml-файле и функция просто позволяет с ними работать. Идея в том, что определенный набор данных должен иметь "привязку" к файлу чертежа: открыл функцию, поставил галку "для текущего чертежа" и функция отобразила имеющиеся данные.
Так вот функция должна каким-то образом иметь возможность идентифицировать текущий чертеж

Так-же пришла мысль, что самый логичный способ - "помечать" файлы самому, используя расширенные данные. Тогда я точно могу быть уверен в уникальности, постоянности и неизменности!
Просто хотел уточнить - может есть что-то "родное", что мне подойдет, чтобы не писать лишний код)
Название: Re: Уникальный идентификатор файла чертежа
Отправлено: Привалов Дмитрий от 13-04-2016, 07:52:20
Просто хотел уточнить - может есть что-то "родное", что мне подойдет, чтобы не писать лишний код)
Если чертежи изменяемые по времени и месту нахождения, то решение скорее всего сведется к оставлению специальной метки в самом чертеже и xml . А уже какими способами это делать - метаданными, xrecord это не важно.

А так можешь попробовать привязаться к названию файла и "неизменным свойствам" ...если их так можно назвать, используя свойства Database например время создания чертежа Tdcreate, Tducreate и если надо проверять не был ли чертеж изменен с последнего времени, например Tdupdate, Tduupdate. Чем Td от Tdu отличаются не помню, но в интернете находил когда-то.
Название: Re: Уникальный идентификатор файла чертежа
Отправлено: Дмитрий Загорулькин от 13-04-2016, 13:37:16
"помечать" файлы самому, используя расширенные данные
Если надо сохранять данные уровня чертежа - то лучше в NamedObjectDictionary (http://aucache.autodesk.com/au2012/sessionsFiles/2146/2646/handout_2146_CP2146.pdf).
Название: Re: Уникальный идентификатор файла чертежа
Отправлено: Александр Ривилис от 13-04-2016, 13:44:14
Если надо сохранять данные уровня чертежа - то лучше в NamedObjectDictionary.
Можно и в Xdata для BlockTable.
Тогда я точно могу быть уверен в уникальности, постоянности и неизменности!
Постоянность и неизменность - да. Если кто-то специально программно не испортит. А вот с уникальностью - проблема. Достаточно скопировать чертеж или сохранить под другим именем и уникальность пропадает.
Название: Re: Уникальный идентификатор файла чертежа
Отправлено: Александр Пекшев aka Modis от 13-04-2016, 13:48:41
Достаточно скопировать чертеж или сохранить под другим именем и уникальность пропадает
В моем случае это даже не страшно - если при этом не меняется содержимое. Если меняется содержимое (есть такие умельцы - копируют файл, очищают и начинают в нем новую работу), то это уже проблема пользователя. Я в принципе не могу предусмотреть все возможные варианты издевательств над файлом, да и "важность" этой возможности в моей функции не будет столь великой, чтобы так "запариваться" =)
В общем - остановлюсь на варианте собственноручной пометки файла. Всем спасибо за участие в обсуждении