Проблема текущей: < /strong> < /p>
- Мои текущие подходы модифицируют индивидуальные версии, основанные на позициях < />
li>
Неестественные деформации и не поддерживают структурную целостность частей рамки - Пользователи ожидают, что части рамки будут масштабировать/перемещать/деформировать как единые объекты
Чего я хочу достичь:
- mridge geometry
- Lens manipulation: Resize and reshape lens openings while preserving circular/oval forms
- Temple manipulation: Adjust length and thickness while maintaining temple curve and taper
- Nose pad manipulation: Move and resize nose pads as complete units
`# This manipulates individual vertices - not ideal
def adjust_bridge_width(self, scale_factor):
bridge_vertices = self.get_vertices_in_range(1965, 2000)
for vert_idx in bridge_vertices:
vert = self.frame_object.data.vertices[vert_idx]
vert.co.x *= scale_factor # This distorts the geometry`
< /code>
Какой лучший подход для манипулирования частями кадра в качестве единых геометрических единиц в блендере? < /p>
Должен ли я использовать: < /p>
Группы вертекс с пропорциональным редактированием? /> Арматура /костная система для деформации управления? < /li>
Ключи формы для предопределенных деформаций? Circularity)? /> Необходимо поддерживать корректировки в реальном времени с помощью http-запросов < /li>
Целевой вывод обновляется STL-файлы для 3D-печати < /li>
< /ul>
конкретные случаи использования: < /strong> < /p>
.`# What I want to achieve:
manipulator.adjust_bridge_width(1.2) # 20% wider bridge
manipulator.adjust_lens_size(0.9) # 10% smaller lenses
manipulator.adjust_temple_length(1.1) # 10% longer temples
manipulator.adjust_nose_pad_spacing(1.15) # 15% wider nose pad spacing`
< /code>
Любое руководство по правильным методам блендера для этого типа манипуляции с параметрическими кадрами будет высоко оценено!
Дополнительная информация: < /strong> < /p>
Совместная кадр содержит ~ 3000 Vertices < /li>
Необходимо поддерживать печатные геометрии (NO ~ 3000 Vertices < /li>
для обслуживания печатных геометрий (NO ~ 3000 Vertices < /li>
для обслуживания печатных геометрий (NO ~ 3000 Vertices < /li>
/> Производительность важна для настройки в реальном времени < /li>
< /ul>
Я попробовал несколько подходов к манипулированию частями рамы очков в виде единичных геометрических единиц, но все они привели к неестественным искажениям на уровне вершины, а не на правильных деталях.`def adjust_bridge_width(self, scale_factor):
# Find bridge vertices by position
bridge_vertices = []
for i, vert in enumerate(self.frame.data.vertices):
if -0.5
Ожидаемое: мост должен равномерно масштабироваться при сохранении ее естественной кривой и структурной целостности. < /p>
Результат: отдельные вершины перемещались независимо, создавая зазубренные искажения и нарушая геометрию плавного моста. < /p>
Подход 2: Объединенное преобразование с расчетами о смещении < /p>
Подход 2: Объединенное преобразование с расчетами о смещении`def adjustFramePartVertices(self, part, adjustment_type, scale_factor):
# Find all vertices belonging to frame part
part_vertices = self.detect_part_vertices(part)
center = self.calculate_center(part_vertices)
# Apply unified transformation
for vertex_index in part_vertices:
current_pos = self.get_vertex_position(vertex_index)
new_position = self.calculate_new_position(current_pos, center, part, scale_factor)
offset = new_position - current_pos
self.adjust_vertex(vertex_index, offset)`
< /code>
Ожидаемое: части кадра будут трансформироваться как единые единицы (мост плавно расширяется, линзы изменяют размер, храмы естественным образом расширяются). < /p>
Результат: все еще получает манипуляцию на уровне вершины, где отдельные точки движутся независимо. Мост становится неровным, формы линзы становятся полигональными, а не гладкими, а храмы развиваются изгибы.`# Using predefined vertex ranges for frame parts
bridge_range = range(1965, 2001) # 36 vertices
left_lens_range = range(0, 501) # 501 vertices
right_lens_range = range(501, 1000) # 499 vertices
for i in bridge_range:
vertex = self.frame.data.vertices
# Apply transformation relative to part center
vertex.co *= scale_matrix`
< /code>
Ожидаемое: использование диапазонов вершины обеспечит, чтобы все вершины моста перемещались вместе как единое целое. Мост теряет свой плавный переход к областям линз. Мне нужен мост, чтобы сохранить свою кривизну при масштабировании, линзы, чтобы сохранить их круговую/овальную форму при изменении размера, и храмы для плавного расширения при удлинении. Части рамы должны вести себя так, как будто они изготовлены из гибкого материала, который поддерживает характеристики своей формы при корректировке.
Подробнее здесь: https://stackoverflow.com/questions/796 ... ified-geom
Мобильная версия