Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 17.04.2015
Сообщений: 37
1

Открыть AutoCad 2014 и создать в нем трехмерную фигуру

04.06.2015, 23:38. Показов 3241. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Моя задача состоит в том чтобы создать в VB приложение, которое после нажатия кнопки откроет AutoCad (в моем случае 2014) и создаст там трехмерную фигуру, по параметрам предварительно считанным из TextBox'ов.
Теперь проблема:
При запуске, через кнопку на панели инструментов возникает ошибка:

acadApp.Visible = True
Необработанное исключение типа "System.Runtime.InteropServices.COMException" в mscorlib.dll
Дополнительные сведения: Вызов был отклонен. (Исключение из HRESULT: 0x80010001 (RPC_E_CALL_REJECTED))
Если запустить через Ctrl+F5 то следующее:
AppActivate("AutoCAD")
Process unknown "AutoCAD"

толкового обьяснения не нашел. На странице с заданием такое:
" Для управления AutoCAD необходимо подключить к проекту библиотеку AutoCAD. Для этого выберите кнопки меню Project>Add Reference... , раздел COM и отметьте флажок AutoCAD 2000 Object Library:" , НО
1) там используется AutoCad 2000.
2) Среди списка библиотек у меня Object Library не нашлось. Поэтому я добавил все которые имеют в названии AutoCad.

Фрагмент кода.

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Public Class Form1
 
    Dim acadApp As Object
    Dim acadDoc As Object
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Считывание параметров из TextBox в файл обмена
 
        Dim FPath1 As String
        FPath1 = "d:\AutoCad\P\a.txt"
 
        Dim FNum1 As Integer
        FNum1 = FreeFile()
        'Открытие файла a.txt
        FileOpen(FNum1, FPath1, OpenMode.Output)
 
        Dim strA As String
        strA = TextBox1.Text
        PrintLine(FNum1, strA)
        strA = TextBox2.Text
        PrintLine(FNum1, strA)
        strA = TextBox3.Text
        PrintLine(FNum1, strA)
        FileClose(FNum1)
 
        'Запуск AutoCAD
     acadApp = CreateObject("AutoCAD.Application")
          [COLOR="Red"] acadApp.Visible = True
        AppActivate("AutoCAD") '- Активация окна "AutoCAD"
        acadDoc = acadApp.ActiveDocument[/COLOR]
        'С командной строки загружаются файлы и запускаются команды
        acadApp.ActiveDocument.SendCommand("(load ""d:/AutoCad/P/mod3d.lsp"") mod3d ")
        acadApp.ActiveDocument.SendCommand("(load ""d:/AutoCad/P/Pro3.lsp"") pro3 ")
 
        ' Обновляем AutoCAD
        acadApp.Update()
    End Sub
End Class
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2015, 23:38
Ответы с готовыми решениями:

Создать трехмерную фигуру с вращением в пространстве
Помогите создать трехмерную модель без сторонних библиотек. Сферу или тор, или что - то. Модель...

Построить на экране трехмерную фигуру
Прошу помощи в написании программы. Построить на экране трехмерную фигуру . При формировании...

Постоянные сбои при работе в AutoCAD 2014
Так как по корпоративным правилам есть только защитник Windows хочу проверить есть ли проблемы на...

Не получается скачать AutoCAD 2014 для студентов для windows XP
Друзья! Я студент и хочу скачать AutoCAD 2014 для студентов. Зарегался тут ...

6
1710 / 1198 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
05.06.2015, 08:14 2
как-то так...
VB.NET
1
2
3
4
5
6
7
8
9
10
11
Public Class Form1
    Dim acadApp As Autodesk.AutoCAD.Interop.AcadApplication
    Dim acadDoc As Autodesk.AutoCAD.Interop.AcadDocument
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        acadApp = New Autodesk.AutoCAD.Interop.AcadApplication
        acadApp.Visible = True
        acadDoc = acadApp.ActiveDocument
        'acadDoc.SendCommand("твой лисп")
        acadApp.Update()
    End Sub
End Class
Что подключить в ссылках проекта - см. рис.

"добавляем два" - можешь не делать, но когда напишешь строчку Dim acadDoc As Autodesk.AutoCAD.Interop.AcadDocument, студия сама тебе предложит это сделать.

Да, добавлю во избежание: лиспа не знаю, в объектной модели AutoCAD тоже ни в зуб ногой. Просто залез в C:\Program Files\AutoCAD 2005\Help и там открыл acadauto.chm
Миниатюры
Открыть AutoCad 2014 и создать в нем трехмерную фигуру  
1
1710 / 1198 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
05.06.2015, 08:29 3
Да, забыл написать - у меня 2005 автогад. Хотя не думаю, что это принципиально.
И еще - у тебя в автокаде нет надстроек, которые на старте грузятся долго? Например, похожая ошибка возникает при установленном CadMech. Я это обошел так - сначала руками запустил автокад, а потом второй экземпляр запустил уже программно. Прошло.
0
2 / 2 / 0
Регистрация: 17.04.2015
Сообщений: 37
05.06.2015, 14:52  [ТС] 4
Пробовал написанное тобой.
На строку
D
VB.NET
1
im acadApp As Autodesk.AutoCAD.Interop.AcadApplication
Выдает
Тип "Autodesk.AutoCAD.Interop.AcadApplication" не определен.
На
VB.NET
1
 Dim acadDoc As Autodesk.AutoCAD.Interop.AcadDocument
то же самое.

Вот какие библиотеки у меня подключены
Открыть AutoCad 2014 и создать в нем трехмерную фигуру

AutocadNetInterop.dll тоже есть.

а вот Autodesk.AutoCAD.Interop.Common не нашлось )
0
1710 / 1198 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
05.06.2015, 16:00 5
Хм... что же они там в новых-то наковыряли...
А что хелп автокадовский в части программирования говорит? Не может быть, чтоб его вырезали из пакета.
0
2 / 2 / 0
Регистрация: 17.04.2015
Сообщений: 37
05.06.2015, 22:44  [ТС] 6
Хз.
про взаимодействие с другими программами ничего не говорит, молчит сараза.
Попробую Более старый поставить. Может поможет )
0
1710 / 1198 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
06.06.2015, 20:49 7
глянь тут проект. Не мой. Но на скрине привязка именно к 2014
Там, конечно VBA, но не важно
0
06.06.2015, 20:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2015, 20:49
Помогаю со студенческими работами здесь

Создать трехмерную сферу из 80 треугольников
помогите создать трехмерную сферу шара из 80 тругольников.

Создать в окне трехмерную сцену
Помогите, пожалуйста написать программу на Паскале (FreePascal, TurboPascal). Выполнить задание с...

Как создать трехмерную базу данных
У меня возникла своеобразная проблема. Давайте представим, что есть таблица базы данных и на...

Нужно попадать из Access в AutoCAD, а если он он открыт - создавать в нем новый документ
Господа! Помогите плз. Необходимо попадать в AutoCAD, а если он он открыт, то создавать в нем новый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru