Какова связь между вершинами полилиний и точками в блоке файла DXF?

Какая связь между ломаными линиями и точками в блоке файла DXF? Если я предоставлю файл таблицы правил оценок, как их связать?

отношения ?

как растянуть синие/зеленые точки

Еще вопрос, слишком мало масштабируется точка, поэтому работает не очень хорошо, как показано на следующем изображении. в качестве первого метода ответа, если масштабированная точка слишком мала, нужно ли нам генерировать новую масштабированную точку, которая находится на дуге, образованной двумя известными масштабируемыми точками?

слишком мало масштабируемой точки,две масштабированные точки на правой дуге, так что это плохо работает


person Jim Green    schedule 08.11.2019    source источник
comment
Блок (вставка) имеет начало. Все координаты точек и полилиний относятся к началу этого блока.   -  person Andrew Truckle    schedule 09.11.2019
comment
@AndrewTruckle Спасибо за ваш ответ. Не могли бы вы четко описать? Когда я анализирую файл dxf, как подключить файл таблицы правил оценки к dxf? Подробное описание вопроса: stackoverflow.com/questions/58765788/ . Пожалуйста, помогите мне или дайте пример URL   -  person Jim Green    schedule 10.11.2019
comment
Боюсь, у меня нет такого уровня знаний. Я написал процедуры, предназначенные для работы с созданием складок и складок для вырезов из картона, но не эти правила оценки. Извини.   -  person Andrew Truckle    schedule 11.11.2019


Ответы (1)


Нет такого отношения.

В формате DXF. Блок может содержать различные объекты, такие как точки, линии, полилинии. Каждый из них имеет:

  • позиция для: точки, текста, ссылки на блок, атрибута
  • начальная точка и конечная точка в случае линии
  • координаты полилиний

В таблице правил оценки вы назвали точки, например, точка #1, #2, #3.

В файле AAMA DXF есть текстовые объекты с содержимым, например, #1. У вас может быть много таких текстов в одном файле DXF и в одном блоке.

Например, файл RUL (таблица правил оценок) описывает

  • В размере S точка #1 имеет смещения X= -5 , Y= -3
  • В размере M точка № 1 имеет смещения X = 0 , Y = 0
  • В размере L точка #1 имеет смещения X= 5 , Y= 3
  • В размере XL точка № 1 имеет смещения X = 10, Y = 6.

Теперь в DXF файле у Вас есть блок например "Манжеты размер S". Внутри этого блока у вас много линий, полилиний.... по каждой координате каждого объекта. У вас есть текст (или MText) на определенном слое (слой "1", если я правильно понимаю, но он описан в стандарте).

Например, если на стартовой линии полилинии есть текст #1, его нужно растянуть на X=-5,Y=-3.

Другим блоком будет «Размер манжеты M», поэтому для каждого объекта, где в точке есть дополнительный текст, координата №1 не должна растягиваться, потому что для точки #1 размера M X=0, Y=0.

Другим блоком будет «Размер манжеты XL», поэтому для каждого объекта, где в точке есть дополнительный текст, координата № 1 должна иметь растянутый размер, X=10, Y=6, потому что для точки #1 на M.

формула расчета будет такой:

X1-(X1-X2)*( lx / L) 

Где:

  • lx - это расстояние между #1 и точкой растяжения - измеряется по кривой, а не по прямой, расстояние между точками
  • L - расстояние между № 1 и № 2 - измеряется по кривой, а не по прямой, расстояние между точками
person CAD Developer    schedule 12.11.2019
comment
Спасибо за подробное описание. Что я действительно хочу знать: мы знаем, что точка № 1, точка № 2 должны быть растянуты в соответствии с файлом RUL, но как быть с некоторыми точками среди них? Например, точка № 1 — это начальная линия ломаной, точка № 2 — еще одна точка на ломаной, но как быть с точками между ними? - person Jim Green; 12.11.2019
comment
У вас действительно есть точки на полилинии, которые не описаны #x? в этом случае я полагаю, вам следует интерполировать их. - person CAD Developer; 13.11.2019
comment
Да, это не может быть интерполировано. Итак, как растянуть точки, которые не описаны #x? - person Jim Green; 13.11.2019
comment
почему нельзя интерполировать? - person CAD Developer; 13.11.2019
comment
Потому что мой dxf - это только точки, которые являются ключевыми точками и некоторыми полилиниями, кривыми линиями и так далее. на изображении, которое я описал выше, красная точка является ключевой точкой, зеленая точка — это точки, расположенные на полилиниях, кривых линиях и т. д. Файл правил оценки DELTA 1: смещение x смещение y растягивается только для ключевых точек, поэтому я не знаю, как растягивать точки, которые находятся на кривой линии, полилинии .... - person Jim Green; 15.11.2019
comment
Есть ли удобный способ связаться с вами? Пожалуйста, проверьте изображение выше, спасибо. Этот вопрос очень важен для меня. Пожалуйста, помогите мне решить эту проблему. - person Jim Green; 15.11.2019
comment
Вы должны рассчитать дельту каждой зеленой точки. например: если deltaX #1 равно -5,0, а deltaY равно 3,0, а расстояние между этими точками вдоль кривой равно 7,0, а зеленая точка, которую вы вычисляете, находится посередине между точками #1 и #2, deltaX точки равна -2,5 и дельтаY составляет 1,5. Если точка находится на расстоянии от #1 равно 2,0, то deltaX = (2,0/7,0)*-5,0 = -1,4285, deltaY=(2,0/7,0)*3=0,85714 - person CAD Developer; 15.11.2019
comment
Извините, я не могу ясно понять. Не могли бы вы предоставить изображение, которое отмечает важный момент? что вы подразумеваете под точками вдоль кривой 7.0? Вы имеете в виду рассчитать расстояние от близких точек друг друга и суммировать все расстояния на кривых линиях? - person Jim Green; 15.11.2019
comment
И вы не предоставили deltaX # 2 и deltaY # 2, почему это не нужно? И расстояние между этими точками по кривой равно 7,0, это означает вычислить расстояние точек по кривой? - person Jim Green; 15.11.2019
comment
да 7.0 - это расстояние между точками вдоль кривой. deltaX #2 также важен. Я делаю это следующим образом: сначала точки растяжения между № 1 и № 2 на основе дельты № 1, затем точки растяжения между № 2 и 1 № 1 на основе дельты № 2, но я уверен, что вы можете сделать это за одну итерацию путем соединения дельта №1 и №2. - person CAD Developer; 15.11.2019
comment
зеленая точка, которую вы вычисляете, находится посередине между № 1 и № 2. deltaX точки равна -2,5, а deltaY равна 1,5. Я думаю, что средняя deltaX = (deltaX #1 + deltaX #2)/2, средняя deltaY = ( deltaY #1 + deltaY #2) /2, мы должны учитывать дельту #2. - person Jim Green; 15.11.2019
comment
да ты прав. Я работаю над образцом для Вас, но сейчас работаю и над другим заданием, так что это займет некоторое время. - person CAD Developer; 15.11.2019
comment
поэтому текущая зеленая точка на линии кривой, ее deltaX = 2/7 *(deltaX #1 + deltaX #2), deltaY = 2/7 *(deltaY #1 + deltaY #2), 7 - расстояние между точками вдоль кривой , 2 - это расстояние между #1 и текущей точкой на кривой ? - person Jim Green; 15.11.2019
comment
Давайте продолжим это обсуждение в чате. - person CAD Developer; 15.11.2019
comment
@JimGreen ответ редактируется по формуле добавления. Я думаю, что теперь вопрос решен. - person CAD Developer; 20.11.2019
comment
Как формула и образец изображения, которые вы предоставили: X1-(X1-X2)*( lx / L) , x1 означает смещение # 1 (27), x2 означает смещение # 2 (2,4), поэтому значение результата равно 27 - (27-2.4) *(25.07 /125.0336) = 22.06754984 , а не 22,05, что вы имеете в виду правильный ответ , это правильно? - person Jim Green; 21.11.2019
comment
как ваш метод, если масштабированная точка слишком мала, нам нужно создать новую масштабированную точку, которая находится в дуге, образованной двумя известными масштабируемыми точками? - person Jim Green; 04.02.2020
comment
Я обновляю вопрос выше. Другой вопрос, слишком менее масштабированная точка, поэтому она работает не очень хорошо. как ваш метод, если масштабированная точка слишком мала, нам нужно создать новую масштабированную точку, которая находится в дуге, образованной двумя известными масштабируемыми точками? - person Jim Green; 04.02.2020
comment
здравствуйте, как формула,на кривой, если масштабируемая точка меньше, и расстояние большое, может работать не очень хорошо, смотрите третью картинку выше? - person Jim Green; 11.03.2020