Update api spec (#433)

* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
zoo-github-actions-auth[bot]
2025-05-08 12:57:30 -07:00
committed by GitHub
parent 2fd4d315db
commit 06a646e558
16 changed files with 1422 additions and 955 deletions

File diff suppressed because it is too large Load Diff

View File

@ -52,6 +52,7 @@ from .cluster import Cluster
from .code_language import CodeLanguage from .code_language import CodeLanguage
from .code_output import CodeOutput from .code_output import CodeOutput
from .color import Color from .color import Color
from .complementary_edges import ComplementaryEdges
from .component_transform import ComponentTransform from .component_transform import ComponentTransform
from .connection import Connection from .connection import Connection
from .country_code import CountryCode from .country_code import CountryCode
@ -67,6 +68,7 @@ from .curve_set_constraint import CurveSetConstraint
from .curve_type import CurveType from .curve_type import CurveType
from .customer import Customer from .customer import Customer
from .customer_balance import CustomerBalance from .customer_balance import CustomerBalance
from .cut_strategy import CutStrategy
from .cut_type import CutType from .cut_type import CutType
from .default_camera_center_to_scene import DefaultCameraCenterToScene from .default_camera_center_to_scene import DefaultCameraCenterToScene
from .default_camera_center_to_selection import DefaultCameraCenterToSelection from .default_camera_center_to_selection import DefaultCameraCenterToSelection
@ -131,6 +133,7 @@ from .extrude import Extrude
from .extruded_face_info import ExtrudedFaceInfo from .extruded_face_info import ExtrudedFaceInfo
from .extrusion_face_cap_type import ExtrusionFaceCapType from .extrusion_face_cap_type import ExtrusionFaceCapType
from .extrusion_face_info import ExtrusionFaceInfo from .extrusion_face_info import ExtrusionFaceInfo
from .face_edge_info import FaceEdgeInfo
from .face_get_center import FaceGetCenter from .face_get_center import FaceGetCenter
from .face_get_gradient import FaceGetGradient from .face_get_gradient import FaceGetGradient
from .face_get_position import FaceGetPosition from .face_get_position import FaceGetPosition
@ -304,10 +307,12 @@ from .solid3d_get_all_edge_faces import Solid3dGetAllEdgeFaces
from .solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges from .solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges
from .solid3d_get_common_edge import Solid3dGetCommonEdge from .solid3d_get_common_edge import Solid3dGetCommonEdge
from .solid3d_get_extrusion_face_info import Solid3dGetExtrusionFaceInfo from .solid3d_get_extrusion_face_info import Solid3dGetExtrusionFaceInfo
from .solid3d_get_info import Solid3dGetInfo
from .solid3d_get_next_adjacent_edge import Solid3dGetNextAdjacentEdge from .solid3d_get_next_adjacent_edge import Solid3dGetNextAdjacentEdge
from .solid3d_get_opposite_edge import Solid3dGetOppositeEdge from .solid3d_get_opposite_edge import Solid3dGetOppositeEdge
from .solid3d_get_prev_adjacent_edge import Solid3dGetPrevAdjacentEdge from .solid3d_get_prev_adjacent_edge import Solid3dGetPrevAdjacentEdge
from .solid3d_shell_face import Solid3dShellFace from .solid3d_shell_face import Solid3dShellFace
from .solid_info import SolidInfo
from .source_position import SourcePosition from .source_position import SourcePosition
from .source_range import SourceRange from .source_range import SourceRange
from .source_range_prompt import SourceRangePrompt from .source_range_prompt import SourceRangePrompt

View File

@ -0,0 +1,13 @@
from typing import List, Optional
from pydantic import BaseModel, ConfigDict
class ComplementaryEdges(BaseModel):
"""Struct to contain the edge information of a wall of an extrude/rotate/loft/sweep."""
adjacent_ids: List[str]
opposite_id: Optional[str] = None
model_config = ConfigDict(protected_namespaces=())

View File

@ -0,0 +1,15 @@
from enum import Enum
class CutStrategy(str, Enum):
"""What strategy (algorithm) should be used for cutting? Defaults to Automatic.""" # noqa: E501
"""# Basic fillet cut. This has limitations, like the filletted edges can't touch each other. But it's very fast and simple. """ # noqa: E501
BASIC = "basic"
"""# More complicated fillet cut. It works for more use-cases, like edges that touch each other. But it's slower than the Basic method. """ # noqa: E501
CSG = "csg"
"""# Tries the Basic method, and if that doesn't work, tries the CSG strategy. """ # noqa: E501
AUTOMATIC = "automatic"
def __str__(self) -> str:
return str(self.value)

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityCircularPattern(BaseModel): class EntityCircularPattern(BaseModel):
"""The response from the `EntityCircularPattern` command.""" """The response from the `EntityCircularPattern` command."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,7 +1,15 @@
from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityClone(BaseModel): class EntityClone(BaseModel):
"""The response from the `EntityClone` command.""" """The response from the `EntityClone` command."""
entity_ids: Optional[List[str]] = None
face_edge_ids: Optional[List[FaceEdgeInfo]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityLinearPattern(BaseModel): class EntityLinearPattern(BaseModel):
"""The response from the `EntityLinearPattern` command.""" """The response from the `EntityLinearPattern` command."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityLinearPatternTransform(BaseModel): class EntityLinearPatternTransform(BaseModel):
"""The response from the `EntityLinearPatternTransform` command.""" """The response from the `EntityLinearPatternTransform` command."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityMirror(BaseModel): class EntityMirror(BaseModel):
"""The response from the `EntityMirror` endpoint.""" """The response from the `EntityMirror` endpoint."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityMirrorAcrossEdge(BaseModel): class EntityMirrorAcrossEdge(BaseModel):
"""The response from the `EntityMirrorAcrossEdge` endpoint.""" """The response from the `EntityMirrorAcrossEdge` endpoint."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -0,0 +1,15 @@
from typing import List
from pydantic import BaseModel, ConfigDict
class FaceEdgeInfo(BaseModel):
"""Faces and edges id info (most used in identifying geometry in patterned and mirrored objects)."""
edges: List[str]
faces: List[str]
object_id: str
model_config = ConfigDict(protected_namespaces=())

View File

@ -11,6 +11,7 @@ from ..models.camera_movement import CameraMovement
from ..models.camera_view_state import CameraViewState from ..models.camera_view_state import CameraViewState
from ..models.color import Color from ..models.color import Color
from ..models.component_transform import ComponentTransform from ..models.component_transform import ComponentTransform
from ..models.cut_strategy import CutStrategy
from ..models.cut_type import CutType from ..models.cut_type import CutType
from ..models.distance_type import DistanceType from ..models.distance_type import DistanceType
from ..models.entity_type import EntityType from ..models.entity_type import EntityType
@ -817,12 +818,18 @@ class OptionSolid3DFilletEdge(BaseModel):
cut_type: CutType = "fillet" # type: ignore cut_type: CutType = "fillet" # type: ignore
edge_id: str edge_id: Optional[str] = None
edge_ids: List[str] = []
extra_face_ids: List[str] = []
object_id: str object_id: str
radius: LengthUnit radius: LengthUnit
strategy: CutStrategy = "automatic" # type: ignore
tolerance: LengthUnit tolerance: LengthUnit
type: Literal["solid3d_fillet_edge"] = "solid3d_fillet_edge" type: Literal["solid3d_fillet_edge"] = "solid3d_fillet_edge"
@ -1486,6 +1493,16 @@ class OptionSolid3DGetExtrusionFaceInfo(BaseModel):
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())
class OptionSolid3DGetInfo(BaseModel):
"""Get a concise description of all of solids edges."""
object_id: str
type: Literal["solid3d_get_info"] = "solid3d_get_info"
model_config = ConfigDict(protected_namespaces=())
class OptionSelectClear(BaseModel): class OptionSelectClear(BaseModel):
"""Clear the selection""" """Clear the selection"""
@ -1718,6 +1735,7 @@ ModelingCmd = RootModel[
OptionOrientToFace, OptionOrientToFace,
OptionViewIsometric, OptionViewIsometric,
OptionSolid3DGetExtrusionFaceInfo, OptionSolid3DGetExtrusionFaceInfo,
OptionSolid3DGetInfo,
OptionSelectClear, OptionSelectClear,
OptionSelectGet, OptionSelectGet,
OptionGetNumObjects, OptionGetNumObjects,

View File

@ -12,6 +12,7 @@ from ..models.camera_drag_move import CameraDragMove
from ..models.camera_drag_start import CameraDragStart from ..models.camera_drag_start import CameraDragStart
from ..models.center_of_mass import CenterOfMass from ..models.center_of_mass import CenterOfMass
from ..models.close_path import ClosePath from ..models.close_path import ClosePath
from ..models.complementary_edges import ComplementaryEdges
from ..models.curve_get_control_points import CurveGetControlPoints from ..models.curve_get_control_points import CurveGetControlPoints
from ..models.curve_get_end_points import CurveGetEndPoints from ..models.curve_get_end_points import CurveGetEndPoints
from ..models.curve_get_type import CurveGetType from ..models.curve_get_type import CurveGetType
@ -58,6 +59,7 @@ from ..models.export3d import Export3d
from ..models.extend_path import ExtendPath from ..models.extend_path import ExtendPath
from ..models.extrude import Extrude from ..models.extrude import Extrude
from ..models.extrusion_face_info import ExtrusionFaceInfo from ..models.extrusion_face_info import ExtrusionFaceInfo
from ..models.face_edge_info import FaceEdgeInfo
from ..models.face_get_center import FaceGetCenter from ..models.face_get_center import FaceGetCenter
from ..models.face_get_gradient import FaceGetGradient from ..models.face_get_gradient import FaceGetGradient
from ..models.face_get_position import FaceGetPosition from ..models.face_get_position import FaceGetPosition
@ -123,10 +125,12 @@ from ..models.solid3d_get_all_edge_faces import Solid3dGetAllEdgeFaces
from ..models.solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges from ..models.solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges
from ..models.solid3d_get_common_edge import Solid3dGetCommonEdge from ..models.solid3d_get_common_edge import Solid3dGetCommonEdge
from ..models.solid3d_get_extrusion_face_info import Solid3dGetExtrusionFaceInfo from ..models.solid3d_get_extrusion_face_info import Solid3dGetExtrusionFaceInfo
from ..models.solid3d_get_info import Solid3dGetInfo
from ..models.solid3d_get_next_adjacent_edge import Solid3dGetNextAdjacentEdge from ..models.solid3d_get_next_adjacent_edge import Solid3dGetNextAdjacentEdge
from ..models.solid3d_get_opposite_edge import Solid3dGetOppositeEdge from ..models.solid3d_get_opposite_edge import Solid3dGetOppositeEdge
from ..models.solid3d_get_prev_adjacent_edge import Solid3dGetPrevAdjacentEdge from ..models.solid3d_get_prev_adjacent_edge import Solid3dGetPrevAdjacentEdge
from ..models.solid3d_shell_face import Solid3dShellFace from ..models.solid3d_shell_face import Solid3dShellFace
from ..models.solid_info import SolidInfo
from ..models.start_path import StartPath from ..models.start_path import StartPath
from ..models.surface_area import SurfaceArea from ..models.surface_area import SurfaceArea
from ..models.sweep import Sweep from ..models.sweep import Sweep
@ -1301,6 +1305,16 @@ class OptionEntityGetDistance(BaseModel):
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())
class OptionFaceEdgeInfo(BaseModel):
""""""
data: FaceEdgeInfo
type: Literal["face_edge_info"] = "face_edge_info"
model_config = ConfigDict(protected_namespaces=())
class OptionEntityClone(BaseModel): class OptionEntityClone(BaseModel):
"""""" """"""
@ -1411,6 +1425,36 @@ class OptionExtrusionFaceInfo(BaseModel):
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())
class OptionComplementaryEdges(BaseModel):
""""""
data: ComplementaryEdges
type: Literal["complementary_edges"] = "complementary_edges"
model_config = ConfigDict(protected_namespaces=())
class OptionSolid3DGetInfo(BaseModel):
""""""
data: Solid3dGetInfo
type: Literal["solid3d_get_info"] = "solid3d_get_info"
model_config = ConfigDict(protected_namespaces=())
class OptionSolidInfo(BaseModel):
""""""
data: SolidInfo
type: Literal["solid_info"] = "solid_info"
model_config = ConfigDict(protected_namespaces=())
class OptionSetGridReferencePlane(BaseModel): class OptionSetGridReferencePlane(BaseModel):
"""""" """"""
@ -1570,6 +1614,7 @@ OkModelingCmdResponse = RootModel[
OptionCenterOfMass, OptionCenterOfMass,
OptionGetSketchModePlane, OptionGetSketchModePlane,
OptionEntityGetDistance, OptionEntityGetDistance,
OptionFaceEdgeInfo,
OptionEntityClone, OptionEntityClone,
OptionEntityLinearPatternTransform, OptionEntityLinearPatternTransform,
OptionEntityLinearPattern, OptionEntityLinearPattern,
@ -1581,6 +1626,9 @@ OkModelingCmdResponse = RootModel[
OptionEntityMakeHelixFromEdge, OptionEntityMakeHelixFromEdge,
OptionSolid3DGetExtrusionFaceInfo, OptionSolid3DGetExtrusionFaceInfo,
OptionExtrusionFaceInfo, OptionExtrusionFaceInfo,
OptionComplementaryEdges,
OptionSolid3DGetInfo,
OptionSolidInfo,
OptionSetGridReferencePlane, OptionSetGridReferencePlane,
OptionBooleanUnion, OptionBooleanUnion,
OptionBooleanIntersection, OptionBooleanIntersection,

View File

@ -0,0 +1,11 @@
from pydantic import BaseModel, ConfigDict
from ..models.solid_info import SolidInfo
class Solid3dGetInfo(BaseModel):
"""Extrusion face info struct (useful for maintaining mappings between source path segment ids and extrusion faces)"""
info: SolidInfo
model_config = ConfigDict(protected_namespaces=())

View File

@ -0,0 +1,19 @@
from typing import Dict, List, Optional
from pydantic import BaseModel, ConfigDict
from ..models.complementary_edges import ComplementaryEdges
class SolidInfo(BaseModel):
"""Solid info struct (useful for maintaining mappings between edges and faces and adjacent/opposite edges)."""
bottom_cap_id: Optional[str] = None
common_edges: Dict[str, List[str]]
complementary_edges: Dict[str, ComplementaryEdges]
top_cap_id: Optional[str] = None
model_config = ConfigDict(protected_namespaces=())

339
spec.json
View File

@ -19258,6 +19258,29 @@
"r" "r"
] ]
}, },
"ComplementaryEdges": {
"description": "Struct to contain the edge information of a wall of an extrude/rotate/loft/sweep.",
"type": "object",
"properties": {
"adjacent_ids": {
"description": "Every edge that shared one common vertex with the original edge.",
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"opposite_id": {
"nullable": true,
"description": "The opposite edge has no common vertices with the original edge. A wall may not have an opposite edge (i.e. a revolve that touches the axis of rotation).",
"type": "string",
"format": "uuid"
}
},
"required": [
"adjacent_ids"
]
},
"ComponentTransform": { "ComponentTransform": {
"description": "Container that holds a translate, rotate and scale. Defaults to no change, everything stays the same (i.e. the identity function).", "description": "Container that holds a translate, rotate and scale. Defaults to no change, everything stays the same (i.e. the identity function).",
"type": "object", "type": "object",
@ -19986,6 +20009,32 @@
"updated_at" "updated_at"
] ]
}, },
"CutStrategy": {
"description": "What strategy (algorithm) should be used for cutting? Defaults to Automatic.",
"oneOf": [
{
"description": "Basic fillet cut. This has limitations, like the filletted edges can't touch each other. But it's very fast and simple.",
"type": "string",
"enum": [
"basic"
]
},
{
"description": "More complicated fillet cut. It works for more use-cases, like edges that touch each other. But it's slower than the Basic method.",
"type": "string",
"enum": [
"csg"
]
},
{
"description": "Tries the Basic method, and if that doesn't work, tries the CSG strategy.",
"type": "string",
"enum": [
"automatic"
]
}
]
},
"CutType": { "CutType": {
"description": "What kind of cut to do", "description": "What kind of cut to do",
"oneOf": [ "oneOf": [
@ -20442,6 +20491,13 @@
"description": "The response from the `EntityCircularPattern` command.", "description": "The response from the `EntityCircularPattern` command.",
"type": "object", "type": "object",
"properties": { "properties": {
"entity_face_edge_ids": {
"description": "The Face, edge, and entity ids of the patterned entities.",
"type": "array",
"items": {
"$ref": "#/components/schemas/FaceEdgeInfo"
}
},
"entity_ids": { "entity_ids": {
"description": "The UUIDs of the entities that were created.", "description": "The UUIDs of the entities that were created.",
"type": "array", "type": "array",
@ -20450,14 +20506,28 @@
"format": "uuid" "format": "uuid"
} }
} }
}, }
"required": [
"entity_ids"
]
}, },
"EntityClone": { "EntityClone": {
"description": "The response from the `EntityClone` command.", "description": "The response from the `EntityClone` command.",
"type": "object" "type": "object",
"properties": {
"entity_ids": {
"description": "The UUIDs of the entities that were created.",
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"face_edge_ids": {
"description": "The Face and Edge Ids of the cloned entity.",
"type": "array",
"items": {
"$ref": "#/components/schemas/FaceEdgeInfo"
}
}
}
}, },
"EntityFade": { "EntityFade": {
"description": "The response from the `EntityFade` endpoint.", "description": "The response from the `EntityFade` endpoint.",
@ -20570,6 +20640,13 @@
"description": "The response from the `EntityLinearPattern` command.", "description": "The response from the `EntityLinearPattern` command.",
"type": "object", "type": "object",
"properties": { "properties": {
"entity_face_edge_ids": {
"description": "The Face, edge, and entity ids of the patterned entities.",
"type": "array",
"items": {
"$ref": "#/components/schemas/FaceEdgeInfo"
}
},
"entity_ids": { "entity_ids": {
"description": "The UUIDs of the entities that were created.", "description": "The UUIDs of the entities that were created.",
"type": "array", "type": "array",
@ -20578,15 +20655,19 @@
"format": "uuid" "format": "uuid"
} }
} }
}, }
"required": [
"entity_ids"
]
}, },
"EntityLinearPatternTransform": { "EntityLinearPatternTransform": {
"description": "The response from the `EntityLinearPatternTransform` command.", "description": "The response from the `EntityLinearPatternTransform` command.",
"type": "object", "type": "object",
"properties": { "properties": {
"entity_face_edge_ids": {
"description": "The Face, edge, and entity ids of the patterned entities.",
"type": "array",
"items": {
"$ref": "#/components/schemas/FaceEdgeInfo"
}
},
"entity_ids": { "entity_ids": {
"description": "The UUIDs of the entities that were created.", "description": "The UUIDs of the entities that were created.",
"type": "array", "type": "array",
@ -20595,10 +20676,7 @@
"format": "uuid" "format": "uuid"
} }
} }
}, }
"required": [
"entity_ids"
]
}, },
"EntityMakeHelix": { "EntityMakeHelix": {
"description": "The response from the `EntityMakeHelix` endpoint.", "description": "The response from the `EntityMakeHelix` endpoint.",
@ -20616,6 +20694,13 @@
"description": "The response from the `EntityMirror` endpoint.", "description": "The response from the `EntityMirror` endpoint.",
"type": "object", "type": "object",
"properties": { "properties": {
"entity_face_edge_ids": {
"description": "The Face, edge, and entity ids of the patterned entities.",
"type": "array",
"items": {
"$ref": "#/components/schemas/FaceEdgeInfo"
}
},
"entity_ids": { "entity_ids": {
"description": "The UUIDs of the entities that were created.", "description": "The UUIDs of the entities that were created.",
"type": "array", "type": "array",
@ -20624,15 +20709,19 @@
"format": "uuid" "format": "uuid"
} }
} }
}, }
"required": [
"entity_ids"
]
}, },
"EntityMirrorAcrossEdge": { "EntityMirrorAcrossEdge": {
"description": "The response from the `EntityMirrorAcrossEdge` endpoint.", "description": "The response from the `EntityMirrorAcrossEdge` endpoint.",
"type": "object", "type": "object",
"properties": { "properties": {
"entity_face_edge_ids": {
"description": "The Face, edge, and entity ids of the patterned entities.",
"type": "array",
"items": {
"$ref": "#/components/schemas/FaceEdgeInfo"
}
},
"entity_ids": { "entity_ids": {
"description": "The UUIDs of the entities that were created.", "description": "The UUIDs of the entities that were created.",
"type": "array", "type": "array",
@ -20641,10 +20730,7 @@
"format": "uuid" "format": "uuid"
} }
} }
}, }
"required": [
"entity_ids"
]
}, },
"EntitySetOpacity": { "EntitySetOpacity": {
"description": "The response from the `EntitySetOpacity` endpoint.", "description": "The response from the `EntitySetOpacity` endpoint.",
@ -21162,6 +21248,38 @@
"cap" "cap"
] ]
}, },
"FaceEdgeInfo": {
"description": "Faces and edges id info (most used in identifying geometry in patterned and mirrored objects).",
"type": "object",
"properties": {
"edges": {
"description": "The edges of each object.",
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"faces": {
"description": "The faces of each object.",
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"object_id": {
"description": "The UUID of the object.",
"type": "string",
"format": "uuid"
}
},
"required": [
"edges",
"faces",
"object_id"
]
},
"FaceGetCenter": { "FaceGetCenter": {
"description": "The 3D center of mass on the surface", "description": "The 3D center of mass on the surface",
"type": "object", "type": "object",
@ -25958,10 +26076,29 @@
] ]
}, },
"edge_id": { "edge_id": {
"nullable": true,
"description": "Which edge you want to fillet.", "description": "Which edge you want to fillet.",
"type": "string", "type": "string",
"format": "uuid" "format": "uuid"
}, },
"edge_ids": {
"description": "Which edges you want to fillet.",
"default": [],
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"extra_face_ids": {
"description": "What IDs should the resulting faces have? If you've only passed one edge ID, its ID will be the command ID used to send this command, and this field should be empty. If you've passed `n` IDs (to fillet `n` edges), then this should be length `n-1`, and the first edge will use the command ID used to send this command.",
"default": [],
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"object_id": { "object_id": {
"description": "Which object is being filletted.", "description": "Which object is being filletted.",
"type": "string", "type": "string",
@ -25975,6 +26112,15 @@
} }
] ]
}, },
"strategy": {
"description": "Which cutting algorithm to use.",
"default": "automatic",
"allOf": [
{
"$ref": "#/components/schemas/CutStrategy"
}
]
},
"tolerance": { "tolerance": {
"description": "The maximum acceptable surface gap computed between the filleted surfaces. Must be positive (i.e. greater than zero).", "description": "The maximum acceptable surface gap computed between the filleted surfaces. Must be positive (i.e. greater than zero).",
"allOf": [ "allOf": [
@ -25991,7 +26137,6 @@
} }
}, },
"required": [ "required": [
"edge_id",
"object_id", "object_id",
"radius", "radius",
"tolerance", "tolerance",
@ -27568,6 +27713,27 @@
"type" "type"
] ]
}, },
{
"description": "Get a concise description of all of solids edges.",
"type": "object",
"properties": {
"object_id": {
"description": "The Solid3d object whose info is being queried.",
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"solid3d_get_info"
]
}
},
"required": [
"object_id",
"type"
]
},
{ {
"description": "Clear the selection", "description": "Clear the selection",
"type": "object", "type": "object",
@ -30063,6 +30229,24 @@
"type" "type"
] ]
}, },
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/FaceEdgeInfo"
},
"type": {
"type": "string",
"enum": [
"face_edge_info"
]
}
},
"required": [
"data",
"type"
]
},
{ {
"type": "object", "type": "object",
"properties": { "properties": {
@ -30261,6 +30445,60 @@
"type" "type"
] ]
}, },
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ComplementaryEdges"
},
"type": {
"type": "string",
"enum": [
"complementary_edges"
]
}
},
"required": [
"data",
"type"
]
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Solid3dGetInfo"
},
"type": {
"type": "string",
"enum": [
"solid3d_get_info"
]
}
},
"required": [
"data",
"type"
]
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/SolidInfo"
},
"type": {
"type": "string",
"enum": [
"solid_info"
]
}
},
"required": [
"data",
"type"
]
},
{ {
"type": "object", "type": "object",
"properties": { "properties": {
@ -32905,6 +33143,23 @@
"faces" "faces"
] ]
}, },
"Solid3dGetInfo": {
"description": "Extrusion face info struct (useful for maintaining mappings between source path segment ids and extrusion faces)",
"type": "object",
"properties": {
"info": {
"description": "Details of each face.",
"allOf": [
{
"$ref": "#/components/schemas/SolidInfo"
}
]
}
},
"required": [
"info"
]
},
"Solid3dGetNextAdjacentEdge": { "Solid3dGetNextAdjacentEdge": {
"description": "The response from the `Solid3dGetNextAdjacentEdge` command.", "description": "The response from the `Solid3dGetNextAdjacentEdge` command.",
"type": "object", "type": "object",
@ -32947,6 +33202,46 @@
"description": "The response from the `Solid3dShellFace` endpoint.", "description": "The response from the `Solid3dShellFace` endpoint.",
"type": "object" "type": "object"
}, },
"SolidInfo": {
"description": "Solid info struct (useful for maintaining mappings between edges and faces and adjacent/opposite edges).",
"type": "object",
"properties": {
"bottom_cap_id": {
"nullable": true,
"description": "UUID for bottom cap.",
"type": "string",
"format": "uuid"
},
"common_edges": {
"description": "A map containing the common faces for all edges.",
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
"complementary_edges": {
"description": "A map containing the adjacent and opposite edge ids of each wall face.",
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/ComplementaryEdges"
}
},
"top_cap_id": {
"nullable": true,
"description": "UUID for top cap.",
"type": "string",
"format": "uuid"
}
},
"required": [
"common_edges",
"complementary_edges"
]
},
"SourcePosition": { "SourcePosition": {
"description": "A position in the source code.", "description": "A position in the source code.",
"type": "object", "type": "object",