Перейти к содержимому


Экспорт размер линии в файл

C# MultiCAD.NET

Сообщений в теме: 7

#1 Laziz

    Посетитель

  • Пользователи
  • PipPip
  • 23 сообщений

Отправлено 13 Апрель 2015 - 20:59

Доброго времени суток.
Возможно ли с помощю MultiCAD.NET осуществить сабж?
Если да:
1. Как осуществить выбор линии или несколько линии?
2. Как получить размер выбронного линию или несколько выбранных линии?
3. И самое главное, если выбран несколько линия как, определить градус поворота второго линя относительно первого?

Спасибо
Извините за некомпетентность, стараюсь исправиться.

#2 Ivanco

    Дилер

  • Дилеры
  • PipPipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Красноярск
  • Интересы:САПР

Отправлено 14 Апрель 2015 - 04:13

1 и 2 можно и СПДС таблицами сделать.
3. "определить градус поворота второго линя относительно первого"-ввод линий вероятно должен быть "пользовательским" чтобы последовательно у пар линий углы вычислять.
может быть это и средствами таблиц решаемо , ведь мы координаты начала и конца линий можем получить, а дальше вычислить угол относительно МСК...
Думаю Вам стоит написать в каком виде Вы хотели бы видеть конечный результат.
"ИнфоИндастри" г.Красноярск,г.Иркутск,г.Владивосток-официальный дилер Нанософт
YouTube,GitHub - Ivanco21, using:C#/MultiCAD.NET

#3 macrodaemon

    Гуру MultiCAD API

  • nanoSoft
  • PipPip
  • 18 сообщений
  • Пол:Мужчина

Отправлено 14 Апрель 2015 - 06:25

McObjectId id1 = McObjectManager.SelectObject("Select first line");
McObjectId id2 = McObjectManager.SelectObject("Select second line");

DbLine line1 = id1.GetObject();
DbLine line2 = id2.GetObject();
if(line1 != null && lne2 != null)
{
double Angle = line1.Line.Direction.GetAngleTo( line2.Line.Direction);
double Line1Length = line1.Line.Length;
double Line2Length = line2.Line.Length;
}

#4 Laziz

    Посетитель

  • Пользователи
  • PipPip
  • 23 сообщений

Отправлено 14 Апрель 2015 - 09:24

Спасибо за ответ Ivanco. Эти варианты тоже изучу. Конечный результат угадал macrodaemon, в виде кода хотел бы увидеть.

macrodaemon
Все отлично но, еще один вопрос,
double Angle = line1.Line.Direction.GetAngleTo( line2.Line.Direction);
дает вот такой результат
Скрытый текст
как это понят???

Сообщение отредактировал Laziz: 14 Апрель 2015 - 09:25


#5 Ivanco

    Дилер

  • Дилеры
  • PipPipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Красноярск
  • Интересы:САПР

Отправлено 14 Апрель 2015 - 15:19

Просмотр сообщенияLaziz (14 Апрель 2015 - 09:24) писал:

как это понят???
две длинны линии и угол между ними в радианах. Округлить до нужной точности и перевести в градусы, вероятно..
"ИнфоИндастри" г.Красноярск,г.Иркутск,г.Владивосток-официальный дилер Нанософт
YouTube,GitHub - Ivanco21, using:C#/MultiCAD.NET

#6 Laziz

    Посетитель

  • Пользователи
  • PipPip
  • 23 сообщений

Отправлено 14 Апрель 2015 - 19:47

Просмотр сообщенияIvanco (14 Апрель 2015 - 15:19) писал:

Просмотр сообщенияLaziz (14 Апрель 2015 - 09:24) писал:

как это понят???
две длинны линии и угол между ними в радианах. Округлить до нужной точности и перевести в градусы, вероятно..
Спасибо, в точку попали. Про радианах почему та не подумал.

Еще один вопрос:
В некоторых случаях не правильно подсчитывает угол поворота
Скрытый текст
дольжно 45 градус а показывает 135, из за чего эта может быть?

#7 dows

    Активист

  • Продукт-менеджеры
  • PipPipPipPip
  • 2 576 сообщений
  • Пол:Мужчина
  • Город:Москва
  • Интересы:САПР

Отправлено 14 Апрель 2015 - 23:10

очевидно же - у вас линия скорее всего начерчена справа налево. Т.е. ее вектор направлен влево и программа считает угол с другой стороны:
Прикрепленный файл  2015-04-14-000602.png   5,73К   0 Количество загрузок:
С уважением,
Денис Ожигин

Сайты: www.archicad.ru, www.nanocad.ru

#8 amk

    Активист

  • Пользователи
  • PipPipPipPip
  • 227 сообщений
  • Пол:Мужчина
  • Город:Омск

Отправлено 16 Апрель 2015 - 21:42

Кстати, есть в последнем случае какой-нибудь способ заставить nanocad рисовать угловой размер там где нужно, а не где попало?

Правда картинка у моём случае немного отличалась, нижняя линия у меня продолжалась в обе стороны (это был один из отрезков полилинии, в месте простановки угла он рисовался слева направо). Мне нужно было проставить угол справа от наклонной (который острый), но он упорно ставился с другой стороны.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей