VBA. Доступ к SheetSet из EXEL-приложения.
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Доступ к SheetSet из EXEL-приложения.

VBA. Доступ к SheetSet из EXEL-приложения.

Ответ
Поиск в этой теме
Непрочитано 09.10.2009, 17:34 #1
VBA. Доступ к SheetSet из EXEL-приложения.
Vladmart
 
Регистрация: 09.10.2009
Сообщений: 9

Подскажите, плз, как добраться до SheetSet из Exel - приложения.
-----------------------------------------------
Код:
[Выделить все]
Dim objApp As AcadApplication
Dim objAcadAcSm As AcSmSheetSetMgr
 
Set objApp = GetObject _
(, "AutoCAD.Application.18")
If Err Then
Err.Clear
Set objApp = CreateObject _
("AutoCAD.Application.18")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
 
Set objAcadAcSm = New AcSmSheetSetMgr
'-----------------------------------------------
'выдает сообщение "the specified modul could not be found"
'-----------------------------------------------
Dim objApp As AcadApplication
Dim objAcadAcSm As AcSmSheetSetMgr
 
Set objApp = GetObject _
(, "AutoCAD.Application.18")
If Err Then
Err.Clear
Set objApp = CreateObject _
("AutoCAD.Application.18")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
 
Set objAcadAcSm = CreateObject("AcSmComponents.AcSmSheetSetMgr")
'-----------------------------------------------
'выдает сообщение "ActiveX component can't create object"
В AutoCAD MEP первый вариант работает, но нужно достучаться из Exel, т.к. большая часть работы производится в Exel.

Последний раз редактировалось Кулик Алексей aka kpblc, 09.10.2009 в 21:15.
Просмотров: 13407
 
Непрочитано 12.11.2012, 09:40
#2
Сергей Богатов


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


Джентльмены! Пардон за некропостинг, но у меня схожая проблема. Нужен доступ к компонентам подшивки из внешнего приложения (без автокада). Много читал - вроде бы нельзя. Но как-то же получилось у http://www.jtbworld.com/SSMPropEditor.htm
Помогите!
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 12.11.2012, 10:29
#3
hwd

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


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
как-то же получилось у http://www.jtbworld.com/SSMPropEditor.htm
Я предполагаю, что у него получилось не без этого.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 12.11.2012, 10:56
#4
Сергей Богатов


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


Цитата:
Сообщение от hwd Посмотреть сообщение
Я предполагаю, что у него получилось не без этого.
Может быть, но хотелось бы конкретики
Offtop: P.S.
Интересно, а есть членство в ODA бесплатное?
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 12.11.2012, 12:47
#5
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
Нужен доступ к компонентам подшивки из внешнего приложения
Просто интересно - а зачем сие действие ?
maratovich вне форума  
 
Непрочитано 12.11.2012, 12:48
#6
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Интересно, а есть членство в ODA бесплатное?
250$ и заветный код будет у Вас в кармане
Offtop: Не забудьте выложить в download этого форума

Последний раз редактировалось kp+, 12.11.2012 в 12:54.
kp+ вне форума  
 
Непрочитано 12.11.2012, 13:19
#7
Сергей Богатов


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


Цитата:
Сообщение от maratovich Посмотреть сообщение
Просто интересно - а зачем сие действие ?
Есть такое слово "нужно"...
Задача: организовать связь подшивки с внешней БД не запуская Автокад
Или даже запуская, но из внешнего приложения (отдельный .exe или через макрос Excel)
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 13.11.2012, 03:50
#8
Sta1917

геодезист
 
Регистрация: 21.03.2009
Санкт-Петербург
Сообщений: 67


В Office есть подключаемые библиотеки AutoCAD 20xx Type Library и AutoCAD Focus Control for VBA Type Library, может через них уважаемые программисты доберутся до подшивки?
Sta1917 вне форума  
 
Непрочитано 13.11.2012, 19:26
#9
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от Sta1917 Посмотреть сообщение
может через них уважаемые программисты доберутся до подшивки?
Даже если доберусь, дальше то что ? Дальше тупик под названием
Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
"нужно"
maratovich вне форума  
 
Непрочитано 13.11.2012, 20:07
#10
Sta1917

геодезист
 
Регистрация: 21.03.2009
Санкт-Петербург
Сообщений: 67


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
Нужен доступ к компонентам подшивки из внешнего приложения.
Возможно "нужно" автозаполенние полей свойств подшивки из внешней БД (типа Excel). Ждем TC с пояснениями.

Последний раз редактировалось Sta1917, 13.11.2012 в 22:48.
Sta1917 вне форума  
 
Непрочитано 14.11.2012, 09:21
#11
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Sta1917 Посмотреть сообщение
из внешней БД (типа Excel)
БД, СУБД и Excel - "это 4 разных человека"
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 14.11.2012, 14:36
#12
Сергей Богатов


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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
БД, СУБД и Excel - "это 4 разных человека"
Ситуация описана в 1 посте. Нужно просто обратиться к подшивке. Откуда угодно кроме Автокада. Из VBA (Excel,Access) или экзэшника сделанного на VB.NET
P.S.
Что хочется делать(глобально) описано в http://forum.dwg.ru/showthread.php?t=89774 (см. мои посты)

P.P.S.
Если интересно, то вот задача - есть подшивка автокада (.dst файл). Нужен экзешник при запуске которого через диалог можно поменять параметр подшивки "Description". Желательно без установленного автокада. Можно и с ним
P.P.P.S.
С исходниками естественно
__________________
Я-проектировщик бывший проектировщик!

Последний раз редактировалось Сергей Богатов, 14.11.2012 в 14:49.
Сергей Богатов вне форума  
 
Непрочитано 14.11.2012, 14:45
#13
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Мне вот так и не ясно есть ли автокад на машине или нет (т.к. если его нет, то тут без участия в альянса dwg-открываетлей дело туго), а если он все-же есть, но просто запускать его надо снаружи (и, возможно, спрятанно от посторонних глаз) - так это уже совсем другой вопрос.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 14.11.2012, 14:51
#14
Сергей Богатов


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


Автокад есть, но обработка должна произойти не из автокада. Проблема в том, что код работающий внутри VBA-проекта автокада и .NET сборки даёт сбой при обращении к менеджеру подшивки если запускать его "снаружи".

Я сделал обработку БД(в Эксель) из Автокада, но это неудобно. Нужно чтоб было отдельное приложение которое читает из БД(пока в Экселе, но это временно) и напрямую(пусть и с запуском Автокада) пишет в подшивки

PS
по ссылке схожее обсуждение(на английском)
http://forums.autodesk.com/t5/NET/ex...e/td-p/3135796

Цитата:
I am afraid that the error indicates that you cannot use acsmcomponents18.dll outside AutoCAD (e.g. cannnot use it in your stand-alone exe).
Цитата:
Thanks to Norman for pointing this out.
Yes. this COM API is only in-process and cannot be accessed through an external exe.
__________________
Я-проектировщик бывший проектировщик!

Последний раз редактировалось Сергей Богатов, 14.11.2012 в 15:08.
Сергей Богатов вне форума  
 
Непрочитано 14.11.2012, 15:15
#15
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Самое простое - скрыто запустить автокад, а в нем загрузить и выполнить
Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
код работающий внутри VBA-проекта автокада и .NET сборки
, закрыть обработанный файл (а автокад можно и не закрывать до конца программы - вдруг еще понадобиться). У меня подобное где-то валялось (для генерации больших прьевъюшек рисунков с занесением их (точнее путей к ним) как раз в БД.)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 14.11.2012, 15:23
#16
Сергей Богатов


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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Самое простое - скрыто запустить автокад, а в нем загрузить и выполнить
Цитата:
Сообщение от Сергей Богатов
код работающий внутри VBA-проекта автокада и .NET сборки

, закрыть обработанный файл (а автокад можно и не закрывать до конца программы - вдруг еще понадобиться). У меня подобное где-то валялось (для генерации больших прьевъюшек рисунков с занесением их (точнее путей к ним) как раз в БД.)
Запустить автокад скрыто и обработать например .dwg не проблема. Но обращение к менеджеру подшивок заканчивается аварийным сообщением. Я тоже думал что это тривиальная задача, но оказалось это не так Поэтому пока не попробуешь - не узнаешь что это такое
PS
Я как говорит"догнал" Это не то решение(выделил красным) которое хочется видеть.
Всё-таки хочется по-нормальному... Чтоб обратился к объекту, обработал, закрыл...
Но лучше чем ничего
__________________
Я-проектировщик бывший проектировщик!

Последний раз редактировалось Сергей Богатов, 14.11.2012 в 16:23.
Сергей Богатов вне форума  
 
Непрочитано 14.11.2012, 16:43
#17
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
Это не то решение(выделил красным) которое хочется видеть.
...
Но лучше чем ничего
С этим согласен, но набезрыбье и ...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 14.11.2012, 17:01
#18
Сергей Богатов


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


Offtop: Тогда следующий вопрос. Можно ли сделать такую процедуру в VBA(или .NET) чтоб можно было вызывать их из внешнего приложения с параметрами? типа RunMacro("имямакро(параметр1,параметр2,...)")
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 14.11.2012, 17:12
#19
hwd

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


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
Автокад есть, но обработка должна произойти не из автокада.
Насколько мне известно, работать с подшивками можно только из Автокада.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 14.11.2012, 17:18
#20
Сергей Богатов


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


Цитата:
Сообщение от hwd Посмотреть сообщение
Насколько мне известно, работать с подшивками можно только из Автокада.
см. пост №2.
Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
Много читал - вроде бы нельзя. Но как-то же получилось у http://www.jtbworld.com/SSMPropEditor.htm
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Доступ к SheetSet из EXEL-приложения.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ObjectARX. Расчленение и удаление proxy-объектов Profan Готовые программы 293 08.04.2024 09:37
Как получить доступ к вложенным блокам из VBA? vicont-s Программирование 3 25.04.2009 23:29