|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
26.05.2014, 00:58 | #1 | |
VB.Net Кто разобрался с подшивками AutoCAD, помогите экспортировать данные из подшивки!
Регистрация: 22.08.2012
Сообщений: 28
|
||
Просмотров: 10926
|
|
||||
Подшивки в основном прошли мимо меня. Но зато с ними разбирался Андрей Бушман. Спроси у него на форуме Сообщества программистов Autodesk в СНГ
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Один из вариантов ( решение в лоб, как говориться):
1. Подшивка лежит в корневой папке проекта (предполагаем, что пользователей научили не копировать бездумно файлы подшивки куда попало). Тогда методом AcSmDatabase.GetFileName() получаем имя файла самой подшивки. Оттуда легко получить имя корневой папки проекта. 2. Пробегаемся по подшивке, находим листы (AcSmSheet, не забываем обрабатывать субнаборы вложенных листов AcSmSubset). Далее методом AcSmSheet.GetLayout().GetFileName() получаете имя *.dwg файла, в котором содержится Layout данного листа подшивки. Из полученного имени *.dwg получаем путь, "вычитаете" корневую папку проекта и получаете имя вложенной папки, в которой находиться файл *.dwg с данным листом. P.S. Что-то меня терзают смутные сомнения, что поскольку не вижу нормальной обработки AcSmSubset. А точнее - вообще не вижу обработки. Получили имя субнабора листов - а листы кто будет в субнаборе обрабатывать? А если вложенные AcSmSubset? И что за конструкции: разве метод GetName не возвращает строку сразу? И огульно блокировать БД подшивки, даже не проверив ее текущее состояние блокировки - тоже не очень хорошо. И зачем блокировать - собираетесь что-то модифицировать в БД подшивки? |
|||
|
||||
Регистрация: 22.08.2012
Сообщений: 28
|
Спасибо за ответ, Сергей812
Цитата:
честно говоря еще не разобрался в какой тип переменной выдает значения при Get... потому везде и перевожу, чтоб небыло ошибок... Да, собираюсь ее изменять... Делать резервные копии альбомов, копировать альбомы в другую подшивку и всякие другие мелочи... |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Ну вот, с трудом отучаешь людей копировать подшивки с других проектов, учишь создавать по шаблону новую подшивку для каждого раздела - и тут же хотят реализовать эти же грабли программно, насколько понимаю)
Есть же методы создания подшивки по шаблону AcSmSheetSetMgr.CreateDatabase, добавления листов addSheet и импортирования ImportSheet, создания субнабора CreateSubset для последующего заполнения листами и т.д. Да и насколько понимаю, методов работы с отображаемым в менеджере подшивок содержимым подшивки так и не появилось - т.е. в какой последовательности импортируете/вставляете листы в подшивку и субнаборы - так и будет отображаться. Т.е лучше сначала сформировать данные для заполнения подшивки вне ее - и потом сразу залить уже сформированную структуру в созданную по шаблону новую подшивку. Последний раз редактировалось Сергей812, 06.06.2014 в 23:06. |
|||
|
||||
Регистрация: 22.08.2012
Сообщений: 28
|
Цитата:
Например : Есть подшивка с большим количеством альбомов по одному объекту, и нужно определенные листы (альбомы) скопировать в другую существующую подшивку по другому объекту... Чтоб заполнились штампы в чертежах после импорта в новую подшивку... Сейчас это делается так - скопировать все файлы в новое место, переподшить все листы, перенумеровать, переназвать листы... когда это 5 листов - все ок.... а когда 100 - тогда пол дня работы, с учетом работы сервера и сети... Либо, например, нужно СРОЧНО отправить определенные чертежи в DWG. чтоб не искать их по серверу, а просто отметил какие листы нужны в dwg и они сформировались в определенной папке... гдето так.... |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Понятно. Т.е. простенькая система документооборота на основе подшивки. Тогда, думаю, вам поможет в какой то мере статья от Kean.
|
|||
|
||||
Регистрация: 22.08.2012
Сообщений: 28
|
Цитата:
В принципе по такому пути и иду... но только вот у них красивые картинки, а когда реально прорабатываешь - не все так красиво. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
У меня были мысли о "расширенной" подшивке, которая интегрирует в одно целое word, dwg и pdf - чтобы сами вставлялись шифры, фамилии и сканы подписи в штампы word и dwg, список чертежей из подшивки, список нормативки и т.д. В принципе, через Interop.Word можно делать фактически все, что и во встроенном в офис VBA. Но поскольку задача весьма трудоемкая, то было сделана полностью лишь первая часть - шаблоны dwg и word с полями. Тяжело объяснять необходимость потратить энное время/средств на организацию работы сейчас и получить эффект экономии и отдачу средств только через полгода с менеджерами, которые своими руками ни одного проекта не выпустили нормального)
|
|||
|
||||
Регистрация: 22.08.2012
Сообщений: 28
|
Аналогично. Потому и решаю пока мелкие задачи. Которые ЯВНО видно... так как переподшить комплект из 90 листов - нужно гдето пол дня... а так 5 мин...
А Твою задачу я б вообще не завязывал на подшивки, скорей всего. А просто написал бы утилиту учета... которая решала б эти вопросы. так как Функционал подшивки ограничен и Word и PDF туда не завяжешь... А так создать свою прогу, по аналогу с подшивки с возможностью работы с разными файлами - реально... но опять же... время / цена... |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Подшивка являлась бы одной из составляющих - для управления dwg контентом. А так фамилии те же из доп. полей подшивки выдернуть, вставить в таблицу штампа в колонтитуле word, попытаться найти в заданной папке файл "%фамилия%.bmp" (картинка с подписью) - если есть, вставить в соседнюю клетку штампа. Т.е. связка: синхронизирующая утилита + подшивка как хранилище информации. PDF-ки с ТЗ и т.д. можно даже и не включать. Это самый простой и дешевый вариант.
Можно немного извратиться и сделать общий файл (тот же xml) с указанием названия и адреса объекта, базовой части шифра + список: раздел/шифр раздела/исполнитель/проверяющий (выбирается все из выпадающих списков) и дополнительную программку с полями на форме для заполнения этого xml. И за правильность этой информации тогда будет отвечать руководитель проекта, и синхронизирующая утилита будет выдергивать по имени папки раздела проекта всю нужную инфу для заполнения подшивки и вордовских документов (кроме названий самих чертежей). |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
В автокаде в штампе динамический блок у меня сделан: фамилии и подписи полилиниями - и завязано на ручку видимости на текущий момент. Картинки - это в word вставлять) Только пока так и не понял-можно ли картинку вставить в поле в word или только текст (чтобы не лазать по колонтитулам и таблицам в нем, а забил значения в пользовательские свойства документа и обновил поля в документе). Сейчас пока только шифры в свойствах и полях реализованы в шаблонах, а также дата выпуска и стартовый номер сквозной нумерации.
А вставка шифра в пользовательское поле word, обновление полей, вставка картинок и текста непосредственно в таблицы в колонтитулы уже было опробовано на VBA в свободное от проектирование время. Думаю, что перенести на Interop.Word - это больше вопрос времени и необходимости, для Excel уже был опыт практической реализации. Так что осталось опробовать работу с пользовательскими полями в подшивке (пока как то руки не дошли до них - только со стандартными) - и минимальный функционал для реализации расширенной подшивки в наличии.. только вышестоящему начальству это неинтересно - ему бы купить оборудование на монтаж подешевле и впарить заказчику с наценкой.. а заниматься организацией проектного направления или хотя бы выделять время и средства на это - это баловство А заказчики все "борзеют" по срокам исполнения, объемам работ - но пока проектный отдел еще успевает выпускать проекты хотя бы с вменяемыми опозданиями по срокам - просто бесполезно пытаться достучаться до "мозга" руководства с подобными вещами) ----- добавлено через ~1 ч. ----- Файл AU09_SpeakerHandout_CP318-4.docx в Google поищете - попадание в яблочко по вашей теме, по моемому) |
|||
|
||||
Регистрация: 22.08.2012
Сообщений: 28
|
Достучаться лишь можно тогда, когда сорвешь пару крупных объектов... и потом начнут задумываться "Почему же так..."
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему подставляются данные из другой подшивки. | eleron | AutoCAD | 7 | 22.09.2012 22:31 |
Информация по идентификационным кодам программ в сетевых лицензиях Autodesk | KSI | AutoCAD | 1 | 14.09.2009 15:59 |