dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > "VB.net для чайников". Вопросы программирования под Autocad и ©.

"VB.net для чайников". Вопросы программирования под Autocad и ©.

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 13.12.2010, 10:58
"VB.net для чайников". Вопросы программирования под Autocad и ©.
AlexV
 
Инженер
 
С-Пб
Регистрация: 02.10.2008
Сообщений: 3,444

AlexV вне форума Вставить имя

Есть у нас популярная тема: Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) .. Есть, конечно, и это и, но хотелось бы иметь аналогичную возможность задавать тупые (для начала очень тупые) вопросы по VB.Net здесь..
Простейший пример из ссылки в теме про миграцию VBA - Net посмотрел..
Имеем проект - "библиотеку классов", с подключенными ссылками (на рисунке).



Имеем код, который при загрузке построенной dll-ки "добавляет" в автокад команду mAddPnt, создающую точку..
Код:
[Выделить все]
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Interop.Common
Public Class AdskCom
    Public ReadOnly Property ThisDrawing() As AcadDocument
        Get
            Return Autodesk.AutoCAD _
            .ApplicationServices.Application. _
            DocumentManager.MdiActiveDocument. _
            AcadDocument
        End Get
    End Property
    <Autodesk.AutoCAD.Runtime.CommandMethod("mAddPnt")> _
    Public Sub mAddPnt()
        On Error Resume Next
        Dim location(0 To 2) As Double
        location(0) = 5.0# : location(1) = 5.0# : location(2) = 0.0#
        location = ThisDrawing.Utility.GetPoint(, "Укажите точку")
        ThisDrawing.ModelSpace.AddPoint(location)
    End Sub
End Class
Возникают следующие вопросы:
1. Строки "Imports Autodesk.AutoCAD.Interop" импортируют в проект соответствующие "пространства имен" - объектные модели, позволяя использовать их в проекте.. На вкладке "Ссылки" есть также список "Импортированные пространства имен"; - "галочка" на соответствующей библиотеке - аналогична ли строке "Imports Autodesk...." и если да то в чем разница?

2. Как быть с импортом библиотек, если предполагается использовать программу и под 64, и под 32 бит?

3. В проект библиотеки классов возможно добавлять формы. Каким образом эту самую "Form1" вызвать на экран? Методом тыка попробовал в "Public Sub mAddPnt()" влепить строку "Form1.ActiveForm.Activate()", но эта единственное, к чему она приводит, - к вылету автокада с фатал эррором..

4. Нижележащая процедура позволяет получить список установленных языков и замечательно работает в приложениях "Windows Forms". Свойство ".InputLanguage" принадлежит пространству имен "System.Windows.Forms". Возможно ли применить его в случае моего кода?
Может, надо импортировать эти самые пространства в проект..
Код:
[Выделить все]
 Public Sub GetLanguages()
    ' Gets the list of installed languages.
    Dim lang As InputLanguage
    For Each lang In  InputLanguage.InstalledInputLanguages
        textBox1.Text &= lang.Culture.EnglishName & ControlChars.Cr
    Next lang
End Sub 'GetLanguages
5. Строка
<Autodesk.AutoCAD.Runtime.CommandMethod("mAddPnt")> _
"создает" новую команду, при введении имени которой в комстроке автокада выполняется процедура mAddPnt. А как создать процедуру, которая должна реагировать на события приложения Acad-а, - некий аналог "AcadDocument_BeginCommand(ByVal CommandName As String)" в VBA?

6. Код снизу дает возможность использовать привычную объектную модель ThisDrawing... А возможно ли аналогично использовать объектную модель ASD при подключенных его библиотеках?
Код:
[Выделить все]
Public ReadOnly Property ThisDrawing() As AcadDocument
        Get
            Return Autodesk.AutoCAD _
            .ApplicationServices.Application. _
            DocumentManager.MdiActiveDocument. _
            AcadDocument
        End Get
    End Property
вот первые 6 из примерно 1000 возникающих вопросов..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
Просмотров: 56364
 
Непрочитано 13.12.2010, 16:46
#21
Александр Ривилис

MAESTRO Group, программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,128
Отправить сообщение для Александр Ривилис с помощью ICQ Отправить сообщение для Александр Ривилис с помощью AIM Отправить сообщение для Александр Ривилис с помощью MSN Отправить сообщение для Александр Ривилис с помощью Yahoo Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Vildar Посмотреть сообщение
2. Как в одном проекте это увязать, чтобы компилиось под х32 и х64, я хз. Но как-то же компилируют под разные операционки. Нужно матчасть осваивать.
Устанавливаешь для проекта Platform target: Any CPU и будет грузится и в x86 и в x64. Нюансы могут возникнуть с функциями, вызываемыми через P/Invoke - там нужно определять разрядность AutoCAD (и своей сборки).
Александр Ривилис вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 13.12.2010, 16:46
#22
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,444


Цитата:
Сообщение от Vildar Посмотреть сообщение
С языком тоже подумай. VB.NET после C# уже не перивариваю.
Ну, не знаю.. Я VB.net - то пока могу проглотить (не то что переварить) разве что разжеванный кем-то, а ты предлагаешь мне замахнуться на Вильяма нашего Шекспира на Си нашего шарпа.. Тем более, если я не ошибаюсь, функционалы у них уже не сильно отличаются.
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.12.2010, 16:51
1 | #23
hwd

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


Цитата:
Сообщение от Vildar Посмотреть сообщение
Не поверишь, я задолбался просить обновления поставить на акады, на той неделе поставили.
Offtop: Работать в AutoCAD 2009 без SP3 - это жестоко... Без этого обновления и при работе с подшивками глюков хватает, и при самом черчении... На AutoCAD 2009 мы обязательно ставим SP3 (это даже не обсуждается).

Цитата:
Сообщение от Vildar Посмотреть сообщение
И wpf ты вроде юзал. Или как?
Offtop: WPF работает начиная с .Net 3.0 (т.е. для этого не обязательно ставить .Net 3.5 SP1). Но в 3.0 нет LINQ. Да, я использую WPF при построении пользовательского GUI. После WPF не могу смотреть на WinForms. Если использовать MVVM - получается вообще сказка: полное отделение интерфейса от кода - Весь интерфейс описан в виде XAML-разметки, не имея ни строчку кода. Можно менять GUI, не переписывая при этом ни строки кода. Такое разделение даёт возможность привлекать к работе дизайнеров, не разбирающихся в программировании, но имеющих богатую фантазию, с помощью которой они могут в том же MS Expression Blend нарисовать красивый GUI. Программист добавляет его в свой проект, не внося изменений в код и всё работает как часы.
Цитата:
Ну, не знаю.. Я VB.net - то пока могу проглотить (не то что переварить) разве что разжеванный кем-то, а ты предлагаешь мне замахнуться на Вильяма нашего Шекспира на Си нашего шарпа.. Тем более, если я не ошибаюсь, функционалы у них уже не сильно отличаются.
Когда-то я неслабо писал на VBA (написал в MS Access 2003 систему в которой взаимоувязаны документооборот, сметная программа, выполнение (формы КС-2, КС-3), заявки на материалы, заявки на механизмы, акты о перерасходах, журналы учёта выполненных работ и т.п. и т.д.). Сметы, КС-2 и КС-3 экспортировались в МС Ексель, с группировками столбцов, строк, с полной реализацией сложной паутины формул по всему документу, с ведомостями материалов и механизмов... Всё это циркулировало в сети, можно было проверить кто когда кому передал документ и на какой стадии он находился. В эту же систему была внедрена библиотека механизмов, материалов и работ, все расценки по сети отправлялись в отдел снабжения, где те проверялись и на каждую единицу измерения либо подтверждали расценку, либо ставили реальную (создваниваясь с поставщиками). Это дабы не сесть в лужу. Всё это контролировалось руководством (в этой же программе они ставили свою резолюцию, на основании которой программа давала дальнейший ход документтам)... Там много ещё чего было (позиции смет разносились по корпусам/ярусам/помещениям, для каждого из которых выводились (в планах было, чтобы это автоматом тянулось из автокада, но не успел это реализовать) такие данные как площади стен, пола, потолка... В общем система разрасталась, я был доволен, как кот, но... Я писал на VBA... Со временем начинал сталкиваться с ситуациями, которые не мог обойти. Например: в своём коде, в редакторе MS Access я точно знал строки, в которые нельзя было ставить курсор, иначе Аксесс сначала замерзал, на некоторое время, а потом осыпался в труху, вылетая с ошибкой, мол сорри, но я помер... Были и в графическом интерфейсе такие места, которые, к примеру, я знал, что при попытке изменить ширину TreeView в определённой форме, аксесс так же дох. Со временем таких артефактов насобиралось достаточно. Кроме того, количество пользователей системы разрасталось, а Аксесс не приветствует одновременное наличие подключений более чем 10 - начинает подтормаживать (об этом и в книгах пишут). В общем я решил сваливать с Аксесса, поскольку работать с чёрным ящиком, надеясь "авось не заглючит редактор кода или дизайнер форм" - не устраивало.
Начал думать, на какой язык/платформу переходить. С платформой определился быстро - решил перейти на .net, ибо самая мощная, удобная и т.п. Начал думать насчёт языка... Изначально планировал перейти на VB.Net, но посмотрев примеры, написанные на нём, понял, что на VBA он похож так же как собака на человека... Раз сходства нет, решил выбрать язык, наиболее популярный и удобный. Просмотрел литературу и увидел, что основная масса литературы по .Net написана на C#. Изначально такие слова как "С", "С++" и "С#" для меня были одинаково страшны, но почитав "C# для чайников" понял, что "С#" очень удобный и красивый язык. В то време VB.Net был слабее, чем C# (он и сейчас слабее, но MS обещает, что от версии к версии VB.Net будет подтягиваться к C# как элластичный жгут). В .Net 4.0 они по возможностям уже не сильно отличаются.
Т.о. Имхо - тому, кто писал на VBA, без разницы какой язык учить, ибо
мораль сей басни такова:
VB.Net имеет с VBA общего только первые две буквы (в прямом смысле), и более ничего.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 13.12.2010 в 17:21.
hwd вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.12.2010, 16:57
#24
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Устанавливаешь для проекта Platform target: Any CPU и будет грузится и в x86 и в x64.
Вы возможно не знаете всей глубины моего незнания. Я пока не собираюсь писать под х64. Просто любопытно. Ведь в ObjectARX2010 есть две папки inc-x64 и inc-win32, в обеих этих папках есть файлы acmgd.dll и acdbmgd.dll, я так понимаю они чем-то отличаются. Т.е. пишу под х32 вставляю ссылки из inc-win32, пишу под х64 вставляю - из inc-x64. А пишу сразу под обе платформы - на что ссылки вставлять, из обеих папок ведь не вствить ссылки, имена у файлов одинаковые.
Осознаю всю степень своего незнания. Мне особо пока не нужно. Алекс пущай мучается

hwd,
Пробовал wpf и blend. Очень круто. Но практически пока не могу применить. Опять же очень жаль.
Про MVVM не знал. Почитаю, спасиб.

AlexV,
Большая часть людей, котроые пишут под NET, используют C#. Я тебя не убеждаю. Просто советую

Последний раз редактировалось Vildar, 13.12.2010 в 17:19.
Vildar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.12.2010, 17:47
#25
Meknotek


 
Регистрация: 29.10.2009
Рязань
Сообщений: 2,070


Цитата:
Сообщение от AlexV Посмотреть сообщение
Ну, не знаю.. Я VB.net - то пока могу проглотить (не то что переварить) разве что разжеванный кем-то, а ты предлагаешь мне замахнуться на Вильяма нашего Шекспира на Си нашего шарпа.. Тем более, если я не ошибаюсь, функционалы у них уже не сильно отличаются.
Я тебя тоже не убеждаю, но если ты VB.NET "со словарем" перевариваешь, то какая разница, что учить "со словарем"? Переходи на сторону С#
Meknotek вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.12.2010, 22:37
#26
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


AlexV про ASD пока нечего сказать, не нашел его управляемых сборок. Он видимо по-другому сделан, в отличии от ACA. По F1 выдает справку только по Autocad 2011, а по ASD при запуске како-нибудь команды есть помощь, но там нет разделов по API. В ручную тоже не нашел.
Еще поковыряюсь, отпишусь.
Vildar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.12.2010, 22:51
#27
Александр Ривилис

MAESTRO Group, программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,128
Отправить сообщение для Александр Ривилис с помощью ICQ Отправить сообщение для Александр Ривилис с помощью AIM Отправить сообщение для Александр Ривилис с помощью MSN Отправить сообщение для Александр Ривилис с помощью Yahoo Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Vildar Посмотреть сообщение
Т.е. пишу под х32 вставляю ссылки из inc-win32, пишу под х64 вставляю - из inc-x64
Да собственно не важно, на что ссылаешься. Главное установить для них свойство CopyLocal=False. Это значит, что будут использоваться соответствующие файлы, загруженные в AutoCAD. А AutoCAD уж сам разберется, какие ему загружать.
Александр Ривилис вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.12.2010, 23:06
#28
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Александр Ривилис, не подумал про это. Сложновато без практики.

AlexV тебе именно нужно писать используя объекты ASD, или нет. Просто, может ты не вкурсе, обычные сборки acmgd.dll и acdbmgd.dll будут и в ASD работать.
У нас стоит ACA2008, но писать используя объекты AEC пока не приходилось. Но примеры видел, справку почитывал.
Уточни?

upd Есть куча сборок в папке ASD начинающихся с имени AmberCore.*.*.dll, может оно?

Последний раз редактировалось Vildar, 14.12.2010 в 00:11.
Vildar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 14.12.2010, 00:09
#29
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,444


Цитата:
Сообщение от Vildar Посмотреть сообщение
Александр Ривилис, не подумал про это. Сложновато без практики.
AlexV тебе именно нужно писать используя объекты ASD, или нет. Просто, может ты не вкурсе, обычные сборки acmgd.dll и acdbmgd.dll будут и в ASD работать.
У нас стоит ACA2008, но писать используя объекты AEC пока не приходилось. Но примеры видел, справку почитывал.
Уточни?
ACA - это что за зверь?
Да, я знаю, что обычные сборки автокада будут работать, ASD это ж не отдельно растущее дерево, а надстройка над автокадом. (я в VBA пытался его копать на своем уровне знаний..). Проблема получить доступ к объектной модели собственно ASD - модуля steel в частности. Я тупо подключал нужные библиотеки, получал объекты ASD из чертежа фильтром по их TypeName, объявлял переменные типов, принадлежащих asd-шной объектной модели, и передавал в них примитив ("Set ASDobj=AcadObj"), ну и получал доступ к части (очень небольшой) их свойств и методов. Понятно, что это "паллиативное решение", но большего я нарыть не сумел.
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 14.12.2010, 01:09
#30
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от AlexV Посмотреть сообщение
ACA - это что за зверь?
Autocad Architecture. Писать очень длинно не охото.

Через com, можно и на NET действовать. Какие ты файлы подключал на vba? Их можно и в VB.NET подключить.
Но у ACA есть API, для NET, опять же наверно обертки над C++. И есть хелп по этому делу.
У акадовцев принято управляемые сборки (NET) обзывать *mgd*.dll. Но у ASD таких нету.
Vildar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 14.12.2010, 09:04
#31
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,444


Цитата:
Сообщение от Vildar Посмотреть сообщение
Через com, можно и на NET действовать. Какие ты файлы подключал на vba? Их можно и в VB.NET подключить.
Но у ACA есть API, для NET, опять же наверно обертки над C++. И есть хелп по этому делу.
У акадовцев принято управляемые сборки (NET) обзывать *mgd*.dll. Но у ASD таких нету.
Методом тыка нашел вот эти "референсы" ASD Steel:
C:\Program Files\Autodesk\AutoCAD Structural Detailing 2011\RBCSCommon.dll
C:\Program Files\Autodesk\AutoCAD Structural Detailing 2011\RbCSModel.arx
C:\Program Files\Autodesk\AutoCAD Structural Detailing 2011\rbcscomserver.arx
, причем применять у меня получалась только RbCSModel.arx..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 14.12.2010, 10:33
#32
Лиспер


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


Отбой, вроде бы разобрался с вопросом...
__________________
(/= RegDate StartReadDate)

Последний раз редактировалось Лиспер, 14.12.2010 в 10:41.
Лиспер вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 14.12.2010, 10:53
#33
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,444


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Отбой, вроде бы разобрался с вопросом...
Дык, а чего удалил-то? Отредактировал бы, написал: проблема решилась так-то...
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 14.12.2010, 11:03
#34
Лиспер


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


Да я просто на сайт hwd зашел, а там реальный пример создания точки есть: https://sites.google.com/site/bushma...sozdanie-tocek
Код на VB.NET, я его переделал на C# (благо это нетрудно):

Код:
[Выделить все]
using System;

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;

using AcAp = Autodesk.AutoCAD.ApplicationServices;
using AcDb = Autodesk.AutoCAD.DatabaseServices;
using AcGe = Autodesk.AutoCAD.Geometry;

namespace test
{
  public class Commands
  {

    [CommandMethod("Cmd1")]
    static public void Cmd1()    {
      Database db = HostApplicationServices.WorkingDatabase;
      Editor ed = AcAp.Application.DocumentManager.MdiActiveDocument.Editor;
      PromptPointOptions ptOpt = new PromptPointOptions("\nУкажите точку <Отмена> : ");
      PromptPointResult ptRes = ed.GetPoint(ptOpt);
      if (ptRes.Status == PromptStatus.OK)
      {
        using (Transaction tr = db.TransactionManager.StartTransaction())
        {
          DBPoint ptObj = new DBPoint(ptRes.Value);
          BlockTableRecord btrOwner = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
          ObjectId ptID = btrOwner.AppendEntity(ptObj);
          tr.AddNewlyCreatedDBObject(ptObj, true);
          tr.Commit();
        }
      }
    }

  }
}

Я допустил ошибку, вместо DBPoint пытался работать с Point3d (а это, как я понял, просто массив из 3 вещественных чисел).
---
Добавлено: гы, перевел, переводчик, е-мое... Чуть ниже все есть и на C#
__________________
(/= RegDate StartReadDate)
Лиспер вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 14.12.2010, 18:50
#35
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


AlexV,
Про com понятно, подключаем ссылки, из закладки com, и работать аналогично vba.
Есть NET сборки от ASD. Лежат в GAC'e.
Цитата:
c:\WINDOWS\assembly\GAC_MSIL\
Далее у меня по этому пути есть 6 папок для Autodesk.ASD
Но это непонятно, что такое. Похоже не то.
Забыли они API прикрутить.

Я не знаю, как балку нарисовать в ASD, не то что писать под него что-то.
Vildar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 14.12.2010, 22:08
#36
Александр Ривилис

MAESTRO Group, программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,128
Отправить сообщение для Александр Ривилис с помощью ICQ Отправить сообщение для Александр Ривилис с помощью AIM Отправить сообщение для Александр Ривилис с помощью MSN Отправить сообщение для Александр Ривилис с помощью Yahoo Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Я допустил ошибку, вместо DBPoint пытался работать с Point3d (а это, как я понял, просто массив из 3 вещественных чисел).
DBPoint - это класс примитива точка (в ObjectARX: AcDbPoint), а Point3d - это класс геометрической библиотеки, описывающий точку в пространстве 3D (в ObjectARX: AcGePoint3d). Экземпляры классов геометрической библиотеки добавлять в чертеж невозможно. Они для этого не предназначены. :-) Но сама по себе геометрическая библиотека достаточно мощная. Для нее нет аналогов ни в VisualLisp, ни в VBA. Настоятельно рекомендую изучить ее возможности.
Александр Ривилис вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.12.2010, 00:28
#37
Лиспер


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


Александр Ривилис, спасибо, попробую. Без конкретных задач тяжело
Все время пытаюсь на лиспе рисовать решение ))
__________________
(/= RegDate StartReadDate)
Лиспер вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.12.2010, 00:43
#38
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Например AcGeLine2d, имитирует линию в 2d пространстве? Практическое применение что-то скрыто в тумане. Просветите плиз.
Vildar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.12.2010, 09:08
#39
Александр Ривилис

MAESTRO Group, программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,128
Отправить сообщение для Александр Ривилис с помощью ICQ Отправить сообщение для Александр Ривилис с помощью AIM Отправить сообщение для Александр Ривилис с помощью MSN Отправить сообщение для Александр Ривилис с помощью Yahoo Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Vildar Посмотреть сообщение
Практическое применение что-то скрыто в тумане
А ты посмотри какие методы есть у этого класса и у его родителей и увидишь практическое применение. Например метод isOn проверяет лежит ли точка на линии, closestPointTo находит ближайшую точку на линии или ближайшие точки на двух линиях (ну для прямых это может и не слишком интересно, но ведь функции то работают и дугами, и с сплайнами). Ну и так далее. Масса интересных методов.
Александр Ривилис вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.12.2010, 09:43
#40
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Т.е. вместо того, чтобы строить в базе временные примитивы для каких-то вспомогательных вычислений. Лучше использовать объекты классов из пространства Geometry (AcGe).
Слова сложно подобрать. Т.е. например линия AcGeLine2d, будет "имитировать" линию в базе чертежа.
Не пробую, т.к. нет пока конкретных задач. Просто на будущее буду знать.

А метод у Line2d только Set. На родителей забыл поглядеть
Vildar вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > "VB.net для чайников". Вопросы программирования под Autocad и ©.

Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42
Ноутбук б/у и AutoCad 2D - вопросы Elenka AutoCAD 14 23.12.2005 13:47
Ноутбук б/у и AutoCad 2D - вопросы Elenka AutoCAD 1 20.12.2005 21:33
AUTOCAD 2006 Aragorn AutoCAD 14 01.04.2005 00:55
Что нового в AutoCAD 2005 ilka_t AutoCAD 40 19.05.2004 16:48

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы