Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Александр Пекшев aka Modis от 12-04-2016, 21:34:02
-
Всем привет. Вопрос задаю для перестраховки - лучше лишний раз заранее спрошу :D
В общем вопрос такой - какое свойство чертежа является постоянным и неизменным, начиная с самого его создания? Чтобы никакие действия с файлом не приводили к его изменению.
Мое предположение, что это Handle...
-
Ты определись, тебе нужно "постоянным и неизменным" или же тебе нужно "Уникальный". Это "четыре совершенно разных человека" :)
-
В общем вопрос такой - какое свойство чертежа является постоянным и неизменным, начиная с самого его создания? Чтобы никакие действия с файлом не приводили к его изменению.
Никакого.
Мое предположение, что это Handle...
Нет. Handle у объекта, а не у чертежа.
А для чего это тебе нужно?
-
Я вчера, когда написал вопрос и лег спать - еще подумал подумал... Ну да, логично, что уникального нет точно. Постоянный и неизменный - может быть...
Вообще задумка такая: есть функция, которая позволяет пользователю работать с определенными данными. Не графическими. Эти данные хранятся в отдельном xml-файле и функция просто позволяет с ними работать. Идея в том, что определенный набор данных должен иметь "привязку" к файлу чертежа: открыл функцию, поставил галку "для текущего чертежа" и функция отобразила имеющиеся данные.
Так вот функция должна каким-то образом иметь возможность идентифицировать текущий чертеж
Так-же пришла мысль, что самый логичный способ - "помечать" файлы самому, используя расширенные данные. Тогда я точно могу быть уверен в уникальности, постоянности и неизменности!
Просто хотел уточнить - может есть что-то "родное", что мне подойдет, чтобы не писать лишний код)
-
Просто хотел уточнить - может есть что-то "родное", что мне подойдет, чтобы не писать лишний код)
Если чертежи изменяемые по времени и месту нахождения, то решение скорее всего сведется к оставлению специальной метки в самом чертеже и xml . А уже какими способами это делать - метаданными, xrecord это не важно.
А так можешь попробовать привязаться к названию файла и "неизменным свойствам" ...если их так можно назвать, используя свойства Database например время создания чертежа Tdcreate, Tducreate и если надо проверять не был ли чертеж изменен с последнего времени, например Tdupdate, Tduupdate. Чем Td от Tdu отличаются не помню, но в интернете находил когда-то.
-
"помечать" файлы самому, используя расширенные данные
Если надо сохранять данные уровня чертежа - то лучше в NamedObjectDictionary (http://aucache.autodesk.com/au2012/sessionsFiles/2146/2646/handout_2146_CP2146.pdf).
-
Если надо сохранять данные уровня чертежа - то лучше в NamedObjectDictionary.
Можно и в Xdata для BlockTable.
Тогда я точно могу быть уверен в уникальности, постоянности и неизменности!
Постоянность и неизменность - да. Если кто-то специально программно не испортит. А вот с уникальностью - проблема. Достаточно скопировать чертеж или сохранить под другим именем и уникальность пропадает.
-
Достаточно скопировать чертеж или сохранить под другим именем и уникальность пропадает
В моем случае это даже не страшно - если при этом не меняется содержимое. Если меняется содержимое (есть такие умельцы - копируют файл, очищают и начинают в нем новую работу), то это уже проблема пользователя. Я в принципе не могу предусмотреть все возможные варианты издевательств над файлом, да и "важность" этой возможности в моей функции не будет столь великой, чтобы так "запариваться" =)
В общем - остановлюсь на варианте собственноручной пометки файла. Всем спасибо за участие в обсуждении