Merge pull request #24262 from mnesarco/pyi-fixes-1

This commit is contained in:
Chris Hennes
2025-11-29 20:23:37 -06:00
committed by GitHub
250 changed files with 2821 additions and 2051 deletions

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Final
from Base.Metadata import export

View File

@@ -1,8 +1,13 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, Final
from Base.Metadata import constmethod, export
from App.Part import Part
from App.DocumentObject import DocumentObject
@export(Include="Mod/Assembly/App/AssemblyObject.h", Namespace="Assembly")
class AssemblyObject(Part):
@@ -14,10 +19,9 @@ class AssemblyObject(Part):
"""
@constmethod
def solve(self) -> Any:
"""Solve the assembly and update part placements.
solve(enableRedo=False) -> int
def solve(self, enableUndo: bool = False, /) -> int:
"""
Solve the assembly and update part placements.
Args:
enableRedo: Whether the solve save the initial position of parts
@@ -33,14 +37,14 @@ class AssemblyObject(Part):
-3 if conflicting constraints,
-5 if malformed constraints
-1 if solver error,
-2 if redundant constraints."""
-2 if redundant constraints.
"""
...
@constmethod
def generateSimulation(self) -> Any:
"""Generate the simulation.
solve(simulationObject) -> int
def generateSimulation(self, simulationObject: DocumentObject, /) -> int:
"""
Generate the simulation.
Args:
simulationObject: The simulation Object.
@@ -53,112 +57,99 @@ class AssemblyObject(Part):
-3 if conflicting constraints,
-5 if malformed constraints
-1 if solver error,
-2 if redundant constraints."""
-2 if redundant constraints.
"""
...
@constmethod
def updateForFrame(self) -> Any:
"""Update entire assembly to frame number specified.
def updateForFrame(self, index: int, /) -> None:
"""
Update entire assembly to frame number specified.
updateForFrame(index)
Args:
index: index of frame.
Args: index of frame.
Returns: None"""
Returns: None
"""
...
@constmethod
def numberOfFrames(self) -> Any:
"""numberOfFrames()
Args: None
Returns: Number of frames"""
def numberOfFrames(self) -> int:
"""Return Number of frames"""
...
@constmethod
def undoSolve(self) -> Any:
"""Undo the last solve of the assembly and return part placements to their initial position.
undoSolve()
Returns: None"""
def undoSolve(self) -> None:
"""
Undo the last solve of the assembly and return part placements to their initial position.
"""
...
@constmethod
def ensureIdentityPlacements(self) -> Any:
"""Makes sure that LinkGroups or sub-assemblies have identity placements.
ensureIdentityPlacements()
Returns: None"""
def ensureIdentityPlacements(self) -> None:
"""
Makes sure that LinkGroups or sub-assemblies have identity placements.
"""
...
@constmethod
def clearUndo(self) -> Any:
"""Clear the registered undo positions.
clearUndo()
Returns: None"""
def clearUndo(self) -> None:
"""
Clear the registered undo positions.
"""
...
@constmethod
def isPartConnected(self) -> Any:
"""Check if a part is connected to the ground through joints.
isPartConnected(obj) -> bool
Args: document object to check.
Returns: True if part is connected to ground"""
def isPartConnected(self, obj: DocumentObject, /) -> bool:
"""
Check if a part is connected to the ground through joints.
Returns: True if part is connected to ground.
"""
...
@constmethod
def isJointConnectingPartToGround(self) -> Any:
"""Check if a joint is connecting a part to the ground.
isJointConnectingPartToGround(joint, propName) -> bool
def isJointConnectingPartToGround(self, joint: DocumentObject, prop_name: str, /) -> Any:
"""
Check if a joint is connecting a part to the ground.
Args:
- joint: document object of the joint to check.
- propName: string 'Part1' or 'Part2' of the joint.
- prop_name: string 'Part1' or 'Part2' of the joint.
Returns: True if part is connected to ground"""
Returns: True if part is connected to ground.
"""
...
@constmethod
def isPartGrounded(self) -> Any:
"""Check if a part has a grounded joint.
isPartGrounded(obj) -> bool
def isPartGrounded(self, obj: DocumentObject, /) -> Any:
"""
Check if a part has a grounded joint.
Args:
- obj: document object of the part to check.
Returns: True if part has grounded joint"""
Returns: True if part has grounded joint.
"""
...
@constmethod
def exportAsASMT(self) -> Any:
"""Export the assembly in a text format called ASMT.
exportAsASMT(fileName:str)
def exportAsASMT(self, file_name: str, /) -> None:
"""
Export the assembly in a text format called ASMT.
Args:
fileName: The name of the file where the ASMT will be exported."""
- fileName: The name of the file where the ASMT will be exported.
"""
...
@constmethod
def getDownstreamParts(
self, start_part: "App.DocumentObject", joint_to_ignore: "App.DocumentObject", /
) -> list["App.DocumentObject"]:
self, start_part: DocumentObject, joint_to_ignore: DocumentObject, /
) -> list[DocumentObject]:
"""
Finds all parts connected to a start_part that are not connected to ground
when a specific joint is ignored.
getDownstreamParts(start_part, joint_to_ignore) -> list
This is used to find the entire rigid group of unconstrained components that
should be moved together during a pre-solve operation or a drag.

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from App.DocumentObjectGroup import DocumentObjectGroup

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Spreadsheet.Sheet import Sheet

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from App.DocumentObjectGroup import DocumentObjectGroup

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from App.DocumentObjectGroup import DocumentObjectGroup

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from App.DocumentObjectGroup import DocumentObjectGroup

View File

@@ -1,9 +1,15 @@
from typing import Any
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, List, Tuple, TypeAlias
from Base.Metadata import export
from App.DocumentObject import DocumentObject
from Gui.ViewProvider import ViewProvider
SoTransformDragger: TypeAlias = Any
@export(Include="Mod/Assembly/Gui/ViewProviderAssembly.h", Namespace="AssemblyGui")
class ViewProviderAssembly(ViewProvider):
"""
@@ -16,21 +22,15 @@ class ViewProviderAssembly(ViewProvider):
def isInEditMode(self) -> Any:
"""
Return true if the assembly object is currently in edit mode.
isInEditMode() -> bool"""
"""
...
def getDragger(self) -> Any:
"""
Return the assembly dragger coin object.
getDragger() -> SoTransformDragger
Returns: dragger coin object of the assembly"""
def getDragger(self) -> SoTransformDragger:
"""Return the assembly dragger coin object."""
...
def isolateComponents(
self, components: List[DocumentObject] | Tuple[DocumentObject, ...], mode: int
self, components: List[DocumentObject] | Tuple[DocumentObject, ...], mode: int, /
) -> None:
"""
Temporarily isolates a given set of components in the 3D view.

View File

@@ -28,24 +28,25 @@ class Area(BaseClass):
""""""
...
def setPlane(self) -> Any:
"""setPlane(shape): Set the working plane.
def setPlane(self) -> None:
"""
Set the working plane.
The supplied shape does not need to be planar. Area will try to find planar
sub-shape (face, wire or edge). If more than one planar sub-shape is found, it
will prefer the top plane parallel to XY0 plane. If no working plane are set,
Area will try to find a working plane from the added children shape using the
same algorithm"""
same algorithm
"""
...
def getShape(self, **kwargs) -> Any:
"""getShape(index=-1,rebuild=False): Return the resulting shape
"""
Return the resulting shape
* index (-1): the index of the section. -1 means all sections. No effect on planar shape.
* rebuild: clean the internal cache and rebuild"""
* rebuild: clean the internal cache and rebuild
"""
...
def makeOffset(self, **kwargs) -> Any:

View File

@@ -21,15 +21,15 @@ class Command(Persistence):
@constmethod
def toGCode(self) -> str:
"""toGCode(): returns a GCode representation of the command"""
"""returns a GCode representation of the command"""
...
def setFromGCode(self, gcode: str) -> None:
"""setFromGCode(): sets the path from the contents of the given GCode string"""
def setFromGCode(self, gcode: str, /) -> None:
"""sets the path from the contents of the given GCode string"""
...
def transform(self, placement: Placement) -> "CommandPy":
"""transform(Placement): returns a copy of this command transformed by the given placement"""
def transform(self, placement: Placement, /) -> Command:
"""returns a copy of this command transformed by the given placement"""
...
def addAnnotations(self, annotations) -> "Command":

View File

@@ -23,7 +23,10 @@ class FeatureArea(DocumentObject):
...
def setParams(self, **kwargs) -> Any:
"""setParams(key=value...): Convenient function to configure this feature.
"""
Convenient function to configure this feature.
Call with keywords: setParams(key=value, ...)
Same usage as Path.Area.setParams(). This function stores the parameters in the properties.
"""

View File

@@ -1,10 +1,13 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from typing import Any, Final
from __future__ import annotations
from typing import Any, Final, overload, Union
from Base.Metadata import constmethod, export
from Base.Persistence import Persistence
from .Command import Command
@export(
Include="Mod/CAM/App/Path.h",
Twin="Toolpath",
@@ -22,36 +25,44 @@ class Path(Persistence):
License: LGPL-2.1-or-later
"""
def addCommands(self) -> Any:
@overload
def addCommands(self, command: Command, /) -> Path: ...
@overload
def addCommands(self, commands: list[Command], /) -> Path: ...
def addCommands(self, arg: Union[Command, list[Command]], /) -> Path:
"""adds a command or a list of commands at the end of the path"""
...
def insertCommand(self) -> Any:
"""insertCommand(Command,[int]):
adds a command at the given position or at the end of the path"""
def insertCommand(self, command: Command, pos: int = -1, /) -> Path:
"""
adds a command at the given position or at the end of the path
"""
...
def deleteCommand(self) -> Any:
"""deleteCommand([int]):
deletes the command found at the given position or from the end of the path"""
def deleteCommand(self, pos: int = -1, /) -> Path:
"""
deletes the command found at the given position or from the end of the path
"""
...
def setFromGCode(self) -> Any:
def setFromGCode(self, gcode: str, /) -> None:
"""sets the contents of the path from a gcode string"""
...
@constmethod
def toGCode(self) -> Any:
def toGCode(self) -> str:
"""returns a gcode string representing the path"""
...
@constmethod
def copy(self) -> Any:
def copy(self) -> Path:
"""returns a copy of this path"""
...
@constmethod
def getCycleTime(self) -> Any:
def getCycleTime(
self, h_feed: float, v_feed: float, h_rapid: float, v_rapid: float, /
) -> float:
"""return the cycle time estimation for this path in s"""
...
Length: Final[float]

View File

@@ -5,6 +5,8 @@ from typing import Any, Final
from Base.BaseClass import BaseClass
from Base.Metadata import constmethod, export
from Base.Vector import Vector
@export(
Include="Mod/CAM/App/Voronoi.h",
Namespace="Path",
@@ -34,12 +36,12 @@ class Voronoi(BaseClass):
"""Return number of vertices"""
...
def addPoint(self) -> Any:
"""addPoint(vector|vector2d) add given point to input collection"""
def addPoint(self, point: Vector, /) -> None:
"""add given point to input collection"""
...
def addSegment(self) -> Any:
"""addSegment(vector|vector2d, vector|vector2d) add given segment to input collection"""
def addSegment(self, point1: Vector, point2: Vector, /) -> Any:
"""add given segment to input collection"""
...
def construct(self) -> Any:

View File

@@ -1,7 +1,15 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, Final
from Base.BaseClass import BaseClass
from Base.Metadata import export
from Base.Placement import Placement
from Part.App.TopoShape import TopoShape
from Mesh.App.Mesh import Mesh
from CAM.App.Command import Command
@export(
FatherInclude="Base/BaseClassPy.h",
@@ -22,30 +30,28 @@ class PathSim(BaseClass):
License: LGPL-2.1-or-later
"""
def BeginSimulation(self, **kwargs) -> Any:
"""BeginSimulation(stock, resolution):
Start a simulation process on a box shape stock with given resolution"""
...
def SetToolShape(self) -> Any:
"""SetToolShape(shape):
Set the shape of the tool to be used for simulation"""
...
def GetResultMesh(self) -> Any:
def BeginSimulation(self, stock: TopoShape, resolution: float) -> None:
"""
Start a simulation process on a box shape stock with given resolution
"""
GetResultMesh():
Return the current mesh result of the simulation."""
...
def ApplyCommand(self, **kwargs) -> Any:
def SetToolShape(self, tool: TopoShape, resolution: float, /) -> None:
"""
ApplyCommand(placement, command):
Set the shape of the tool to be used for simulation
"""
...
Apply a single path command on the stock starting from placement."""
def GetResultMesh(self) -> tuple[Mesh, Mesh]:
"""
Return the current mesh result of the simulation.
"""
...
def ApplyCommand(self, placement: Placement, command: Command) -> Placement:
"""
Apply a single path command on the stock starting from placement.
"""
...
Tool: Final[Any]
"""Return current simulation tool."""

View File

@@ -1,8 +1,14 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any
from Base.BaseClass import BaseClass
from Base.Metadata import export
from Metadata import no_args
from Base.Metadata import export, no_args
from Part.App.TopoShape import TopoShape
from CAM.App.Command import Command
@export(
Include="Mod/CAM/PathSimulator/AppGL/CAMSim.h",
@@ -23,38 +29,33 @@ class CAMSim(BaseClass):
License: LGPL-2.1-or-later
"""
def BeginSimulation(self, **kwargs) -> Any:
def BeginSimulation(self, stock: TopoShape, resolution: float) -> None:
"""
Start a simulation process on a box shape stock with given resolution
"""
BeginSimulation(stock, resolution):
Start a simulation process on a box shape stock with given resolution"""
...
@no_args
def ResetSimulation(self) -> Any:
def ResetSimulation(self) -> None:
"""
Clear the simulation and all gcode commands
"""
ResetSimulation():
Clear the simulation and all gcode commands"""
...
def AddTool(self, **kwargs) -> Any:
def AddTool(self, shape: TopoShape, toolnumber: int, diameter: float, resolution: float) -> Any:
"""
Set the shape of the tool to be used for simulation
"""
AddTool(shape, toolnumber, diameter, resolution):
Set the shape of the tool to be used for simulation"""
...
def SetBaseShape(self, **kwargs) -> Any:
def SetBaseShape(self, shape: TopoShape, resolution: float) -> None:
"""
Set the shape of the base object of the job
"""
SetBaseShape(shape, resolution):
Set the shape of the base object of the job"""
...
def AddCommand(self) -> Any:
def AddCommand(self, command: Command, /) -> Any:
"""
Add a path command to the simulation.
"""
AddCommand(command):
Add a path command to the simulation."""
...

View File

@@ -1,8 +1,18 @@
from typing import Any, Final
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, Final, overload
from Base.Metadata import constmethod, export
from Base.Vector import Vector
from Base.Placement import Placement
from App.ComplexGeoData import ComplexGeoData
from Part.App.TopoShape import TopoShape
from Part.App.TopoShapeFace import TopoShapeFace
from Part.App.TopoShapeEdge import TopoShapeEdge
from Part.App.TopoShapeSolid import TopoShapeSolid
from Part.App.TopoShapeVertex import TopoShapeVertex
@export(
Include="Mod/Fem/App/FemMesh.h",
@@ -19,219 +29,243 @@ class FemMesh(ComplexGeoData):
License: LGPL-2.1-or-later
"""
def setShape(self) -> Any:
def setShape(self, shape: TopoShape, /) -> None:
"""Set the Part shape to mesh"""
...
def compute(self) -> Any:
def compute(self) -> None:
"""Update the internal mesh structure"""
...
def addHypothesis(self) -> Any:
def addHypothesis(self, hypothesis: object, shape: TopoShape, /) -> None:
"""Add hypothesis"""
...
def setStandardHypotheses(self) -> Any:
def setStandardHypotheses(self) -> None:
"""Set some standard hypotheses for the whole shape"""
...
def addNode(self) -> Any:
def addNode(self, x: float, y: float, z: float, elem_id: int | None = None, /) -> int:
"""Add a node by setting (x,y,z)."""
...
def addEdge(self) -> Any:
@overload
def addEdge(self, n1: int, n2: int, /) -> int: ...
@overload
def addEdge(self, nodes: list[int], elem_id: int | None = None, /) -> int: ...
def addEdge(self, *args) -> int:
"""Add an edge by setting two node indices."""
...
def addEdgeList(self) -> Any:
def addEdgeList(self, nodes: list[int], np: list[int], /) -> list[int]:
"""Add list of edges by list of node indices and list of nodes per edge."""
...
@overload
def addFace(self, n1: int, n2: int, n3: int, /) -> int: ...
@overload
def addFace(self, nodes: list[int], elem_id: int | None = None, /) -> int: ...
def addFace(self) -> Any:
"""Add a face by setting three node indices."""
...
def addFaceList(self) -> Any:
def addFaceList(self, nodes: list[int], np: list[int], /) -> list[int]:
"""Add list of faces by list of node indices and list of nodes per face."""
...
def addQuad(self) -> Any:
def addQuad(self, n1: int, n2: int, n3: int, n4: int, /) -> int:
"""Add a quad by setting four node indices."""
...
def addVolume(self) -> Any:
@overload
def addVolume(self, n1: int, n2: int, n3: int, n4: int, /) -> int: ...
@overload
def addVolume(self, nodes: list[int], elem_id: int | None = None, /) -> int: ...
def addVolume(self, *args) -> int:
"""Add a volume by setting an arbitrary number of node indices."""
...
def addVolumeList(self) -> Any:
def addVolumeList(self, nodes: list[int], np: list[int], /) -> list[int]:
"""Add list of volumes by list of node indices and list of nodes per volume."""
...
def read(self) -> Any:
def read(self, file_name: str, /) -> None:
"""
Read in a various FEM mesh file formats.
read(file.endingToExportTo)
supported formats: DAT, INP, MED, STL, UNV, VTK, Z88"""
Supported formats: DAT, INP, MED, STL, UNV, VTK, Z88
"""
...
@constmethod
def write(self) -> Any:
def write(self, file_name: str, /) -> None:
"""
Write out various FEM mesh file formats.
write(file.endingToExportTo)
supported formats: BDF, DAT, INP, MED, STL, UNV, VTK, Z88"""
Supported formats: BDF, DAT, INP, MED, STL, UNV, VTK, Z88
"""
...
@constmethod
def writeABAQUS(self, **kwargs) -> Any:
def writeABAQUS(
self,
fileName: str,
elemParam: int,
groupParam: bool,
volVariant: str = "standard",
faceVariant: str = "shell",
edgeVariant: str = "beam",
) -> None:
"""
Write out as ABAQUS inp
writeABAQUS(file, int elemParam, bool groupParam, str volVariant, str faceVariant, str edgeVariant)
Write out as ABAQUS inp.
elemParam:
0: All elements
1: Highest elements only
2: FEM elements only (only edges not belonging to faces and faces not belonging to volumes)
elemParam:
0: All elements
1: Highest elements only
2: FEM elements only (only edges not belonging to faces and faces not belonging to volumes)
groupParam:
True: Write group data
False: Do not write group data
groupParam:
True: Write group data
False: Do not write group data
volVariant: Volume elements
"standard": Tetra4 -> C3D4, Penta6 -> C3D6, Hexa8 -> C3D8, Tetra10 -> C3D10, Penta15 -> C3D15, Hexa20 -> C3D20
"reduced": Hexa8 -> C3D8R, Hexa20 -> C3D20R
"incompatible": Hexa8 -> C3D8I
"modified": Tetra10 -> C3D10T
"fluid": Tetra4 -> F3D4, Penta6 -> F3D6, Hexa8 -> F3D8
volVariant: Volume elements
"standard": Tetra4 -> C3D4, Penta6 -> C3D6, Hexa8 -> C3D8, Tetra10 -> C3D10, Penta15 -> C3D15, Hexa20 -> C3D20
"reduced": Hexa8 -> C3D8R, Hexa20 -> C3D20R
"incompatible": Hexa8 -> C3D8I
"modified": Tetra10 -> C3D10T
"fluid": Tetra4 -> F3D4, Penta6 -> F3D6, Hexa8 -> F3D8
faceVariant: Face elements
"shell": Tria3 -> S3, Quad4 -> S4, Tria6 -> S6, Quad8 -> S8
"shell reduced": Tria3 -> S3, Quad4 -> S4R, Tria6 -> S6, Quad8 -> S8R
"membrane": Tria3 -> M3D3, Quad4 -> M3D4, Tria6 -> M3D6, Quad8 -> M3D8
"membrane reduced": Tria3 -> M3D3, Quad4 -> M3D4R, Tria6 -> M3D6, Quad8 -> M3D8R
"stress": Tria3 -> CPS3, Quad4 -> CPS4, Tria6 -> CPS6, Quad8 -> CPS8
"stress reduced": Tria3 -> CPS3, Quad4 -> CPS4R, Tria6 -> CPS6, Quad8 -> CPS8R
"strain": Tria3 -> CPE3, Quad4 -> CPE4, Tria6 -> CPE6, Quad8 -> CPE8
"strain reduced": Tria3 -> CPE3, Quad4 -> CPE4R, Tria6 -> CPE6, Quad8 -> CPE8R
"axisymmetric": Tria3 -> CAX3, Quad4 -> CAX4, Tria6 -> CAX6, Quad8 -> CAX8
"axisymmetric reduced": Tria3 -> CAX3, Quad4 -> CAX4R, Tria6 -> CAX6, Quad8 -> CAX8R
faceVariant: Face elements
"shell": Tria3 -> S3, Quad4 -> S4, Tria6 -> S6, Quad8 -> S8
"shell reduced": Tria3 -> S3, Quad4 -> S4R, Tria6 -> S6, Quad8 -> S8R
"membrane": Tria3 -> M3D3, Quad4 -> M3D4, Tria6 -> M3D6, Quad8 -> M3D8
"membrane reduced": Tria3 -> M3D3, Quad4 -> M3D4R, Tria6 -> M3D6, Quad8 -> M3D8R
"stress": Tria3 -> CPS3, Quad4 -> CPS4, Tria6 -> CPS6, Quad8 -> CPS8
"stress reduced": Tria3 -> CPS3, Quad4 -> CPS4R, Tria6 -> CPS6, Quad8 -> CPS8R
"strain": Tria3 -> CPE3, Quad4 -> CPE4, Tria6 -> CPE6, Quad8 -> CPE8
"strain reduced": Tria3 -> CPE3, Quad4 -> CPE4R, Tria6 -> CPE6, Quad8 -> CPE8R
"axisymmetric": Tria3 -> CAX3, Quad4 -> CAX4, Tria6 -> CAX6, Quad8 -> CAX8
"axisymmetric reduced": Tria3 -> CAX3, Quad4 -> CAX4R, Tria6 -> CAX6, Quad8 -> CAX8R
edgeVariant: Edge elements
"beam": Seg2 -> B31, Seg3 -> B32
"beam reduced": Seg2 -> B31R, Seg3 -> B32R
"truss": Seg2 -> T3D2, eg3 -> T3D3
"network": Seg3 -> D
edgeVariant: Edge elements
"beam": Seg2 -> B31, Seg3 -> B32
"beam reduced": Seg2 -> B31R, Seg3 -> B32R
"truss": Seg2 -> T3D2, eg3 -> T3D3
"network": Seg3 -> D
Elements are selected according to CalculiX availability.
For example if volume variant "modified" is selected, Tetra10 mesh
elements are assigned to C3D10T and remain elements uses "standard".
Axisymmetric, plane strain and plane stress elements expect nodes in the plane z=0.
Elements are selected according to CalculiX availability.
For example if volume variant "modified" is selected, Tetra10 mesh
elements are assigned to C3D10T and remain elements uses "standard".
Axisymmetric, plane strain and plane stress elements expect nodes in the plane z=0.
"""
...
def setTransform(self) -> Any:
def setTransform(self, placement: Placement, /) -> None:
"""Use a Placement object to perform a translation or rotation"""
...
@constmethod
def copy(self) -> Any:
def copy(self) -> FemMesh:
"""Make a copy of this FEM mesh."""
...
@constmethod
def getFacesByFace(self) -> Any:
def getFacesByFace(self, face: TopoShapeFace, /) -> list[int]:
"""Return a list of face IDs which belong to a TopoFace"""
...
@constmethod
def getEdgesByEdge(self) -> Any:
def getEdgesByEdge(self, edge: TopoShapeEdge, /) -> list[int]:
"""Return a list of edge IDs which belong to a TopoEdge"""
...
@constmethod
def getVolumesByFace(self) -> Any:
"""Return a dict of volume IDs and face IDs which belong to a TopoFace"""
def getVolumesByFace(self, face: TopoShapeFace, /) -> list[tuple[int, int]]:
"""Return a list of tuples of volume IDs and face IDs which belong to a TopoFace"""
...
@constmethod
def getccxVolumesByFace(self) -> Any:
"""Return a dict of volume IDs and ccx face numbers which belong to a TopoFace"""
def getccxVolumesByFace(self, face: TopoShapeFace, /) -> list[tuple[int, int]]:
"""Return a list of tuples of volume IDs and ccx face numbers which belong to a TopoFace"""
...
@constmethod
def getNodeById(self) -> Any:
def getNodeById(self, node_id: int, /) -> Vector:
"""Get the node position vector by a Node-ID"""
...
@constmethod
def getNodesBySolid(self) -> Any:
def getNodesBySolid(self, shape: TopoShapeSolid, /) -> list[int]:
"""Return a list of node IDs which belong to a TopoSolid"""
...
@constmethod
def getNodesByFace(self) -> Any:
def getNodesByFace(self, face: TopoShapeFace, /) -> list[int]:
"""Return a list of node IDs which belong to a TopoFace"""
...
@constmethod
def getNodesByEdge(self) -> Any:
def getNodesByEdge(self, edge: TopoShapeEdge, /) -> list[int]:
"""Return a list of node IDs which belong to a TopoEdge"""
...
@constmethod
def getNodesByVertex(self) -> Any:
def getNodesByVertex(self, vertex: TopoShapeVertex, /) -> list[int]:
"""Return a list of node IDs which belong to a TopoVertex"""
...
@constmethod
def getElementNodes(self) -> Any:
def getElementNodes(self, elem_id: int, /) -> tuple[int, ...]:
"""Return a tuple of node IDs to a given element ID"""
...
@constmethod
def getNodeElements(self) -> Any:
def getNodeElements(self, elem_id: int, elem_type: str = "All", /) -> tuple[int, ...]:
"""Return a tuple of specific element IDs associated to a given node ID"""
...
@constmethod
def getGroupName(self) -> Any:
def getGroupName(self, elem_id: int, /) -> str:
"""Return a string of group name to a given group ID"""
...
@constmethod
def getGroupElementType(self) -> Any:
def getGroupElementType(self, elem_id: int, /) -> str:
"""Return a string of group element type to a given group ID"""
...
@constmethod
def getGroupElements(self) -> Any:
def getGroupElements(self, elem_id: int, /) -> tuple[int, ...]:
"""Return a tuple of ElementIDs to a given group ID"""
...
@constmethod
def addGroup(self) -> Any:
def addGroup(self, name: str, group_type: str, group_id: int = -1, /) -> None:
"""
Add a group to mesh with specific name and type
addGroup(name, typestring, [id])
name: string
typestring: "All", "Node", "Edge", "Face", "Volume", "0DElement", "Ball"
id: int
Optional id is used to force specific id for group, but does
not work, yet."""
name: string
group_type: "All", "Node", "Edge", "Face", "Volume", "0DElement", "Ball"
group_id: int
Optional group_id is used to force specific id for group, but does
not work, yet.
"""
...
@constmethod
def addGroupElements(self) -> Any:
def addGroupElements(self, group_id: int, elements: list[int], /) -> None:
"""
Add a tuple of ElementIDs to a given group ID
addGroupElements(groupid, list_of_elements)
groupid: int
list_of_elements: list of int
Notice that the elements have to be in the mesh."""
group_id: int
elements: list of int
Notice that the elements have to be in the mesh.
"""
...
@constmethod
def removeGroup(self) -> Any:
def removeGroup(self, group_id: int, /) -> bool:
"""
Remove a group with a given group ID
removeGroup(groupid)
@@ -248,12 +282,12 @@ class FemMesh(ComplexGeoData):
...
@constmethod
def getElementType(self) -> Any:
def getElementType(self, elem_id: int, /) -> str:
"""Return the element type of a given ID"""
...
@constmethod
def getIdByElementType(self) -> Any:
def getIdByElementType(self, elem_type: str, /) -> tuple[int, ...]:
"""Return a tuple of IDs to a given element type"""
...
Nodes: Final[dict]

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any
from Base.Metadata import export

View File

@@ -1,9 +1,14 @@
from typing import Any
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, TypeAlias
from Base.Metadata import export
from Fem.FemPostObject import FemPostObject
vtkAlgorithm: TypeAlias = object
@export(
Include="Mod/Fem/App/FemPostFilter.h",
Namespace="Fem",
@@ -18,36 +23,39 @@ class FemPostFilter(FemPostObject):
License: LGPL-2.1-or-later
"""
def addFilterPipeline(self) -> Any:
def addFilterPipeline(self, name: str, source: vtkAlgorithm, target: vtkAlgorithm, /) -> None:
"""Registers a new vtk filter pipeline for data processing. Arguments are (name, source algorithm, target algorithm)."""
...
def setActiveFilterPipeline(self) -> Any:
def setActiveFilterPipeline(self, name: str, /) -> None:
"""Sets the filter pipeline that shall be used for data processing. Argument is the name of the filter pipeline to activate."""
...
def getParentPostGroup(self) -> Any:
def getParentPostGroup(self) -> object:
"""Returns the postprocessing group the filter is in (e.g. a pipeline or branch object). None is returned if not in any."""
...
def getInputData(self) -> Any:
"""Returns the dataset available at the filter's input.
def getInputData(self) -> object:
"""
Returns the dataset available at the filter's input.
Note: Can lead to a full recompute of the whole pipeline, hence best to call this only in "execute", where the user expects long calculation cycles.
"""
...
def getInputVectorFields(self) -> Any:
"""Returns the names of all vector fields available on this filter's input.
def getInputVectorFields(self) -> list[str]:
"""
Returns the names of all vector fields available on this filter's input.
Note: Can lead to a full recompute of the whole pipeline, hence best to call this only in "execute", where the user expects long calculation cycles.
"""
...
def getInputScalarFields(self) -> Any:
"""Returns the names of all scalar fields available on this filter's input.
def getInputScalarFields(self) -> list[str]:
"""
Returns the names of all scalar fields available on this filter's input.
Note: Can lead to a full recompute of the whole pipeline, hence best to call this only in "execute", where the user expects long calculation cycles.
"""
...
def getOutputAlgorithm(self) -> Any:
def getOutputAlgorithm(self) -> vtkAlgorithm:
"""Returns the filters vtk algorithm currently used as output (the one generating the Data field). Note that the output algorithm may change depending on filter settings."""
...

View File

@@ -1,9 +1,14 @@
from typing import Any
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import TypeAlias
from Base.Metadata import export
from App.GeoFeature import GeoFeature
vtkDataSet: TypeAlias = object
@export(
Include="Mod/Fem/App/FemPostObject.h",
Namespace="Fem",
@@ -18,18 +23,25 @@ class FemPostObject(GeoFeature):
License: LGPL-2.1-or-later
"""
def writeVTK(self) -> Any:
"""writeVTK(filename) -> None
def writeVTK(self, file_name: str, /) -> None:
"""
Write data object to VTK file.
filename: str
File extension is automatically detected from data type."""
...
def getDataSet(self) -> Any:
"""getDataset() -> vtkDataSet
Returns the current output dataset. For normal filters this is equal to the objects Data property output. However, a pipelines Data property could store multiple frames, and hence Data can be of type vtkCompositeData, which is not a vtkDataset. To simplify implementations this function always returns a vtkDataSet, and for a pipeline it will be the dataset of the currently selected frame. Note that the returned value could be None, if no data is set at all.
File extension is automatically detected from data type.
"""
...
def getDataSet(self) -> vtkDataSet:
"""
Returns the current output dataset.
For normal filters this is equal to the objects Data property output.
However, a pipelines Data property could store multiple frames, and hence
Data can be of type vtkCompositeData, which is not a vtkDataset.
To simplify implementations this function always returns a vtkDataSet,
and for a pipeline it will be the dataset of the currently selected frame.
Note that the returned value could be None, if no data is set at all.
"""
...

View File

@@ -1,8 +1,15 @@
from typing import Any
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, overload, TypeAlias
from Base.Metadata import export
from Base.Unit import Unit
from Fem.FemPostObject import FemPostObject
from App.DocumentObject import DocumentObject
vtkAlgorithm: TypeAlias = object
@export(
Include="Mod/Fem/App/FemPostPipeline.h",
@@ -18,52 +25,79 @@ class FemPostPipeline(FemPostObject):
License: LGPL-2.1-or-later
"""
def read(self) -> Any:
"""read(filepath)
read([filepaths], [values], unit, frame_type)
@overload
def read(self, file_name: str, /) -> None: ...
@overload
def read(
self,
files: list[str] | tuple[str],
values: list[int] | tuple[int],
unit: Unit,
frame_type: str,
/,
) -> None: ...
def read(self, *args) -> None:
"""
Reads in a single vtk file or creates a multiframe result by reading in multiple result files.
Reads in a single vtk file or creates a multiframe result by reading in multiple result files. If multiframe is wanted, 4 argumenhts are needed:
If multiframe is wanted, 4 argumenhts are needed:
1. List of result files each being one frame,
2. List of values valid for each frame (e.g. [s] if time data),
3. the unit of the value as FreeCAD.Units.Unit,
4. the Description of the frame type"""
4. the Description of the frame type
"""
...
def scale(self) -> Any:
def scale(self, scale: float, /) -> None:
"""scale the points of a loaded vtk file"""
...
def load(self) -> Any:
"""load(result_object)
load([result_objects], [values], unit, frame_type)
@overload
def load(self, obj: DocumentObject, /) -> None: ...
@overload
def load(
self,
result: list[DocumentObject] | tuple[DocumentObject],
values: list[float] | tuple[float],
unit: Unit,
frame_type: str,
/,
) -> None: ...
def load(self, *args) -> Any:
"""
Load a single result object or create a multiframe result by loading multiple result frames.
Load a single result object or create a multiframe result by loading multiple result frames. If multiframe is wanted, 4 argumenhts are needed:
1. List of result files each being one frame,
If multiframe is wanted, 4 argumenhts are needed:
1. List of result objects each being one frame,
2. List of values valid for each frame (e.g. [s] if time data),
3. the unit of the value as FreeCAD.Units.Unit,
4. the Description of the frame type"""
4. the Description of the frame type
"""
...
def getFilter(self) -> Any:
def getFilter(self) -> list[object]:
"""Returns all filters, that this pipeline uses (non recursive, result does not contain branch child filters)"""
...
def recomputeChildren(self) -> Any:
def recomputeChildren(self) -> None:
"""Recomputes all children of the pipeline"""
...
def getLastPostObject(self) -> Any:
def getLastPostObject(self) -> DocumentObject | None:
"""Get the last post-processing object"""
...
def holdsPostObject(self) -> Any:
def holdsPostObject(self, obj: DocumentObject, /) -> bool:
"""Check if this pipeline holds a given post-processing object"""
...
def renameArrays(self) -> Any:
def renameArrays(self, names: dict[str, str], /) -> None:
"""Change name of data arrays"""
...
def getOutputAlgorithm(self) -> Any:
"""Returns the pipeline vtk algorithm, which generates the data passed to the pipelines filters. Note that the output algorithm may change depending on pipeline settings."""
def getOutputAlgorithm(self) -> vtkAlgorithm:
"""Returns the pipeline vtk algorithm, which generates the data passed to the pipelines filters.
Note that the output algorithm may change depending on pipeline settings.
"""
...

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, Final
from Base.Metadata import export
@@ -16,17 +20,17 @@ class ViewProviderFemConstraint(ViewProviderGeometryObject):
License: LGPL-2.1-or-later
"""
def loadSymbol(self) -> Any:
"""loadSymbol(filename) -> None
def loadSymbol(self, file_name: str, /) -> Any:
"""
Load constraint symbol from Open Inventor file.
The file structure should be as follows:
A separator containing a separator with the symbol used in
multiple copies at points on the surface and an optional
separator with a symbol excluded from multiple copies.
filename : str
Open Inventor file."""
file_name : str
Open Inventor file.
"""
...
SymbolNode: Final[Any]
"""A pivy SoSeparator with the nodes of the constraint symbols"""

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, Final
from Base.Metadata import export

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any
from Base.Metadata import export

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any
from Base.Metadata import export

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any
from Base.Metadata import export
@@ -19,6 +23,7 @@ class StepShape(PyObjectBase):
"""
def read(self) -> Any:
"""method read()
Read a STEP file into memory and make it accessible"""
"""
Read a STEP file into memory and make it accessible
"""
...

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.BaseClass import BaseClass
from Base.Metadata import constmethod
@@ -10,7 +14,7 @@ from typing import Final, List, Any
Namespace="Materials",
Include="Mod/Material/App/MaterialValue.h",
Delete=True,
Constructor=True
Constructor=True,
)
class Array2D(BaseClass):
"""
@@ -33,20 +37,20 @@ class Array2D(BaseClass):
"""The number of columns in the array."""
@constmethod
def getRow(self, value: Any) -> Any:
def getRow(self, value: Any, /) -> Any:
"""
Get the row given the first column value
"""
...
@constmethod
def getValue(self, row: int, column: int) -> Any:
def getValue(self, row: int, column: int, /) -> Any:
"""
Get the value at the given row and column
"""
...
def setValue(self, row: int, column: int, value: Any):
def setValue(self, row: int, column: int, value: Any, /):
"""
Set the value at the given row and column
"""

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.BaseClass import BaseClass
from typing import Any, Final, List
@@ -9,7 +13,7 @@ from typing import Any, Final, List
Namespace="Materials",
Include="Mod/Material/App/MaterialValue.h",
Delete=True,
Constructor=True
Constructor=True,
)
class Array3D(BaseClass):
"""
@@ -52,19 +56,19 @@ class Array3D(BaseClass):
"""
...
def setDepthValue(self, value: Any):
def setDepthValue(self, value: Any, /):
"""
Set the column value at the given depth
"""
...
def setValue(self, depth: int, row: int, column: int, value: Any):
def setValue(self, depth: int, row: int, column: int, value: Any, /):
"""
Set the value at the given depth, row, and column
"""
...
def setRows(self, depth: int, value: int):
def setRows(self, depth: int, value: int, /):
"""
Set the number of rows at the given depth
"""

View File

@@ -1,6 +1,10 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, no_args, sequence_protocol
from Base.BaseClass import BaseClass
from typing import Final, Dict
from typing import Final
@export(

View File

@@ -1,4 +1,8 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.BaseClass import BaseClass
from typing import List
@@ -24,4 +28,4 @@ class MaterialFilter(BaseClass):
"""Materials must include the specified models."""
RequiredCompleteModels: List = ...
"""Materials must have complete versions of the specified models."""
"""Materials must have complete versions of the specified models."""

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.BaseClass import BaseClass
@@ -6,7 +10,7 @@ from Base.BaseClass import BaseClass
Include="Mod/Material/App/MaterialFilter.h",
Namespace="Materials",
Constructor=True,
Delete=True
Delete=True,
)
class MaterialFilterOptions(BaseClass):
"""

View File

@@ -1,6 +1,10 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.BaseClass import BaseClass
from typing import Final
@export(
Include="Mod/Material/App/MaterialLibrary.h",

View File

@@ -1,16 +1,17 @@
from Base.Metadata import export, constmethod
from Base.BaseClass import BaseClass
from typing import Final, List, Dict, overload
# SPDX-License-Identifier: LGPL-2.1-or-later
@export(
Include="Mod/Material/App/MaterialManager.h",
Namespace="Materials",
Constructor=True
)
from __future__ import annotations
from Base.Metadata import export
from Base.BaseClass import BaseClass
from typing import Final, List, Dict
@export(Include="Mod/Material/App/MaterialManager.h", Namespace="Materials", Constructor=True)
class MaterialManager(BaseClass):
"""
Material descriptions.
Author: DavidCarter (dcarter@davidcarter.ca)
Licence: LGPL
"""
@@ -67,4 +68,4 @@ class MaterialManager(BaseClass):
"""
Refreshes the material tree. Use sparingly as this is an expensive operation.
"""
...
...

View File

@@ -1,7 +1,12 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from ModelProperty import ModelProperty
from typing import Final
@export(
Include="Mod/Material/App/Materials.h",
Namespace="Materials",
@@ -13,7 +18,7 @@ from typing import Final
class MaterialProperty(ModelProperty):
"""
Material property descriptions.
Author: DavidCarter (dcarter@davidcarter.ca)
Licence: LGPL
"""

View File

@@ -1,6 +1,11 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.BaseClass import BaseClass
from typing import Final, List, Dict, overload
from typing import Final, List, Dict
@export(
Include="Mod/Material/App/Model.h",
@@ -15,49 +20,49 @@ class Model(BaseClass):
Author: DavidCarter (dcarter@davidcarter.ca)
Licence: LGPL
"""
LibraryName: Final[str] = ""
"""Model library name."""
LibraryRoot: Final[str] = ""
"""Model library path."""
LibraryIcon: Final[bytes] = ""
"""Model icon."""
Name: str = ""
"""Model name."""
Type: str = ""
"""Model type."""
Directory: str = ""
"""Model directory."""
UUID: Final[str] = ""
"""Unique model identifier."""
Description: str = ""
"""Description of the model."""
URL: str = ""
"""URL to a detailed description of the model."""
DOI: str = ""
"""Digital Object Identifier (see https://doi.org/)"""
Inherited: Final[List[str]] = []
"""List of inherited models identified by UUID."""
Properties: Final[Dict[str, str]] = {}
"""Dictionary of model properties."""
def addInheritance(self) -> None:
"""
Add an inherited model.
"""
...
def addProperty(self) -> None:
"""
Add a model property.

View File

@@ -1,12 +1,13 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.BaseClass import BaseClass
from typing import Final, List, Dict
@export(
Include="Mod/Material/App/ModelManager.h",
Namespace="Materials",
Constructor=True
)
@export(Include="Mod/Material/App/ModelManager.h", Namespace="Materials", Constructor=True)
class ModelManager(BaseClass):
"""
Material model descriptions.
@@ -24,13 +25,13 @@ class ModelManager(BaseClass):
Models: Final[Dict] = ...
"""List of model libraries."""
def getModel(self) -> ...:
def getModel(self) ->...:
"""
Get a model object by specifying its UUID
"""
...
def getModelByPath(self) -> ...:
def getModelByPath(self) ->...:
"""
Get a model object by specifying its path
"""

View File

@@ -1,4 +1,8 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.BaseClass import BaseClass
from typing import Final

View File

@@ -1,7 +1,12 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.BaseClass import BaseClass
from typing import Final
@export(
PythonName="Material.UUIDs",
Twin="ModelUUIDs",
@@ -14,7 +19,7 @@ from typing import Final
class UUIDs(BaseClass):
"""
Material model UUID identifiers.
Author: DavidCarter (dcarter@davidcarter.ca)
Licence: LGPL
"""

View File

@@ -1,6 +1,12 @@
from Metadata import export, constmethod, forward_declarations, class_declarations, sequence_protocol
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Metadata import (
export,
)
from Base.BaseClass import BaseClass
from typing import Final, overload
@export(
Twin="MaterialTreeWidget",

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from App.DocumentObject import DocumentObject

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any
from Base.BaseClass import BaseClass

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.PyObjectBase import PyObjectBase

View File

@@ -1,4 +1,8 @@
from typing import Final
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Final, Any
from Base.Metadata import export
from Base.PyObjectBase import PyObjectBase

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, Final
from Base.Metadata import export

View File

@@ -1,6 +1,10 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, Final
from Base.Metadata import constmethod, export
from Base.Metadata import constmethod, export, class_declarations
from App.ComplexGeoData import ComplexGeoData

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any
from Base.Metadata import export

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any, Final
from Base.Metadata import export

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Any
from Gui.ViewProviderGeometryObject import ViewProviderGeometryObject
from Base.Metadata import export

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from TrimmedCurve import TrimmedCurve
from Geometry import Geom_Circle, Geom_Ellipse

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from ArcOfConic import ArcOfConic
from typing import Final

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.Vector import Vector
from TrimmedCurve import TrimmedCurve

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from ArcOfConic import ArcOfConic
from typing import Final

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Part.ArcOfConic import ArcOfConic
from typing import Final

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from ArcOfConic import ArcOfConic
from typing import Final

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.BaseClass import BaseClass
from Base.Placement import Placement
@@ -46,31 +50,31 @@ class AttachEngine(BaseClass):
CompleteRefTypeList: Final[list] = []
"""List of all reference shape types recognized by AttachEngine."""
def getModeInfo(self, mode: str) -> dict:
def getModeInfo(self, mode: str, /) -> dict:
"""
getModeInfo(mode): returns supported reference combinations, user-friendly name, and so on.
"""
...
def getRefTypeOfShape(self, shape: str) -> str:
def getRefTypeOfShape(self, shape: str, /) -> str:
"""
getRefTypeOfShape(shape): returns shape type as interpreted by AttachEngine. Returns a string.
"""
...
def isFittingRefType(self, type_shape: str, type_needed: str) -> bool:
def isFittingRefType(self, type_shape: str, type_needed: str, /) -> bool:
"""
isFittingRefType(type_shape, type_needed): tests if shape type, specified by type_shape (string), fits a type required by attachment mode type_needed (string). e.g. 'Circle' fits a requirement of 'Edge', and 'Curve' doesn't fit if a 'Circle' is required.
"""
...
def downgradeRefType(self, type: str) -> str:
def downgradeRefType(self, type: str, /) -> str:
"""
downgradeRefType(type): returns next more general type. E.g. downgradeType('Circle') yields 'Curve'.
"""
...
def getRefTypeInfo(self, type: str) -> dict:
def getRefTypeInfo(self, type: str, /) -> dict:
"""
getRefTypeInfo(type): returns information (dict) on shape type. Keys:'UserFriendlyName', 'TypeIndex', 'Rank'. Rank is the number of times reftype can be downgraded, before it becomes 'Any'.
"""
@@ -84,7 +88,7 @@ class AttachEngine(BaseClass):
...
@constmethod
def calculateAttachedPlacement(self, orig_placement: Placement) -> Optional[Placement]:
def calculateAttachedPlacement(self, orig_placement: Placement, /) -> Optional[Placement]:
"""
calculateAttachedPlacement(orig_placement): returns result of attachment, based
on current Mode, References, etc. AttachmentOffset is included.
@@ -130,13 +134,13 @@ class AttachEngine(BaseClass):
"""
...
def readParametersFromFeature(self, document_object: DocumentObject) -> None:
def readParametersFromFeature(self, document_object: DocumentObject, /) -> None:
"""
readParametersFromFeature(document_object): sets AttachEngine parameters (References, Mode, etc.) by reading out properties of AttachableObject-derived feature.
"""
...
def writeParametersToFeature(self, document_object: DocumentObject) -> None:
def writeParametersToFeature(self, document_object: DocumentObject, /) -> None:
"""
writeParametersToFeature(document_object): updates properties of
AttachableObject-derived feature with current AttachEngine parameters

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from App.DocumentObjectExtension import DocumentObjectExtension
from typing import Any, Final
@@ -29,7 +33,7 @@ class AttachExtension(DocumentObjectExtension):
"""
...
def changeAttacherType(self, typename: str) -> None:
def changeAttacherType(self, typename: str, /) -> None:
"""
changeAttacherType(typename) -> None

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.PyObjectBase import PyObjectBase
from typing import List

View File

@@ -1,10 +1,14 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.PyObjectBase import PyObjectBase
from Part.App.Point import Point
from Part.App.TopoShape import TopoShape
from Part.App.TopoShapeEdge import TopoShapeEdge
from Part.App.TopoShapeFace import TopoShapeFace
from typing import overload, Final
from typing import overload
@export(
PythonName="Part.BRepOffsetAPI_MakeFilling",
@@ -26,7 +30,7 @@ class BRepOffsetAPI_MakeFilling(PyObjectBase):
Tol2d: float = 0.00001,
Tol3d: float = 0.0001,
TolAng: float = 0.01,
TolCurv: float = 0.1
TolCurv: float = 0.1,
) -> None:
"""
setConstrParam(Tol2d=0.00001, Tol3d=0.0001, TolAng=0.01, TolCurv=0.1)
@@ -50,7 +54,7 @@ class BRepOffsetAPI_MakeFilling(PyObjectBase):
"""
...
def loadInitSurface(self, face: TopoShapeFace) -> None:
def loadInitSurface(self, face: TopoShapeFace, /) -> None:
"""
loadInitSurface(face)
Loads the initial surface.
@@ -93,10 +97,10 @@ class BRepOffsetAPI_MakeFilling(PyObjectBase):
...
@overload
def G0Error(self) -> float: ...
def G0Error(self, /) -> float: ...
@overload
def G0Error(self, arg: int) -> float: ...
def G0Error(self, arg: int = 0) -> float:
def G0Error(self, arg: int, /) -> float: ...
def G0Error(self, arg: int = 0, /) -> float:
"""
G0Error([int])
Returns the maximum distance between the result and the constraints.
@@ -104,10 +108,10 @@ class BRepOffsetAPI_MakeFilling(PyObjectBase):
...
@overload
def G1Error(self) -> float: ...
def G1Error(self, /) -> float: ...
@overload
def G1Error(self, arg: int) -> float: ...
def G1Error(self, arg: int = 0) -> float:
def G1Error(self, arg: int, /) -> float: ...
def G1Error(self, arg: int = 0, /) -> float:
"""
G1Error([int])
Returns the maximum angle between the result and the constraints.
@@ -115,10 +119,10 @@ class BRepOffsetAPI_MakeFilling(PyObjectBase):
...
@overload
def G2Error(self) -> float: ...
def G2Error(self, /) -> float: ...
@overload
def G2Error(self, arg: int) -> float: ...
def G2Error(self, arg: int = 0) -> float:
def G2Error(self, arg: int, /) -> float: ...
def G2Error(self, arg: int = 0, /) -> float:
"""
G2Error([int])
Returns the greatest difference in curvature between the result and the constraints.

View File

@@ -1,4 +1,8 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.PyObjectBase import PyObjectBase
from Base.Vector import Vector
from TopoShape import TopoShape
@@ -20,7 +24,7 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
Licence: LGPL
"""
def setFrenetMode(self, mode: bool) -> None:
def setFrenetMode(self, mode: bool, /) -> None:
"""
setFrenetMode(True|False)
Sets a Frenet or a CorrectedFrenet trihedron to perform the sweeping.
@@ -29,7 +33,7 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
"""
...
def setTrihedronMode(self, point: Vector, direction: Vector) -> None:
def setTrihedronMode(self, point: Vector, direction: Vector, /) -> None:
"""
setTrihedronMode(point,direction)
Sets a fixed trihedron to perform the sweeping.
@@ -37,7 +41,7 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
"""
...
def setBiNormalMode(self, direction: Vector) -> None:
def setBiNormalMode(self, direction: Vector, /) -> None:
"""
setBiNormalMode(direction)
Sets a fixed BiNormal direction to perform the sweeping.
@@ -45,7 +49,7 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
"""
...
def setSpineSupport(self, shape: TopoShape) -> None:
def setSpineSupport(self, shape: TopoShape, /) -> None:
"""
setSpineSupport(shape)
Sets support to the spine to define the BiNormal of the trihedron, like the normal to the surfaces.
@@ -54,7 +58,7 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
...
def setAuxiliarySpine(
self, wire: TopoShape, CurvilinearEquivalence: bool, TypeOfContact: int
self, wire: TopoShape, CurvilinearEquivalence: bool, TypeOfContact: int, /
) -> None:
"""
setAuxiliarySpine(wire, CurvilinearEquivalence, TypeOfContact)
@@ -83,7 +87,7 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
Location: TopoShape,
*,
WithContact: bool = False,
WithCorrection: bool = False
WithCorrection: bool = False,
) -> None: ...
def add(self, **kwargs) -> None:
"""
@@ -96,7 +100,7 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
"""
...
def remove(self, Profile: TopoShape) -> None:
def remove(self, Profile: TopoShape, /) -> None:
"""
remove(shape Profile)
Removes the section Profile from this framework.
@@ -124,7 +128,7 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
"""
...
def setTolerance(self, tol3d: float, boundTol: float, tolAngular: float) -> None:
def setTolerance(self, tol3d: float, boundTol: float, tolAngular: float, /) -> None:
"""
setTolerance( tol3d, boundTol, tolAngular)
Tol3d = 3D tolerance
@@ -133,7 +137,7 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
"""
...
def setTransitionMode(self, mode: int) -> None:
def setTransitionMode(self, mode: int, /) -> None:
"""
0: BRepBuilderAPI_Transformed
1: BRepBuilderAPI_RightCorner
@@ -169,35 +173,35 @@ class BRepOffsetAPI_MakePipeShell(PyObjectBase):
"""
...
def generated(self, S: TopoShape) -> list[TopoShape]:
def generated(self, S: TopoShape, /) -> list[TopoShape]:
"""
generated(shape S)
Returns a list of new shapes generated from the shape S by the shell-generating algorithm.
"""
...
def setMaxDegree(self, degree: int) -> None:
def setMaxDegree(self, degree: int, /) -> None:
"""
setMaxDegree(int degree)
Define the maximum V degree of resulting surface.
"""
...
def setMaxSegments(self, num: int) -> None:
def setMaxSegments(self, num: int, /) -> None:
"""
setMaxSegments(int num)
Define the maximum number of spans in V-direction on resulting surface.
"""
...
def setForceApproxC1(self, flag: bool) -> None:
def setForceApproxC1(self, flag: bool, /) -> None:
"""
setForceApproxC1(bool)
Set the flag that indicates attempt to approximate a C1-continuous surface if a swept surface proved to be C0.
"""
...
def simulate(self, nbsec: int) -> None:
def simulate(self, nbsec: int, /) -> None:
"""
simulate(int nbsec)
Simulates the resulting shape by calculating the given number of cross-sections.

View File

@@ -1,7 +1,13 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.Vector import Vector
from BoundedCurve import BoundedCurve
from typing import Final, List, overload
from Part.App.Arc import Arc
from Part.App.BezierCurve import BezierCurve
from typing import Final, List, overload, Any
@export(
PythonName="Part.BSplineCurve",
@@ -89,7 +95,7 @@ class BSplineCurve(BoundedCurve):
"""
...
def increaseDegree(self, Degree: int = ...) -> None:
def increaseDegree(self, Degree: int = ..., /) -> None:
"""
increase(Int=Degree)
Increases the degree of this B-Spline curve to Degree.
@@ -100,9 +106,9 @@ class BSplineCurve(BoundedCurve):
...
@overload
def increaseMultiplicity(self, index: int, mult: int) -> None: ...
def increaseMultiplicity(self, index: int, mult: int, /) -> None: ...
@overload
def increaseMultiplicity(self, start: int, end: int, mult: int) -> None: ...
def increaseMultiplicity(self, start: int, end: int, mult: int, /) -> None: ...
def increaseMultiplicity(self, *args, **kwargs) -> None:
"""
increaseMultiplicity(int index, int mult)
@@ -116,7 +122,7 @@ class BSplineCurve(BoundedCurve):
"""
...
def incrementMultiplicity(self, start: int, end: int, mult: int) -> None:
def incrementMultiplicity(self, start: int, end: int, mult: int, /) -> None:
"""
incrementMultiplicity(int start, int end, int mult)
@@ -126,7 +132,7 @@ class BSplineCurve(BoundedCurve):
"""
...
def insertKnot(self, u: float, mult: int = 1, tol: float = 0.0) -> None:
def insertKnot(self, u: float, mult: int = 1, tol: float = 0.0, /) -> None:
"""
insertKnot(u, mult = 1, tol = 0.0)
@@ -141,6 +147,7 @@ class BSplineCurve(BoundedCurve):
list_of_ints: List[int],
tol: float = 0.0,
bool_add: bool = True,
/,
) -> None:
"""
insertKnots(list_of_floats, list_of_ints, tol = 0.0, bool_add = True)
@@ -161,7 +168,7 @@ class BSplineCurve(BoundedCurve):
"""
...
def removeKnot(self, Index: int, M: int, tol: float) -> bool:
def removeKnot(self, Index: int, M: int, tol: float, /) -> bool:
"""
removeKnot(Index, M, tol)
@@ -180,7 +187,7 @@ class BSplineCurve(BoundedCurve):
"""
...
def segment(self, u1: float, u2: float) -> None:
def segment(self, u1: float, u2: float, /) -> None:
"""
segment(u1,u2)
@@ -188,20 +195,20 @@ class BSplineCurve(BoundedCurve):
"""
...
def setKnot(self, knot: float, index: int) -> None:
def setKnot(self, knot: float, index: int, /) -> None:
"""
Set a knot of the B-Spline curve.
"""
...
@constmethod
def getKnot(self, index: int) -> float:
def getKnot(self, index: int, /) -> float:
"""
Get a knot of the B-Spline curve.
"""
...
def setKnots(self, knots: List[float]) -> None:
def setKnots(self, knots: List[float], /) -> None:
"""
Set knots of the B-Spline curve.
"""
@@ -214,7 +221,7 @@ class BSplineCurve(BoundedCurve):
"""
...
def setPole(self, P: Vector, Index: int) -> None:
def setPole(self, P: Vector, Index: int, /) -> None:
"""
Modifies this B-Spline curve by assigning P
to the pole of index Index in the poles table.
@@ -222,7 +229,7 @@ class BSplineCurve(BoundedCurve):
...
@constmethod
def getPole(self, Index: int) -> Vector:
def getPole(self, Index: int, /) -> Vector:
"""
Get a pole of the B-Spline curve.
"""
@@ -235,14 +242,14 @@ class BSplineCurve(BoundedCurve):
"""
...
def setWeight(self, weight: float, index: int) -> None:
def setWeight(self, weight: float, index: int, /) -> None:
"""
Set a weight of the B-Spline curve.
"""
...
@constmethod
def getWeight(self, index: int) -> float:
def getWeight(self, index: int, /) -> float:
"""
Get a weight of the B-Spline curve.
"""
@@ -263,7 +270,7 @@ class BSplineCurve(BoundedCurve):
...
@constmethod
def getResolution(self, Tolerance3D: float) -> float:
def getResolution(self, Tolerance3D: float, /) -> float:
"""
Computes for this B-Spline curve the parametric tolerance (UTolerance)
for a given 3D tolerance (Tolerance3D).
@@ -273,7 +280,7 @@ class BSplineCurve(BoundedCurve):
"""
...
def movePoint(self, U: float, P: Vector, Index1: int, Index2: int) -> tuple[int, int]:
def movePoint(self, U: float, P: Vector, Index1: int, Index2: int, /) -> tuple[int, int]:
"""
movePoint(U, P, Index1, Index2)
@@ -299,7 +306,7 @@ class BSplineCurve(BoundedCurve):
"""
...
def setOrigin(self, Index: int) -> None:
def setOrigin(self, Index: int, /) -> None:
"""
Assigns the knot of index Index in the knots table
as the origin of this periodic B-Spline curve. As a consequence,
@@ -308,7 +315,7 @@ class BSplineCurve(BoundedCurve):
...
@constmethod
def getMultiplicity(self, index: int) -> int:
def getMultiplicity(self, index: int, /) -> int:
"""
Returns the multiplicity of the knot of index
from the knots table of this B-Spline curve.
@@ -434,6 +441,7 @@ class BSplineCurve(BoundedCurve):
periodic: bool = False,
degree: int = 3,
interpolate: bool = False,
/,
) -> None:
"""
Builds a B-Spline by a list of poles.
@@ -497,27 +505,27 @@ class BSplineCurve(BoundedCurve):
...
@constmethod
def toBezier(self) -> List["BezierCurve"]:
def toBezier(self) -> List[BezierCurve]:
"""
Build a list of Bezier splines.
"""
...
@constmethod
def toBiArcs(self, tolerance: float) -> List["Arc"]:
def toBiArcs(self, tolerance: float, /) -> List[Arc]:
"""
Build a list of arcs and lines to approximate the B-spline.
toBiArcs(tolerance) -> list.
"""
...
def join(self, other: "BSplineCurve") -> None:
def join(self, other: "BSplineCurve", /) -> None:
"""
Build a new spline by joining this and a second spline.
"""
...
def makeC1Continuous(self, tol: float = 1e-6, ang_tol: float = 1e-7) -> "BSplineCurve":
def makeC1Continuous(self, tol: float = 1e-6, ang_tol: float = 1e-7, /) -> "BSplineCurve":
"""
makeC1Continuous(tol = 1e-6, ang_tol = 1e-7)
Reduces as far as possible the multiplicities of the knots of this BSpline
@@ -529,7 +537,7 @@ class BSplineCurve(BoundedCurve):
"""
...
def scaleKnotsToBounds(self, u0: float = 0.0, u1: float = 1.0) -> None:
def scaleKnotsToBounds(self, u0: float = 0.0, u1: float = 1.0, /) -> None:
"""
Scales the knots list to fit the specified bounds.
The shape of the curve is not modified.

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from GeometrySurface import GeometrySurface
from typing import Final, List, Any
@@ -181,6 +185,7 @@ class BSplineSurface(GeometrySurface):
dX: float = ...,
Y0: float = ...,
dY: float = ...,
/,
) -> None:
"""
increase(Int=UDegree, int=VDegree)
@@ -218,31 +223,31 @@ class BSplineSurface(GeometrySurface):
"""
...
def insertUKnot(self, U: float, Index: int, Tolerance: float) -> None:
def insertUKnot(self, U: float, Index: int, Tolerance: float, /) -> None:
"""
insertUKnote(float U, int Index, float Tolerance) - Insert or override a knot
"""
...
def insertUKnots(self, U: List[float], Mult: List[float], Tolerance: float) -> None:
def insertUKnots(self, U: List[float], Mult: List[float], Tolerance: float, /) -> None:
"""
insertUKnote(List of float U, List of float Mult, float Tolerance) - Inserts knots.
"""
...
def insertVKnot(self, V: float, Index: int, Tolerance: float) -> None:
def insertVKnot(self, V: float, Index: int, Tolerance: float, /) -> None:
"""
insertUKnote(float V, int Index, float Tolerance) - Insert or override a knot.
"""
...
def insertVKnots(self, V: List[float], Mult: List[float], Tolerance: float) -> None:
def insertVKnots(self, V: List[float], Mult: List[float], Tolerance: float, /) -> None:
"""
insertUKnote(List of float V, List of float Mult, float Tolerance) - Inserts knots.
"""
...
def removeUKnot(self, M: int, Index: int, Tolerance: float) -> bool:
def removeUKnot(self, M: int, Index: int, Tolerance: float, /) -> bool:
"""
Reduces to M the multiplicity of the knot of index Index in the given
parametric direction. If M is 0, the knot is removed.
@@ -260,7 +265,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def removeVKnot(self, M: int, Index: int, Tolerance: float) -> bool:
def removeVKnot(self, M: int, Index: int, Tolerance: float, /) -> bool:
"""
Reduces to M the multiplicity of the knot of index Index in the given
parametric direction. If M is 0, the knot is removed.
@@ -278,7 +283,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def segment(self, U1: float, U2: float, V1: float, V2: float) -> None:
def segment(self, U1: float, U2: float, V1: float, V2: float, /) -> None:
"""
Modifies this B-Spline surface by segmenting it between U1 and U2 in the
u parametric direction and between V1 and V2 in the v parametric direction.
@@ -292,7 +297,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setUKnot(self, K: float, UIndex: int, M: int = ...) -> None:
def setUKnot(self, K: float, UIndex: int, M: int = ..., /) -> None:
"""
Modifies this B-Spline surface by assigning the value K to the knot of index
UIndex of the knots table corresponding to the u parametric direction.
@@ -304,7 +309,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setVKnot(self, K: float, VIndex: int, M: int = ...) -> None:
def setVKnot(self, K: float, VIndex: int, M: int = ..., /) -> None:
"""
Modifies this B-Spline surface by assigning the value K to the knot of index
VIndex of the knots table corresponding to the v parametric direction.
@@ -317,7 +322,7 @@ class BSplineSurface(GeometrySurface):
...
@constmethod
def getUKnot(self, UIndex: int) -> Any:
def getUKnot(self, UIndex: int, /) -> Any:
"""
Returns, for this B-Spline surface, in the u parametric direction
the knot of index UIndex of the knots table.
@@ -325,21 +330,21 @@ class BSplineSurface(GeometrySurface):
...
@constmethod
def getVKnot(self, VIndex: int) -> Any:
def getVKnot(self, VIndex: int, /) -> Any:
"""
Returns, for this B-Spline surface, in the v parametric direction
the knot of index VIndex of the knots table.
"""
...
def setUKnots(self, knots: List[Any]) -> None:
def setUKnots(self, knots: List[Any], /) -> None:
"""
Changes all knots of this B-Spline surface in the u parametric
direction. The multiplicity of the knots is not modified.
"""
...
def setVKnots(self, knots: List[Any]) -> None:
def setVKnots(self, knots: List[Any], /) -> None:
"""
Changes all knots of this B-Spline surface in the v parametric
direction. The multiplicity of the knots is not modified.
@@ -362,7 +367,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setPole(self, P: Any, UIndex: int, VIndex: int, Weight: float = ...) -> None:
def setPole(self, P: Any, UIndex: int, VIndex: int, Weight: float = ..., /) -> None:
"""
Modifies this B-Spline surface by assigning P to the pole of
index (UIndex, VIndex) in the poles table.
@@ -374,7 +379,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setPoleCol(self, VIndex: int, values: List[Any], CPoleWeights: List[float]) -> None:
def setPoleCol(self, VIndex: int, values: List[Any], CPoleWeights: List[float], /) -> None:
"""
Modifies this B-Spline surface by assigning values to all or part
of the column of poles of index VIndex, of this B-Spline surface.
@@ -384,7 +389,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setPoleRow(self, UIndex: int, values: List[Any], CPoleWeights: List[float]) -> None:
def setPoleRow(self, UIndex: int, values: List[Any], CPoleWeights: List[float], /) -> None:
"""
Modifies this B-Spline surface by assigning values to all or part
of the row of poles of index UIndex, of this B-Spline surface.
@@ -395,7 +400,7 @@ class BSplineSurface(GeometrySurface):
...
@constmethod
def getPole(self, UIndex: int, VIndex: int) -> Any:
def getPole(self, UIndex: int, VIndex: int, /) -> Any:
"""
Returns the pole of index (UIndex,VIndex) of this B-Spline surface.
"""
@@ -408,7 +413,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setWeight(self, Weight: float, UIndex: int, VIndex: int) -> None:
def setWeight(self, Weight: float, UIndex: int, VIndex: int, /) -> None:
"""
Modifies this B-Spline surface by assigning the value Weight to the weight
of the pole of index (UIndex, VIndex) in the poles tables of this B-Spline
@@ -418,7 +423,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setWeightCol(self, VIndex: int, CPoleWeights: List[float]) -> None:
def setWeightCol(self, VIndex: int, CPoleWeights: List[float], /) -> None:
"""
Modifies this B-Spline surface by assigning values to all or part of the
weights of the column of poles of index VIndex of this B-Spline surface.
@@ -430,7 +435,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setWeightRow(self, UIndex: int, CPoleWeights: List[float]) -> None:
def setWeightRow(self, UIndex: int, CPoleWeights: List[float], /) -> None:
"""
Modifies this B-Spline surface by assigning values to all or part of the
weights of the row of poles of index UIndex of this B-Spline surface.
@@ -443,7 +448,7 @@ class BSplineSurface(GeometrySurface):
...
@constmethod
def getWeight(self, UIndex: int, VIndex: int) -> float:
def getWeight(self, UIndex: int, VIndex: int, /) -> float:
"""
Return the weight of the pole of index (UIndex,VIndex)
in the poles table for this B-Spline surface.
@@ -465,7 +470,7 @@ class BSplineSurface(GeometrySurface):
...
@constmethod
def getResolution(self, Tolerance3D: float) -> Any:
def getResolution(self, Tolerance3D: float, /) -> Any:
"""
Computes two tolerance values for this B-Spline surface, based on the
given tolerance in 3D space Tolerance3D. The tolerances computed are:
@@ -489,6 +494,7 @@ class BSplineSurface(GeometrySurface):
UIndex2: int = ...,
VIndex1: int = ...,
VIndex2: int = ...,
/,
) -> Any:
"""
Moves the point of parameters (U, V) of this B-Spline surface to P.
@@ -538,7 +544,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setUPeriodic(self, I1: int, I2: int) -> None:
def setUPeriodic(self, I1: int, I2: int, /) -> None:
"""
Modifies this surface to be periodic in the u parametric direction.
To become periodic in a given parametric direction a surface must
@@ -556,7 +562,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setVPeriodic(self, I1: int, I2: int) -> None:
def setVPeriodic(self, I1: int, I2: int, /) -> None:
"""
Modifies this surface to be periodic in the v parametric direction.
To become periodic in a given parametric direction a surface must
@@ -574,7 +580,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setUOrigin(self, Index: int) -> None:
def setUOrigin(self, Index: int, /) -> None:
"""
Assigns the knot of index Index in the knots table
in the u parametric direction to be the origin of
@@ -583,7 +589,7 @@ class BSplineSurface(GeometrySurface):
"""
...
def setVOrigin(self, Index: int) -> None:
def setVOrigin(self, Index: int, /) -> None:
"""
Assigns the knot of index Index in the knots table
in the v parametric direction to be the origin of
@@ -593,7 +599,7 @@ class BSplineSurface(GeometrySurface):
...
@constmethod
def getUMultiplicity(self, UIndex: int) -> Any:
def getUMultiplicity(self, UIndex: int, /) -> Any:
"""
Returns, for this B-Spline surface, the multiplicity of
the knot of index UIndex in the u parametric direction.
@@ -601,7 +607,7 @@ class BSplineSurface(GeometrySurface):
...
@constmethod
def getVMultiplicity(self, VIndex: int) -> Any:
def getVMultiplicity(self, VIndex: int, /) -> Any:
"""
Returns, for this B-Spline surface, the multiplicity of
the knot of index VIndex in the v parametric direction.
@@ -658,7 +664,7 @@ class BSplineSurface(GeometrySurface):
ParamType: str = ...,
LengthWeight: float = ...,
CurvatureWeight: float = ...,
TorsionWeight: float = ...
TorsionWeight: float = ...,
) -> None:
"""
Replaces this B-Spline surface by approximating a set of points.
@@ -689,6 +695,7 @@ class BSplineSurface(GeometrySurface):
dX: float = ...,
Y0: float = ...,
dY: float = ...,
/,
) -> None:
"""
interpolate(points)
@@ -718,7 +725,7 @@ class BSplineSurface(GeometrySurface):
vperiodic: bool = ...,
udegree: int = ...,
vdegree: int = ...,
weights: List[List[float]] = ...
weights: List[List[float]] = ...,
) -> None:
"""
Builds a B-Spline by a lists of Poles, Mults and Knots
@@ -726,13 +733,13 @@ class BSplineSurface(GeometrySurface):
"""
...
def buildFromNSections(self, control_curves: Any) -> None:
def buildFromNSections(self, control_curves: Any, /) -> None:
"""
Builds a B-Spline from a list of control curves
"""
...
def scaleKnotsToBounds(self, u0: float, u1: float, v0: float, v1: float) -> None:
def scaleKnotsToBounds(self, u0: float, u1: float, v0: float, v1: float, /) -> None:
"""
Scales the U and V knots lists to fit the specified bounds.
The shape of the surface is not modified.

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.Vector import Vector
from BoundedCurve import BoundedCurve
@@ -73,26 +77,26 @@ class BezierCurve(BoundedCurve):
"""
...
def increase(self, Int: int = ...) -> None:
def increase(self, Int: int = ..., /) -> None:
"""
Increases the degree of this Bezier curve to Degree.
As a result, the poles and weights tables are modified.
"""
...
def insertPoleAfter(self, index: int) -> None:
def insertPoleAfter(self, index: int, /) -> None:
"""
Inserts after the pole of index.
"""
...
def insertPoleBefore(self, index: int) -> None:
def insertPoleBefore(self, index: int, /) -> None:
"""
Inserts before the pole of index.
"""
...
def removePole(self, Index: int) -> None:
def removePole(self, Index: int, /) -> None:
"""
Removes the pole of index Index from the table of poles of this Bezier curve.
If this Bezier curve is rational, it can become non-rational.
@@ -105,14 +109,14 @@ class BezierCurve(BoundedCurve):
"""
...
def setPole(self, pole: Vector) -> None:
def setPole(self, pole: Vector, /) -> None:
"""
Set a pole of the Bezier curve.
"""
...
@constmethod
def getPole(self, index: int) -> Vector:
def getPole(self, index: int, /) -> Vector:
"""
Get a pole of the Bezier curve.
"""
@@ -125,7 +129,7 @@ class BezierCurve(BoundedCurve):
"""
...
def setPoles(self, poles: List[Vector]) -> None:
def setPoles(self, poles: List[Vector], /) -> None:
"""
Set the poles of the Bezier curve.
@@ -133,14 +137,14 @@ class BezierCurve(BoundedCurve):
"""
...
def setWeight(self, id: int, weight: float) -> None:
def setWeight(self, id: int, weight: float, /) -> None:
"""
(id, weight) Set a weight of the Bezier curve.
"""
...
@constmethod
def getWeight(self, id: int) -> float:
def getWeight(self, id: int, /) -> float:
"""
Get a weight of the Bezier curve.
"""
@@ -154,7 +158,7 @@ class BezierCurve(BoundedCurve):
...
@constmethod
def getResolution(self, Tolerance3D: float) -> float:
def getResolution(self, Tolerance3D: float, /) -> float:
"""
Computes for this Bezier curve the parametric tolerance (UTolerance)
for a given 3D tolerance (Tolerance3D).
@@ -164,7 +168,7 @@ class BezierCurve(BoundedCurve):
"""
...
def interpolate(self, constraints: List[List], parameters: List[float] = ...) -> None:
def interpolate(self, constraints: List[List], parameters: List[float] = ..., /) -> None:
"""
Interpolates a list of constraints.
Each constraint is a list of a point and some optional derivatives

View File

@@ -1,12 +1,13 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import (
export,
constmethod,
forward_declarations,
class_declarations,
sequence_protocol,
)
from GeometrySurface import GeometrySurface
from typing import Final, Tuple
from typing import Final, Tuple, Any
@export(
Twin="GeomBezierSurface",
@@ -106,7 +107,7 @@ class BezierSurface(GeometrySurface):
"""
...
def increase(self, DegreeU: int, DegreeV: int) -> None:
def increase(self, DegreeU: int, DegreeV: int, /) -> None:
"""
increase(DegreeU: int, DegreeV: int)
Increases the degree of this Bezier surface in the two
@@ -114,7 +115,7 @@ class BezierSurface(GeometrySurface):
"""
...
def insertPoleColAfter(self, index: int) -> None:
def insertPoleColAfter(self, index: int, /) -> None:
"""
Inserts into the table of poles of this surface, after the column
of poles of index.
@@ -125,7 +126,7 @@ class BezierSurface(GeometrySurface):
"""
...
def insertPoleRowAfter(self, index: int) -> None:
def insertPoleRowAfter(self, index: int, /) -> None:
"""
Inserts into the table of poles of this surface, after the row
of poles of index.
@@ -136,7 +137,7 @@ class BezierSurface(GeometrySurface):
"""
...
def insertPoleColBefore(self, index: int) -> None:
def insertPoleColBefore(self, index: int, /) -> None:
"""
Inserts into the table of poles of this surface, before the column
of poles of index.
@@ -147,7 +148,7 @@ class BezierSurface(GeometrySurface):
"""
...
def insertPoleRowBefore(self, index: int) -> None:
def insertPoleRowBefore(self, index: int, /) -> None:
"""
Inserts into the table of poles of this surface, before the row
of poles of index.
@@ -158,7 +159,7 @@ class BezierSurface(GeometrySurface):
"""
...
def removePoleCol(self, VIndex: int) -> None:
def removePoleCol(self, VIndex: int, /) -> None:
"""
removePoleRow(VIndex: int)
Removes the column of poles of index VIndex from the table of
@@ -167,7 +168,7 @@ class BezierSurface(GeometrySurface):
"""
...
def removePoleRow(self, UIndex: int) -> None:
def removePoleRow(self, UIndex: int, /) -> None:
"""
removePoleRow(UIndex: int)
Removes the row of poles of index UIndex from the table of
@@ -176,7 +177,7 @@ class BezierSurface(GeometrySurface):
"""
...
def segment(self, U1: float, U2: float, V1: float, V2: float) -> None:
def segment(self, U1: float, U2: float, V1: float, V2: float, /) -> None:
"""
segment(U1: double, U2: double, V1: double, V2: double)
Modifies this Bezier surface by segmenting it between U1 and U2
@@ -200,26 +201,26 @@ class BezierSurface(GeometrySurface):
"""
...
def setPole(self, pole: Any) -> None:
def setPole(self, pole: Any, /) -> None:
"""
Set a pole of the Bezier surface.
"""
...
def setPoleCol(self, poles: Any) -> None:
def setPoleCol(self, poles: Any, /) -> None:
"""
Set the column of poles of the Bezier surface.
"""
...
def setPoleRow(self, poles: Any) -> None:
def setPoleRow(self, poles: Any, /) -> None:
"""
Set the row of poles of the Bezier surface.
"""
...
@constmethod
def getPole(self, UIndex: int, VIndex: int) -> Any:
def getPole(self, UIndex: int, VIndex: int, /) -> Any:
"""
Get a pole of index (UIndex, VIndex) of the Bezier surface.
"""
@@ -232,21 +233,21 @@ class BezierSurface(GeometrySurface):
"""
...
def setWeight(self, UIndex: int, VIndex: int, weight: float) -> None:
def setWeight(self, UIndex: int, VIndex: int, weight: float, /) -> None:
"""
Set the weight of pole of the index (UIndex, VIndex)
for the Bezier surface.
"""
...
def setWeightCol(self, VIndex: int, weights: Any) -> None:
def setWeightCol(self, VIndex: int, weights: Any, /) -> None:
"""
Set the weights of the poles in the column of poles
of index VIndex of the Bezier surface.
"""
...
def setWeightRow(self, UIndex: int, weights: Any) -> None:
def setWeightRow(self, UIndex: int, weights: Any, /) -> None:
"""
Set the weights of the poles in the row of poles
of index UIndex of the Bezier surface.
@@ -254,7 +255,7 @@ class BezierSurface(GeometrySurface):
...
@constmethod
def getWeight(self, UIndex: int, VIndex: int) -> float:
def getWeight(self, UIndex: int, VIndex: int, /) -> float:
"""
Get a weight of the pole of index (UIndex, VIndex)
of the Bezier surface.
@@ -269,7 +270,7 @@ class BezierSurface(GeometrySurface):
...
@constmethod
def getResolution(self, Tolerance3D: float) -> Tuple[float, float]:
def getResolution(self, Tolerance3D: float, /) -> Tuple[float, float]:
"""
Computes two tolerance values for this Bezier surface, based on the
given tolerance in 3D space Tolerance3D. The tolerances computed are:

View File

@@ -1,4 +1,8 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from PartFeature import PartFeature
@export(

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from GeometryCurve import GeometryCurve
from typing import Any, Final

View File

@@ -1,4 +1,8 @@
from Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Metadata import export
from Base.PyObjectBase import PyObjectBase
from typing import Tuple
@@ -23,7 +27,7 @@ class AnaFilletAlgo(PyObjectBase):
"""
...
def perform(self, radius: float) -> bool:
def perform(self, radius: float, /) -> bool:
"""
perform(radius) -> bool

View File

@@ -1,5 +1,9 @@
from Base.Metadata import export, constmethod
from typing import Tuple, overload
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from typing import Tuple
from Base.PyObjectBase import PyObjectBase
@@ -25,7 +29,7 @@ class ChFi2d_ChamferAPI(PyObjectBase):
"""
...
def perform(self, radius: float) -> bool:
def perform(self, radius: float, /) -> bool:
"""
perform(radius) -> bool
@@ -33,7 +37,7 @@ class ChFi2d_ChamferAPI(PyObjectBase):
"""
...
def result(self, point: object, solution: int = -1) -> Tuple[object, object, object]:
def result(self, point: object, solution: int = -1, /) -> Tuple[object, object, object]:
"""
result(point, solution=-1)

View File

@@ -1,6 +1,9 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.PyObjectBase import PyObjectBase
from typing import overload
from Part.TopoShapeEdgePy import TopoShapeEdge
from Part.PointPy import Point
@@ -26,7 +29,7 @@ class ChFi2d_FilletAPI(PyObjectBase):
"""
...
def perform(self, radius: float) -> bool:
def perform(self, radius: float, /) -> bool:
"""
perform(radius) -> bool
@@ -41,7 +44,7 @@ class ChFi2d_FilletAPI(PyObjectBase):
...
def result(
self, point: Point, solution: int = -1
self, point: Point, solution: int = -1, /
) -> tuple[TopoShapeEdge, TopoShapeEdge, TopoShapeEdge]:
"""
result(point, solution=-1)

View File

@@ -1,7 +1,10 @@
from Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Metadata import export
from Base.PyObjectBase import PyObjectBase
from Base.Vector import Vector
from typing import Final
@export(
Name="ChFi2d_FilletAlgoPy",
@@ -26,7 +29,7 @@ class FilletAlgo(PyObjectBase):
"""
...
def perform(self, radius: float) -> bool:
def perform(self, radius: float, /) -> bool:
"""
perform(radius) -> bool
@@ -40,7 +43,7 @@ class FilletAlgo(PyObjectBase):
"""
...
def result(self, point: Vector, solution: int = -1) -> tuple[object, object, object]:
def result(self, point: Vector, solution: int = -1, /) -> tuple[object, object, object]:
"""
result(point, solution=-1)

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.Vector import Vector
from Conic import Conic

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.Vector import Vector
from Base.Axis import Axis as AxisPy

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from GeometryCurve import GeometryCurve
from typing import Final

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.Vector import Vector
from Circle import Circle

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.Vector import Vector
from Conic import Conic

View File

@@ -1,4 +1,8 @@
from Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Metadata import export
from typing import Final, overload
from Part.Geom2d import ArcOfConic2d
@@ -26,6 +30,7 @@ class ArcOfCircle2d(ArcOfConic2d):
@overload
def __init__(self, Radius: float, Circle: object) -> None: ...
"""
ArcOfCircle2d(Radius, Circle) -> None

View File

@@ -1,4 +1,8 @@
from Base.Metadata import export, constmethod, overload
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from typing import Final
from Part.Geom2d import Curve2d

View File

@@ -1,4 +1,8 @@
from Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Metadata import export
from typing import Final, overload
from Part import ArcOfConic2d

View File

@@ -1,4 +1,8 @@
from Base.Metadata import export, constmethod, overload
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, overload
from typing import Final
from Part.Geom2d import ArcOfConic2d

View File

@@ -1,4 +1,8 @@
from Metadata import export, constmethod, overload
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Metadata import export, overload
from typing import Final
from Part.Geom2d import ArcOfConic2d

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from typing import Final, overload
from Part.Curve2d import Curve2d
@@ -71,7 +75,7 @@ class BSplineCurve2d(Curve2d):
"""
...
def increaseDegree(self, Degree: int) -> None:
def increaseDegree(self, Degree: int, /) -> None:
"""
increaseDegree(Int=Degree)
@@ -83,9 +87,9 @@ class BSplineCurve2d(Curve2d):
...
@overload
def increaseMultiplicity(self, index: int, mult: int) -> None: ...
def increaseMultiplicity(self, index: int, mult: int, /) -> None: ...
@overload
def increaseMultiplicity(self, start: int, end: int, mult: int) -> None: ...
def increaseMultiplicity(self, start: int, end: int, mult: int, /) -> None: ...
def increaseMultiplicity(self, *args, **kwargs) -> None:
"""
increaseMultiplicity(int index, int mult)
@@ -99,7 +103,7 @@ class BSplineCurve2d(Curve2d):
"""
...
def incrementMultiplicity(self, start: int, end: int, mult: int) -> None:
def incrementMultiplicity(self, start: int, end: int, mult: int, /) -> None:
"""
incrementMultiplicity(int start, int end, int mult)
Raises multiplicity of knots by mult.
@@ -108,7 +112,7 @@ class BSplineCurve2d(Curve2d):
"""
...
def insertKnot(self, u: float, mult: int = 1, tol: float = 0.0) -> None:
def insertKnot(self, u: float, mult: int = 1, tol: float = 0.0, /) -> None:
"""
insertKnot(u, mult = 1, tol = 0.0)
@@ -122,6 +126,7 @@ class BSplineCurve2d(Curve2d):
list_of_ints: list[int],
tol: float = 0.0,
bool_add: bool = True,
/,
) -> None:
"""
insertKnots(list_of_floats, list_of_ints, tol = 0.0, bool_add = True)
@@ -142,7 +147,7 @@ class BSplineCurve2d(Curve2d):
"""
...
def removeKnot(self, Index: int, M: int, tol: float) -> None:
def removeKnot(self, Index: int, M: int, tol: float, /) -> None:
"""
removeKnot(Index, M, tol)
@@ -161,26 +166,26 @@ class BSplineCurve2d(Curve2d):
"""
...
def segment(self, u1: float, u2: float) -> None:
def segment(self, u1: float, u2: float, /) -> None:
"""
segment(u1,u2)
Modifies this B-Spline curve by segmenting it.
"""
...
def setKnot(self, value: float) -> None:
def setKnot(self, value: float, /) -> None:
"""
Set a knot of the B-Spline curve.
"""
...
def getKnot(self, index: int) -> float:
def getKnot(self, index: int, /) -> float:
"""
Get a knot of the B-Spline curve.
"""
...
def setKnots(self, knots: list[float]) -> None:
def setKnots(self, knots: list[float], /) -> None:
"""
Set knots of the B-Spline curve.
"""
@@ -192,13 +197,13 @@ class BSplineCurve2d(Curve2d):
"""
...
def setPole(self, P: Vector, Index: int) -> None:
def setPole(self, P: Vector, Index: int, /) -> None:
"""
Modifies this B-Spline curve by assigning P to the pole of index Index in the poles table.
"""
...
def getPole(self, Index: int) -> Vector:
def getPole(self, Index: int, /) -> Vector:
"""
Get a pole of the B-Spline curve.
"""
@@ -210,13 +215,13 @@ class BSplineCurve2d(Curve2d):
"""
...
def setWeight(self, weight: float, Index: int) -> None:
def setWeight(self, weight: float, Index: int, /) -> None:
"""
Set a weight of the B-Spline curve.
"""
...
def getWeight(self, Index: int) -> float:
def getWeight(self, Index: int, /) -> float:
"""
Get a weight of the B-Spline curve.
"""
@@ -244,7 +249,7 @@ class BSplineCurve2d(Curve2d):
"""
...
def movePoint(self, U: float, P: Vector, Index1: int, Index2: int) -> tuple[int, int]:
def movePoint(self, U: float, P: Vector, Index1: int, Index2: int, /) -> tuple[int, int]:
"""
movePoint(U, P, Index1, Index2)
@@ -270,14 +275,14 @@ class BSplineCurve2d(Curve2d):
"""
...
def setOrigin(self, Index: int) -> None:
def setOrigin(self, Index: int, /) -> None:
"""
Assigns the knot of index Index in the knots table as the origin of this periodic B-Spline curve.
As a consequence, the knots and poles tables are modified.
"""
...
def getMultiplicity(self, index: int) -> int:
def getMultiplicity(self, index: int, /) -> int:
"""
Returns the multiplicity of the knot of index from the knots table of this B-Spline curve.
"""
@@ -363,7 +368,7 @@ class BSplineCurve2d(Curve2d):
"""
...
def buildFromPoles(self, poles: list[Vector]) -> None:
def buildFromPoles(self, poles: list[Vector], /) -> None:
"""
Builds a B-Spline by a list of poles.
"""
@@ -424,20 +429,20 @@ class BSplineCurve2d(Curve2d):
"""
...
def toBiArcs(self, tolerance: float) -> list:
def toBiArcs(self, tolerance: float, /) -> list:
"""
toBiArcs(tolerance) -> list.
Build a list of arcs and lines to approximate the B-spline.
"""
...
def join(self, other: "BSplineCurve2d") -> "BSplineCurve2d":
def join(self, other: "BSplineCurve2d", /) -> "BSplineCurve2d":
"""
Build a new spline by joining this and a second spline.
"""
...
def makeC1Continuous(self, tol: float = 1e-6, ang_tol: float = 1e-7) -> "BSplineCurve2d":
def makeC1Continuous(self, tol: float = 1e-6, ang_tol: float = 1e-7, /) -> "BSplineCurve2d":
"""
makeC1Continuous(tol = 1e-6, ang_tol = 1e-7)

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Part.Curve2d import Curve2d
from typing import Final, List
@@ -54,7 +58,7 @@ class BezierCurve2d(Curve2d):
"""
...
def increase(self, Degree: int) -> None:
def increase(self, Degree: int, /) -> None:
"""
increase(Int=Degree)
Increases the degree of this Bezier curve to Degree.
@@ -62,19 +66,19 @@ class BezierCurve2d(Curve2d):
"""
...
def insertPoleAfter(self, index: int) -> None:
def insertPoleAfter(self, index: int, /) -> None:
"""
Inserts after the pole of index.
"""
...
def insertPoleBefore(self, index: int) -> None:
def insertPoleBefore(self, index: int, /) -> None:
"""
Inserts before the pole of index.
"""
...
def removePole(self, index: int) -> None:
def removePole(self, index: int, /) -> None:
"""
Removes the pole of index Index from the table of poles of this Bezier curve.
If this Bezier curve is rational, it can become non-rational.
@@ -87,13 +91,13 @@ class BezierCurve2d(Curve2d):
"""
...
def setPole(self, index: int, pole: object) -> None:
def setPole(self, index: int, pole: object, /) -> None:
"""
Set a pole of the Bezier curve.
"""
...
def getPole(self, index: int) -> object:
def getPole(self, index: int, /) -> object:
"""
Get a pole of the Bezier curve.
"""
@@ -105,19 +109,19 @@ class BezierCurve2d(Curve2d):
"""
...
def setPoles(self, poles: List[object]) -> None:
def setPoles(self, poles: List[object], /) -> None:
"""
Set the poles of the Bezier curve.
"""
...
def setWeight(self, index: int, weight: float) -> None:
def setWeight(self, index: int, weight: float, /) -> None:
"""
Set a weight of the Bezier curve.
"""
...
def getWeight(self, index: int) -> float:
def getWeight(self, index: int, /) -> float:
"""
Get a weight of the Bezier curve.
"""
@@ -130,7 +134,7 @@ class BezierCurve2d(Curve2d):
...
@constmethod
def getResolution(self, Tolerance3D: float) -> float:
def getResolution(self, Tolerance3D: float, /) -> float:
"""
Computes for this Bezier curve the parametric tolerance (UTolerance)
for a given 3D tolerance (Tolerance3D).

View File

@@ -1,5 +1,9 @@
from Metadata import export, constmethod
from typing import Final, overload, Tuple
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Metadata import export
from typing import overload, Tuple
from Part.Geom2d import Conic2d
@export(

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from typing import Final
from Part.Geom2d import Curve2d

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.Vector import Vector
from Part.App.Geom2d.Geometry2d import Geometry2d
@@ -103,13 +107,13 @@ class Curve2d(Geometry2d):
...
@overload
def length(self) -> float: ...
def length(self, /) -> float: ...
@overload
def length(self, uMin: float) -> float: ...
def length(self, uMin: float, /) -> float: ...
@overload
def length(self, uMin: float, uMax: float) -> float: ...
def length(self, uMin: float, uMax: float, /) -> float: ...
@overload
def length(self, uMin: float, uMax: float, Tol: float) -> float: ...
def length(self, uMin: float, uMax: float, Tol: float, /) -> float: ...
def length(self, *args: float) -> float:
"""
Computes the length of a curve
@@ -118,9 +122,9 @@ class Curve2d(Geometry2d):
...
@overload
def parameterAtDistance(self, abscissa: float) -> float: ...
def parameterAtDistance(self, abscissa: float, /) -> float: ...
@overload
def parameterAtDistance(self, abscissa: float, startingParameter: float) -> float: ...
def parameterAtDistance(self, abscissa: float, startingParameter: float, /) -> float: ...
def parameterAtDistance(self, *args: float) -> float:
"""
Returns the parameter on the curve of a point at
@@ -129,19 +133,19 @@ class Curve2d(Geometry2d):
"""
...
def value(self, u: float) -> Vector:
def value(self, u: float, /) -> Vector:
"""
Computes the point of parameter u on this curve
"""
...
def tangent(self, u: float) -> Vector:
def tangent(self, u: float, /) -> Vector:
"""
Computes the tangent of parameter u on this curve
"""
...
def parameter(self, point: Vector) -> float:
def parameter(self, point: Vector, /) -> float:
"""
Returns the parameter on the curve of the
nearest orthogonal projection of the point.
@@ -149,37 +153,37 @@ class Curve2d(Geometry2d):
...
@constmethod
def normal(self, pos: float) -> Vector:
def normal(self, pos: float, /) -> Vector:
"""
Vector = normal(pos) - Get the normal vector at the given parameter [First|Last] if defined.
"""
...
@constmethod
def curvature(self, pos: float) -> float:
def curvature(self, pos: float, /) -> float:
"""
Float = curvature(pos) - Get the curvature at the given parameter [First|Last] if defined.
"""
...
@constmethod
def centerOfCurvature(self, pos: float) -> Vector:
def centerOfCurvature(self, pos: float, /) -> Vector:
"""
Vector = centerOfCurvature(float pos) - Get the center of curvature at the given parameter [First|Last] if defined.
"""
...
@constmethod
def intersectCC(self, other: "Curve2d") -> List[Vector]:
def intersectCC(self, other: "Curve2d", /) -> List[Vector]:
"""
Returns all intersection points between this curve and the given curve.
"""
...
@overload
def toBSpline(self) -> BSplineCurve: ...
def toBSpline(self, /) -> BSplineCurve: ...
@overload
def toBSpline(self, First: float, Last: float) -> BSplineCurve: ...
def toBSpline(self, First: float, Last: float, /) -> BSplineCurve: ...
def toBSpline(self, *args: float) -> BSplineCurve:
"""
Converts a curve of any type (only part from First to Last)
@@ -188,7 +192,7 @@ class Curve2d(Geometry2d):
...
def approximateBSpline(
self, Tolerance: float, MaxSegments: int, MaxDegree: int, Order: str = "C2"
self, Tolerance: float, MaxSegments: int, MaxDegree: int, Order: str = "C2", /
) -> BSplineCurve:
"""
Approximates a curve of any type to a B-Spline curve

View File

@@ -1,5 +1,9 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from typing import Final, overload
from Base.Metadata import export, constmethod
from Base.Metadata import export
from Part.Conic2d import Conic2d
@export(

View File

@@ -1,6 +1,9 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.PyObjectBase import PyObjectBase
from typing import overload
@export(
Twin="Geometry2d",

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Part.Conic2d import Conic2d
from typing import Final, overload

View File

@@ -1,6 +1,9 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Part.Geom2d.Curve2d import Curve2d
from typing import overload
@export(
PythonName="Part.Geom2d.Line2d",

View File

@@ -1,5 +1,9 @@
from Base.Metadata import export, constmethod
from typing import Final, overload
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from typing import overload
from Part.Geom2d import Curve2d
@export(
@@ -12,7 +16,7 @@ from Part.Geom2d import Curve2d
)
class Line2dSegment(Curve2d):
"""
Describes a line segment in 2D space.
Describes a line segment in 2D space.
To create a line there are several ways:
Part.Geom2d.Line2dSegment()

View File

@@ -1,5 +1,8 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Metadata import export
from typing import Final
from Part.Geom2d import Curve2d
@export(

View File

@@ -1,4 +1,8 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Part.App.Geom2d.Conic2d import Conic2d
from typing import Final

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.PyObjectBase import PyObjectBase
from typing import List

View File

@@ -1,6 +1,10 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.PyObjectBase import PyObjectBase
from typing import Final, overload
from typing import Final
@export(
PythonName="Part.GeomPlate.CurveConstraintPy",

View File

@@ -1,6 +1,10 @@
from Base.Metadata import export, constmethod
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Base.PyObjectBase import PyObjectBase
from typing import Final, overload
from typing import Tuple
@export(
PythonName="Part.GeomPlate.PointConstraintPy",
@@ -18,7 +22,7 @@ class PointConstraint(PyObjectBase):
Licence: LGPL
"""
def setOrder(self, order: str) -> None:
def setOrder(self, order: str, /) -> None:
"""
Allows you to set the order of continuity required for
the constraints: G0, G1, and G2, controlled
@@ -32,7 +36,7 @@ class PointConstraint(PyObjectBase):
"""
...
def G0Criterion(self, U: float) -> float:
def G0Criterion(self, U: float, /) -> float:
"""
Returns the G0 criterion at the parametric point U on
the curve. This is the greatest distance allowed between
@@ -40,7 +44,7 @@ class PointConstraint(PyObjectBase):
"""
...
def G1Criterion(self, U: float) -> float:
def G1Criterion(self, U: float, /) -> float:
"""
Returns the G1 criterion at the parametric point U on
the curve. This is the greatest angle allowed between
@@ -49,7 +53,7 @@ class PointConstraint(PyObjectBase):
"""
...
def G2Criterion(self, U: float) -> float:
def G2Criterion(self, U: float, /) -> float:
"""
Returns the G2 criterion at the parametric point U on
the curve. This is the greatest difference in curvature
@@ -58,7 +62,7 @@ class PointConstraint(PyObjectBase):
"""
...
def setG0Criterion(self, value: float) -> None:
def setG0Criterion(self, value: float, /) -> None:
"""
Allows you to set the G0 criterion. This is the law
defining the greatest distance allowed between the
@@ -68,7 +72,7 @@ class PointConstraint(PyObjectBase):
"""
...
def setG1Criterion(self, value: float) -> None:
def setG1Criterion(self, value: float, /) -> None:
"""
Allows you to set the G1 criterion. This is the law
defining the greatest angle allowed between the
@@ -78,7 +82,7 @@ class PointConstraint(PyObjectBase):
"""
...
def setG2Criterion(self, value: float) -> None:
def setG2Criterion(self, value: float, /) -> None:
"""
Allows you to set the G2 criterion. This is the law
defining the greatest difference in curvature allowed between the
@@ -94,13 +98,13 @@ class PointConstraint(PyObjectBase):
"""
...
def setPnt2dOnSurf(self, p: "gp_Pnt2d") -> None:
def setPnt2dOnSurf(self, x: float, y: float, /) -> None:
"""
Allows you to set a 2D point on the surface. It takes a gp_Pnt2d as an argument, representing the 2D point to be associated with the surface.
"""
...
def pnt2dOnSurf(self) -> "gp_Pnt2d":
def pnt2dOnSurf(self) -> Tuple[float, float]:
"""
Returns the 2D point on the surface. It returns a gp_Pnt2d representing the associated 2D point.
"""

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.Persistence import Persistence
from App.Extension import Extension
@@ -21,31 +25,31 @@ class Geometry(Persistence):
Tag: Final[str]
"""Gives the tag of the geometry as string."""
def mirror(self, geometry: "Geometry") -> None:
def mirror(self, geometry: "Geometry", /) -> None:
"""
Performs the symmetrical transformation of this geometric object
"""
...
def rotate(self, angle: float, axis: Vector) -> None:
def rotate(self, angle: float, axis: Vector, /) -> None:
"""
Rotates this geometric object at angle Ang (in radians) about axis
"""
...
def scale(self, center: Vector, factor: float) -> None:
def scale(self, center: Vector, factor: float, /) -> None:
"""
Applies a scaling transformation on this geometric object with a center and scaling factor
"""
...
def transform(self, transformation: Matrix) -> None:
def transform(self, transformation: Matrix, /) -> None:
"""
Applies a transformation to this geometric object
"""
...
def translate(self, vector: Vector) -> None:
def translate(self, vector: Vector, /) -> None:
"""
Translates this geometric object
"""
@@ -66,7 +70,7 @@ class Geometry(Persistence):
...
@constmethod
def isSame(self, geom: "Geometry", tol: float, angulartol: float) -> bool:
def isSame(self, geom: "Geometry", tol: float, angulartol: float, /) -> bool:
"""
isSame(geom, tol, angulartol) -> boolean
@@ -75,46 +79,46 @@ class Geometry(Persistence):
...
@constmethod
def hasExtensionOfType(self, type_name: str) -> bool:
def hasExtensionOfType(self, type_name: str, /) -> bool:
"""
Returns a boolean indicating whether a geometry extension of the type indicated as a string exists.
"""
...
@constmethod
def hasExtensionOfName(self, name: str) -> bool:
def hasExtensionOfName(self, name: str, /) -> bool:
"""
Returns a boolean indicating whether a geometry extension with the name indicated as a string exists.
"""
...
@constmethod
def getExtensionOfType(self, type_name: str) -> Optional[Extension]:
def getExtensionOfType(self, type_name: str, /) -> Optional[Extension]:
"""
Gets the first geometry extension of the type indicated by the string.
"""
...
@constmethod
def getExtensionOfName(self, name: str) -> Optional[Extension]:
def getExtensionOfName(self, name: str, /) -> Optional[Extension]:
"""
Gets the first geometry extension of the name indicated by the string.
"""
...
def setExtension(self, extension: Extension) -> None:
def setExtension(self, extension: Extension, /) -> None:
"""
Sets a geometry extension of the indicated type.
"""
...
def deleteExtensionOfType(self, type_name: str) -> None:
def deleteExtensionOfType(self, type_name: str, /) -> None:
"""
Deletes all extensions of the indicated type.
"""
...
def deleteExtensionOfName(self, name: str) -> None:
def deleteExtensionOfName(self, name: str, /) -> None:
"""
Deletes all extensions of the indicated name.
"""

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from GeometryExtension import GeometryExtension

View File

@@ -1,7 +1,13 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.Vector import Vector
from Base.Rotation import Rotation as RotationPy
from Geometry import Geometry
from Part.App.BSplineCurve import BSplineCurve
from Part.App.TrimmedCurve import TrimmedCurve
from typing import Final, overload, List, Union, Optional, Tuple
@export(
@@ -98,7 +104,7 @@ class GeometryCurve(Geometry):
Minimum: int = 2,
*,
First: Optional[float] = None,
Last: Optional[float] = None
Last: Optional[float] = None,
) -> List[Vector]:
"""
Discretizes the curve and returns a list of points with an angular deflection of 'a' and a curvature deflection of 'c'.
@@ -146,35 +152,35 @@ class GeometryCurve(Geometry):
...
@constmethod
def getD0(self, parameter: float) -> Vector:
def getD0(self, parameter: float, /) -> Vector:
"""
Returns the point of given parameter
"""
...
@constmethod
def getD1(self, parameter: float) -> Vector:
def getD1(self, parameter: float, /) -> Vector:
"""
Returns the point and first derivative of given parameter
"""
...
@constmethod
def getD2(self, parameter: float) -> Vector:
def getD2(self, parameter: float, /) -> Vector:
"""
Returns the point, first and second derivatives
"""
...
@constmethod
def getD3(self, parameter: float) -> Vector:
def getD3(self, parameter: float, /) -> Vector:
"""
Returns the point, first, second and third derivatives
"""
...
@constmethod
def getDN(self, n: int, parameter: float) -> Vector:
def getDN(self, n: int, parameter: float, /) -> Vector:
"""
Returns the n-th derivative
"""
@@ -186,6 +192,7 @@ class GeometryCurve(Geometry):
uMin: Optional[float] = None,
uMax: Optional[float] = None,
Tol: Optional[float] = None,
/,
) -> float:
"""
Computes the length of a curve
@@ -198,6 +205,7 @@ class GeometryCurve(Geometry):
self,
abscissa: Optional[float] = None,
startingParameter: Optional[float] = None,
/,
) -> float:
"""
Returns the parameter on the curve of a point at the given distance from a starting parameter.
@@ -206,49 +214,49 @@ class GeometryCurve(Geometry):
...
@constmethod
def value(self, u: float) -> Vector:
def value(self, u: float, /) -> Vector:
"""
Computes the point of parameter u on this curve
"""
...
@constmethod
def tangent(self, u: float) -> Vector:
def tangent(self, u: float, /) -> Vector:
"""
Computes the tangent of parameter u on this curve
"""
...
@constmethod
def makeRuledSurface(self, otherCurve: "GeometryCurve") -> object:
def makeRuledSurface(self, otherCurve: "GeometryCurve", /) -> object:
"""
Make a ruled surface of this and the given curves
"""
...
@constmethod
def intersect2d(self, otherCurve: "GeometryCurve") -> List[Vector]:
def intersect2d(self, otherCurve: "GeometryCurve", /) -> List[Vector]:
"""
Get intersection points with another curve lying on a plane.
"""
...
@constmethod
def continuityWith(self, otherCurve: "GeometryCurve") -> str:
def continuityWith(self, otherCurve: "GeometryCurve", /) -> str:
"""
Computes the continuity of two curves
"""
...
@constmethod
def parameter(self, point: Vector) -> float:
def parameter(self, point: Vector, /) -> float:
"""
Returns the parameter on the curve of the nearest orthogonal projection of the point.
"""
...
@constmethod
def normal(self, pos: float) -> Vector:
def normal(self, pos: float, /) -> Vector:
"""
Vector = normal(pos) - Get the normal vector at the given parameter [First|Last] if defined
"""
@@ -318,21 +326,21 @@ class GeometryCurve(Geometry):
...
@constmethod
def curvature(self, pos: float) -> float:
def curvature(self, pos: float, /) -> float:
"""
Float = curvature(pos) - Get the curvature at the given parameter [First|Last] if defined
"""
...
@constmethod
def centerOfCurvature(self, pos: float) -> Vector:
def centerOfCurvature(self, pos: float, /) -> Vector:
"""
Vector = centerOfCurvature(float pos) - Get the center of curvature at the given parameter [First|Last] if defined
"""
...
@constmethod
def intersect(self, curve_or_surface: object, precision: float) -> object:
def intersect(self, curve_or_surface: object, precision: float, /) -> object:
"""
Returns all intersection points and curve segments between the curve and the curve/surface.
@@ -341,21 +349,21 @@ class GeometryCurve(Geometry):
...
@constmethod
def intersectCS(self, surface: object) -> object:
def intersectCS(self, surface: object, /) -> object:
"""
Returns all intersection points and curve segments between the curve and the surface.
"""
...
@constmethod
def intersectCC(self, otherCurve: "GeometryCurve") -> List[Vector]:
def intersectCC(self, otherCurve: "GeometryCurve", /) -> List[Vector]:
"""
Returns all intersection points between this curve and the given curve.
"""
...
@constmethod
def toBSpline(self, points: Tuple[float, float]) -> "BSplineCurve":
def toBSpline(self, points: Tuple[float, float], /) -> BSplineCurve:
"""
Converts a curve of any type (only part from First to Last) to BSpline curve.
toBSpline((first: float, last: float)) -> BSplineCurve
@@ -363,7 +371,7 @@ class GeometryCurve(Geometry):
...
@constmethod
def toNurbs(self, points: Tuple[float, float]) -> "NurbsCurve":
def toNurbs(self, points: Tuple[float, float], /) -> BSplineCurve:
"""
Converts a curve of any type (only part from First to Last) to NURBS curve.
toNurbs((first: float, last: float)) -> NurbsCurve
@@ -371,7 +379,7 @@ class GeometryCurve(Geometry):
...
@constmethod
def trim(self, points: Tuple[float, float]) -> "TrimmedCurve":
def trim(self, points: Tuple[float, float], /) -> TrimmedCurve:
"""
Returns a trimmed curve defined in the given parameter range.
trim((first: float, last: float)) -> TrimmedCurve
@@ -380,8 +388,8 @@ class GeometryCurve(Geometry):
@constmethod
def approximateBSpline(
self, Tolerance: float, MaxSegments: int, MaxDegree: int, Order: str = "C2"
) -> "BSplineCurve":
self, Tolerance: float, MaxSegments: int, MaxDegree: int, Order: str = "C2", /
) -> BSplineCurve:
"""
Approximates a curve of any type to a B-Spline curve.
approximateBSpline(Tolerance, MaxSegments, MaxDegree, [Order='C2']) -> BSplineCurve
@@ -395,7 +403,7 @@ class GeometryCurve(Geometry):
...
@constmethod
def reversedParameter(self, U: float) -> float:
def reversedParameter(self, U: float, /) -> float:
"""
Returns the parameter on the reversed curve for the point of parameter U on this curve.
"""

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from GeometryExtension import GeometryExtension

View File

@@ -1,6 +1,9 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export, constmethod
from Base.PyObjectBase import PyObjectBase
from typing import Final
@export(
Include="Mod/Part/App/GeometryExtension.h",

View File

@@ -1,6 +1,9 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from Part.GeometryExtension import GeometryExtension
from typing import Final
@export(
Father="GeometryExtensionPy",

View File

@@ -1,3 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import annotations
from Base.Metadata import export
from GeometryExtension import GeometryExtension

Some files were not shown because too many files have changed in this diff Show More