Форум НПФ  

Вернуться   Форум НПФ "ТОПОМАТИК" > Программные продукты "Топоматик Robur" на платформе "Robur AP3" > Средства разработки Топоматик Robur > Вопросы и ответы
Ник
Пароль
Регистрация FAQ Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #21  
Старый 07-15-2019, 10:23
Василий Гончаров Василий Гончаров вне форума
Разработчик Robur
 
Регистрация: Oct 2016
Сообщения: 141
По умолчанию

Если возможно, отправьте нам файл AddIn и сборку Вашего модуля - мы попробуем его запустить и более точно сказать Вам в чём проблема.
Ответить с цитированием
  #22  
Старый 07-15-2019, 11:24
bambr bambr вне форума
Пользователь
 
Регистрация: Jan 2019
Сообщения: 91
По умолчанию

Подскажите как можно создать отдельное окно типа "План" для рисования и как туда перенести часть объектов с оригинального Плана?
Ответить с цитированием
  #23  
Старый 07-15-2019, 11:52
Василий Гончаров Василий Гончаров вне форума
Разработчик Robur
 
Регистрация: Oct 2016
Сообщения: 141
По умолчанию

Я боюсь эта тема выходит за рамки обсуждения на форуме. Если в кратце, то Вам необходимо создать Ваше окно в активном проекте:
Код:
public partial class MyModule : Module { private IFramableDocumentWindow m_Window = null; private void ShowMyWindow() { //создание окна if (m_Window == null) { var project = ApplicationHost.Current.ActiveProject; m_Window = project.AddDocumentWindow("MY_WINDOW_UNIQUE_ID"); my_editor.Text = "Новое окно плана"; var frame = my_editor.AddCadViewFrame(Consts.ModelFrame, "Модель"); //на этом фрэйме Вы размещаете Ваши слои } } private void SomeFunction() { //пример функции if (m_Window != null) { var frame = m_Window[Consts.ModelFrame]; //тут можно найти свои слои } } protected override void AfterCollectionItemChange(object sender, EventArgs e) { //после изменения активной модели if (m_Window != null) { //тут происходит удаление старых данных предыдущей активной модели } } protected override void BeforeCollectionItemChange(object sender, EventArgs e) { //до изменения активной модели if (m_Window != null) { //тут происходит добавление новых данных новой активной модели } } protected override void OnRemoveWindow(object sender, RemoveWindowEventArgs e) { //закрытие окна base.OnRemoveWindow(sender, e); if (e.Window.UID == "MY_WINDOW_UNIQUE_ID") { m_Window = null; } } protected override void OnCloseProject(object sender, CloseProjectEventArgs e) { //закрытие проекта base.OnCloseProject(sender, e); m_Window = null; } }

Разместить на нём Ваши слои, которые будут обслуживать те элементы модели, с которые Вы хотите показывать отдельно. И самостоятельно синхронизировать Ваши изменения.
Ответить с цитированием
  #24  
Старый 07-15-2019, 16:06
bambr bambr вне форума
Пользователь
 
Регистрация: Jan 2019
Сообщения: 91
По умолчанию

Спасибо!

Уточните CadLibrary.Angle3Pos - считает угол между 3мя точками? Какая точка - центр? И в чем отличие от Angle3PosEx
Ответить с цитированием
  #25  
Старый 07-15-2019, 16:33
Василий Гончаров Василий Гончаров вне форума
Разработчик Robur
 
Регистрация: Oct 2016
Сообщения: 141
По умолчанию

Центр - точка b. Функция Angle3Pos считает угол между тремя точками, это наследие платформы Робур 6.0 - её точность существенно зависит от исходных данных, расстояние от a до b и от c до b должно быть примерно сопоставимо, Angle3PosEx - угол поворота вектора от точки a до то с через центр b, она менее зависима от исходных данных. Дополнительно есть функция SolveBeta - она считает всегда наименьший угол в между тремя точками.
Ответить с цитированием
  #26  
Старый 07-16-2019, 11:03
bambr bambr вне форума
Пользователь
 
Регистрация: Jan 2019
Сообщения: 91
По умолчанию

Вопрос по применению IAlgStationing..StationToString(Double).
для station=999,8399178 пикет получается 9+100.

Это корректное значение?
Ответить с цитированием
  #27  
Старый 07-16-2019, 11:11
Василий Гончаров Василий Гончаров вне форума
Разработчик Robur
 
Регистрация: Oct 2016
Сообщения: 141
По умолчанию

Это значение зависит от самой таблицы пикетажа и от точности вывода дробной части. Например, если таблица пикетажа разбита одним участком, от ПК0 до ПК10, то нужно проверить настройки точности вывода длины. Если стоит до целых, то плюсовое значение округляется при выводе до целого числа, в данном случае это 100. Внутри при всех расчетах вы работаете с корректным значением.
Ответить с цитированием
Ответ


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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 20:38.

Навигация по основному сайту
Главная Каталог продуктов и услуг Где купить Сопровождение
Вакансии О компании Обзоры Канал на YouTube

vBulletin v3.0.7 , Copyright ©2000-2022, Jelsoft Enterprises Ltd.
Copyright © 2003-2022, НПФ "ТОПОМАТИК".