コード例 #1
0
ファイル: solver.py プロジェクト: manymachines/cadquery
def point_cost(
    m1: gp_Pnt, m2: gp_Pnt, t1: gp_Trsf, t2: gp_Trsf, val: Optional[float] = None,
) -> float:

    val = 0 if val is None else val

    return val - (m1.Transformed(t1).XYZ() - m2.Transformed(t2).XYZ()).Modulus()
コード例 #2
0
ファイル: solver.py プロジェクト: manymachines/cadquery
def point_on_line_cost(
    m1: gp_Pnt, m2: gp_Lin, t1: gp_Trsf, t2: gp_Trsf, val: Optional[float] = None,
) -> float:

    val = 0 if val is None else val

    m2_located = m2.Transformed(t2)

    return val - m2_located.Distance(m1.Transformed(t1))
コード例 #3
0
ファイル: solver.py プロジェクト: manymachines/cadquery
def point_in_plane_cost(
    m1: gp_Pnt, m2: gp_Pln, t1: gp_Trsf, t2: gp_Trsf, val: Optional[float] = None,
) -> float:

    val = 0 if val is None else val

    m2_located = m2.Transformed(t2)
    # offset in the plane's normal direction by val:
    m2_located.Translate(gp_Vec(m2_located.Axis().Direction()).Multiplied(val))
    return m2_located.Distance(m1.Transformed(t1))
コード例 #4
0
ファイル: solver.py プロジェクト: manymachines/cadquery
def fixed_point_cost(m1: gp_Pnt, t1: gp_Trsf, val: Tuple[float, float, float]):

    return (m1.Transformed(t1).XYZ() - gp_XYZ(*val)).Modulus()