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

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

Ссылки в объектной модели AutoCAD

Ответ
Поиск в этой теме
Непрочитано 11.10.2012, 10:32 #1
Ссылки в объектной модели AutoCAD
sergeev_2005
 
Проектирование гражданских зданий
 
Санкт-Петербург
Регистрация: 25.03.2010
Сообщений: 90

Можно ли в объектной модели AutoCAD отыскать имена ссылок на файлы DWG с путями?
Надо в конкретном файле определить все имеющиеся ссылки с их адресами.

Последний раз редактировалось sergeev_2005, 11.10.2012 в 10:49.
Просмотров: 7076
 
Непрочитано 11.10.2012, 10:33
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


можно
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 11.10.2012, 10:49
#3
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


hwd, ответ исчерпывающий.
Тогда - второй вопрос в этой же теме: а как практически это сделать (вытащить имена файлов с путями из объектной модели)?
sergeev_2005 вне форума  
 
Непрочитано 11.10.2012, 10:50
#4
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
Тогда - второй вопрос в этой же теме: а как практически это сделать (вытащить имена файлов с путями из объектной модели)?
Объектная модель, она разной бывает. Уточни.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.10.2012, 10:58
#5
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
Надо в конкретном файле определить все имеющиеся ссылки с их адресами.
Поиск по "внешняя ссылка путь" на форуме пробовали?
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 11.10.2012, 12:49
#6
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


AutoCAD 2012 и 2013.
Что значит разные объектные модели.
М. б., станет ясно, если пояснить задачу.
Надо выявить все файлы, на которые есть ссылки, и скопировать их в одну отдельную папку.
Фактически то же, что сформировать комплект.
Только надо это сделать не в автокаде, а отдельной внешней программой.

Поиски по форуму пробовал, но не нашел. (может плохо искал, есть что-то созвучное, но не то).
sergeev_2005 вне форума  
 
Непрочитано 11.10.2012, 13:24
#7
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
AutoCAD 2012 и 2013.
Что значит разные объектные модели.
ObjectARX, ActiveX, .Net API.

Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
Только надо это сделать не в автокаде, а отдельной внешней программой.
В таком случае тебе не подойдёт ничего из указанного выше, и использовать нужно COM модель, создавая объекты на основе записей реестра (позднее связывание). В этом случае ты не будешь завязан на версию AutoCAD.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.10.2012, 13:36
#8
Александр Ривилис

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


Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
Только надо это сделать не в автокаде, а отдельной внешней программой.
И AutoCAD должен быть установлен.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 11.10.2012, 13:48
#9
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


Пояснили бы, как это сделать.
Я не программист (уровень начальный).
Самое большее, чего достиг:

uses
..., ActiveX, ComObj;
var
.........
ModelSpace, Acad: OleVariant;
implementation
begin
try
Acad := GetActiveOleObject('AutoCAD.Application');
except
Acad := CreateOleObject('AutoCAD.Application');
end;
Acad.visible := True;
Acad.ActiveDocument.SendCommand('.............');
и т. д.
sergeev_2005 вне форума  
 
Непрочитано 11.10.2012, 13:52
#10
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Теги оформления кода на форуме не просто так присутствуют... Отредактируй сообщение соответствующим образом.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.10.2012, 13:55
#11
Александр Ривилис

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


Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
Я не программист (уровень начальный).
Плохо. Тогда мы будем разговаривать на разных языках. Тем более, что на Delphi я не пишу совсем.
В любом случае через Acad.ActiveDocument.SendCommand у тебя ничего не получится
Задача по плечу только серьезному программисту и вполне возможно, что средств COM (это то, что ты пытаешься использовать) будет недостаточно.

P.S.: Вообще-то если тебя устраивает функциональность команды формкомплект (_ETRANSMIT), то ты можешь запустить через SendCommand её эквивалент в командной строке _.-ETRANSMIT (именно так с подчеркиваниями, минусом и точкой). Ну а с какими опциями запускать - это ты уж подбери сам.

Последний раз редактировалось Александр Ривилис, 11.10.2012 в 14:02.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 11.10.2012, 13:57
#12
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


hwd, ирония уместно среди профессионалов, а я таковым в этом вопросе не являюсь.
Ну, не нашел!!!

Александр Ривилис.
Спасибо. Конечно не SendCommand.
Мне казалось, что-то вроде "Text := ModelSpace.ExternalReference.name;"
Однако получаю сообщение, что метод не поддерживается.

Во всяком случае, спасибо всем.

Последний раз редактировалось sergeev_2005, 11.10.2012 в 14:04.
sergeev_2005 вне форума  
 
Непрочитано 11.10.2012, 13:59
#13
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
hwd, ирония уместно среди профессионалов, а я таковым в этом вопросе не являюсь.
Ну, не нашел!!!
При чём здесь ирония? Над полем, в котором ты набираешь текст, присутствуют кнопки. Не ленись, наведи мышку на них и во всплывающей подсказке получишь информацию какая для чего предназначена. Всё, далее без меня.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 11.10.2012, 14:13
#14
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


Как раз весь сыр-бор из-за того, что (_ETRANSMIT) не устраивает.
Если подгружаемые файлы не прошли полный аудит (а это не всегда можно сделать из-за прав доступа к папкам), то формирование комплекта через (_ETRANSMIT) часто подвешивает автокад на неопределенно долгое время.

Что касается оформления сообщений, то учту на будущее.
sergeev_2005 вне форума  
 
Непрочитано 11.10.2012, 15:46
#15
Александр Ривилис

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


Xref (ExternalReference) - это блоки (Block) у которых IsXref равно true. Но для твоей задачи этого совершенно недостаточно если сравнивать с командой _ETRANSMIT:
1) Как будешь обрабатывать вложенные внешние ссылки? Открывать рекурсивно все внешние ссылки в AutoCAD чтобы получить все пути?
2) Кроме внешних ссылок есть еще растры, подложки PDF, DWF, DGN и т.д.
3) Нужно найти и сохранить все используемые шрифты и файлы форм.
4) и т.д. и т.п.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 11.10.2012, 16:15
#16
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


Да...
Почему-то мне казалось, что считать текст из диспетчера внешних ссылок (там, где "Найден в ...") не такая уж и сложная задача.
sergeev_2005 вне форума  
 
Непрочитано 11.10.2012, 16:28
#17
Александр Ривилис

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


Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
Почему-то мне казалось, что считать текст из диспетчера внешних ссылок (там, где "Найден в ...") не такая уж и сложная задача.
1. Задача, как я догадываюсь, этим не ограничивается.
2. Причина в том, что:
Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
Я не программист (уровень начальный).
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 12.10.2012, 09:09
#18
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
1. Задача, как я догадываюсь, этим не ограничивается.
Ограничивается.
Шрифты и т.д. сохранять не надо, растры, как правило, тоже.
Дело в том, что:
1. Сотрудники фирмы часто берут работу на дом.
2. Файлы построены на ссылках с абсолютными путями нам сервер.
3. Ссылок много. Принцип формирования архитектурных планов: один файл - одна секция здания - один этаж.
4. Все файлы надо записать в одну папку.
5. Шрифты, формы и растры каждый раз таскать не надо. Если они и обновляются, то в исключительных случаях.

То есть, хотелось бы формировать комплект с ограниченными возможностями по сравнению с (_ETRANSMIT), но делать это быстро и надёжно.
sergeev_2005 вне форума  
 
Непрочитано 12.10.2012, 10:41
#19
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
Ограничивается.
Здесь размещён пример исходного кода, с помощью которого из чертежа рекурсивно извлекаются все внешние ссылки.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 12.10.2012, 11:43
#20
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


Спасибо!
sergeev_2005 вне форума  
 
Непрочитано 12.10.2012, 11:55
#21
Александр Ривилис

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


Только этот код не на Delphi и такой код использовать из внешнего приложения нельзя.
Александр Ривилис вне форума  
 
Непрочитано 12.10.2012, 12:31
#22
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Только этот код не на Delphi и такой код использовать из внешнего приложения нельзя.
Я забыл, что он из внешнего приложения это хочет делать.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Ссылки в объектной модели AutoCAD



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видеоуроки AutoCAD kosmax AutoCAD 173 17.02.2017 15:08
Создание поверности и 3d модели поверхности в AutoCAD Civil 3d 2009 Arhistratig Вертикальные решения на базе AutoCAD 25 07.05.2013 14:53
Привязка внешней ссылки (файл civil 2012) к файлу autocad 2007 koca AutoCAD 1 26.05.2012 21:07
Справка по объектной модели Autocad 2011 Apelsinov Программирование 1 01.12.2011 15:42