Ответы в темах
-
АвторСообщения
-
Пивен ЕвгенийУчастник
Здравствуйте.
На вопрос можно не отвечать. Вопрос решён, динамическая ведомость сформированаПивен ЕвгенийУчастникЗдравствуйте.
Я при создании динамической ведомости при составных кривых смог «достучаться» только до основных параметров радиус, длинны переходных кривых, посчитать углы поворота радиусов много радиусной кривой, извлечь координаты углов составной кривой, а также тангенсы, биссектрису и дамер не получается. К данному продолжению письма прикрепляю обновлённые исходники. Класс ElementsOfCurvesSheet, перебор подобъектов и извлечение данных начинается со строки 117Вложения:
Вы должны войти для просмотра вложений.Пивен ЕвгенийУчастникПрикрепляю исходный код. Класс ElementsOfCurvesSheet, перебор подобъектов и извлечение данных начинается со строки 117
Вложения:
Вы должны войти для просмотра вложений.Пивен ЕвгенийУчастникЕщё прикрепляю часть кода
Вложения:
Вы должны войти для просмотра вложений.Пивен ЕвгенийУчастникТакже я не могу найти координаты вершин углов составных кривых, Position основной вершины есть, а составных?
Пивен ЕвгенийУчастникЗдравствуйте. Отвечать на вопрос выше не недо я разобрался.
Большое спасибо всё получилось, работает.Пивен ЕвгенийУчастникЗдравствуйте.
public static List<Vector2D> FindCrossings(Surface surface, Polyline3D pline, int patch), а int patсh, параметр который принимает метод равен -1?- Ответ изменён 4 месяца назад пользователем Пивен Евгений.
Пивен ЕвгенийУчастникСпасибо
Пивен ЕвгенийУчастникСпасибо.
Пивен ЕвгенийУчастникЗдравствуйте.
Метод DwgLeader.Add(Vector2D pt) создаёт выноску, а мне необходимо вернуть координаты вершины (стрелки), расположенной на линейном объекте, для дальнейшего поиска этой выноски вдоль линейного объекта с помощью метода
res, station, offset = Topomatic.Cad.Foundation.PolylineExtentions.PosToStaOffset(polyline, pos).
Т.е. мне необходимо получить координату (Vector2D), в месте где выноска и линейный объект соединяются. Это мне необходимо для поиска выносок вдоль линии и обновления их содержимого DwgLeader.Content. Например, есть линейный объект линия электропередач, у неё есть подпись характеристик 10кВ/ 3пр, я меняю характеристики линии электропередач в семантике на 35кВ/ 6пр, затем нажимаю на кнопку обновить подпись и у меня все подписи вдоль линейного объекта обновляются.
Я написал скрипт который работает для класса DwgMText(), в данный момент у меня создаются и в последствии обновляются, мульти текста DwgMText .Content, теперь осталось «прикрутить» выноску, а как найти координаты её стрелки, для дальнейшего поиска я не знаю.Пивен ЕвгенийУчастникЗдравствуйте.
Метод DwgLeader.Add(Vector2D pt) создаёт выноску, а мне необходимо вернуть координаты вершины (стрелки), расположенной на линейном объекте, для дальнейшего поиска этой выноски вдоль линейного объекта с помощью метода
res, station, offset = Topomatic.Cad.Foundation.PolylineExtentions.PosToStaOffset(polyline, pos).
Т.е. мне необходимо получить координату (Vector2D), в месте где выноска и линейный объект соединяются. Это мне необходимо для поиска выносок вдоль линии и обновления их содержимого DwgLeader.Content. Например, есть линейный объект линия электропередач, у неё есть подпись характеристик 10кВ/ 3пр, я меняю характеристики линии электропередач в семантике на 35кВ/ 6пр, затем нажимаю на кнопку обновить подпись и у меня все подписи вдоль линейного объекта обновляются.
Я написал скрипт который работает для класса DwgMText(), в данный момент у меня создаются и в последствии обновляются, мульти текста DwgMText .Content, теперь осталось «прикрутить» выноску, а как найти координаты её стрелки, для дальнейшего поиска я не знаю.Вложения:
Вы должны войти для просмотра вложений.Пивен ЕвгенийУчастникРигель конт. сети
Вложения:
Вы должны войти для просмотра вложений.Пивен ЕвгенийУчастникЗдравствуйте.
В данном скрипте я выбрал структурные линии
pline = actSfcLayer.SelectStructureLines(None, «Выберите структурные линии:»)
if (pline == None):
return
Далее определил точки
try:
index1 = self.select_console_point_5(actSfcLayer, ‘Укажите первую опору’)
if (index1 < 0):
return
pt1 = actSfcLayer.Surface.Points[index1]
index2 = self.select_console_point_5(actSfcLayer, ‘Укажите вторую опору’)
if (index2 < 0):
return
pt2 = actSfcLayer.Surface.Points[index2]
Далее у меня не получается определиться с пересечением структурных линий и направлением между pt1 и pt2
В оригинале данное пересечение определяется между полилиниями и точками
for pt in Topomatic.Cad.Foundation.PolylineExtentions.GetIntersections(pline, pt1.Vertex.Pos, pt2.Vertex.Pos):
station = clr.Reference[System.Double]()
offset = clr.Reference[System.Double]()
if (Topomatic.Cad.Foundation.PolylineExtentions.PosToStaOffset(pline, pt, station, offset)):
a = Topomatic.Cad.Foundation.PolylineExtentions.StaOffsetToPos(pline, station.Value, 0)
b = Topomatic.Cad.Foundation.PolylineExtentions.StaOffsetToPos(pline, station.Value + 0.1, 0)
Каким образом здесь подменить полилинию на структурную линию? Может Topomatic.Cad.Foundation для этих целей не подходит? Подскажите как выйти из данной ситуации.
Спасибо.Пивен ЕвгенийУчастникПрикреплённый код
- Ответ изменён 1 год, 8 месяцев назад пользователем Пивен Евгений.
- Ответ изменён 1 год, 8 месяцев назад пользователем Пивен Евгений.
Вложения:
Вы должны войти для просмотра вложений.Пивен ЕвгенийУчастникЗдравствуйте. Я предполагал что проблема в этом.
Данную часть кода я оставил чтобы войти в цикл
for pline in plines:
Подскажите пожалуйста как поступить в данной ситуации, работая со структурными линиями, всё таки пройти этот цикл и на что поменять элемент «PolylineExtentions» в выражении «for pt in Topomatic.Cad.Foundation.PolylineExtentions.GetIntersections(pline, pt1.Vertex.Pos, pt2.Vertex.Pos):»
Для наглядности прикреплю к письму данный код с комментариями.
Спасибо. -
АвторСообщения