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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Как начать писать на NET под Autocad2020

Как начать писать на NET под Autocad2020

Ответ
Поиск в этой теме
Непрочитано 05.03.2020, 17:01 #1
Как начать писать на NET под Autocad2020
veb86
 
Проектировщик электрических сетей
 
Пенза
Регистрация: 17.01.2014
Сообщений: 166

Здравствуйте!
Я разработал несколько инструментов на SharpDevelop под Bricscad 2014, сейчас условия труда у меня сменились и я сижу за Autocad2020. Подскажите какой VisualStudio надо скачать, и что еще нужно что бы пере компилировать свои наработки. Дайте пожалуйста связку программ.
Просмотров: 2671
 
Непрочитано 05.03.2020, 17:03
#2
Кулик Алексей aka kpblc
Moderator

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


ИМХО 2019 Community Edition вполне должно хватить
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.03.2020, 17:22
#3
румата


 
Регистрация: 06.04.2015
Сообщений: 1,127


Бесплатной версии VS2019 полностью хватит для программирования под AutoCAD. А вот для простого перекомпилирования своих наработок под Brics нужно будет полное совпадение объектных моделей ACAD и Bricscad, что маловероятно в принципе. Поэтому, скорее всего, будет нужно переписывать код или его части.
румата вне форума  
 
Непрочитано 05.03.2020, 17:25
#4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,247


под автокад на .NET можно и в SharpDevelop писать, VS тут как бы не обязательна, сам сначала SD пользовался, нормально было...
__________________
_бложиг
Boxa на форуме  
 
Непрочитано 05.03.2020, 17:28
#5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,204


Цитата:
Сообщение от Boxa Посмотреть сообщение
SharpDevelop
к сожалению, в 2016 завершилась разработка продукта.
Сергей812 вне форума  
 
Автор темы   Непрочитано 05.03.2020, 17:43
#6
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 166


Цитата:
Сообщение от румата Посмотреть сообщение
А вот для простого перекомпилирования своих наработок под Brics нужно будет полное совпадение объектных моделей ACAD и Bricscad, что маловероятно в принципе. Поэтому, скорее всего, будет нужно переписывать код или его части.
Не сомневаюсь что так и будет. Думаю разберусь.

Цитата:
Сообщение от Сергей812 Посмотреть сообщение
к сожалению, в 2016 завершилась разработка продукта.
Вот изза этого и хочу идти в сторону VS, очень расстроен SharpDevelop был легкий и удобный, и меня полностью устраивал.
А вообще меня напугали, сказали что VS2019 весит 40Гб, но для компилирования библиотек для автокада говорят достаточно облегченной версии. Хотел скачать обычную бесплатную версию. Может кто то точно знает как правильно установить VisualStudio без лишнего. И еще вроде бы SDK Autocad2020 нужна, подскажите где ее скачать.
veb86 вне форума  
 
Непрочитано 05.03.2020, 17:47
#7
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,247


Цитата:
Сообщение от veb86 Посмотреть сообщение
И еще вроде бы SDK Autocad2020 нужна, подскажите где ее скачать.
Тут: https://www.autodesk.com/developer-n...cense-download
__________________
_бложиг
Boxa на форуме  
 
Непрочитано 05.03.2020, 17:50
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,204


Цитата:
Сообщение от veb86 Посмотреть сообщение
А вообще меня напугали, сказали что VS2019 весит 40Гб,
может и больше - если все пакеты ставить Но вам то один шарп нужен

Цитата:
Сообщение от veb86 Посмотреть сообщение
И еще вроде бы SDK Autocad2020 нужна, подскажите где ее скачать.
можно тут
Сергей812 вне форума  
 
Непрочитано 05.03.2020, 17:53
#9
румата


 
Регистрация: 06.04.2015
Сообщений: 1,127


Цитата:
Сообщение от veb86 Посмотреть сообщение
А вообще меня напугали, сказали что VS2019 весит 40Гб...
Это если все поддерживаемые ЯПы и средства разработки устанавливать. А так, если средства разработки для одного только NetFramework там значительно меньше гигабайтов памяти потребуется
Цитата:
Сообщение от veb86 Посмотреть сообщение
И еще вроде бы SDK Autocad2020 нужна, подскажите где ее скачать.
В принципе можно и без нее обойтись, если автокад установлен на том же PC.
румата вне форума  
 
Непрочитано 05.03.2020, 18:09
#10
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,247


SDK Autocad2020 по честному и качать то не нужно... Nuget наше все =)
__________________
_бложиг
Boxa на форуме  
 
Автор темы   Непрочитано 06.03.2020, 08:43
#11
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 166


Извините, еще по мучаю общество. Начал устанавливать и офигел от количества компонентов. Есть вопросы, посмотрите достаточно ли того что я выбрал, что бы компилить модули под AutoCAD?
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 88
Размер:	112.5 Кб
ID:	223784
Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 64
Размер:	23.0 Кб
ID:	223785
veb86 вне форума  
 
Непрочитано 06.03.2020, 08:46
#12
Кулик Алексей aka kpblc
Moderator

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


Достаточно ИМХО. Остальное по мере надобности докинешь.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.03.2020, 08:51
#13
румата


 
Регистрация: 06.04.2015
Сообщений: 1,127


Цитата:
Сообщение от veb86 Посмотреть сообщение
...достаточно ли того что я выбрал, что бы компилить модули под AutoCAD?
По-моему, для разработки под ACAD2020 требуется версия NetFramework не ниже 4.7
румата вне форума  
 
Непрочитано 06.03.2020, 08:54
#14
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от румата Посмотреть сообщение
По-моему, для разработки под ACAD2020 требуется версия NetFramework не ниже 4.7
Ну, при подключении соответствующих библиотек студия сама об этом скажет
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.03.2020, 15:01
#15
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 166


Нужна помощь, вы меня запутали, нужна мне SDK Autocad2020 или нет? Я не планирую создавать ObkectARX.
Я поставил VS открыл свой проект, нашел в корне автокада нужные мне библиотеки: acdbmgb.dll, acdmgdbrep.dll , acmgd.dll.
Но столкнулся со странным поведением. компилятор ругается на обычные действия, такое чувство я еще что то не подключил.
Вот пример на что ругается:
Код:
[Выделить все]
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.Runtime
Imports System.Threading
Imports Autodesk.AutoCAD.Customization
Imports System.Windows

Public Shared acDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim pPtOpts As PromptPointOptions = New PromptPointOptions("") ''Promptfor the start point
что не так делаю, чего не хватает?
veb86 вне форума  
 
Непрочитано 06.03.2020, 15:19
#16
Кулик Алексей aka kpblc
Moderator

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


А ты что пишешь - команду или лисп-функцию? И где их объявления?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.03.2020, 15:19
#17
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,247


Это весть код?
А где класс? Где собственно метод команды?
Средь бела поля создавать переменные.... ну как бы компилятор прав.

Как то так это должно выглядеть...

Код:
[Выделить все]
Imports System
Imports App = Autodesk.AutoCAD.ApplicationServices
Imports cad = Autodesk.AutoCAD.ApplicationServices.Application
Imports Db = Autodesk.AutoCAD.DatabaseServices
Imports Ed = Autodesk.AutoCAD.EditorInput
Imports Gem = Autodesk.AutoCAD.Geometry
Imports Rtm = Autodesk.AutoCAD.Runtime

<Assembly: Rtm.CommandClass(GetType(ElectricalSceme.Commands1))>
Namespace ElectricalSceme
    Public Class Commands1
        <Rtm.CommandMethod("Commanda1")>
        Shared Public Sub Comanda()
            Dim doc As App.Document = App.Application.DocumentManager.MdiActiveDocument
            Dim db As Db.Database = doc.Database
            Dim ed As Ed.Editor = doc.Editor
        End Sub
    End Class
End Namespace
__________________
_бложиг
Boxa на форуме  
 
Автор темы   Непрочитано 06.03.2020, 15:22
#18
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 166


Код:
[Выделить все]
 ODA
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Geometry


Public Class Summator
	<CommandMethod("Summator")> _	
	Public Sub sumStart()
		
		'Получаем коллекцию элементов для суммирования
		Dim objectForSum As SelectionSet = GetCollectionObject()
		
		Dim settingAll As New settingXML
		settingAll = allFunc.getSettingAll()
		
		'Получаем масштаб чертежа на основе текста
		Dim mashtab As Double = analizMashtab.analizMashtab(objectForSum,settingAll.arrScale)
		
		Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
		Dim acCurDb As Database = acDoc.Database
		
		'Dim listLine As New List(Of propertyLine)
		'Dim newListLine As New List(Of propertyLine)
		
		
		Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
			
			' Цикл перебор всех элементов из коллекции элементов
			Dim textNumber As String 
			Dim summ As Double = 0
			For Each acSSObj As SelectedObject in objectForSum
				' Проверяет есть ли элементы в коллекции или нет
				textNumber = CType(0, String)
				If Not IsDBNull(acSSObj) Then
					
					Dim dMText As MText = TryCast(acTrans.GetObject(acSSObj.ObjectId, OpenMode.ForWrite), MText)
					
					If (Not dMText Is Nothing) Then
						textNumber = dMText.Text
						textNumber = textNumber.Replace(".", ",")
					End If
					
					Dim dText As DBText = TryCast(acTrans.GetObject(acSSObj.ObjectId, OpenMode.ForWrite), DBText)
						
					If (Not dText Is Nothing) Then
						textNumber = dText.TextString	
						textNumber = textNumber.Replace(".", ",")
					End If
				End If
				summ = summ + CType(textNumber, Double)
			Next 
			Dim acBlkTbl As BlockTable
		      acBlkTbl = TryCast(acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead), BlockTable)
				
		      '' Open the Block table record Model space for write
		      Dim acBlkTblRec As BlockTableRecord
		      acBlkTblRec = TryCast(acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite), BlockTableRecord)
		 
		      '' Create a single-line text object
		      Dim acText As DBText = New DBText()
		      acText.SetDatabaseDefaults()
		      
		      Dim pPtOpts As PromptPointOptions = New PromptPointOptions("")
 
			  '' Prompt for the start point
			  pPtOpts.Message = vbLf & "Выберите место для установки суммы: "
		      Dim pPtRes As PromptPointResult
		      pPtRes = acDoc.Editor.GetPoint(pPtOpts)
		      Dim ptStart As Point3d = pPtRes.Value
		      
		      acText.Position = ptStart
		      
		      acText.Height = 2.5 * mashtab
		      acText.TextString = CType(summ,String)
		 
		      acBlkTblRec.AppendEntity(acText)
		      acTrans.AddNewlyCreatedDBObject(acText, True)
		 
		      '' Save the changes and dispose of the transaction
		      acTrans.Commit()
 
			'searchLinePoint = newListLine
		End Using
		
	End Sub	
	
	
	
	Public Shared Function GetCollectionObject() As SelectionSet
		'' Get the current document and database
		
		Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
		Dim acCurDb As Database = acDoc.Database
		Dim acSSPrompt As PromptSelectionResult
		acSSPrompt = acDoc.Editor.GetSelection()
		'' If the prompt status is OK, objects were selected
		If acSSPrompt.Status = PromptStatus.OK Then
			GetCollectionObject = acSSPrompt.Value
		End If
	End Function
	
	
End Class
Ну вот пример сумматор обычный. В нем те же ошибки
Ругается еще на <CommandMethod("Summator")> _
Сейчас может по другому объявляют команды.
Писал сам, в основном копипастил с autocad-кого хелпа. Верой и правдой код работал лет 5
veb86 вне форума  
 
Непрочитано 06.03.2020, 15:32
#19
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,247


AcCoreMgd.dll ?
и пространство имен : Autodesk.AutoCAD.Runtime не подключено, там атрибут CommandMethod определен.
__________________
_бложиг
Boxa на форуме  
 
Автор темы   Непрочитано 06.03.2020, 15:36
#20
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 166


Цитата:
Сообщение от Boxa Посмотреть сообщение
AcCoreMgd.dll ?
Добавил стало лучше Но ошибок все равно куча, странных.
veb86 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Как начать писать на NET под Autocad2020

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, с чего начать изучения в сфере строительства/архитектуры. litxytxylb Прочее. Архитектура и строительство 13 03.12.2018 00:21
Нужен совет. Как решиться начать работать фрилансером. Roksan Профессии и трудовые отношения 225 28.04.2018 13:57
Что писать в разделе Энергоэффективность, если оборудования радиосвязи устанавливается в существующих зданиях взамен старого John1986 Прочее. Отраслевые разделы 20 29.11.2016 03:13
С чего начать? SIGMA777 Профессии и трудовые отношения 33 11.08.2013 22:10
С чего начать писать на C# под автокад? Yura Agafonov Программирование 9 31.05.2012 15:29