Перейти к содержанию

Рекомендуемые сообщения

Доброго времени суток.

Возможно ли с помощю MultiCAD.NET осуществить сабж?

Если да:

1. Как осуществить выбор линии или несколько линии?

2. Как получить размер выбронного линию или несколько выбранных линии?

3. И самое главное, если выбран несколько линия как, определить градус поворота второго линя относительно первого?

 

Спасибо

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

Ссылка на сообщение
Поделиться на другие сайты

1 и 2 можно и СПДС таблицами сделать.

3. "определить градус поворота второго линя относительно первого"-ввод линий вероятно должен быть "пользовательским" чтобы последовательно у пар линий углы вычислять.

может быть это и средствами таблиц решаемо , ведь мы координаты начала и конца линий можем получить, а дальше вычислить угол относительно МСК...

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

Ссылка на сообщение
Поделиться на другие сайты

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;

}

Ссылка на сообщение
Поделиться на другие сайты

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

 

macrodaemon

Все отлично но, еще один вопрос,

double Angle = line1.Line.Direction.GetAngleTo( line2.Line.Direction);

дает вот такой результат

 

post-62914-0-37098200-1428992599.png

 

как это понят???

Изменено пользователем Laziz
Ссылка на сообщение
Поделиться на другие сайты
как это понят???

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

Ссылка на сообщение
Поделиться на другие сайты
как это понят???

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

Спасибо, в точку попали. Про радианах почему та не подумал.

 

Еще один вопрос:

В некоторых случаях не правильно подсчитывает угол поворота

 

post-62914-0-48162700-1429029924.png

 

дольжно 45 градус а показывает 135, из за чего эта может быть?

Ссылка на сообщение
Поделиться на другие сайты

очевидно же - у вас линия скорее всего начерчена справа налево. Т.е. ее вектор направлен влево и программа считает угол с другой стороны:

2015-04-14-000602.png

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
  • Похожий контент

    • От Ivanco
      Добрый день.
       
      Необходимо, на полилинии навешать свойств, а именно:
      - это участок? :true/false.
      - длинна полилинии: long
      - номер полилинии: int
       
      Вопросы(я знаю что это вероятно есть в гугле и справке, но все же):
      1. Куда это лучше "пихать" ? XDATA? (минимальный код на C#/multiCAD).
      2. Возможно ли эти свойства отображать в панели свойств nanoCAD и чтобы юзер их мог менять? Если ДА то круто было бы увидеть пример.
       
      и бонус вопрос. Как реализовывается глобальный счетчик чего либо в .DWG .
      Логика такая. я навешиваю скриптом свойства на примитив и где то (в этом и вопрос) есть глобальный счетчик , который знает сколько уже таких объектов в .DWG и добавляет +1.
      Как это правильно реализовывается, и где хранить информацию в .DWG?
    • От Ivanco
      Данная dll выводит список вершин полилинии в таблицу , с помещением таблицы в пространство модели.
      dll позволяет работать с двумя типами линий:
      - полилиния
      -3d полиния(версия 6.0 наноСПДС не поддерживает создание 3d полилиний , но 3d полиния может присутствовать в .dwg созданном в другой САПР).
      Тестировалась на : nanoCADСПДС 6.0(сб.258)x32.
      Команда для запуска: "point_from_pline" , далее читаем командную строку.
      видео демонстрация по
       
      Пожелания, предложения - пишем ниже .
      point_from_pline.7z
    • От Ivanco
      dll написана мной на multicad.net дл задачи объединения таблиц в nanoCAD СПДС 5.4.
      может кому оно надо)
      Команды: summ_all_table -собирает все таблицы с пространства модели и объединяет в одну (помещая ее на чертеж), с возможностью экспорта в файл(.csv, .xls и т.д).Есть возможность обрезать шапку у таблиц при объединении в общую.
      summ_user_table - тоже что и команда выше, но не все таблицы а выбранные пользователем.
      Видео с описанием работы:
      1.на AutoCAD и ZWCAD не тестировалась.
      2.Из минусов:
      - больше 900 строк в таблице конечной - будет "тормозить".
      - нет проверок если вводить неправильные данные в ком.строку.
      WorkToSpdsTable.zip
      ______
      dll для nanoCAD7.0 и nanoCADСПДС 6.0
      WorkToSpdsTable _nc7.zip
      _______
      P.S. если у кого нибудь есть еще задачи с таблицами - пишите в комментариях.
      P.P.S. спасибо "клуб разработчиков" за помощь в написании.
    • От Laziz
      Ест ли возможность загрузит dwg или dxf файл в отдельном программе, без NanoCAD или AutoCAD с помощью MultiCAD.NET?
      Типо вот на этом статье тынц
      Мне нужно:
      1. dwg файл пересохранить на autocad R14.
      2. Показать выбранные линии в отдельном винформе.
       
      Если есть возможность покажите маленький пример пожалуйста, дальше сам попробую разбираться.
      Спасибо!
    • От azaytsev
      http://habrahabr.ru/company/nanosoft/blog/246511/

       
      К нам в техподдержку часто приходит вопрос: "Как посчитать суммы длин отрезков (участков трубопровода, элементов электрических схем и т.п.) в чертеже?". Существует масса способов решения этой задачи, в сегодняшней публикации мы рассмотрим реализацию приложения на MultiCAD.NET API, суммирующего длины, которое работает в nanoCAD, AutoCAD и ZWCAD. В качестве примера мы возьмем задачу определения суммарной длины труб в схеме водоснабжения и рассмотрим два варианта выбора элементов для подсчета: пользовательский и по созданному фильтру.
×
×
  • Создать...