feat(cadfs): expand selector provenance coverage
This commit is contained in:
@@ -95,12 +95,23 @@
|
||||
"properties": {
|
||||
"type": {"type": "string", "minLength": 1},
|
||||
"solidworks_code": {"type": "integer"},
|
||||
"reference": {"$ref": "#/$defs/selectorRef"},
|
||||
"reference": {"oneOf": [{"$ref": "#/$defs/selectorRef"}, {"$ref": "#/$defs/sourceVertexDatumRef"}]},
|
||||
"offset_mm": {"type": "number", "minimum": 0}
|
||||
},
|
||||
"required": ["type", "solidworks_code"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"sourceVertexDatumRef": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"kind": {"const": "source_vertex"},
|
||||
"source_sketch_id": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"source_entity_id": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"point_mm": {"$ref": "#/$defs/point3"}
|
||||
},
|
||||
"required": ["kind", "source_sketch_id", "source_entity_id", "point_mm"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"selectorOrUnresolved": {
|
||||
"oneOf": [
|
||||
{"$ref": "#/$defs/selectorRef"},
|
||||
@@ -140,6 +151,14 @@
|
||||
"maxItems": 16,
|
||||
"uniqueItems": true,
|
||||
"items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}
|
||||
},
|
||||
"initial_output_roles": {"type": "boolean"},
|
||||
"cap_output_profile_sources": {
|
||||
"type": "array",
|
||||
"minItems": 2,
|
||||
"maxItems": 2,
|
||||
"uniqueItems": true,
|
||||
"items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}
|
||||
}
|
||||
},
|
||||
"required": ["profile_sketch_ids"],
|
||||
@@ -160,20 +179,92 @@
|
||||
"additionalProperties": false
|
||||
},
|
||||
"sweepPath": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"workplane": {"$ref": "#/$defs/workplane"},
|
||||
"segment": {"$ref": "#/$defs/analyticSegment"}
|
||||
},
|
||||
"required": ["workplane", "segment"],
|
||||
"additionalProperties": false
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"workplane": {"$ref": "#/$defs/workplane"},
|
||||
"segment": {"$ref": "#/$defs/analyticSegment"},
|
||||
"segments": {
|
||||
"type": "array",
|
||||
"minItems": 2,
|
||||
"items": {"$ref": "#/$defs/analyticSegment"}
|
||||
}
|
||||
},
|
||||
"required": ["workplane"],
|
||||
"oneOf": [
|
||||
{"required": ["segment"], "not": {"required": ["segments"]}},
|
||||
{"required": ["segments"], "not": {"required": ["segment"]}}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"segments": {
|
||||
"type": "array",
|
||||
"minItems": 2,
|
||||
"items": {"$ref": "#/$defs/spatialSweepSegment"}
|
||||
}
|
||||
},
|
||||
"required": ["segments"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"sweepParams": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"path": {"$ref": "#/$defs/sweepPath"},
|
||||
"is_frenet": {"type": "boolean"},
|
||||
"result_mode": {"enum": ["fuse", "new_body"]}
|
||||
"result_mode": {"enum": ["fuse", "new_body"]},
|
||||
"initial_output_roles": {"type": "boolean"},
|
||||
"cap_output_contract": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"profile_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
|
||||
"profile_entity": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"path_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
|
||||
"path_entity": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"path_reversed": {"type": "boolean"}
|
||||
},
|
||||
"required": ["profile_source", "profile_entity", "path_source", "path_entity", "path_reversed"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"swept_face_contract": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"profile_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
|
||||
"profile_entities": {
|
||||
"type": "array",
|
||||
"items": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"minItems": 1,
|
||||
"uniqueItems": true
|
||||
},
|
||||
"path_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
|
||||
"path_entity": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"path_reversed": {"type": "boolean"}
|
||||
},
|
||||
"required": ["profile_source", "profile_entities", "path_source", "path_entity", "path_reversed"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"swept_edge_contract": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"profile_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
|
||||
"profile_entities": {
|
||||
"type": "array",
|
||||
"items": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"minItems": 2,
|
||||
"uniqueItems": true
|
||||
},
|
||||
"path_source": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
|
||||
"path_entity": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"path_reversed": {"type": "boolean"}
|
||||
},
|
||||
"required": ["profile_source", "profile_entities", "path_source", "path_entity", "path_reversed"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": ["path"],
|
||||
"additionalProperties": false
|
||||
@@ -405,14 +496,17 @@
|
||||
"operation": {"enum": ["union", "subtract", "intersect"]},
|
||||
"target_feature_ids": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}},
|
||||
"target_pattern_instance_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/patternInstanceBodyRef"}},
|
||||
"target_transform_copy_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/transformCopyBodyRef"}},
|
||||
"tool_feature_ids": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}},
|
||||
"tool_pattern_instance_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/patternInstanceBodyRef"}},
|
||||
"keep_tools": {"type": "boolean"}
|
||||
"tool_transform_copy_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/transformCopyBodyRef"}},
|
||||
"keep_tools": {"type": "boolean"},
|
||||
"targetless_body_set": {"type": "boolean"}
|
||||
},
|
||||
"required": ["operation"],
|
||||
"allOf": [
|
||||
{"anyOf": [{"required": ["target_feature_ids"]}, {"required": ["target_pattern_instance_refs"]}]},
|
||||
{"anyOf": [{"required": ["tool_feature_ids"]}, {"required": ["tool_pattern_instance_refs"]}]}
|
||||
{"anyOf": [{"required": ["target_feature_ids"]}, {"required": ["target_pattern_instance_refs"]}, {"required": ["target_transform_copy_refs"]}]},
|
||||
{"anyOf": [{"required": ["tool_feature_ids"]}, {"required": ["tool_pattern_instance_refs"]}, {"required": ["tool_transform_copy_refs"]}]}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
@@ -453,12 +547,22 @@
|
||||
"required": ["transform_feature_id", "source_feature_id"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"transformSourceMemberAlias": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"source_feature_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
|
||||
"active_member_feature_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}
|
||||
},
|
||||
"required": ["source_feature_id", "active_member_feature_id"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"transformBodiesParams": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"source_feature_ids": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"}},
|
||||
"pattern_instance_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/patternInstanceBodyRef"}},
|
||||
"transform_copy_refs": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/transformCopyBodyRef"}},
|
||||
"source_member_aliases": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/transformSourceMemberAlias"}},
|
||||
"transform": {"$ref": "#/$defs/bodyTransform"},
|
||||
"make_copy": {"type": "boolean"}
|
||||
},
|
||||
@@ -533,6 +637,22 @@
|
||||
"required": ["axis"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"referencePointParams": {
|
||||
"type": "object",
|
||||
"properties": {"point_mm": {"$ref": "#/$defs/point3"}},
|
||||
"required": ["point_mm"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"assignVariableParams": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {"type": "string", "minLength": 1, "maxLength": 256},
|
||||
"value": {"type": "number"},
|
||||
"value_kind": {"enum": ["any", "length"]}
|
||||
},
|
||||
"required": ["name", "value", "value_kind"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"holeWizardParams": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -588,6 +708,132 @@
|
||||
"required": ["ast"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"selectorIntentQueryExprNode": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "set"},
|
||||
"operator": {"enum": ["union", "intersection", "subtraction"]},
|
||||
"operands": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
|
||||
},
|
||||
"required": ["node", "operator", "operands"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "filter"},
|
||||
"filter": {"enum": ["adjacent", "owner_body", "body_type", "construction"]},
|
||||
"input": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
|
||||
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
|
||||
},
|
||||
"required": ["node", "filter", "input", "arguments"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "topology_query"},
|
||||
"owner": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
|
||||
"topology_type": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
|
||||
"entity_type": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
|
||||
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
|
||||
},
|
||||
"required": ["node", "owner", "topology_type", "entity_type", "arguments"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "created_by"},
|
||||
"owner": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
|
||||
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
|
||||
},
|
||||
"required": ["node", "owner", "arguments"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "source_entity"},
|
||||
"sketch": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
|
||||
"entity_type": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
|
||||
"entity": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
|
||||
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
|
||||
},
|
||||
"required": ["node", "sketch", "entity_type", "entity", "arguments"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "sketch_region"},
|
||||
"sketch": {"$ref": "#/$defs/selectorIntentQueryExprNode"},
|
||||
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
|
||||
},
|
||||
"required": ["node", "sketch", "arguments"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "opaque_call"},
|
||||
"name": {"type": "string", "minLength": 1},
|
||||
"arguments": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
|
||||
},
|
||||
"required": ["node", "name", "arguments"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "list"},
|
||||
"items": {"type": "array", "items": {"$ref": "#/$defs/selectorIntentQueryExprNode"}}
|
||||
},
|
||||
"required": ["node", "items"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "map"},
|
||||
"entries": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"key": {"type": "string"},
|
||||
"value": {"$ref": "#/$defs/selectorIntentQueryExprNode"}
|
||||
},
|
||||
"required": ["key", "value"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["node", "entries"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"node": {"const": "literal"},
|
||||
"value": {}
|
||||
},
|
||||
"required": ["node", "value"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"selectorIntentQueryExpr": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"version": {"const": "1.0"},
|
||||
"root": {"$ref": "#/$defs/selectorIntentQueryExprNode"}
|
||||
},
|
||||
"required": ["version", "root"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"selectorIntent": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -595,6 +841,7 @@
|
||||
"kind": {"enum": ["face", "edge", "axis", "plane", "feature", "vertex", "body"]},
|
||||
"query_family": {"type": "string", "pattern": "^[A-Z][A-Z0-9_]{0,79}$"},
|
||||
"source_query": {"$ref": "#/$defs/selectorIntentSourceQuery"},
|
||||
"query_expr": {"$ref": "#/$defs/selectorIntentQueryExpr"},
|
||||
"source_entity": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -606,7 +853,7 @@
|
||||
},
|
||||
"source_entities": {
|
||||
"type": "array",
|
||||
"minItems": 2,
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "object",
|
||||
@@ -642,9 +889,81 @@
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"blend_sources": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"edge": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"query_family": {"const": "CAP_EDGE"},
|
||||
"owner_feature_id": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"source_entity": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sketch_id": {"type": "string", "minLength": 1},
|
||||
"entity_id": {"type": "string", "minLength": 1}
|
||||
},
|
||||
"required": ["sketch_id", "entity_id"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"lineage_role": {"enum": ["extrude.start", "extrude.end"]}
|
||||
},
|
||||
"required": ["query_family", "owner_feature_id", "source_entity", "lineage_role"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"face": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"query_family": {"enum": ["CAP_FACE", "SWEPT_FACE"]},
|
||||
"owner_feature_id": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"output_role": {"enum": ["extrude.start", "extrude.end"]},
|
||||
"source_entity": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sketch_id": {"type": "string", "minLength": 1},
|
||||
"entity_id": {"type": "string", "minLength": 1}
|
||||
},
|
||||
"required": ["sketch_id", "entity_id"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": ["query_family", "owner_feature_id"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": ["edge", "face"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"blend_face_source": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"query_family": {"const": "CAP_EDGE"},
|
||||
"owner_feature_id": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"source_entity": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sketch_id": {"type": "string", "minLength": 1},
|
||||
"entity_id": {"type": "string", "minLength": 1}
|
||||
},
|
||||
"required": ["sketch_id", "entity_id"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"lineage_role": {"enum": ["extrude.start", "extrude.end"]}
|
||||
},
|
||||
"required": ["query_family", "owner_feature_id", "source_entity", "lineage_role"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"output_role": {"$ref": "#/$defs/featureOutputRole"},
|
||||
"consumer_contract": {"enum": ["direct_prism_cap_face_workplane", "primary_add_shell_union_continuation", "primary_add_up_to_surface_union_continuation", "primary_add_dressup_union_continuation", "symmetric_direct_prism_two_sided_up_to_surface_cap_pair", "symmetric_direct_prism_shell_swept_face_up_to_surface_pair", "immediate_retained_source_prism_swept_face_up_to_surface", "shell_retained_direct_prism_cap_offset_face_profile", "direct_prism_shell_offset_edge_tdd", "direct_prism_shell_offset_edge_vertex"]},
|
||||
"lineage_role": {"enum": ["extrude.start", "extrude.end"]},
|
||||
"body_member_contract": {"enum": ["direct_new_body"]},
|
||||
"query_set_contract": {"enum": ["proven_operand_union", "proven_operand_intersection", "proven_operand_subtraction"]},
|
||||
"owner_body_contract": {"enum": ["exact_input_owner"]},
|
||||
"copy_contract": {"enum": ["primary_cut_cap_edge", "primary_cut_cap_face_workplane", "primary_cut_swept_face_workplane"]},
|
||||
"set_kind": {"enum": ["face", "edge"]},
|
||||
"body_scope": {"enum": ["active_member"]},
|
||||
"empty_policy": {"enum": ["reject"]},
|
||||
"multiple_policy": {"enum": ["all", "one"]},
|
||||
"derivation_policy": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -674,6 +993,8 @@
|
||||
"snapshot_id": {"type": "string", "minLength": 1},
|
||||
"binding_feature_id": {"type": "string", "pattern": "^[A-Za-z0-9_-]{1,80}$"},
|
||||
"match_mode": {"enum": ["unique", "all"]},
|
||||
"query_input": {"$ref": "#/$defs/selectorRef"},
|
||||
"query_operands": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/selectorRef"}},
|
||||
"matched_selectors": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/selectorRef"}},
|
||||
"intersection_of": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/selectorRef"}},
|
||||
"selector_intent_version": {"const": "1.0"},
|
||||
@@ -715,6 +1036,33 @@
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"spatialSweepSegment": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {"enum": ["line", "arc", "bspline"]},
|
||||
"start_mm": {"$ref": "#/$defs/point3"},
|
||||
"end_mm": {"$ref": "#/$defs/point3"},
|
||||
"center_mm": {"$ref": "#/$defs/point3"},
|
||||
"normal": {"$ref": "#/$defs/point3"},
|
||||
"radius_mm": {"$ref": "#/$defs/positive"},
|
||||
"points_mm": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/point3"}},
|
||||
"parameters": {"type": "array", "minItems": 2, "items": {"type": "number"}},
|
||||
"periodic": {"type": "boolean"},
|
||||
"clockwise": {"type": "boolean"},
|
||||
"start_tangent_mm": {"$ref": "#/$defs/point3"},
|
||||
"end_tangent_mm": {"$ref": "#/$defs/point3"},
|
||||
"source_sketch_id": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"source_entity_id": {"type": "string", "minLength": 1, "maxLength": 160}
|
||||
},
|
||||
"required": ["type", "source_sketch_id", "source_entity_id"],
|
||||
"allOf": [
|
||||
{"if": {"properties": {"type": {"const": "line"}}}, "then": {"required": ["start_mm", "end_mm"]}},
|
||||
{"if": {"properties": {"type": {"const": "arc"}}}, "then": {"required": ["start_mm", "end_mm", "center_mm", "normal", "radius_mm"]}},
|
||||
{"if": {"properties": {"type": {"const": "bspline"}}}, "then": {"required": ["points_mm"]}},
|
||||
{"if": {"properties": {"type": {"const": "bspline"}, "points_mm": {"maxItems": 2}}}, "then": {"required": ["start_tangent_mm", "end_tangent_mm", "parameters"], "properties": {"periodic": {"const": false}}}}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"constructionBsplineSegment": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -738,7 +1086,8 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"role": {"enum": ["outer", "inner", "open", "unknown"]},
|
||||
"closed": {"type": "boolean"},
|
||||
"closed": {"type": "boolean"},
|
||||
"surface_wire": {"type": "boolean"},
|
||||
"segments": {"type": "array", "items": {"$ref": "#/$defs/analyticSegment"}}
|
||||
},
|
||||
"required": ["role", "closed", "segments"],
|
||||
@@ -767,10 +1116,24 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"anchor_entity_id": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"external_anchor_id": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"side": {"enum": [-1, 1]},
|
||||
"intersection_index": {"type": "integer", "minimum": 0}
|
||||
},
|
||||
"required": ["anchor_entity_id", "side"],
|
||||
"required": ["side"],
|
||||
"oneOf": [
|
||||
{"required": ["anchor_entity_id"]},
|
||||
{"required": ["external_anchor_id"]}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"imprintExternalAnchor": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "minLength": 1, "maxLength": 160},
|
||||
"selector": {"$ref": "#/$defs/selectorRef"}
|
||||
},
|
||||
"required": ["id", "selector"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"imprintSelection": {
|
||||
@@ -787,13 +1150,37 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {"const": "planar_imprint"},
|
||||
"source_entities": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/imprintSourceEntity"}},
|
||||
"selections": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/imprintSelection"}}
|
||||
"source_entities": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/imprintSourceEntity"}},
|
||||
"selections": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/imprintSelection"}},
|
||||
"external_anchors": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/imprintExternalAnchor"}}
|
||||
},
|
||||
"required": ["type", "source_entities", "selections"],
|
||||
"allOf": [
|
||||
{
|
||||
"if": {"not": {"required": ["external_anchors"]}},
|
||||
"then": {"properties": {"source_entities": {"minItems": 2}}}
|
||||
}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"feature_atomic_ids": {"enum": ["extrude_add_blind", "extrude_add_blind_with_hole", "extrude_add_two_sided", "extrude_cut_blind", "extrude_cut_two_sided", "extrude_cut_through", "extrude_from_face", "extrude_surface", "loft_add", "loft_add_with_cap_face", "sweep_add", "revolve_add", "revolve_cut", "revolve_surface", "hole_blind", "hole_countersink", "hole_counterbore", "sphere_add", "box_add", "cylinder_add", "thread_add", "thread_cut", "bend_add", "gear_add", "rack_add", "fillet", "chamfer", "shell", "boolean_bodies", "transform_bodies", "delete_bodies", "pattern_linear", "pattern_mirror", "pattern_circular", "reference_plane", "reference_axis", "hole_wizard"]},
|
||||
"multiSourceRegionsProfile": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {"const": "multi_source_regions"},
|
||||
"source_sketch_ids": {"type": "array", "minItems": 2, "items": {"type": "string", "minLength": 1, "maxLength": 160}, "uniqueItems": true},
|
||||
"profiles": {"type": "array", "minItems": 2, "items": {"$ref": "#/$defs/directProfile"}}
|
||||
},
|
||||
"required": ["type", "source_sketch_ids", "profiles"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"directProfile": {
|
||||
"oneOf": [
|
||||
{"type": "object", "properties": {"type": {"const": "circle"}, "center": {"$ref": "#/$defs/point2"}, "radius_mm": {"$ref": "#/$defs/positive"}, "source_entity_id": {"type": "string", "minLength": 1, "maxLength": 160}}, "required": ["type", "radius_mm"], "additionalProperties": false},
|
||||
{"type": "object", "properties": {"type": {"const": "polygon"}, "vertices": {"type": "array", "minItems": 3, "items": {"$ref": "#/$defs/point2"}}}, "required": ["type", "vertices"], "additionalProperties": false},
|
||||
{"$ref": "#/$defs/analyticProfile"}
|
||||
]
|
||||
},
|
||||
"feature_atomic_ids": {"enum": ["extrude_add_blind", "extrude_add_blind_with_hole", "extrude_add_two_sided", "extrude_cut_blind", "extrude_cut_two_sided", "extrude_cut_through", "extrude_from_face", "extrude_surface", "loft_add", "loft_add_with_cap_face", "loft_surface", "sweep_add", "sweep_cut", "revolve_add", "revolve_cut", "revolve_surface", "hole_blind", "hole_countersink", "hole_counterbore", "sphere_add", "box_add", "cylinder_add", "thread_add", "thread_cut", "bend_add", "gear_add", "rack_add", "fillet", "chamfer", "shell", "boolean_bodies", "transform_bodies", "delete_bodies", "pattern_linear", "pattern_mirror", "pattern_circular", "reference_plane", "reference_axis", "reference_point", "assign_variable", "hole_wizard"]},
|
||||
"feature": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -819,7 +1206,9 @@
|
||||
{"if": {"properties": {"atomic_id": {"const": "extrude_from_face"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/extrudeFromFaceParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "loft_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/loftParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "loft_add_with_cap_face"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/loftCapFaceParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "loft_surface"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/loftParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "sweep_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/sweepParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "sweep_cut"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/sweepParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "revolve_add"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/revolveParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "revolve_cut"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/revolveParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "revolve_surface"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/revolveSurfaceParams"}}}},
|
||||
@@ -846,15 +1235,18 @@
|
||||
{"if": {"properties": {"atomic_id": {"const": "pattern_circular"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/circularPatternParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "reference_plane"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/referencePlaneParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "reference_axis"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/referenceAxisParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "reference_point"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/referencePointParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "assign_variable"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/assignVariableParams"}}}},
|
||||
{"if": {"properties": {"atomic_id": {"const": "hole_wizard"}}}, "then": {"properties": {"params": {"$ref": "#/$defs/holeWizardParams"}}}}
|
||||
]
|
||||
},
|
||||
"profile_type": {"enum": ["circle", "polygon", "analytic_contours", "planar_imprint"]},
|
||||
"profile_type": {"enum": ["circle", "polygon", "analytic_contours", "multi_source_regions", "planar_imprint"]},
|
||||
"profile": {
|
||||
"oneOf": [
|
||||
{"type": "object", "properties": {"type": {"const": "circle"}, "center": {"$ref": "#/$defs/point2"}, "radius_mm": {"$ref": "#/$defs/positive"}, "source_entity_id": {"type": "string", "minLength": 1, "maxLength": 160}}, "required": ["type", "radius_mm"], "additionalProperties": false},
|
||||
{"type": "object", "properties": {"type": {"const": "polygon"}, "vertices": {"type": "array", "minItems": 3, "items": {"$ref": "#/$defs/point2"}}}, "required": ["type", "vertices"], "additionalProperties": false},
|
||||
{"$ref": "#/$defs/analyticProfile"},
|
||||
{"$ref": "#/$defs/multiSourceRegionsProfile"},
|
||||
{"$ref": "#/$defs/planarImprintProfile"}
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user