Аватар для Arkanit
2 / 2 / 0
Регистрация: 17.04.2015
Сообщений: 37

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

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

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

acadApp.Visible = True
Необработанное исключение типа "System.Runtime.InteropServices.COMExcep tion" в 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2015, 23:38
Ответы с готовыми решениями:

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

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

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

6
 Аватар для Юпатов Дмитрий
1719 / 1206 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
05.06.2015, 08:14
как-то так...
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
 Аватар для Юпатов Дмитрий
1719 / 1206 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
05.06.2015, 08:29
Да, забыл написать - у меня 2005 автогад. Хотя не думаю, что это принципиально.
И еще - у тебя в автокаде нет надстроек, которые на старте грузятся долго? Например, похожая ошибка возникает при установленном CadMech. Я это обошел так - сначала руками запустил автокад, а потом второй экземпляр запустил уже программно. Прошло.
0
 Аватар для Arkanit
2 / 2 / 0
Регистрация: 17.04.2015
Сообщений: 37
05.06.2015, 14:52  [ТС]
Пробовал написанное тобой.
На строку
D
VB.NET
1
im acadApp As Autodesk.AutoCAD.Interop.AcadApplication
Выдает
Тип "Autodesk.AutoCAD.Interop.AcadApplicatio n" не определен.
На
VB.NET
1
 Dim acadDoc As Autodesk.AutoCAD.Interop.AcadDocument
то же самое.

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

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

а вот Autodesk.AutoCAD.Interop.Common не нашлось )
0
 Аватар для Юпатов Дмитрий
1719 / 1206 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
05.06.2015, 16:00
Хм... что же они там в новых-то наковыряли...
А что хелп автокадовский в части программирования говорит? Не может быть, чтоб его вырезали из пакета.
0
 Аватар для Arkanit
2 / 2 / 0
Регистрация: 17.04.2015
Сообщений: 37
05.06.2015, 22:44  [ТС]
Хз.
про взаимодействие с другими программами ничего не говорит, молчит сараза.
Попробую Более старый поставить. Может поможет )
0
 Аватар для Юпатов Дмитрий
1719 / 1206 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
06.06.2015, 20:49
глянь тут проект. Не мой. Но на скрине привязка именно к 2014
Там, конечно VBA, но не важно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2015, 20:49
Помогаю со студенческими работами здесь

Не получается скачать AutoCAD 2014 для студентов для windows XP
Друзья! Я студент и хочу скачать AutoCAD 2014 для студентов. Зарегался тут http://www.autodesk.com/education/home , сделал всё,...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru