提交N3 功能的改动
This commit is contained in:
@@ -38,15 +38,15 @@ _BODY_MUTATING_ATOMICS = frozenset({
|
||||
"extrude_add_blind", "extrude_add_two_sided", "extrude_cut_blind",
|
||||
"extrude_cut_through",
|
||||
"revolve_add", "revolve_cut", "sphere_add", "box_add", "cylinder_add",
|
||||
"thread_add", "thread_cut", *_HOLE_ATOMICS, "fillet", "chamfer",
|
||||
"thread_add", "thread_cut", "bend_add", *_HOLE_ATOMICS, "fillet", "chamfer",
|
||||
})
|
||||
# A pattern may replay a previous pattern as well as a direct body mutation.
|
||||
# Context-only features have no geometry definition to instance. thread_add
|
||||
# and thread_cut are excluded: pattern translation does not yet move their
|
||||
# parametric axis, so a replayed thread would silently re-run at the original
|
||||
# location.
|
||||
# Context-only features have no geometry definition to instance. thread_add,
|
||||
# thread_cut and bend_add are excluded: pattern translation does not yet move
|
||||
# their parametric axis/frame, so a replayed instance would silently re-run at
|
||||
# the original location.
|
||||
_REPLAYABLE_ATOMICS = (
|
||||
_BODY_MUTATING_ATOMICS - frozenset({"thread_add", "thread_cut"})
|
||||
_BODY_MUTATING_ATOMICS - frozenset({"thread_add", "thread_cut", "bend_add"})
|
||||
) | frozenset({"pattern_linear", "pattern_mirror", "pattern_circular"})
|
||||
_SUPPORTED_EXTENTS = frozenset({
|
||||
"blind", "mid_plane", "through_all", "through_all_both", "through_all_and_blind",
|
||||
@@ -312,7 +312,7 @@ class CapabilityAnalyzer:
|
||||
required.append(f"extent:{end_type}")
|
||||
if end_type not in _SUPPORTED_EXTENTS:
|
||||
blockers.append(self._blocker(node.feature_id, "unsupported_extent", "The extent needs a resolved topology selector or is not implemented", extent=end_type))
|
||||
target_kind = _EXTENT_TARGET_KINDS.get(end_type)
|
||||
target_kind = _EXTENT_TARGET_KINDS.get(end_type or "")
|
||||
if target_kind:
|
||||
required.append(f"selector:extent_target:{target_kind}")
|
||||
reference = end_condition.get("reference")
|
||||
@@ -341,7 +341,7 @@ class CapabilityAnalyzer:
|
||||
node.feature_id, "unsupported_reverse_extent",
|
||||
"The reverse extent is not implemented", extent=reverse_type,
|
||||
))
|
||||
reverse_target_kind = _EXTENT_TARGET_KINDS.get(reverse_type)
|
||||
reverse_target_kind = _EXTENT_TARGET_KINDS.get(reverse_type or "")
|
||||
if reverse_target_kind:
|
||||
required.append(f"selector:reverse_extent_target:{reverse_target_kind}")
|
||||
reverse_reference = reverse_condition.get("reference")
|
||||
@@ -465,7 +465,7 @@ class CapabilityAnalyzer:
|
||||
body_producers = {
|
||||
"extrude_add_blind", "extrude_add_two_sided", "extrude_cut_blind",
|
||||
"revolve_add", "revolve_cut", "sphere_add", "box_add", "cylinder_add",
|
||||
"thread_add",
|
||||
"thread_add", "bend_add",
|
||||
# thread_cut 与 extrude_cut_blind/revolve_cut 一致:无宿主时由
|
||||
# active_body 前置阻止,文档含该类特征即视为携带可执行几何。
|
||||
"thread_cut",
|
||||
|
||||
Reference in New Issue
Block a user