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

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

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

Ответ
Поиск в этой теме
Непрочитано 09.10.2009, 17:34
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.
Просмотров: 13410
 
Непрочитано 14.11.2012, 17:20
#21
hwd

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


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

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


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

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Можно - создать функцию и sendcommand ..., либо придумать куда класть параметры и возрат и либо команду через- тот-же sendcommand, либо реактор на произвольное событие автокада(которое генерируется из вне) - более надежный способ (я предпочитаю второй).
Когда будет пригоден к использованию AcCoreConsole.exe - он будет более предпочтителен в подобных случаях, т.к. работает намного быстрее acad.exe (во всяком случае быстрее запускается). Интересно, доработают его в 2014-й версии, или нет, а так же появится ли к нему API...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 14.11.2012, 17:57
#24
Дима_

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Когда будет пригоден к использованию AcCoreConsole.exe - он будет более предпочтителен в подобных случаях
Я его в живую так и не посмотрел, а например, тот-же CapturePreviewImage он поддерживает (то есть если в него соотв. сборку которая экран в окно выводит загрузить - работать будет?) - если будет время - проверь пжл - у меня 2013 "кончился".
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 14.11.2012, 17:58
#25
hwd

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
CapturePreviewImage
Это что?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 14.11.2012, 22:20
#26
Дима_

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


Цитата:
Сообщение от hwd Посмотреть сообщение
CapturePreviewImage
Это что?
Offtop: Не ожидал услышать такое от Вас - метод документа.
Ну например, хочу я быстро и пакетно параметрически рисовать в автокаде и решил исползовать для этого AcCoreConsole, но так-же хочу и приложить к рисунку эскиз:
Код:
[Выделить все]
 #r "c:/program files/autocad 2010/acmgd.dll"
#r "c:/program files/autocad 2010/acdbmgd.dll"
open System
open System.Windows.Forms
open Autodesk.AutoCAD.ApplicationServices
open Autodesk.AutoCAD.Runtime

let f=new Form(TopMost=true, Visible=true,ControlBox=false)

[<CommandMethod "ShowScreen">]
let SS()=
  f.BackgroundImage<-Application.DocumentManager.MdiActiveDocument.CapturePreviewImage(uint32(f.ClientSize.Width),uint32(f.ClientSize.Height))
Вот набросал на скорую руку - для проверки - выводит содержимое окна (даже если оно скрыто - проверенно) на просмотр в свое окно (ну а на самом деле может выводить и в файл или куда отсылать - не суть), вопрос будет ли такое чудо работать из-под консоли (и если будет то насколько быстрее чем в родном исполнении).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.11.2012, 00:26
#27
hwd

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
вопрос будет ли такое чудо работать из-под консоли
У меня для WinForms не заработало - идёт исключение, завершающее работу приложения. Если комментирую код создания формы - начинает работать. Назначение AcCoreConsole как раз в том, чтобы выполнять задачи БЕЗ диалоговых окон. Загружается AcCoreConsole гораздо быстрее, чем acad.exe, например у меня - секунду, может даже меньше.

P.S. А вот WPF окно открылось без проблем... Но открывать его нужно модальным, иначе сразу после открытия ты потеряешь контроль над ним, т.е. будешь видеть, кликать по нему, но ничего происходить не будет и закрыть уже не сможешь, т.к. окно не реагирует.

Скрин документа с помощью WPF для AcCoreConsole получить так же не удаётся - приложение завершает работу с ошибкой. Код такой:
Код:
[Выделить все]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using acad = Autodesk.AutoCAD.ApplicationServices.Application;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using System.Windows;
using System.Windows.Media;
using System.Windows.Interop;
using System.Drawing;
using System.Windows.Media.Imaging;

namespace CapturePreviewImage {
    public class Class1 {
        [CommandMethod("test")]
        public void Test() {
            Document doc = acad.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;
            ed.WriteMessage("File: {0}", doc.Name);
            Window win = new Window() { Width = 100, Height = 100, Title = "Hello World" };
            win.WindowStartupLocation = WindowStartupLocation.CenterScreen;
            ImageBrush img = new ImageBrush();
            Bitmap bm = acad.DocumentManager.MdiActiveDocument
                .CapturePreviewImage((uint)win.Width, (uint)win.Height);
            img.ImageSource = Imaging.CreateBitmapSourceFromHBitmap(bm.GetHbitmap(),
                IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
            win.Background = img;
            acad.ShowModelessWindow(win);
        }
    }
}
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 15.11.2012 в 01:01.
hwd вне форума  
 
Непрочитано 15.11.2012, 10:49
#28
Дима_

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


Цитата:
Сообщение от hwd Посмотреть сообщение
У меня для WinForms не заработало - идёт исключение, завершающее работу приложения. Если комментирую код создания формы - начинает работать.
Как уже писал проверить не могу по причине отсутсвия (надо искать какой-либо компутер-жертву куда его можно поставить т.к. у меня он "кончился" а заниматься чисткой и др неправоправными действиями с некоторых пор считаю моветоном - в общем не вариант Offtop: хотя когда-то, именно я, при помощи Sourcer&TurboDebager, а позже SoftIce...), но хочу уточнить - точно-ли падает из-за WinForms окон (какое ему дело какие "внешние" библиотеки запустил плагин?) Скорее при попытке установки фона (точнее при его получении) - и произойдет "падение". Ибо я подозреваю, что из-под CoreConsole будут работать (из автокадовских) только классы из AcCoreMgd.dll
p.s. оба-на - а consle-то и после "срока" работает (чего я раньше не догадался) - сейчас проверю все...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.11.2012, 10:56
#29
hwd

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
надо искать какой-либо компутер-жертву
Решил заюзать мой?
Цитата:
Сообщение от Дима_ Посмотреть сообщение
и др неправоправными действиями с некоторых пор считаю моветоном
Виртуальные машинки никто не отменял, VirtualBox бесплатен. Установить на него триальную версию софта не сложно (при желании).
Цитата:
Сообщение от Дима_ Посмотреть сообщение
точно-ли падает из-за WinForms окон (какое ему дело какие "внешние" библиотеки запустил плагин?) Скорее при попытке установки фона (точнее при его получении) - и произойдет "падение". Ибо я подозреваю, что из-под CoreConsole будут работать (из автокадовских) только классы из AcCoreMgd.dll
У меня нет времени на подобные тестирования, да и смысла я в этом не вижу, откровенно говоря.
Цитата:
p.s. оба-на - а consle-то и после "срока" работает
Думаю, что после твоего сообщения найдутся "добрые люди", которые сообщат об этом Autodesk'у - тот мигом пофиксит это, ведь сие есть потенциальная возможность потери денег
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 15.11.2012, 11:10
#30
Дима_

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Решил заюзать мой?
Offtop: Да ладно не ворчите
В общем если кому интересно - ихмо действительно так (WinForms у меня прекрасно показался) и юзать можно только-то что есть AcCoreMgd.dll.
Цитата:
Думаю, что после твоего сообщения найдутся "добрые люди", которые сообщат об этом Autodesk'у - тот мигом пофиксит это, ведь сие есть потенциальная возможность потери денег
А зачем его фиксить?? - скорее наоборот ADN'овцам через пару версий скажут вот вам для разработки отдельная консольная версия лежит для свободного скачивания - в ней и кочевряждесь (т.к. откровенно кроме разработчиков она больше никому не нужна) - будет такой кодек dwg-файлов (посмотреть нельзя, но пощупать можно).
__________________
Когда в руках молоток все вокруг кажется гвоздями.

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


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


Цитата:
Сообщение от hwd Посмотреть сообщение
См. пост №3.
Ты можешь у автора по почте узнать, что он использовал. Подозреваю, что именно то, что указано в #3.
По результатам общения выяснил, что автор каким-то образом напрямую потрошит(но не говорит как) подшивку. Наверное разгадал кодировку... Он предложил купить у него конвертер подшивка-в-xml и пользоваться им
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 28.11.2012, 15:22
#32
hwd

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


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
Он предложил купить у него конвертер подшивка-в-xml и пользоваться им
Пять европейских рублей - вполне доступная, указанная автором цена.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 28.11.2012, 15:41
#33
Сергей Богатов


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


Цитата:
Сообщение от hwd Посмотреть сообщение
Пять европейских рублей - вполне доступная, указанная автором цена
Согласен, но вводить промежуточное звено, да ещё и "чёрный ящик" не хочется... Пойдём другим путём
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 28.11.2012, 15:43
#34
hwd

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


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
да ещё и "чёрный ящик" не хочется... Пойдём другим путём
Т.е. Windows в ведро и будешь пользоваться Linux?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 28.11.2012, 16:11
#35
Сергей Богатов


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


Offtop:
Цитата:
Сообщение от hwd Посмотреть сообщение
Т.е. Windows в ведро и будешь пользоваться Linux?
ага
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 28.11.2012, 17:01
#36
SLADE

проектировщик-новобранец
 
Регистрация: 14.09.2005
Minsk
Сообщений: 324


Интересно что именно его прога выдает из подшивки в эксель
SLADE вне форума  
 
Непрочитано 28.11.2012, 17:04
#37
hwd

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


Цитата:
Сообщение от SLADE Посмотреть сообщение
Интересно что именно его прога выдает из подшивки в эксель
что мешает скачать и посмотреть?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Доступ к SheetSet из EXEL-приложения.



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