Sketcher Ограничение касательности

From FreeCAD Documentation
Revision as of 15:10, 11 June 2024 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Ограничение касательности

Расположение в меню
Sketch → Ограничения эскиза → Ограничение касательности
Верстаки
Sketcher
Быстрые клавиши
T
Представлено в версии
-
См. также
Зафиксировать точку на объекте

Описание

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

Применение

See also: Drawing aids.

Continue mode

  1. Make sure there is no selection.
  2. 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.
  3. The cursor changes to a cross with the tool icon.
  4. 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).
  5. 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.
  6. Optionally keep creating constraints.
  7. To finish, right-click or press Esc, or start another geometry or constraint creation tool.

Run-once mode

  1. 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).
  2. Invoke the tool as explained above, or with the following additional option:
  3. 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.

Между кривой и конечной точкой (касательная точки к кривой)

В этом режиме конечная точка одной кривой ограничивается лежать на другой кривой так, чтобы обе кривые были касательными в этой точке. Этот режим применяется, когда выделены кривая и конечная точка другой кривой.

Между двумя кривыми в точке (касательная через точку) (v0.15)

В этом режиме две кривые делаются касательными и отслеживается точка касания. Этот режим применяется, когда выделены две кривые и точка.

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

Между двумя линиями (коллинеарно)

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.