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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Свой обект в VBA Autokad ?

Свой обект в VBA Autokad ?

Ответ
Поиск в этой теме
Непрочитано 18.10.2006, 12:16 #1
Свой обект в VBA Autokad ?
dima27
 
Житомир
Регистрация: 18.10.2006
Сообщений: 6

Подскажите пожалуйста как создать свой обект в VBA ?
Заранее благодарен.
Просмотров: 3356
 
Непрочитано 18.10.2006, 13:50
#2
C1


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


Например так к уже зарегистрированному в реестре:
Код:
[Выделить все]
    Set acadApp = GetObject(, "AutoCAD.Application")
    If Err Then
        Err.Clear
        Set acadApp = CreateObject("AutoCAD.Application")
        If Err Then
            MsgBox Err.Description
            Exit Sub
        End If
    End If
Если именно свой объект в проекте, то вставить класс, например MyClass, потом описать его экземпляр MyObject
Код:
[Выделить все]
Dim MyObject as New MyClass
или
Код:
[Выделить все]
Dim MyObject as MyClass
и далее
Код:
[Выделить все]
Set MyObject = New MyClass
C1 вне форума  
 
Автор темы   Непрочитано 18.10.2006, 17:49
#3
dima27


 
Регистрация: 18.10.2006
Житомир
Сообщений: 6


Большое спасибо!!!
А как вставить свойства и методы ?
dima27 вне форума  
 
Непрочитано 18.10.2006, 17:56
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Никак. Эта задача в VBA нерешаема ИМХО. Прямая дорога в ObjectARX
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.10.2006, 19:12
#5
C1


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


Мне кажется все решаемо. Сделал простенький пример.
[ATTACH]1161184302.rar[/ATTACH]
C1 вне форума  
 
Непрочитано 19.10.2006, 08:30
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Так это создается экземпляр обычного класса, насколько я понимаю. Вроде бы и объект, но, может, не то? Из вопроса непонятно - может быть, человеку надо было вообще повторить поведение Project Studio, которая создает собственные объекты в AutoCAD.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 19.10.2006, 08:45
#7
dima27


 
Регистрация: 18.10.2006
Житомир
Сообщений: 6


Большое спасибо всем !!!

Я разобрался !!!!

Создается Class модуль и в нем прописываются свойства и методы.
Дальше обявляется обект класса и под него выделяется динамически память.
Единственная проблема = масивы и константы не могут быть типа Public
Поэтому приходится прописывать процедуры работы с ними.
dima27 вне форума  
 
Непрочитано 19.10.2006, 09:11
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Насчет работы с СОМ-объектами (а в данном случае можно говорить и о таком) посмотри на http://www.firststeps.ru/ - там очень много расписано.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2006, 22:23
#9
C1


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


Цитата:
Сообщение от dima27
Единственная проблема = масивы и константы не могут быть типа Public
Поэтому приходится прописывать процедуры работы с ними.
Могут, если описать их не в модуле класса, а в простом модуле. И из модуля класса их использовать. Это противоречит изоляции объектов, но вообще возможно.
C1 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Свой обект в VBA Autokad ?