Sketcher ConstrainTangent/ru: Difference between revisions
(Created page with "В сравнении с прямой касательностью, это ограничение медленнее, поскольку привлекается больше...") |
(Updating to match new version of source page) |
||
(40 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
{{Docnav/ru| |
|||
{{Docnav/ru |
|||
[[Sketcher_ConstrainPerpendicular/ru|Perpendicular]]| |
|||
|[[Sketcher_ConstrainPerpendicular/ru|Ограничение перпендикулярности]] |
|||
[[Sketcher_ConstrainEqual/ru|Equal Length]]| |
|||
|[[Sketcher_ConstrainEqual/ru|Ограничение эквивалентностью]] |
|||
[[Sketcher_Workbench/ru|Sketcher]]| |
|||
|[[Sketcher_Workbench/ru|Sketcher]] |
|||
IconL=Constraint_Perpendicular.png|IconC=Workbench_Sketcher.svg|IconR=Constraint_EqualLength.png |
|||
|IconL=Sketcher_ConstrainPerpendicular.svg |
|||
|IconR=Sketcher_ConstrainEqual.svg |
|||
|IconC=Workbench_Sketcher.svg |
|||
}} |
}} |
||
<div class="mw-translate-fuzzy"> |
|||
{{GuiCommand/ru |
{{GuiCommand/ru |
||
|Name/ru=Ограничение касательности |
|||
|Name=Sketcher ConstrainTangent |
|||
|Name=Sketcher_ConstrainTangent |
|||
|Name/ru=Sketcher ConstrainTangent |
|||
|Workbenches=[[Sketcher Workbench/ru|Sketcher]] |
|||
|MenuLocation=Sketch → Ограничения эскиза → Ограничение касательности |
|MenuLocation=Sketch → Ограничения эскиза → Ограничение касательности |
||
|Workbenches=[[Sketcher_Workbench/ru|Sketcher]] |
|||
|Shortcut=T |
|||
|Shortcut={{KEY|T}} |
|||
|SeeAlso=[[Sketcher ConstrainPointOnObject/ru|Constraint point on object]] |
|||
|SeeAlso=[[Sketcher_ConstrainPointOnObject/ru|Зафиксировать точку на объекте]] |
|||
}} |
}} |
||
</div> |
|||
<span id="Description"></span> |
|||
==Описание== |
|||
==Описание== |
|||
<div class="mw-translate-fuzzy"> |
|||
Ограничение касательности делает две кривые касающимися друг друга. Линии полагаются бесконечными, а дуги как полные окружности или эллипсы. Ограничение так же может соединять две кривые, заставляя их идти по касательной в точке соединения, делая переход гладким. |
|||
Ограничение касательности делает две кривые касающимися друг друга. Линии полагаются бесконечными, а дуги как полные окружности или эллипсы. Ограничение также может соединять две кривые, заставляя их идти по касательной в точке соединения, делая переход гладким. |
|||
</div> |
|||
<span id="Usage"></span> |
|||
==Использование== |
|||
==Применение== |
|||
See also: [[Sketcher_Workbench#Drawing_aids|Drawing aids]]. |
|||
Возможно четыре варианта назначения ограничения: |
|||
# между двумя кривыми (доступно не для всех кривых) |
|||
# между двумя конечными точками кривой, делая гладкое соединение |
|||
# между кривой и конечной точкой другой кривой |
|||
# между двумя кривыми в точке, определённой пользователем |
|||
===[[Sketcher_Workbench#Continue_modes|Continue mode]]=== |
|||
Для назначения ограничения касательности следует: |
|||
* Выделить две или три элемента эскиза. |
|||
* Вызвать ограничение, кликнув его иконку на панели инструментов или выделив в меню, или использовав клавиатурное сокращение. |
|||
# Make sure there is no selection. |
|||
# There are several ways to invoke the tool: |
|||
#* Press the {{Button|[[Image:Sketcher_ConstrainTangent.svg|16px]] [[Sketcher_ConstrainTangent|Constrain tangent or collinear]]}} button. |
|||
#* Select the {{MenuCommand|Sketch → Sketcher constraints → [[Image:Sketcher_ConstrainTangent.svg|16px]] Constrain tangent or collinear}} option from the menu. |
|||
#* {{Version|1.0}}: Right-click in the [[3D_view|3D view]] and select the {{MenuCommand|Constrain → [[Image:Sketcher_ConstrainTangent.svg|16px]] Constrain tangent or collinear}} option from the context menu. |
|||
#* Use the keyboard shortcut: {{KEY|T}}. |
|||
# The cursor changes to a cross with the tool icon. |
|||
# Do one of the following: |
|||
#* Select two edges. The edges can be any edge except a B-spline. |
|||
#* Select a point and two edges (in that order). |
|||
#* Select an edge, a point and another edge (idem). |
|||
# A Tangent constraint is added. If a point and two edges have been selected, up to two [[Sketcher_ConstrainPointOnObject|Point on object constraints]] can also be added. See [[#Between_two_edges_at_point|Examples]]. |
|||
# Optionally keep creating constraints. |
|||
# To finish, right-click or press {{KEY|Esc}}, or start another geometry or constraint creation tool. |
|||
===Run-once mode=== |
|||
# Do one of the following: |
|||
#* Select two edges (see above). |
|||
#* Select two endpoints belonging to different edges. |
|||
#* Select an edge and the endpoint of another edge (in any order). |
|||
#* Select a point and two edges (idem). |
|||
# Invoke the tool as explained above, or with the following additional option: |
|||
#* {{Version|1.0}}: Right-click in the [[3D_view|3D view]] and select the {{MenuCommand|[[Image:Sketcher_ConstrainTangent.svg|16px]] Constrain tangent or collinear}} option from the context menu. |
|||
# A Tangent constraint is added. If a point and two edges have been selected, up to two [[Sketcher_ConstrainPointOnObject|Point on object constraints]] can also be added. See [[#Between_two_edges_at_point|Examples]]. |
|||
==Examples== |
|||
<span id="Between_two_edges"></span> |
|||
<div class="mw-translate-fuzzy"> |
|||
===Между двумя кривыми (прямое касание)=== |
===Между двумя кривыми (прямое касание)=== |
||
[[Image:Sketcher ConsraintTangent mode1.png|600px]] |
[[Image:Sketcher ConsraintTangent mode1.png|600px]] |
||
</div> |
|||
[[Image:Sketcher_ConsraintTangent_mode1.png|400px]] |
|||
Две прямые станут касательными, но точка касания будет неопределённой. Этот режим назначается, когда выделены две кривые. |
|||
The two edges are made tangent. If one of the edges is a [[Sketcher_Workbench#Sketcher_CompCreateConic|conic]], a [[Sketcher_CreatePoint|Point object]] that has a [[Sketcher_ConstrainPointOnObject|Point on object constraint]] with both (extended) edges is added. |
|||
'''Допустимые выделения:''' |
|||
* линия + линия, окружность, дуга, эллипс, дуга эллипса |
|||
* окружность, дуга + окружность, дуга |
|||
Если прямое касание между выделенными кривыми не поддерживается (например, между оуружностью и эллипсом), автоматически будет добавлена вспомогательная точка, и будет применено tangency-via-point. |
|||
<div class="mw-translate-fuzzy"> |
|||
Не рекомендуется реконструировать точку касания созданием точки и установкой принадлежности её обоим кривым. Это будет работать, но конвергенция будет значительно медленнее, сложнее, и потребует вдвое больше итераций чем в норме. Используйте другие режимы этого ограничения, если нужна точка касания. |
Не рекомендуется реконструировать точку касания созданием точки и установкой принадлежности её обоим кривым. Это будет работать, но конвергенция будет значительно медленнее, сложнее, и потребует вдвое больше итераций чем в норме. Используйте другие режимы этого ограничения, если нужна точка касания. |
||
</div> |
|||
<span id="Between_two_endpoints"></span> |
|||
<div class="mw-translate-fuzzy"> |
|||
===Между двумя конечными точками (касание точка-к-точке)=== |
===Между двумя конечными точками (касание точка-к-точке)=== |
||
[[Image:Sketcher ConsraintTangent mode2.png|600px]] |
[[Image:Sketcher ConsraintTangent mode2.png|600px]] |
||
</div> |
|||
[[Image:Sketcher_ConsraintTangent_mode2.png|400px]] |
|||
В этом режиме конечные точки делаются совпадающими, и соединение делается касательным (C1-smooth, или "sharp", в зависимости от расположения кривых перед применением ограничения). Этот режим применяется, когда выделены две конечные точки двух кривых. |
|||
The endpoints are made coincident, and the angle between the edges at that point is set to 180° (smooth joint) or 0° (sharp joint), depending on the placement of the edges before the constraint is applied. |
|||
'''Допустимые выделения:''' |
|||
* конечная точка линии/дуги/дуги-эллипса + конечная точка линии/дуги/дуги-эллипса (т.е. две конечные точки любых двух кривых) |
|||
<span id="Between_edge_and_endpoint"></span> |
|||
<div class="mw-translate-fuzzy"> |
|||
===Между кривой и конечной точкой (касательная точки к кривой)=== |
===Между кривой и конечной точкой (касательная точки к кривой)=== |
||
[[Image:Sketcher ConsraintTangent mode3.png|600px]] |
[[Image:Sketcher ConsraintTangent mode3.png|600px]] |
||
</div> |
|||
[[Image:Sketcher_ConsraintTangent_mode3.png|400px]] |
|||
<div class="mw-translate-fuzzy"> |
|||
В этом режиме конечная точка одной кривой ограничивается лежать на другой кривой так, чтобы обе кривые были касательными в этой точке. Этот режим применяется, когда выделены кривая и конечная точка другой кривой. |
В этом режиме конечная точка одной кривой ограничивается лежать на другой кривой так, чтобы обе кривые были касательными в этой точке. Этот режим применяется, когда выделены кривая и конечная точка другой кривой. |
||
</div> |
|||
<span id="Between_two_edges_at_point"></span> |
|||
'''Допустимое выделение:''' |
|||
<div class="mw-translate-fuzzy"> |
|||
* линия, окружность, дуга, эллипс, дуга эллипса + конечная точка линии/дуги/дуги эллипса (то есть любая кривая + конечная точка любой кривой) |
|||
===Между двумя кривыми в точке (касательная через точку) (v0.15)=== |
===Между двумя кривыми в точке (касательная через точку) (v0.15)=== |
||
[[Image:Sketcher ConsraintTangent mode4.png|600px]] |
[[Image:Sketcher ConsraintTangent mode4.png|600px]] |
||
</div> |
|||
[[Image:Sketcher_ConsraintTangent_mode4.png|400px]] |
|||
<div class="mw-translate-fuzzy"> |
|||
В этом режиме две кривые делаются касательными и отслеживается точка касания. Этот режим применяется, когда выделены две кривые и точка. |
В этом режиме две кривые делаются касательными и отслеживается точка касания. Этот режим применяется, когда выделены две кривые и точка. |
||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
'''Допустимое выделение:''' |
|||
В сравнении с прямой касательностью, это ограничение медленнее, поскольку привлекается большее число степеней свободы, но если нужна точка касания, это рекомендованный режим, поскольку он предлагает лучшую сходимость в сравнении к прямому касанию + точке на двух кривых. |
|||
* любая линия/кривая + любая линия/кривая + любая точка |
|||
</div> |
|||
"Любая точка" может быть отдельной точкой, или точкой чего-либо, например, центр окружности, конечная точка дуги, начальная точка. |
|||
<span id="Between_two_lines"></span> |
|||
Чтобы ограничение работало правильно, точка должна быть на обоих кривых. Поэтому как только ограничение вызвано, точка будет автоматически ограничена на двух кривых (если нужно, будет добавлено [[Sketcher helper constraint/ru|вспомогательное ограничение]]), и кривые станут касательными в этой точке. Эти [[Sketcher helper constraint/ru|вспомогательные ограничения]] - простые регулярные ограничения. Они могут быть добавлены вручную, или удалены. |
|||
<div class="mw-translate-fuzzy"> |
|||
===Между двумя линиями (коллинеарно)=== |
|||
</div> |
|||
[[Image:Sketcher_ConstraintTangent_mode5.png|400px]] |
|||
В сравнении с прямой касательностью, это ограничение медленнее, поскольку привлекается большее число степеней свободы, но если нужна точка касания, это рекомендованный режим, поскольку он предлагает лучшую сходимость в сравнении к прямому касанию + точке на двух кривых. |
|||
The two lines are made collinear. |
|||
The placement of the point before the constraint is applied is a hint for the solver for where the tangency should be. With this constraint, one can constrain two ellipses to touch each other in two places. |
|||
= |
<span id="Scripting"></span> |
||
==Программирование== |
|||
Ограничение касательности может создаваться из [[Macros/ru|макросов]] и из консоли [[Python/ru|Python]] следующим образом: |
|||
Tangent Constraint can be created from [[macros]] and from the python console by using the following: |
|||
{{Code|code= |
{{Code|code= |
||
# direct tangency |
# direct tangency |
||
Line 92: | Line 141: | ||
Sketch.addConstraint(Sketcher.Constraint('TangentViaPoint',icurve1,icurve2,geoidpoint,pointpos)) |
Sketch.addConstraint(Sketcher.Constraint('TangentViaPoint',icurve1,icurve2,geoidpoint,pointpos)) |
||
}} |
}} |
||
Где: |
|||
where: |
|||
:* {{incode|Sketch}} |
:* {{incode|Sketch}} это объект эскиза |
||
:* {{incode|icurve1}}, {{incode|icurve2}} |
:* {{incode|icurve1}}, {{incode|icurve2}} это два целых идентификатора кривых, которые станут касательными. Целые это индексы в эскизе (значения, возвращаемые {{incode|Sketch.addGeometry}}). |
||
:* {{incode|pointpos1}}, {{incode|pointpos2}} |
:* {{incode|pointpos1}}, {{incode|pointpos2}} должны быть 1 для начальной и 2 для конечной точки. |
||
:* {{incode|geoidpoint}} |
:* {{incode|geoidpoint}} и {{incode|pointpos}} в {{incode|TangentViaPoint}} это индексы, указывающие точку касания. |
||
На странице [[Sketcher_scripting/ru|Программирование в Sketcher]] объясняются значения, которые можно использовать для {{incode|incurve1}}, {{incode|incurve2}}, {{incode|pointpos1}}, {{incode|pointpos2}}, {{incode|geoidpoint}} и {{incode|pointpos}} а также содержатся дополнительные примеры того, как создавать ограничения из сценариев Python. |
|||
{{Docnav/ru |
{{Docnav/ru |
||
|[[Sketcher_ConstrainPerpendicular/ru| |
|[[Sketcher_ConstrainPerpendicular/ru|Ограничение перпендикулярности]] |
||
|[[Sketcher_ConstrainEqual/ru| |
|[[Sketcher_ConstrainEqual/ru|Ограничение эквивалентностью]] |
||
|[[Sketcher_Workbench/ru|Sketcher]] |
|[[Sketcher_Workbench/ru|Sketcher]] |
||
|IconL=Sketcher_ConstrainPerpendicular.svg |
|||
|IconL=Constraint_Perpendicular.png |
|||
|IconR=Sketcher_ConstrainEqual.svg |
|||
|IconC=Workbench_Sketcher.svg |
|IconC=Workbench_Sketcher.svg |
||
|IconR=Constraint_EqualLength.png |
|||
}} |
}} |
||
{{ |
{{Sketcher_Tools_navi{{#translation:}}}} |
||
{{Userdocnavi{{#translation:}}}} |
{{Userdocnavi{{#translation:}}}} |
||
{{clear}} |
Latest revision as of 15:01, 23 April 2024
Ограничение касательности |
Системное название |
---|
Sketcher_ConstrainTangent |
Расположение в меню |
Sketch → Ограничения эскиза → Ограничение касательности |
Верстаки |
Sketcher |
Быстрые клавиши |
T |
Представлено в версии |
- |
См. также |
Зафиксировать точку на объекте |
Описание
Ограничение касательности делает две кривые касающимися друг друга. Линии полагаются бесконечными, а дуги как полные окружности или эллипсы. Ограничение также может соединять две кривые, заставляя их идти по касательной в точке соединения, делая переход гладким.
Применение
See also: Drawing aids.
Continue mode
- Make sure there is no selection.
- There are several ways to invoke the tool:
- Press the Constrain tangent or collinear button.
- Select the Sketch → Sketcher constraints → Constrain tangent or collinear option from the menu.
- introduced in version 1.0: Right-click in the 3D view and select the Constrain → Constrain tangent or collinear option from the context menu.
- Use the keyboard shortcut: T.
- The cursor changes to a cross with the tool icon.
- Do one of the following:
- Select two edges. The edges can be any edge except a B-spline.
- Select a point and two edges (in that order).
- Select an edge, a point and another edge (idem).
- A Tangent constraint is added. If a point and two edges have been selected, up to two Point on object constraints can also be added. See Examples.
- Optionally keep creating constraints.
- To finish, right-click or press Esc, or start another geometry or constraint creation tool.
Run-once mode
- Do one of the following:
- Select two edges (see above).
- Select two endpoints belonging to different edges.
- Select an edge and the endpoint of another edge (in any order).
- Select a point and two edges (idem).
- Invoke the tool as explained above, or with the following additional option:
- introduced in version 1.0: Right-click in the 3D view and select the Constrain tangent or collinear option from the context menu.
- A Tangent constraint is added. If a point and two edges have been selected, up to two Point on object constraints can also be added. See Examples.
Examples
The two edges are made tangent. If one of the edges is a conic, a Point object that has a Point on object constraint with both (extended) edges is added.
Не рекомендуется реконструировать точку касания созданием точки и установкой принадлежности её обоим кривым. Это будет работать, но конвергенция будет значительно медленнее, сложнее, и потребует вдвое больше итераций чем в норме. Используйте другие режимы этого ограничения, если нужна точка касания.
The endpoints are made coincident, and the angle between the edges at that point is set to 180° (smooth joint) or 0° (sharp joint), depending on the placement of the edges before the constraint is applied.
В этом режиме конечная точка одной кривой ограничивается лежать на другой кривой так, чтобы обе кривые были касательными в этой точке. Этот режим применяется, когда выделены кривая и конечная точка другой кривой.
В этом режиме две кривые делаются касательными и отслеживается точка касания. Этот режим применяется, когда выделены две кривые и точка.
В сравнении с прямой касательностью, это ограничение медленнее, поскольку привлекается большее число степеней свободы, но если нужна точка касания, это рекомендованный режим, поскольку он предлагает лучшую сходимость в сравнении к прямому касанию + точке на двух кривых.
Между двумя линиями (коллинеарно)
The two lines are made collinear.
Программирование
Ограничение касательности может создаваться из макросов и из консоли Python следующим образом:
# direct tangency
Sketch.addConstraint(Sketcher.Constraint('Tangent',icurve1,icurve2))
# point-to-point tangency
Sketch.addConstraint(Sketcher.Constraint('Tangent',icurve1,pointpos1,icurve2,pointpos2))
# point-to-curve tangency
Sketch.addConstraint(Sketcher.Constraint('Tangent',icurve1,pointpos1,icurve2))
# tangent-via-point (plain constraint, helpers are not added automatically)
Sketch.addConstraint(Sketcher.Constraint('TangentViaPoint',icurve1,icurve2,geoidpoint,pointpos))
Где:
Sketch
это объект эскизаicurve1
,icurve2
это два целых идентификатора кривых, которые станут касательными. Целые это индексы в эскизе (значения, возвращаемыеSketch.addGeometry
).pointpos1
,pointpos2
должны быть 1 для начальной и 2 для конечной точки.geoidpoint
иpointpos
вTangentViaPoint
это индексы, указывающие точку касания.
На странице Программирование в Sketcher объясняются значения, которые можно использовать для incurve1
, incurve2
, pointpos1
, pointpos2
, geoidpoint
и pointpos
а также содержатся дополнительные примеры того, как создавать ограничения из сценариев Python.
- General: Create sketch, Edit sketch, Map sketch to face, Reorient sketch, Validate sketch, Merge sketches, Mirror sketch, Leave sketch, View sketch, View section, Toggle grid, Toggle snap, Configure rendering order, Stop operation
- Sketcher geometries: Point, Line, Arc, Arc by 3 points, Circle, Circle by 3 points, Ellipse, Ellipse by 3 points, Arc of ellipse, Arc of hyperbola, Arc of parabola, B-spline by control points, Periodic B-spline by control points, B-spline by knots, Periodic B-spline by knots, Polyline, Rectangle, Centered rectangle, Rounded rectangle, Triangle, Square, Pentagon, Hexagon, Heptagon, Octagon, Regular polygon, Slot, Fillet, Corner-preserving fillet, Trim, Extend, Split, External geometry, Carbon copy, Toggle construction geometry
- Sketcher constraints:
- Geometric constraints: Coincident, Point on object, Vertical, Horizontal, Parallel, Perpendicular, Tangent, Equal, Symmetric, Block
- Dimensional constraints: Lock, Horizontal distance, Vertical distance, Distance, Radius or weight, Diameter, Auto radius/diameter, Angle, Refraction (Snell's law)
- Constraint tools: Toggle driving/reference constraint, Activate/deactivate constraint
- Sketcher tools: Select unconstrained DoF, Select associated constraints, Select associated geometry, Select redundant constraints, Select conflicting constraints, Show/hide internal geometry, Select origin, Select horizontal axis, Select vertical axis, Symmetry, Clone, Copy, Move, Rectangular array, Remove axes alignment, Delete all geometry, Delete all constraints
- Sketcher B-spline tools: Show/hide B-spline degree, Show/hide B-spline control polygon, Show/hide B-spline curvature comb, Show/hide B-spline knot multiplicity, Show/hide B-spline control point weight, Convert geometry to B-spline, Increase B-spline degree, Decrease B-spline degree, Increase knot multiplicity, Decrease knot multiplicity, Insert knot, Join curves
- Sketcher virtual space: Switch virtual space
- Additional: Sketcher Dialog, Preferences, Sketcher scripting
- Начинающим
- Установка: Загрузка, Windows, Linux, Mac, Дополнительных компонентов, Docker, AppImage, Ubuntu Snap
- Базовая: О FreeCAD, Интерфейс, Навигация мыши, Методы выделения, Имя объекта, Настройки, Верстаки, Структура документа, Свойства, Помоги FreeCAD, Пожертвования
- Помощь: Учебники, Видео учебники
- Верстаки: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework