Part: Clean up XML bindings.

This commit is contained in:
tritao
2025-02-12 01:35:09 +00:00
committed by Chris Hennes
parent 6fe40b1fbb
commit cc21acb325
26 changed files with 829 additions and 837 deletions

View File

@@ -13,7 +13,7 @@
Constructor="true">
<Documentation>
<Author Licence="LGPL" Name="Abdullah Tahiri" EMail="abdullah.tahiri.yo[at]gmail.com" />
<UserDocu>Describes a portion of an parabola</UserDocu>
<UserDocu>Describes a portion of a parabola</UserDocu>
</Documentation>
<Attribute Name="Focal" ReadOnly="false">
<Documentation>

View File

@@ -15,14 +15,18 @@
</Documentation>
<Methode Name="positionBySupport">
<Documentation>
<UserDocu>positionBySupport(): Reposition object based on AttachmentSupport, MapMode and MapPathParameter properties.
<UserDocu>positionBySupport() -> bool
Reposition object based on AttachmentSupport, MapMode and MapPathParameter properties.
Returns True if attachment calculation was successful, false if object is not attached and Placement wasn't updated,
and raises an exception if attachment calculation fails.</UserDocu>
</Documentation>
</Methode>
<Methode Name = "changeAttacherType">
<Documentation>
<UserDocu>changeAttacherType(typename): Changes Attacher class of this object.
<UserDocu>changeAttacherType(typename) -> None
Changes Attacher class of this object.
typename: string. The following are accepted so far:
'Attacher::AttachEngine3D'
'Attacher::AttachEnginePlane'

View File

@@ -19,44 +19,44 @@
<Methode Name="setConstrParam" Keyword="true">
<Documentation>
<UserDocu>
setConstrParam(Tol2d=0.00001, Tol3d=0.0001, TolAng=0.01, TolCurv=0.1)
Sets the values of Tolerances used to control the constraint.
setConstrParam(Tol2d=0.00001, Tol3d=0.0001, TolAng=0.01, TolCurv=0.1)
Sets the values of Tolerances used to control the constraint.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setResolParam" Keyword="true">
<Documentation>
<UserDocu>
setResolParam(Degree=3, NbPtsOnCur=15, NbIter=2, Anisotropy=False)
Sets the parameters used for resolution.
setResolParam(Degree=3, NbPtsOnCur=15, NbIter=2, Anisotropy=False)
Sets the parameters used for resolution.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setApproxParam" Keyword="true">
<Documentation>
<UserDocu>
setApproxParam(MaxDeg=8, MaxSegments=9)
Sets the parameters used to approximate the filling the surface
setApproxParam(MaxDeg=8, MaxSegments=9)
Sets the parameters used to approximate the filling the surface
</UserDocu>
</Documentation>
</Methode>
<Methode Name="loadInitSurface">
<Documentation>
<UserDocu>
loadInitSurface(face)
Loads the initial surface.
loadInitSurface(face)
Loads the initial surface.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="add" Keyword="true">
<Documentation>
<UserDocu>
add(Edge, Order, IsBound=True)
add(Edge, Support, Order, IsBound=True)
add(Support, Order)
add(Point)
add(U, V, Support, Order)
Adds a new constraint.
add(Edge, Order, IsBound=True)
add(Edge, Support, Order, IsBound=True)
add(Support, Order)
add(Point)
add(U, V, Support, Order)
Adds a new constraint.
</UserDocu>
</Documentation>
</Methode>
@@ -73,32 +73,32 @@
<Methode Name="G0Error">
<Documentation>
<UserDocu>
G0Error([int])
Returns the maximum distance between the result and the constraints.
G0Error([int])
Returns the maximum distance between the result and the constraints.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="G1Error">
<Documentation>
<UserDocu>
G1Error([int])
Returns the maximum angle between the result and the constraints.
G1Error([int])
Returns the maximum angle between the result and the constraints.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="G2Error">
<Documentation>
<UserDocu>
G2Error([int])
Returns the greatest difference in curvature between the result and the constraints.
G2Error([int])
Returns the greatest difference in curvature between the result and the constraints.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="shape">
<Documentation>
<UserDocu>
shape()
Returns the resulting shape.
shape()
Returns the resulting shape.
</UserDocu>
</Documentation>
</Methode>

View File

@@ -16,155 +16,155 @@
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer[at]users.sourceforge.net"/>
<UserDocu>Low level API to create a PipeShell using OCC API
Ref: https://dev.opencascade.org/doc/refman/html/class_b_rep_offset_a_p_i___make_pipe_shell.html
Ref: https://dev.opencascade.org/doc/refman/html/class_b_rep_offset_a_p_i___make_pipe_shell.html
</UserDocu>
</Documentation>
<Methode Name="setFrenetMode">
<Documentation>
<UserDocu>setFrenetMode(True|False)
Sets a Frenet or a CorrectedFrenet trihedron to perform the sweeping.
True = Frenet
False = CorrectedFrenet</UserDocu>
Sets a Frenet or a CorrectedFrenet trihedron to perform the sweeping.
True = Frenet
False = CorrectedFrenet</UserDocu>
</Documentation>
</Methode>
<Methode Name="setTrihedronMode">
<Documentation>
<UserDocu>setTrihedronMode(point,direction)
Sets a fixed trihedron to perform the sweeping.
All sections will be parallel.</UserDocu>
Sets a fixed trihedron to perform the sweeping.
All sections will be parallel.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setBiNormalMode">
<Documentation>
<UserDocu>setBiNormalMode(direction)
Sets a fixed BiNormal direction to perform the sweeping.
Angular relations between the section(s) and the BiNormal direction will be constant.</UserDocu>
Sets a fixed BiNormal direction to perform the sweeping.
Angular relations between the section(s) and the BiNormal direction will be constant.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setSpineSupport">
<Documentation>
<UserDocu>setSpineSupport(shape)
Sets support to the spine to define the BiNormal of the trihedron, like the normal to the surfaces.
Warning: To be effective, Each edge of the spine must have an representation on one face of SpineSupport.</UserDocu>
Sets support to the spine to define the BiNormal of the trihedron, like the normal to the surfaces.
Warning: To be effective, Each edge of the spine must have an representation on one face of SpineSupport.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setAuxiliarySpine">
<Documentation>
<UserDocu>setAuxiliarySpine(wire, CurvilinearEquivalence, TypeOfContact)
Sets an auxiliary spine to define the Normal.
Sets an auxiliary spine to define the Normal.
CurvilinearEquivalence = bool
For each Point of the Spine P, an Point Q is evalued on AuxiliarySpine.
If CurvilinearEquivalence=True Q split AuxiliarySpine with the same length ratio than P split Spine.
CurvilinearEquivalence = bool
For each Point of the Spine P, an Point Q is evalued on AuxiliarySpine.
If CurvilinearEquivalence=True Q split AuxiliarySpine with the same length ratio than P split Spine.
* OCC &gt;= 6.7
TypeOfContact = long
0: No contact
1: Contact
2: Contact On Border (The auxiliary spine becomes a boundary of the swept surface)</UserDocu>
* OCC &gt;= 6.7
TypeOfContact = long
0: No contact
1: Contact
2: Contact On Border (The auxiliary spine becomes a boundary of the swept surface)</UserDocu>
</Documentation>
</Methode>
<Methode Name="add" Keyword="true">
<Documentation>
<UserDocu>add(shape Profile, bool WithContact=False, bool WithCorrection=False)
add(shape Profile, vertex Location, bool WithContact=False, bool WithCorrection=False)
Adds the section Profile to this framework.
First and last sections may be punctual, so the shape Profile may be both wire and vertex.
If WithContact is true, the section is translated to be in contact with the spine.
If WithCorrection is true, the section is rotated to be orthogonal to the spine tangent in the correspondent point.</UserDocu>
add(shape Profile, vertex Location, bool WithContact=False, bool WithCorrection=False)
Adds the section Profile to this framework.
First and last sections may be punctual, so the shape Profile may be both wire and vertex.
If WithContact is true, the section is translated to be in contact with the spine.
If WithCorrection is true, the section is rotated to be orthogonal to the spine tangent in the correspondent point.</UserDocu>
</Documentation>
</Methode>
<Methode Name="remove">
<Documentation>
<UserDocu>remove(shape Profile)
Removes the section Profile from this framework.</UserDocu>
Removes the section Profile from this framework.</UserDocu>
</Documentation>
</Methode>
<Methode Name="isReady">
<Documentation>
<UserDocu>isReady()
Returns true if this tool object is ready to build the shape.</UserDocu>
Returns true if this tool object is ready to build the shape.</UserDocu>
</Documentation>
</Methode>
<Methode Name="getStatus">
<Documentation>
<UserDocu>getStatus()
Get a status, when Simulate or Build failed.</UserDocu>
Get a status, when Simulate or Build failed.</UserDocu>
</Documentation>
</Methode>
<Methode Name="makeSolid">
<Documentation>
<UserDocu>makeSolid()
Transforms the sweeping Shell in Solid. If a propfile is not closed returns False.</UserDocu>
Transforms the sweeping Shell in Solid. If a propfile is not closed returns False.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setTolerance">
<Documentation>
<UserDocu>setTolerance( tol3d, boundTol, tolAngular)
Tol3d = 3D tolerance
BoundTol = boundary tolerance
TolAngular = angular tolerance</UserDocu>
Tol3d = 3D tolerance
BoundTol = boundary tolerance
TolAngular = angular tolerance</UserDocu>
</Documentation>
</Methode>
<Methode Name="setTransitionMode">
<Documentation>
<UserDocu>0: BRepBuilderAPI_Transformed
1: BRepBuilderAPI_RightCorner
2: BRepBuilderAPI_RoundCorner</UserDocu>
1: BRepBuilderAPI_RightCorner
2: BRepBuilderAPI_RoundCorner</UserDocu>
</Documentation>
</Methode>
<Methode Name="firstShape">
<Documentation>
<UserDocu>firstShape()
Returns the Shape of the bottom of the sweep.</UserDocu>
Returns the Shape of the bottom of the sweep.</UserDocu>
</Documentation>
</Methode>
<Methode Name="lastShape">
<Documentation>
<UserDocu>lastShape()
Returns the Shape of the top of the sweep.</UserDocu>
Returns the Shape of the top of the sweep.</UserDocu>
</Documentation>
</Methode>
<Methode Name="build">
<Documentation>
<UserDocu>build()
Builds the resulting shape.</UserDocu>
Builds the resulting shape.</UserDocu>
</Documentation>
</Methode>
<Methode Name="shape">
<Documentation>
<UserDocu>shape()
Returns the resulting shape.</UserDocu>
Returns the resulting shape.</UserDocu>
</Documentation>
</Methode>
<Methode Name="generated">
<Documentation>
<UserDocu>generated(shape S)
Returns a list of new shapes generated from the shape S by the shell-generating algorithm.</UserDocu>
Returns a list of new shapes generated from the shape S by the shell-generating algorithm.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setMaxDegree">
<Documentation>
<UserDocu>setMaxDegree(int degree)
Define the maximum V degree of resulting surface.</UserDocu>
Define the maximum V degree of resulting surface.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setMaxSegments">
<Documentation>
<UserDocu>setMaxSegments(int num)
Define the maximum number of spans in V-direction on resulting surface.</UserDocu>
Define the maximum number of spans in V-direction on resulting surface.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setForceApproxC1">
<Documentation>
<UserDocu>setForceApproxC1(bool)
Set the flag that indicates attempt to approximate a C1-continuous surface if a swept surface proved to be C0.</UserDocu>
Set the flag that indicates attempt to approximate a C1-continuous surface if a swept surface proved to be C0.</UserDocu>
</Documentation>
</Methode>
<Methode Name="simulate">
<Documentation>
<UserDocu>simulate(int nbsec)
Simulates the resulting shape by calculating the given number of cross-sections.</UserDocu>
Simulates the resulting shape by calculating the given number of cross-sections.</UserDocu>
</Documentation>
</Methode>
</PythonExport>

View File

@@ -68,7 +68,7 @@ B-Spline curve curve. This value is 25.</UserDocu>
corresponding to the first or last parameter
of this B-Spline curve.</UserDocu>
</Documentation>
<Parameter Name="FirstUKnotIndex" Type="Object"/>
<Parameter Name="FirstUKnotIndex" Type="Long"/>
</Attribute>
<Attribute Name="LastUKnotIndex" ReadOnly="true">
<Documentation>
@@ -76,7 +76,7 @@ of this B-Spline curve.</UserDocu>
corresponding to the first or last parameter
of this B-Spline curve.</UserDocu>
</Documentation>
<Parameter Name="LastUKnotIndex" Type="Object"/>
<Parameter Name="LastUKnotIndex" Type="Long"/>
</Attribute>
<Attribute Name="KnotSequence" ReadOnly="true">
<Documentation>
@@ -86,10 +86,9 @@ of this B-Spline curve.</UserDocu>
</Attribute>
<Methode Name="isRational" Const="true">
<Documentation>
<UserDocu>
Returns true if this B-Spline curve is rational.
A B-Spline curve is rational if, at the time of construction,
the weight table has been initialized.
<UserDocu>Returns true if this B-Spline curve is rational.
A B-Spline curve is rational if, at the time of construction,
the weight table has been initialized.
</UserDocu>
</Documentation>
</Methode>
@@ -100,9 +99,8 @@ of this B-Spline curve.</UserDocu>
</Methode>
<Methode Name="isClosed" Const="true">
<Documentation>
<UserDocu>
Returns true if the distance between the start point and end point of
this B-Spline curve is less than or equal to gp::Resolution().
<UserDocu>Returns true if the distance between the start point and end point of
this B-Spline curve is less than or equal to gp::Resolution().
</UserDocu>
</Documentation>
</Methode>
@@ -117,80 +115,79 @@ done if Degree is less than or equal to the current degree.</UserDocu>
</Methode>
<Methode Name="increaseMultiplicity">
<Documentation>
<UserDocu>
increaseMultiplicity(int index, int mult)
increaseMultiplicity(int start, int end, int mult)
Increases multiplicity of knots up to mult.
<UserDocu>increaseMultiplicity(int index, int mult)
increaseMultiplicity(int start, int end, int mult)
Increases multiplicity of knots up to mult.
index: the index of a knot to modify (1-based)
start, end: index range of knots to modify.
If mult is lower or equal to the current multiplicity nothing is done. If mult is higher than the degree the degree is used.
index: the index of a knot to modify (1-based)
start, end: index range of knots to modify.
If mult is lower or equal to the current multiplicity nothing is done.
If mult is higher than the degree the degree is used.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="incrementMultiplicity">
<Documentation>
<UserDocu>
incrementMultiplicity(int start, int end, int mult)
Raises multiplicity of knots by mult.
<UserDocu>incrementMultiplicity(int start, int end, int mult)
start, end: index range of knots to modify.
Raises multiplicity of knots by mult.
start, end: index range of knots to modify.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="insertKnot">
<Documentation>
<UserDocu>
insertKnot(u, mult = 1, tol = 0.0)
Inserts a knot value in the sequence of knots. If u is an existing knot the
multiplicity is increased by mult. </UserDocu>
<UserDocu>insertKnot(u, mult = 1, tol = 0.0)
Inserts a knot value in the sequence of knots. If u is an existing knot the
multiplicity is increased by mult. </UserDocu>
</Documentation>
</Methode>
<Methode Name="insertKnots">
<Documentation>
<UserDocu>
insertKnots(list_of_floats, list_of_ints, tol = 0.0, bool_add = True)
Inserts a set of knots values in the sequence of knots.
<UserDocu>insertKnots(list_of_floats, list_of_ints, tol = 0.0, bool_add = True)
For each u = list_of_floats[i], mult = list_of_ints[i]
Inserts a set of knots values in the sequence of knots.
If u is an existing knot the multiplicity is increased by mult if bool_add is
True, otherwise increased to mult.
For each u = list_of_floats[i], mult = list_of_ints[i]
If u is not on the parameter range nothing is done.
If u is an existing knot the multiplicity is increased by mult if bool_add is
True, otherwise increased to mult.
If the multiplicity is negative or null nothing is done. The new multiplicity
is limited to the degree.
If u is not on the parameter range nothing is done.
The tolerance criterion for knots equality is the max of Epsilon(U) and ParametricTolerance.
If the multiplicity is negative or null nothing is done. The new multiplicity
is limited to the degree.
The tolerance criterion for knots equality is the max of Epsilon(U) and ParametricTolerance.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="removeKnot">
<Documentation>
<UserDocu>
removeKnot(Index, M, tol)
<UserDocu>removeKnot(Index, M, tol)
Reduces the multiplicity of the knot of index Index to M.
If M is equal to 0, the knot is removed.
With a modification of this type, the array of poles is also modified.
Two different algorithms are systematically used to compute the new
poles of the curve. If, for each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is less than Tolerance, this ensures that the curve
is not modified by more than Tolerance. Under these conditions, true is
returned; otherwise, false is returned.
Reduces the multiplicity of the knot of index Index to M.
If M is equal to 0, the knot is removed.
With a modification of this type, the array of poles is also modified.
Two different algorithms are systematically used to compute the new
poles of the curve. If, for each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is less than Tolerance, this ensures that the curve
is not modified by more than Tolerance. Under these conditions, true is
returned; otherwise, false is returned.
A low tolerance is used to prevent modification of the curve.
A high tolerance is used to 'smooth' the curve.
A low tolerance is used to prevent modification of the curve.
A high tolerance is used to 'smooth' the curve.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="segment">
<Documentation>
<UserDocu>
segment(u1,u2)
Modifies this B-Spline curve by segmenting it.</UserDocu>
<UserDocu>segment(u1,u2)
Modifies this B-Spline curve by segmenting it.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setKnot">
@@ -260,9 +257,9 @@ ensures that:
</Methode>
<Methode Name="movePoint">
<Documentation>
<UserDocu>
movePoint(U, P, Index1, Index2)
Moves the point of parameter U of this B-Spline curve to P.
<UserDocu>movePoint(U, P, Index1, Index2)
Moves the point of parameter U of this B-Spline curve to P.
Index1 and Index2 are the indexes in the table of poles of this B-Spline curve
of the first and last poles designated to be moved.
@@ -303,35 +300,35 @@ from the knots table of this B-Spline curve.</UserDocu>
</Methode>
<Methode Name="approximate" Keyword="true">
<Documentation>
<UserDocu>
Replaces this B-Spline curve by approximating a set of points.
The function accepts keywords as arguments.
<UserDocu>Replaces this B-Spline curve by approximating a set of points.
approximate(Points = list_of_points)
The function accepts keywords as arguments.
Optional arguments :
approximate(Points = list_of_points)
DegMin = integer (3) : Minimum degree of the curve.
DegMax = integer (8) : Maximum degree of the curve.
Tolerance = float (1e-3) : approximating tolerance.
Continuity = string ('C2') : Desired continuity of the curve.
Possible values : 'C0','G1','C1','G2','C2','C3','CN'
Optional arguments :
LengthWeight = float, CurvatureWeight = float, TorsionWeight = float
If one of these arguments is not null, the functions approximates the
points using variational smoothing algorithm, which tries to minimize
additional criterium:
LengthWeight*CurveLength + CurvatureWeight*Curvature + TorsionWeight*Torsion
Continuity must be C0, C1(with DegMax >= 3) or C2(with DegMax >= 5).
DegMin = integer (3) : Minimum degree of the curve.
DegMax = integer (8) : Maximum degree of the curve.
Tolerance = float (1e-3) : approximating tolerance.
Continuity = string ('C2') : Desired continuity of the curve.
Possible values : 'C0','G1','C1','G2','C2','C3','CN'
Parameters = list of floats : knot sequence of the approximated points.
This argument is only used if the weights above are all null.
LengthWeight = float, CurvatureWeight = float, TorsionWeight = float
If one of these arguments is not null, the functions approximates the
points using variational smoothing algorithm, which tries to minimize
additional criterium:
LengthWeight*CurveLength + CurvatureWeight*Curvature + TorsionWeight*Torsion
Continuity must be C0, C1(with DegMax >= 3) or C2(with DegMax >= 5).
ParamType = string ('Uniform','Centripetal' or 'ChordLength')
Parameterization type. Only used if weights and Parameters above aren't specified.
Parameters = list of floats : knot sequence of the approximated points.
This argument is only used if the weights above are all null.
Note : Continuity of the spline defaults to C2. However, it may not be applied if
it conflicts with other parameters ( especially DegMax ).
ParamType = string ('Uniform','Centripetal' or 'ChordLength')
Parameterization type. Only used if weights and Parameters above aren't specified.
Note : Continuity of the spline defaults to C2. However, it may not be applied if
it conflicts with other parameters ( especially DegMax ).
</UserDocu>
</Documentation>
</Methode>
@@ -342,135 +339,129 @@ from the knots table of this B-Spline curve.</UserDocu>
</Methode>
<Methode Name="interpolate" Keyword="true">
<Documentation>
<UserDocu>
Replaces this B-Spline curve by interpolating a set of points.
The function accepts keywords as arguments.
<UserDocu>Replaces this B-Spline curve by interpolating a set of points.
interpolate(Points = list_of_points)
The function accepts keywords as arguments.
Optional arguments :
interpolate(Points = list_of_points)
PeriodicFlag = bool (False) : Sets the curve closed or opened.
Tolerance = float (1e-6) : interpolating tolerance
Optional arguments :
Parameters : knot sequence of the interpolated points.
If not supplied, the function defaults to chord-length parameterization.
If PeriodicFlag == True, one extra parameter must be appended.
PeriodicFlag = bool (False) : Sets the curve closed or opened.
Tolerance = float (1e-6) : interpolating tolerance
EndPoint Tangent constraints :
Parameters : knot sequence of the interpolated points.
If not supplied, the function defaults to chord-length parameterization.
If PeriodicFlag == True, one extra parameter must be appended.
InitialTangent = vector, FinalTangent = vector
specify tangent vectors for starting and ending points
of the BSpline. Either none, or both must be specified.
EndPoint Tangent constraints :
Full Tangent constraints :
InitialTangent = vector, FinalTangent = vector
specify tangent vectors for starting and ending points
of the BSpline. Either none, or both must be specified.
Tangents = list_of_vectors, TangentFlags = list_of_bools
Both lists must have the same length as Points list.
Tangents specifies the tangent vector of each point in Points list.
TangentFlags (bool) activates or deactivates the corresponding tangent.
These arguments will be ignored if EndPoint Tangents (above) are also defined.
Full Tangent constraints :
Note : Continuity of the spline defaults to C2. However, if periodic, or tangents
are supplied, the continuity will drop to C1.
Tangents = list_of_vectors, TangentFlags = list_of_bools
Both lists must have the same length as Points list.
Tangents specifies the tangent vector of each point in Points list.
TangentFlags (bool) activates or deactivates the corresponding tangent.
These arguments will be ignored if EndPoint Tangents (above) are also defined.
Note : Continuity of the spline defaults to C2. However, if periodic, or tangents
are supplied, the continuity will drop to C1.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="buildFromPoles">
<Documentation>
<UserDocu>
Builds a B-Spline by a list of poles.
arguments: poles (sequence of Base.Vector), [periodic (default is False), degree (default is 3), interpolate (default is False)]
<UserDocu>Builds a B-Spline by a list of poles.
arguments: poles (sequence of Base.Vector), [periodic (default is False), degree (default is 3), interpolate (default is False)]
Examples:
from FreeCAD import Base
import Part
V = Base.Vector
poles = [V(-2, 2, 0),V(0, 2, 1),V(2, 2, 0),V(2, -2, 0),V(0, -2, 1),V(-2, -2, 0)]
Examples:
from FreeCAD import Base
import Part
V = Base.Vector
poles = [V(-2, 2, 0),V(0, 2, 1),V(2, 2, 0),V(2, -2, 0),V(0, -2, 1),V(-2, -2, 0)]
# non-periodic spline
n=Part.BSplineCurve()
n.buildFromPoles(poles)
Part.show(n.toShape())
# non-periodic spline
n=Part.BSplineCurve()
n.buildFromPoles(poles)
Part.show(n.toShape())
# periodic spline
n=Part.BSplineCurve()
n.buildFromPoles(poles, True)
Part.show(n.toShape())
# periodic spline
n=Part.BSplineCurve()
n.buildFromPoles(poles, True)
Part.show(n.toShape())
</UserDocu>
</Documentation>
</Methode>
<Methode Name="buildFromPolesMultsKnots" Keyword="true">
<Documentation>
<UserDocu>
Builds a B-Spline by a lists of Poles, Mults, Knots.
arguments: poles (sequence of Base.Vector), [mults , knots, periodic, degree, weights (sequence of float), CheckRational]
<UserDocu>Builds a B-Spline by a lists of Poles, Mults, Knots.
arguments: poles (sequence of Base.Vector), [mults , knots, periodic, degree, weights (sequence of float), CheckRational]
Examples:
from FreeCAD import Base
import Part
V=Base.Vector
poles=[V(-10,-10),V(10,-10),V(10,10),V(-10,10)]
Examples:
from FreeCAD import Base
import Part
V=Base.Vector
poles=[V(-10,-10),V(10,-10),V(10,10),V(-10,10)]
# non-periodic spline
n=Part.BSplineCurve()
n.buildFromPolesMultsKnots(poles,(3,1,3),(0,0.5,1),False,2)
Part.show(n.toShape())
# non-periodic spline
n=Part.BSplineCurve()
n.buildFromPolesMultsKnots(poles,(3,1,3),(0,0.5,1),False,2)
Part.show(n.toShape())
# periodic spline
p=Part.BSplineCurve()
p.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2)
Part.show(p.toShape())
# periodic spline
p=Part.BSplineCurve()
p.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2)
Part.show(p.toShape())
# periodic and rational spline
r=Part.BSplineCurve()
r.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2,(1,0.8,0.7,0.2))
Part.show(r.toShape())
# periodic and rational spline
r=Part.BSplineCurve()
r.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2,(1,0.8,0.7,0.2))
Part.show(r.toShape())
</UserDocu>
</Documentation>
</Methode>
<Methode Name="toBezier" Const="true">
<Documentation>
<UserDocu>
Build a list of Bezier splines.
<UserDocu>Build a list of Bezier splines.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="toBiArcs" Const="true">
<Documentation>
<UserDocu>
Build a list of arcs and lines to approximate the B-spline.
toBiArcs(tolerance) -> list.
<UserDocu>Build a list of arcs and lines to approximate the B-spline.
toBiArcs(tolerance) -> list.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="join">
<Documentation>
<UserDocu>
Build a new spline by joining this and a second spline.
<UserDocu>Build a new spline by joining this and a second spline.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="makeC1Continuous">
<Documentation>
<UserDocu>
makeC1Continuous(tol = 1e-6, ang_tol = 1e-7)
Reduces as far as possible the multiplicities of the knots of this BSpline
(keeping the geometry). It returns a new BSpline, which could still be C0.
tol is a geometrical tolerance.
The tol_ang is angular tolerance, in radians. It sets tolerable angle mismatch
of the tangents on the left and on the right to decide if the curve is G1 or
not at a given point.
<UserDocu>makeC1Continuous(tol = 1e-6, ang_tol = 1e-7)
Reduces as far as possible the multiplicities of the knots of this BSpline
(keeping the geometry). It returns a new BSpline, which could still be C0.
tol is a geometrical tolerance.
The tol_ang is angular tolerance, in radians. It sets tolerable angle mismatch
of the tangents on the left and on the right to decide if the curve is G1 or
not at a given point.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="scaleKnotsToBounds">
<Documentation>
<UserDocu>
Scales the knots list to fit the specified bounds.
The shape of the curve is not modified.
bspline_curve.scaleKnotsToBounds(u0, u1)
Default arguments are (0.0, 1.0)
Scales the knots list to fit the specified bounds.
The shape of the curve is not modified.
bspline_curve.scaleKnotsToBounds(u0, u1)
Default arguments are (0.0, 1.0)
</UserDocu>
</Documentation>
</Methode>

View File

@@ -727,14 +727,14 @@ Py::Object BSplineCurvePy::getEndPoint() const
return Py::Vector(Base::Vector3d(pnt.X(), pnt.Y(), pnt.Z()));
}
Py::Object BSplineCurvePy::getFirstUKnotIndex() const
Py::Long BSplineCurvePy::getFirstUKnotIndex() const
{
Handle(Geom_BSplineCurve) curve = Handle(Geom_BSplineCurve)::DownCast
(getGeometryPtr()->handle());
return Py::Long(curve->FirstUKnotIndex());
}
Py::Object BSplineCurvePy::getLastUKnotIndex() const
Py::Long BSplineCurvePy::getLastUKnotIndex() const
{
Handle(Geom_BSplineCurve) curve = Handle(Geom_BSplineCurve)::DownCast
(getGeometryPtr()->handle());

View File

@@ -34,9 +34,9 @@
<Attribute Name="MaxDegree" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the value of the maximum polynomial degree of any
B-Spline surface surface in either parametric directions.
This value is 25.
Returns the value of the maximum polynomial degree of any
B-Spline surface surface in either parametric directions.
This value is 25.
</UserDocu>
</Documentation>
<Parameter Name="MaxDegree" Type="Long"/>
@@ -44,7 +44,7 @@
<Attribute Name="NbUPoles" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the number of poles of this B-Spline surface in the u parametric direction.
Returns the number of poles of this B-Spline surface in the u parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="NbUPoles" Type="Long"/>
@@ -52,7 +52,7 @@
<Attribute Name="NbVPoles" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the number of poles of this B-Spline surface in the v parametric direction.
Returns the number of poles of this B-Spline surface in the v parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="NbVPoles" Type="Long"/>
@@ -60,7 +60,7 @@
<Attribute Name="NbUKnots" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the number of knots of this B-Spline surface in the u parametric direction.
Returns the number of knots of this B-Spline surface in the u parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="NbUKnots" Type="Long"/>
@@ -68,7 +68,7 @@
<Attribute Name="NbVKnots" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the number of knots of this B-Spline surface in the v parametric direction.
Returns the number of knots of this B-Spline surface in the v parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="NbVKnots" Type="Long"/>
@@ -76,16 +76,16 @@
<Attribute Name="FirstUKnotIndex" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the index in the knot array associated with the u parametric direction,
which corresponds to the first parameter of this B-Spline surface in the specified
parametric direction.
Returns the index in the knot array associated with the u parametric direction,
which corresponds to the first parameter of this B-Spline surface in the specified
parametric direction.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the first knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the first knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="FirstUKnotIndex" Type="Object"/>
@@ -93,16 +93,16 @@
<Attribute Name="LastUKnotIndex" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the index in the knot array associated with the u parametric direction,
which corresponds to the last parameter of this B-Spline surface in the specified
parametric direction.
Returns the index in the knot array associated with the u parametric direction,
which corresponds to the last parameter of this B-Spline surface in the specified
parametric direction.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the last knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the last knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="LastUKnotIndex" Type="Object"/>
@@ -110,16 +110,16 @@
<Attribute Name="FirstVKnotIndex" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the index in the knot array associated with the v parametric direction,
which corresponds to the first parameter of this B-Spline surface in the specified
parametric direction.
Returns the index in the knot array associated with the v parametric direction,
which corresponds to the first parameter of this B-Spline surface in the specified
parametric direction.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the first knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the first knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="FirstVKnotIndex" Type="Object"/>
@@ -127,16 +127,16 @@
<Attribute Name="LastVKnotIndex" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the index in the knot array associated with the v parametric direction,
which corresponds to the last parameter of this B-Spline surface in the specified
parametric direction.
Returns the index in the knot array associated with the v parametric direction,
which corresponds to the last parameter of this B-Spline surface in the specified
parametric direction.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
The isoparametric curves corresponding to these values are the boundary curves of
this surface.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the last knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
Note: The index does not correspond to the first knot of the surface in the specified
parametric direction unless the multiplicity of the last knot is equal to Degree + 1,
where Degree is the degree of this surface in the corresponding parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="LastVKnotIndex" Type="Object"/>
@@ -144,8 +144,8 @@
<Attribute Name="UKnotSequence" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the knots sequence of this B-Spline surface in
the u direction.
Returns the knots sequence of this B-Spline surface in
the u direction.
</UserDocu>
</Documentation>
<Parameter Name="UKnotSequence" Type="List"/>
@@ -153,8 +153,8 @@
<Attribute Name="VKnotSequence" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the knots sequence of this B-Spline surface in
the v direction.
Returns the knots sequence of this B-Spline surface in
the v direction.
</UserDocu>
</Documentation>
<Parameter Name="VKnotSequence" Type="List"/>
@@ -162,27 +162,27 @@
<Methode Name="bounds" Const="true">
<Documentation>
<UserDocu>
Returns the parametric bounds (U1, U2, V1, V2) of this B-Spline surface.
Returns the parametric bounds (U1, U2, V1, V2) of this B-Spline surface.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="isURational" Const="true">
<Documentation>
<UserDocu>
Returns false if the equation of this B-Spline surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each row of poles, the associated
weights are identical
Returns false if the equation of this B-Spline surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each row of poles, the associated
weights are identical
</UserDocu>
</Documentation>
</Methode>
<Methode Name="isVRational" Const="true">
<Documentation>
<UserDocu>
Returns false if the equation of this B-Spline surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each column of poles, the associated
weights are identical
Returns false if the equation of this B-Spline surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each column of poles, the associated
weights are identical
</UserDocu>
</Documentation>
</Methode>
@@ -199,32 +199,32 @@
<Methode Name="isUClosed" Const="true">
<Documentation>
<UserDocu>
Checks if this surface is closed in the u parametric direction.
Returns true if, in the table of poles the first row and the last
row are identical.
Checks if this surface is closed in the u parametric direction.
Returns true if, in the table of poles the first row and the last
row are identical.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="isVClosed" Const="true">
<Documentation>
<UserDocu>
Checks if this surface is closed in the v parametric direction.
Returns true if, in the table of poles the first column and the
last column are identical.
Checks if this surface is closed in the v parametric direction.
Returns true if, in the table of poles the first column and the
last column are identical.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="increaseDegree">
<Documentation>
<UserDocu>
increase(Int=UDegree, int=VDegree)
Increases the degrees of this B-Spline surface to UDegree and VDegree
in the u and v parametric directions respectively.
As a result, the tables of poles, weights and multiplicities are modified.
The tables of knots is not changed.
increase(Int=UDegree, int=VDegree)
Increases the degrees of this B-Spline surface to UDegree and VDegree
in the u and v parametric directions respectively.
As a result, the tables of poles, weights and multiplicities are modified.
The tables of knots is not changed.
Note: Nothing is done if the given degree is less than or equal to the
current degree in the corresponding parametric direction.
Note: Nothing is done if the given degree is less than or equal to the
current degree in the corresponding parametric direction.
</UserDocu>
</Documentation>
</Methode>
@@ -271,162 +271,162 @@
<Methode Name="removeUKnot">
<Documentation>
<UserDocu>
Reduces to M the multiplicity of the knot of index Index in the given
parametric direction. If M is 0, the knot is removed.
With a modification of this type, the table of poles is also modified.
Two different algorithms are used systematically to compute the new
poles of the surface. For each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is checked. If this distance is less than Tolerance
it ensures that the surface is not modified by more than Tolerance.
Under these conditions, the function returns true; otherwise, it returns
false.
Reduces to M the multiplicity of the knot of index Index in the given
parametric direction. If M is 0, the knot is removed.
With a modification of this type, the table of poles is also modified.
Two different algorithms are used systematically to compute the new
poles of the surface. For each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is checked. If this distance is less than Tolerance
it ensures that the surface is not modified by more than Tolerance.
Under these conditions, the function returns true; otherwise, it returns
false.
A low tolerance prevents modification of the surface. A high tolerance
'smoothes' the surface.
A low tolerance prevents modification of the surface. A high tolerance
'smoothes' the surface.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="removeVKnot">
<Documentation>
<UserDocu>
Reduces to M the multiplicity of the knot of index Index in the given
parametric direction. If M is 0, the knot is removed.
With a modification of this type, the table of poles is also modified.
Two different algorithms are used systematically to compute the new
poles of the surface. For each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is checked. If this distance is less than Tolerance
it ensures that the surface is not modified by more than Tolerance.
Under these conditions, the function returns true; otherwise, it returns
false.
Reduces to M the multiplicity of the knot of index Index in the given
parametric direction. If M is 0, the knot is removed.
With a modification of this type, the table of poles is also modified.
Two different algorithms are used systematically to compute the new
poles of the surface. For each pole, the distance between the pole
calculated using the first algorithm and the same pole calculated using
the second algorithm, is checked. If this distance is less than Tolerance
it ensures that the surface is not modified by more than Tolerance.
Under these conditions, the function returns true; otherwise, it returns
false.
A low tolerance prevents modification of the surface. A high tolerance
'smoothes' the surface.
A low tolerance prevents modification of the surface. A high tolerance
'smoothes' the surface.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="segment">
<Documentation>
<UserDocu>
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.
Any of these values can be outside the bounds of this surface, but U2 must
be greater than U1 and V2 must be greater than V1.
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.
Any of these values can be outside the bounds of this surface, but U2 must
be greater than U1 and V2 must be greater than V1.
All the data structure tables of this B-Spline surface are modified but the
knots located between U1 and U2 in the u parametric direction, and between
V1 and V2 in the v parametric direction are retained.
The degree of the surface in each parametric direction is not modified.
All the data structure tables of this B-Spline surface are modified but the
knots located between U1 and U2 in the u parametric direction, and between
V1 and V2 in the v parametric direction are retained.
The degree of the surface in each parametric direction is not modified.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setUKnot">
<Documentation>
<UserDocu>
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.
This modification remains relatively local, since K must lie between the values
of the knots which frame the modified knot.
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.
This modification remains relatively local, since K must lie between the values
of the knots which frame the modified knot.
You can also increase the multiplicity of the modified knot to M. Note however
that it is not possible to decrease the multiplicity of a knot with this function.
You can also increase the multiplicity of the modified knot to M. Note however
that it is not possible to decrease the multiplicity of a knot with this function.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setVKnot">
<Documentation>
<UserDocu>
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.
This modification remains relatively local, since K must lie between the values
of the knots which frame the modified knot.
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.
This modification remains relatively local, since K must lie between the values
of the knots which frame the modified knot.
You can also increase the multiplicity of the modified knot to M. Note however
that it is not possible to decrease the multiplicity of a knot with this function.
You can also increase the multiplicity of the modified knot to M. Note however
that it is not possible to decrease the multiplicity of a knot with this function.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getUKnot" Const="true">
<Documentation>
<UserDocu>
Returns, for this B-Spline surface, in the u parametric direction
the knot of index UIndex of the knots table.
Returns, for this B-Spline surface, in the u parametric direction
the knot of index UIndex of the knots table.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getVKnot" Const="true">
<Documentation>
<UserDocu>
Returns, for this B-Spline surface, in the v parametric direction
the knot of index VIndex of the knots table.
Returns, for this B-Spline surface, in the v parametric direction
the knot of index VIndex of the knots table.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setUKnots">
<Documentation>
<UserDocu>
Changes all knots of this B-Spline surface in the u parametric
direction. The multiplicity of the knots is not modified.
Changes all knots of this B-Spline surface in the u parametric
direction. The multiplicity of the knots is not modified.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setVKnots">
<Documentation>
<UserDocu>
Changes all knots of this B-Spline surface in the v parametric
direction. The multiplicity of the knots is not modified.
Changes all knots of this B-Spline surface in the v parametric
direction. The multiplicity of the knots is not modified.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getUKnots" Const="true">
<Documentation>
<UserDocu>
Returns, for this B-Spline surface, the knots table
in the u parametric direction
Returns, for this B-Spline surface, the knots table
in the u parametric direction
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getVKnots" Const="true">
<Documentation>
<UserDocu>
Returns, for this B-Spline surface, the knots table
in the v parametric direction
Returns, for this B-Spline surface, the knots table
in the v parametric direction
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setPole">
<Documentation>
<UserDocu>
Modifies this B-Spline surface by assigning P to the pole of
index (UIndex, VIndex) in the poles table.
The second syntax allows you also to change the weight of the
modified pole. The weight is set to Weight. This syntax must
only be used for rational surfaces.
Modifies this B-Spline curve by assigning P to the pole of
index Index in the poles table.
Modifies this B-Spline surface by assigning P to the pole of
index (UIndex, VIndex) in the poles table.
The second syntax allows you also to change the weight of the
modified pole. The weight is set to Weight. This syntax must
only be used for rational surfaces.
Modifies this B-Spline curve by assigning P to the pole of
index Index in the poles table.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setPoleCol">
<Documentation>
<UserDocu>
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.
You can also change the weights of the modified poles. The weights
are set to the corresponding values of CPoleWeights.
These syntaxes must only be used for rational surfaces.
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.
You can also change the weights of the modified poles. The weights
are set to the corresponding values of CPoleWeights.
These syntaxes must only be used for rational surfaces.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setPoleRow">
<Documentation>
<UserDocu>
Modifies this B-Spline surface by assigning values to all or part
of the row of poles of index VIndex, of this B-Spline surface.
You can also change the weights of the modified poles. The weights
are set to the corresponding values of CPoleWeights.
These syntaxes must only be used for rational surfaces.
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.
You can also change the weights of the modified poles. The weights
are set to the corresponding values of CPoleWeights.
These syntaxes must only be used for rational surfaces.
</UserDocu>
</Documentation>
</Methode>
@@ -445,45 +445,45 @@
<Methode Name="setWeight">
<Documentation>
<UserDocu>
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
surface.
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
surface.
This function must only be used for rational surfaces.
This function must only be used for rational surfaces.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setWeightCol">
<Documentation>
<UserDocu>
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.
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.
The modified part of the column of weights is defined by the bounds
of the array CPoleWeights.
The modified part of the column of weights is defined by the bounds
of the array CPoleWeights.
This function must only be used for rational surfaces.
This function must only be used for rational surfaces.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setWeightRow">
<Documentation>
<UserDocu>
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.
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.
The modified part of the row of weights is defined by the bounds of the
array CPoleWeights.
The modified part of the row of weights is defined by the bounds of the
array CPoleWeights.
This function must only be used for rational surfaces.
This function must only be used for rational surfaces.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getWeight" Const="true">
<Documentation>
<UserDocu>
Return the weight of the pole of index (UIndex,VIndex)
in the poles table for this B-Spline surface.
Return the weight of the pole of index (UIndex,VIndex)
in the poles table for this B-Spline surface.
</UserDocu>
</Documentation>
</Methode>
@@ -500,171 +500,171 @@
<Methode Name="getResolution" Const="true">
<Documentation>
<UserDocu>
Computes two tolerance values for this B-Spline surface, based on the
given tolerance in 3D space Tolerance3D. The tolerances computed are:
-- UTolerance in the u parametric direction and
-- VTolerance in the v parametric direction.
Computes two tolerance values for this B-Spline surface, based on the
given tolerance in 3D space Tolerance3D. The tolerances computed are:
-- UTolerance in the u parametric direction and
-- VTolerance in the v parametric direction.
If f(u,v) is the equation of this B-Spline surface, UTolerance and
VTolerance guarantee that:
|u1 - u0| &lt; UTolerance
|v1 - v0| &lt; VTolerance
====&gt; ||f(u1, v1) - f(u2, v2)|| &lt; Tolerance3D
If f(u,v) is the equation of this B-Spline surface, UTolerance and
VTolerance guarantee that:
|u1 - u0| &lt; UTolerance
|v1 - v0| &lt; VTolerance
====&gt; ||f(u1, v1) - f(u2, v2)|| &lt; Tolerance3D
</UserDocu>
</Documentation>
</Methode>
<Methode Name="movePoint">
<Documentation>
<UserDocu>
Moves the point of parameters (U, V) of this B-Spline surface to P.
UIndex1, UIndex2, VIndex1 and VIndex2 are the indexes in the poles
table of this B-Spline surface, of the first and last poles which
can be moved in each parametric direction.
The returned indexes UFirstIndex, ULastIndex, VFirstIndex and
VLastIndex are the indexes of the first and last poles effectively
modified in each parametric direction.
In the event of incompatibility between UIndex1, UIndex2, VIndex1,
VIndex2 and the values U and V:
-- no change is made to this B-Spline surface, and
-- UFirstIndex, ULastIndex, VFirstIndex and VLastIndex are set to
null.
Moves the point of parameters (U, V) of this B-Spline surface to P.
UIndex1, UIndex2, VIndex1 and VIndex2 are the indexes in the poles
table of this B-Spline surface, of the first and last poles which
can be moved in each parametric direction.
The returned indexes UFirstIndex, ULastIndex, VFirstIndex and
VLastIndex are the indexes of the first and last poles effectively
modified in each parametric direction.
In the event of incompatibility between UIndex1, UIndex2, VIndex1,
VIndex2 and the values U and V:
-- no change is made to this B-Spline surface, and
-- UFirstIndex, ULastIndex, VFirstIndex and VLastIndex are set to
null.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setUNotPeriodic">
<Documentation>
<UserDocu>
Changes this B-Spline surface into a non-periodic one in the u parametric direction.
If this B-Spline surface is already non-periodic in the given parametric direction,
it is not modified.
If this B-Spline surface is periodic in the given parametric direction, the boundaries
of the surface are not given by the first and last rows (or columns) of poles (because
the multiplicity of the first knot and of the last knot in the given parametric direction
are not modified, nor are they equal to Degree+1, where Degree is the degree of this
B-Spline surface in the given parametric direction). Only the function Segment ensures
this property.
Changes this B-Spline surface into a non-periodic one in the u parametric direction.
If this B-Spline surface is already non-periodic in the given parametric direction,
it is not modified.
If this B-Spline surface is periodic in the given parametric direction, the boundaries
of the surface are not given by the first and last rows (or columns) of poles (because
the multiplicity of the first knot and of the last knot in the given parametric direction
are not modified, nor are they equal to Degree+1, where Degree is the degree of this
B-Spline surface in the given parametric direction). Only the function Segment ensures
this property.
Note: the poles and knots tables are modified.
Note: the poles and knots tables are modified.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setVNotPeriodic">
<Documentation>
<UserDocu>
Changes this B-Spline surface into a non-periodic one in the v parametric direction.
If this B-Spline surface is already non-periodic in the given parametric direction,
it is not modified.
If this B-Spline surface is periodic in the given parametric direction, the boundaries
of the surface are not given by the first and last rows (or columns) of poles (because
the multiplicity of the first knot and of the last knot in the given parametric direction
are not modified, nor are they equal to Degree+1, where Degree is the degree of this
B-Spline surface in the given parametric direction). Only the function Segment ensures
this property.
Changes this B-Spline surface into a non-periodic one in the v parametric direction.
If this B-Spline surface is already non-periodic in the given parametric direction,
it is not modified.
If this B-Spline surface is periodic in the given parametric direction, the boundaries
of the surface are not given by the first and last rows (or columns) of poles (because
the multiplicity of the first knot and of the last knot in the given parametric direction
are not modified, nor are they equal to Degree+1, where Degree is the degree of this
B-Spline surface in the given parametric direction). Only the function Segment ensures
this property.
Note: the poles and knots tables are modified.
Note: the poles and knots tables are modified.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setUPeriodic">
<Documentation>
<UserDocu>
Modifies this surface to be periodic in the u parametric direction.
To become periodic in a given parametric direction a surface must
be closed in that parametric direction, and the knot sequence relative
to that direction must be periodic.
To generate this periodic sequence of knots, the functions FirstUKnotIndex
and LastUKnotIndex are used to compute I1 and I2. These are the indexes,
in the knot array associated with the given parametric direction, of the
knots that correspond to the first and last parameters of this B-Spline
surface in the given parametric direction. Hence the period is:
Modifies this surface to be periodic in the u parametric direction.
To become periodic in a given parametric direction a surface must
be closed in that parametric direction, and the knot sequence relative
to that direction must be periodic.
To generate this periodic sequence of knots, the functions FirstUKnotIndex
and LastUKnotIndex are used to compute I1 and I2. These are the indexes,
in the knot array associated with the given parametric direction, of the
knots that correspond to the first and last parameters of this B-Spline
surface in the given parametric direction. Hence the period is:
Knots(I1) - Knots(I2)
Knots(I1) - Knots(I2)
As a result, the knots and poles tables are modified.
As a result, the knots and poles tables are modified.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setVPeriodic">
<Documentation>
<UserDocu>
Modifies this surface to be periodic in the v parametric direction.
To become periodic in a given parametric direction a surface must
be closed in that parametric direction, and the knot sequence relative
to that direction must be periodic.
To generate this periodic sequence of knots, the functions FirstUKnotIndex
and LastUKnotIndex are used to compute I1 and I2. These are the indexes,
in the knot array associated with the given parametric direction, of the
knots that correspond to the first and last parameters of this B-Spline
surface in the given parametric direction. Hence the period is:
Modifies this surface to be periodic in the v parametric direction.
To become periodic in a given parametric direction a surface must
be closed in that parametric direction, and the knot sequence relative
to that direction must be periodic.
To generate this periodic sequence of knots, the functions FirstUKnotIndex
and LastUKnotIndex are used to compute I1 and I2. These are the indexes,
in the knot array associated with the given parametric direction, of the
knots that correspond to the first and last parameters of this B-Spline
surface in the given parametric direction. Hence the period is:
Knots(I1) - Knots(I2)
Knots(I1) - Knots(I2)
As a result, the knots and poles tables are modified.
As a result, the knots and poles tables are modified.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setUOrigin">
<Documentation>
<UserDocu>
Assigns the knot of index Index in the knots table
in the u parametric direction to be the origin of
this periodic B-Spline surface. As a consequence,
the knots and poles tables are modified.
Assigns the knot of index Index in the knots table
in the u parametric direction to be the origin of
this periodic B-Spline surface. As a consequence,
the knots and poles tables are modified.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setVOrigin">
<Documentation>
<UserDocu>
Assigns the knot of index Index in the knots table
in the v parametric direction to be the origin of
this periodic B-Spline surface. As a consequence,
the knots and poles tables are modified.
Assigns the knot of index Index in the knots table
in the v parametric direction to be the origin of
this periodic B-Spline surface. As a consequence,
the knots and poles tables are modified.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getUMultiplicity" Const="true">
<Documentation>
<UserDocu>
Returns, for this B-Spline surface, the multiplicity of
the knot of index UIndex in the u parametric direction.
Returns, for this B-Spline surface, the multiplicity of
the knot of index UIndex in the u parametric direction.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getVMultiplicity" Const="true">
<Documentation>
<UserDocu>
Returns, for this B-Spline surface, the multiplicity of
the knot of index VIndex in the v parametric direction.
Returns, for this B-Spline surface, the multiplicity of
the knot of index VIndex in the v parametric direction.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getUMultiplicities" Const="true">
<Documentation>
<UserDocu>
Returns, for this B-Spline surface, the table of
multiplicities in the u parametric direction
Returns, for this B-Spline surface, the table of
multiplicities in the u parametric direction
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getVMultiplicities" Const="true">
<Documentation>
<UserDocu>
Returns, for this B-Spline surface, the table of
multiplicities in the v parametric direction
Returns, for this B-Spline surface, the table of
multiplicities in the v parametric direction
</UserDocu>
</Documentation>
</Methode>
<Methode Name="exchangeUV">
<Documentation>
<UserDocu>
Exchanges the u and v parametric directions on this B-Spline surface.
As a consequence:
-- the poles and weights tables are transposed,
-- the knots and multiplicities tables are exchanged,
-- degrees of continuity and rational, periodic and uniform
characteristics are exchanged and
-- the orientation of the surface is reversed.
Exchanges the u and v parametric directions on this B-Spline surface.
As a consequence:
-- the poles and weights tables are transposed,
-- the knots and multiplicities tables are exchanged,
-- degrees of continuity and rational, periodic and uniform
characteristics are exchanged and
-- the orientation of the surface is reversed.
</UserDocu>
</Documentation>
</Methode>
@@ -676,66 +676,66 @@
<Methode Name="approximate" Keyword="true">
<Documentation>
<UserDocu>
Replaces this B-Spline surface by approximating a set of points.
This method uses keywords :
- Points = 2Darray of points (or floats, in combination with X0, dX, Y0, dY)
- DegMin (int), DegMax (int)
- Continuity = 0,1 or 2 (for C0, C1, C2)
- Tolerance (float)
- X0, dX, Y0, dY (floats) with Points = 2Darray of floats
- ParamType = 'Uniform','Centripetal' or 'ChordLength'
- LengthWeight, CurvatureWeight, TorsionWeight (floats)
(with this smoothing algorithm, continuity C1 requires DegMax >= 3 and C2, DegMax >=5)
Replaces this B-Spline surface by approximating a set of points.
This method uses keywords :
- Points = 2Darray of points (or floats, in combination with X0, dX, Y0, dY)
- DegMin (int), DegMax (int)
- Continuity = 0,1 or 2 (for C0, C1, C2)
- Tolerance (float)
- X0, dX, Y0, dY (floats) with Points = 2Darray of floats
- ParamType = 'Uniform','Centripetal' or 'ChordLength'
- LengthWeight, CurvatureWeight, TorsionWeight (floats)
(with this smoothing algorithm, continuity C1 requires DegMax >= 3 and C2, DegMax >=5)
Possible combinations :
- approximate(Points, DegMin, DegMax, Continuity, Tolerance)
- approximate(Points, DegMin, DegMax, Continuity, Tolerance, X0, dX, Y0, dY)
With explicit keywords :
- approximate(Points, DegMin, DegMax, Continuity, Tolerance, ParamType)
- approximate(Points, DegMax, Continuity, Tolerance, LengthWeight, CurvatureWeight, TorsionWeight)
Possible combinations :
- approximate(Points, DegMin, DegMax, Continuity, Tolerance)
- approximate(Points, DegMin, DegMax, Continuity, Tolerance, X0, dX, Y0, dY)
With explicit keywords :
- approximate(Points, DegMin, DegMax, Continuity, Tolerance, ParamType)
- approximate(Points, DegMax, Continuity, Tolerance, LengthWeight, CurvatureWeight, TorsionWeight)
</UserDocu>
</Documentation>
</Methode>
<Methode Name="interpolate">
<Documentation>
<UserDocu>
interpolate(points)
interpolate(zpoints, X0, dX, Y0, dY)
interpolate(points)
interpolate(zpoints, X0, dX, Y0, dY)
Replaces this B-Spline surface by interpolating a set of points.
The resulting surface is of degree 3 and continuity C2.
Arguments:
a 2 dimensional array of vectors, that the surface passes through
or
a 2 dimensional array of floats with the z values,
the x starting point X0 (float),
the x increment dX (float),
the y starting point Y0 and increment dY
Replaces this B-Spline surface by interpolating a set of points.
The resulting surface is of degree 3 and continuity C2.
Arguments:
a 2 dimensional array of vectors, that the surface passes through
or
a 2 dimensional array of floats with the z values,
the x starting point X0 (float),
the x increment dX (float),
the y starting point Y0 and increment dY
</UserDocu>
</Documentation>
</Methode>
<Methode Name="buildFromPolesMultsKnots" Keyword="true">
<Documentation>
<UserDocu>
Builds a B-Spline by a lists of Poles, Mults and Knots
arguments: poles (sequence of sequence of Base.Vector), umults, vmults, [uknots, vknots, uperiodic, vperiodic, udegree, vdegree, weights (sequence of sequence of float)]
Builds a B-Spline by a lists of Poles, Mults and Knots
arguments: poles (sequence of sequence of Base.Vector), umults, vmults, [uknots, vknots, uperiodic, vperiodic, udegree, vdegree, weights (sequence of sequence of float)]
</UserDocu>
</Documentation>
</Methode>
<Methode Name="buildFromNSections">
<Documentation>
<UserDocu>
Builds a B-Spline from a list of control curves
Builds a B-Spline from a list of control curves
</UserDocu>
</Documentation>
</Methode>
<Methode Name="scaleKnotsToBounds">
<Documentation>
<UserDocu>
Scales the U and V knots lists to fit the specified bounds.
The shape of the surface is not modified.
bspline_surf.scaleKnotsToBounds(u0, u1, v0, v1)
Default arguments are 0.0, 1.0, 0.0, 1.0
Scales the U and V knots lists to fit the specified bounds.
The shape of the surface is not modified.
bspline_surf.scaleKnotsToBounds(u0, u1, v0, v1)
Default arguments are 0.0, 1.0, 0.0, 1.0
</UserDocu>
</Documentation>
</Methode>

View File

@@ -14,20 +14,21 @@
<Documentation>
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net"/>
<UserDocu>Describes a rational or non-rational Bezier curve:
-- a non-rational Bezier curve is defined by a table of poles (also called control points)
-- a rational Bezier curve is defined by a table of poles with varying weights
-- a non-rational Bezier curve is defined by a table of poles (also called control points)
-- a rational Bezier curve is defined by a table of poles with varying weights
Constructor takes no arguments.
Constructor takes no arguments.
Example usage:
p1 = Base.Vector(-1, 0, 0)
p2 = Base.Vector(0, 1, 0.2)
p3 = Base.Vector(1, 0, 0.4)
p4 = Base.Vector(0, -1, 1)
Example usage:
p1 = Base.Vector(-1, 0, 0)
p2 = Base.Vector(0, 1, 0.2)
p3 = Base.Vector(1, 0, 0.4)
p4 = Base.Vector(0, -1, 1)
bc = BezierCurve()
bc.setPoles([p1, p2, p3, p4])
curveShape = bc.toShape()</UserDocu>
bc = BezierCurve()
bc.setPoles([p1, p2, p3, p4])
curveShape = bc.toShape()
</UserDocu>
</Documentation>
<Attribute Name="Degree" ReadOnly="true">
<Documentation>
@@ -74,13 +75,12 @@ Bezier curve curve. This value is 25.</UserDocu>
<Methode Name="isClosed" Const="true">
<Documentation>
<UserDocu>Returns true if the distance between the start point and end point of
this Bezier curve is less than or equal to gp::Resolution().</UserDocu>
this Bezier curve is less than or equal to gp::Resolution().</UserDocu>
</Documentation>
</Methode>
<Methode Name="increase">
<Documentation>
<UserDocu>increase(Int=Degree)
Increases the degree of this Bezier curve to Degree.
<UserDocu>Increases the degree of this Bezier curve to Degree.
As a result, the poles and weights tables are modified.</UserDocu>
</Documentation>
</Methode>
@@ -124,7 +124,7 @@ If this Bezier curve is rational, it can become non-rational.</UserDocu>
<Documentation>
<UserDocu>Set the poles of the Bezier curve.
Takes a list of 3D Base.Vector objects.</UserDocu>
Takes a list of 3D Base.Vector objects.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setWeight">
@@ -154,11 +154,11 @@ ensures that:
<Methode Name="interpolate">
<Documentation>
<UserDocu>Interpolates a list of constraints.
Each constraint is a list of a point and some optional derivatives
An optional list of parameters can be passed. It must be of same size as constraint list.
Otherwise, a simple uniform parametrization is used.
Example :
bezier.interpolate([[pt1, deriv11, deriv12], [pt2,], [pt3, deriv31]], [0, 0.4, 1.0])</UserDocu>
Each constraint is a list of a point and some optional derivatives
An optional list of parameters can be passed. It must be of same size as constraint list.
Otherwise, a simple uniform parametrization is used.
Example :
bezier.interpolate([[pt1, deriv11, deriv12], [pt2,], [pt3, deriv31]], [0, 0.4, 1.0])</UserDocu>
</Documentation>
</Methode>
</PythonExport>

View File

@@ -14,27 +14,27 @@
<Documentation>
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net"/>
<UserDocu>Describes a rational or non-rational Bezier surface
-- A non-rational Bezier surface is defined by a table of poles (also known as control points).
-- A rational Bezier surface is defined by a table of poles with varying associated weights.</UserDocu>
-- A non-rational Bezier surface is defined by a table of poles (also known as control points).
-- A rational Bezier surface is defined by a table of poles with varying associated weights.</UserDocu>
</Documentation>
<Attribute Name="UDegree" ReadOnly="true">
<Documentation>
<UserDocu>Returns the polynomial degree in u direction of this Bezier surface,
which is equal to the number of poles minus 1.</UserDocu>
which is equal to the number of poles minus 1.</UserDocu>
</Documentation>
<Parameter Name="UDegree" Type="Long"/>
</Attribute>
<Attribute Name="VDegree" ReadOnly="true">
<Documentation>
<UserDocu>Returns the polynomial degree in v direction of this Bezier surface,
which is equal to the number of poles minus 1.</UserDocu>
which is equal to the number of poles minus 1.</UserDocu>
</Documentation>
<Parameter Name="VDegree" Type="Long"/>
</Attribute>
<Attribute Name="MaxDegree" ReadOnly="true">
<Documentation>
<UserDocu>Returns the value of the maximum polynomial degree of any
Bezier surface. This value is 25.</UserDocu>
Bezier surface. This value is 25.</UserDocu>
</Documentation>
<Parameter Name="MaxDegree" Type="Long"/>
</Attribute>
@@ -58,17 +58,17 @@
<Methode Name="isURational" Const="true">
<Documentation>
<UserDocu>Returns false if the equation of this Bezier surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each row of poles, the associated
weights are identical</UserDocu>
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each row of poles, the associated
weights are identical.</UserDocu>
</Documentation>
</Methode>
<Methode Name="isVRational" Const="true">
<Documentation>
<UserDocu>Returns false if the equation of this Bezier surface is polynomial
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each column of poles, the associated
weights are identical</UserDocu>
(e.g. non-rational) in the u or v parametric direction.
In other words, returns false if for each column of poles, the associated
weights are identical.</UserDocu>
</Documentation>
</Methode>
<Methode Name="isUPeriodic" Const="true">
@@ -84,101 +84,101 @@
<Methode Name="isUClosed" Const="true">
<Documentation>
<UserDocu>Checks if this surface is closed in the u parametric direction.
Returns true if, in the table of poles the first row and the last
row are identical.</UserDocu>
Returns true if, in the table of poles the first row and the last
row are identical.</UserDocu>
</Documentation>
</Methode>
<Methode Name="isVClosed" Const="true">
<Documentation>
<UserDocu>Checks if this surface is closed in the v parametric direction.
Returns true if, in the table of poles the first column and the
last column are identical.</UserDocu>
Returns true if, in the table of poles the first column and the
last column are identical.</UserDocu>
</Documentation>
</Methode>
<Methode Name="increase">
<Documentation>
<UserDocu>increase(Int=DegreeU,Int=DegreeV)
Increases the degree of this Bezier surface in the two
parametric directions.</UserDocu>
<UserDocu>increase(DegreeU: int, DegreeV: int)
Increases the degree of this Bezier surface in the two
parametric directions.</UserDocu>
</Documentation>
</Methode>
<Methode Name="insertPoleColAfter">
<Documentation>
<UserDocu>Inserts into the table of poles of this surface, after the column
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.</UserDocu>
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.</UserDocu>
</Documentation>
</Methode>
<Methode Name="insertPoleRowAfter">
<Documentation>
<UserDocu>Inserts into the table of poles of this surface, after the row
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.</UserDocu>
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.</UserDocu>
</Documentation>
</Methode>
<Methode Name="insertPoleColBefore">
<Documentation>
<UserDocu>Inserts into the table of poles of this surface, before the column
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.</UserDocu>
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.</UserDocu>
</Documentation>
</Methode>
<Methode Name="insertPoleRowBefore">
<Documentation>
<UserDocu>Inserts into the table of poles of this surface, before the row
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.</UserDocu>
of poles of index.
If this Bezier surface is non-rational, it can become rational if
the weights associated with the new poles are different from each
other, or collectively different from the existing weights in the
table.</UserDocu>
</Documentation>
</Methode>
<Methode Name="removePoleCol">
<Documentation>
<UserDocu>removePoleRow(int=VIndex)
Removes the column of poles of index VIndex from the table of
poles of this Bezier surface.
If this Bezier curve is rational, it can become non-rational.</UserDocu>
<UserDocu>removePoleRow(VIndex: int)
Removes the column of poles of index VIndex from the table of
poles of this Bezier surface.
If this Bezier curve is rational, it can become non-rational.</UserDocu>
</Documentation>
</Methode>
<Methode Name="removePoleRow">
<Documentation>
<UserDocu>removePoleRow(int=UIndex)
Removes the row of poles of index UIndex from the table of
poles of this Bezier surface.
If this Bezier curve is rational, it can become non-rational.</UserDocu>
<UserDocu>removePoleRow(UIndex: int)
Removes the row of poles of index UIndex from the table of
poles of this Bezier surface.
If this Bezier curve is rational, it can become non-rational.</UserDocu>
</Documentation>
</Methode>
<Methode Name="segment">
<Documentation>
<UserDocu>segment(double=U1,double=U2,double=V1,double=V2)
Modifies this Bezier surface by segmenting it between U1 and U2
in the u parametric direction, and between V1 and V2 in the v
parametric direction.
U1, U2, V1, and V2 can be outside the bounds of this surface.
<UserDocu>segment(U1: double, U2: double, V1: double, V2: double)
Modifies this Bezier surface by segmenting it between U1 and U2
in the u parametric direction, and between V1 and V2 in the v
parametric direction.
U1, U2, V1, and V2 can be outside the bounds of this surface.
-- U1 and U2 isoparametric Bezier curves, segmented between
V1 and V2, become the two bounds of the surface in the v
parametric direction (0. and 1. u isoparametric curves).
-- V1 and V2 isoparametric Bezier curves, segmented between
U1 and U2, become the two bounds of the surface in the u
parametric direction (0. and 1. v isoparametric curves).
-- U1 and U2 isoparametric Bezier curves, segmented between
V1 and V2, become the two bounds of the surface in the v
parametric direction (0. and 1. u isoparametric curves).
-- V1 and V2 isoparametric Bezier curves, segmented between
U1 and U2, become the two bounds of the surface in the u
parametric direction (0. and 1. v isoparametric curves).
The poles and weights tables are modified, but the degree of
this surface in the u and v parametric directions does not
change.U1 can be greater than U2, and V1 can be greater than V2.
In these cases, the corresponding parametric direction is inverted.
The orientation of the surface is inverted if one (and only one)
parametric direction is inverted.</UserDocu>
The poles and weights tables are modified, but the degree of
this surface in the u and v parametric directions does not
change.U1 can be greater than U2, and V1 can be greater than V2.
In these cases, the corresponding parametric direction is inverted.
The orientation of the surface is inverted if one (and only one)
parametric direction is inverted.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setPole">
@@ -198,7 +198,7 @@
</Methode>
<Methode Name="getPole" Const="true">
<Documentation>
<UserDocu>Get a pole of index (UIndex,VIndex) of the Bezier surface.</UserDocu>
<UserDocu>Get a pole of index (UIndex, VIndex) of the Bezier surface.</UserDocu>
</Documentation>
</Methode>
<Methode Name="getPoles" Const="true">
@@ -209,25 +209,25 @@
<Methode Name="setWeight">
<Documentation>
<UserDocu>Set the weight of pole of the index (UIndex, VIndex)
for the Bezier surface.</UserDocu>
for the Bezier surface.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setWeightCol">
<Documentation>
<UserDocu>Set the weights of the poles in the column of poles
of index VIndex of the Bezier surface.</UserDocu>
of index VIndex of the Bezier surface.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setWeightRow">
<Documentation>
<UserDocu>Set the weights of the poles in the row of poles
of index UIndex of the Bezier surface.</UserDocu>
of index UIndex of the Bezier surface.</UserDocu>
</Documentation>
</Methode>
<Methode Name="getWeight" Const="true">
<Documentation>
<UserDocu>Get a weight of the pole of index (UIndex,VIndex)
of the Bezier surface.</UserDocu>
<UserDocu>Get a weight of the pole of index (UIndex, VIndex)
of the Bezier surface.</UserDocu>
</Documentation>
</Methode>
<Methode Name="getWeights" Const="true">
@@ -238,25 +238,25 @@
<Methode Name="getResolution" Const="true">
<Documentation>
<UserDocu>Computes two tolerance values for this Bezier surface, based on the
given tolerance in 3D space Tolerance3D. The tolerances computed are:
-- UTolerance in the u parametric direction and
-- VTolerance in the v parametric direction.
given tolerance in 3D space Tolerance3D. The tolerances computed are:
-- UTolerance in the u parametric direction and
-- VTolerance in the v parametric direction.
If f(u,v) is the equation of this Bezier surface, UTolerance and VTolerance
guarantee that:
|u1 - u0| &lt; UTolerance
|v1 - v0| &lt; VTolerance
====&gt; ||f(u1, v1) - f(u2, v2)|| &lt; Tolerance3D</UserDocu>
If f(u,v) is the equation of this Bezier surface, UTolerance and VTolerance
guarantee that:
|u1 - u0| &lt; UTolerance
|v1 - v0| &lt; VTolerance
====&gt; ||f(u1, v1) - f(u2, v2)|| &lt; Tolerance3D</UserDocu>
</Documentation>
</Methode>
<Methode Name="exchangeUV">
<Documentation>
<UserDocu>Exchanges the u and v parametric directions on this Bezier surface.
As a consequence:
-- the poles and weights tables are transposed,
-- degrees, rational characteristics and so on are exchanged between
the two parametric directions, and
-- the orientation of the surface is reversed.</UserDocu>
As a consequence:
-- the poles and weights tables are transposed,
-- degrees, rational characteristics and so on are exchanged between
the two parametric directions, and
-- the orientation of the surface is reversed.</UserDocu>
</Documentation>
</Methode>
</PythonExport>

View File

@@ -14,31 +14,34 @@
<Documentation>
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net"/>
<UserDocu>Describes a cone in 3D space
To create a cone there are several ways:
Part.Cone()
Creates a default cone with radius 1
Part.Cone(Cone)
Creates a copy of the given cone
To create a cone there are several ways:
Part.Cone(Cone, Distance)
Creates a cone parallel to given cone at a certain distance
Part.Cone()
Creates a default cone with radius 1
Part.Cone(Point1,Point2,Radius1,Radius2)
Creates a cone defined by two points and two radii
The axis of the cone is the line passing through
Point1 and Poin2.
Radius1 is the radius of the section passing through
Point1 and Radius2 the radius of the section passing
through Point2.
Part.Cone(Cone)
Creates a copy of the given cone
Part.Cone(Point1,Point2,Point3,Point4)
Creates a cone passing through three points Point1,
Point2 and Point3.
Its axis is defined by Point1 and Point2 and the radius of
its base is the distance between Point3 and its axis.
The distance between Point and the axis is the radius of
the section passing through Point4.</UserDocu>
Part.Cone(Cone, Distance)
Creates a cone parallel to given cone at a certain distance
Part.Cone(Point1,Point2,Radius1,Radius2)
Creates a cone defined by two points and two radii
The axis of the cone is the line passing through
Point1 and Poin2.
Radius1 is the radius of the section passing through
Point1 and Radius2 the radius of the section passing
through Point2.
Part.Cone(Point1,Point2,Point3,Point4)
Creates a cone passing through three points Point1,
Point2 and Point3.
Its axis is defined by Point1 and Point2 and the radius of
its base is the distance between Point3 and its axis.
The distance between Point and the axis is the radius of
the section passing through Point4.
</UserDocu>
</Documentation>
<Attribute Name="Apex" ReadOnly="true">
<Documentation>

View File

@@ -29,12 +29,11 @@
</Attribute>
<Attribute Name="Eccentricity" ReadOnly="true">
<Documentation>
<UserDocu>
returns the eccentricity value of the conic e.
e = 0 for a circle
0 &lt; e &lt; 1 for an ellipse (e = 0 if MajorRadius = MinorRadius)
e > 1 for a hyperbola
e = 1 for a parabola
<UserDocu>Returns the eccentricity value of the conic e.
e = 0 for a circle
0 &lt; e &lt; 1 for an ellipse (e = 0 if MajorRadius = MinorRadius)
e > 1 for a hyperbola
e = 1 for a parabola
</UserDocu>
</Documentation>
<Parameter Name="Eccentricity" Type="Float"/>

View File

@@ -14,21 +14,23 @@
<Documentation>
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net"/>
<UserDocu>Describes a cylinder in 3D space
To create a cylinder there are several ways:
Part.Cylinder()
Creates a default cylinder with center (0,0,0) and radius 1
Part.Cylinder(Cylinder)
Creates a copy of the given cylinder
To create a cylinder there are several ways:
Part.Cylinder(Cylinder, Distance)
Creates a cylinder parallel to given cylinder at a certain distance
Part.Cylinder()
Creates a default cylinder with center (0,0,0) and radius 1
Part.Cylinder(Point1,Point2,Point2)
Creates a cylinder defined by three non-linear points
Part.Cylinder(Cylinder)
Creates a copy of the given cylinder
Part.Cylinder(Circle)
Creates a cylinder by a circular base</UserDocu>
Part.Cylinder(Cylinder, Distance)
Creates a cylinder parallel to given cylinder at a certain distance
Part.Cylinder(Point1, Point2, Point2)
Creates a cylinder defined by three non-linear points
Part.Cylinder(Circle)
Creates a cylinder by a circular base</UserDocu>
</Documentation>
<Attribute Name="Radius" ReadOnly="false">
<Documentation>

View File

@@ -14,25 +14,28 @@
<Documentation>
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net"/>
<UserDocu>Describes an ellipse in 3D space
To create an ellipse there are several ways:
Part.Ellipse()
Creates an ellipse with major radius 2 and minor radius 1 with the
center in (0,0,0)
Part.Ellipse(Ellipse)
Create a copy of the given ellipse
To create an ellipse there are several ways:
Part.Ellipse(S1,S2,Center)
Creates an ellipse centered on the point Center, where
the plane of the ellipse is defined by Center, S1 and S2,
its major axis is defined by Center and S1,
its major radius is the distance between Center and S1, and
its minor radius is the distance between S2 and the major axis.
Part.Ellipse()
Creates an ellipse with major radius 2 and minor radius 1 with the
center in (0,0,0)
Part.Ellipse(Center,MajorRadius,MinorRadius)
Creates an ellipse with major and minor radii MajorRadius and
MinorRadius, and located in the plane defined by Center and
the normal (0,0,1)</UserDocu>
Part.Ellipse(Ellipse)
Create a copy of the given ellipse
Part.Ellipse(S1,S2,Center)
Creates an ellipse centered on the point Center, where
the plane of the ellipse is defined by Center, S1 and S2,
its major axis is defined by Center and S1,
its major radius is the distance between Center and S1, and
its minor radius is the distance between S2 and the major axis.
Part.Ellipse(Center,MajorRadius,MinorRadius)
Creates an ellipse with major and minor radii MajorRadius and
MinorRadius, and located in the plane defined by Center and
the normal (0,0,1)
</UserDocu>
</Documentation>
<Attribute Name="MajorRadius" ReadOnly="false">
<Documentation>
@@ -54,17 +57,13 @@
</Attribute>
<Attribute Name="Focus1" ReadOnly="true">
<Documentation>
<UserDocu>The first focus is on the positive side of the major axis of the ellipse;
the second focus is on the negative side.</UserDocu>
<UserDocu>The first focus is on the positive side of the major axis of the ellipse.</UserDocu>
</Documentation>
<Parameter Name="Focus1" Type="Object"/>
</Attribute>
<Attribute Name="Focus2" ReadOnly="true">
<Documentation>
<Documentation>
<UserDocu>The first focus is on the positive side of the major axis of the ellipse;
the second focus is on the negative side.</UserDocu>
</Documentation>
<UserDocu>The second focus is on the negative side of the major axis of the ellipse.</UserDocu>
</Documentation>
<Parameter Name="Focus2" Type="Object"/>
</Attribute>

View File

@@ -23,7 +23,9 @@
<Methode Name="discretize" Const="true" Keyword="true">
<Documentation>
<UserDocu>Discretizes the curve and returns a list of points.
The function accepts keywords as argument:
discretize(Number=n) =&gt; gives a list of 'n' equidistant points
discretize(QuasiNumber=n) =&gt; gives a list of 'n' quasi equidistant points (is faster than the method above)
discretize(Distance=d) =&gt; gives a list of equidistant points with distance 'd'
@@ -83,13 +85,13 @@ Part.show(s)</UserDocu>
<Methode Name="length" Const="true">
<Documentation>
<UserDocu>Computes the length of a curve
length([uMin,uMax,Tol]) -&gt; Float</UserDocu>
length([uMin, uMax, Tol]) -&gt; float</UserDocu>
</Documentation>
</Methode>
<Methode Name="parameterAtDistance" Const="true">
<Documentation>
<UserDocu>Returns the parameter on the curve of a point at the given distance from a starting parameter.
parameterAtDistance([abscissa, startingParameter]) -&gt; Float the</UserDocu>
parameterAtDistance([abscissa, startingParameter]) -&gt; float</UserDocu>
</Documentation>
</Methode>
<Methode Name="value" Const="true">
@@ -119,8 +121,7 @@ parameterAtDistance([abscissa, startingParameter]) -&gt; Float the</UserDocu>
</Methode>
<Methode Name="parameter" Const="true">
<Documentation>
<UserDocu>Returns the parameter on the curve
of the nearest orthogonal projection of the point.</UserDocu>
<UserDocu>Returns the parameter on the curve of the nearest orthogonal projection of the point.</UserDocu>
</Documentation>
</Methode>
<Methode Name="normal" Const="true">
@@ -155,7 +156,7 @@ projectPoint(Vector,&quot;Point&quot;) -&gt; list of points</UserDocu>
<Documentation>
<UserDocu>Returns all intersection points and curve segments between the curve and the curve/surface.
arguments: curve/surface (for the intersection), precision (float)</UserDocu>
arguments: curve/surface (for the intersection), precision (float)</UserDocu>
</Documentation>
</Methode>
<Methode Name="intersectCS" Const="true">
@@ -170,26 +171,26 @@ projectPoint(Vector,&quot;Point&quot;) -&gt; list of points</UserDocu>
</Methode>
<Methode Name="toBSpline" Const="true">
<Documentation>
<UserDocu>Converts a curve of any type (only part from First to Last)
toBSpline([Float=First, Float=Last]) -&gt; B-Spline curve</UserDocu>
<UserDocu>Converts a curve of any type (only part from First to Last) to BSpline curve.
toBSpline((first: float, last: float)) -&gt; BSplineCurve</UserDocu>
</Documentation>
</Methode>
<Methode Name="toNurbs" Const="true">
<Documentation>
<UserDocu>Converts a curve of any type (only part from First to Last)
toNurbs([Float=First, Float=Last]) -&gt; NURBS curve</UserDocu>
<UserDocu>Converts a curve of any type (only part from First to Last) to NURBS curve.
toNurbs((first: float, last: float)) -&gt; NurbsCurve</UserDocu>
</Documentation>
</Methode>
<Methode Name="trim" Const="true">
<Documentation>
<UserDocu>Returns a trimmed curve defined in the given parameter range
trim([Float=First, Float=Last]) -&gt; trimmed curve</UserDocu>
<UserDocu>Returns a trimmed curve defined in the given parameter range.
trim((first: float, last: float)) -&gt; TrimmedCurve</UserDocu>
</Documentation>
</Methode>
<Methode Name="approximateBSpline" Const="true">
<Documentation>
<UserDocu>Approximates a curve of any type to a B-Spline curve
approximateBSpline(Tolerance, MaxSegments, MaxDegree, [Order='C2']) -&gt; B-Spline curve</UserDocu>
<UserDocu>Approximates a curve of any type to a B-Spline curve.
approximateBSpline(Tolerance, MaxSegments, MaxDegree, [Order='C2']) -&gt; BSplineCurve</UserDocu>
</Documentation>
</Methode>
<Methode Name="reverse">
@@ -199,8 +200,7 @@ projectPoint(Vector,&quot;Point&quot;) -&gt; list of points</UserDocu>
</Methode>
<Methode Name="reversedParameter" Const="true">
<Documentation>
<UserDocu>Returns the parameter on the reversed curve for
the point of parameter U on this curve.</UserDocu>
<UserDocu>Returns the parameter on the reversed curve for the point of parameter U on this curve.</UserDocu>
</Documentation>
</Methode>
<Methode Name="isPeriodic" Const="true">
@@ -210,8 +210,7 @@ the point of parameter U on this curve.</UserDocu>
</Methode>
<Methode Name="period" Const="true">
<Documentation>
<UserDocu>Returns the period of this curve
or raises an exception if it is not periodic.</UserDocu>
<UserDocu>Returns the period of this curve or raises an exception if it is not periodic.</UserDocu>
</Documentation>
</Methode>
<Methode Name="isClosed" Const="true">

View File

@@ -55,10 +55,9 @@ It describes the common behavior of these objects when:
</Methode>
<Methode Name="isSame" Const="true">
<Documentation>
<UserDocu>
isSame(geom, tol, angulartol) -> boolean
<UserDocu>isSame(geom, tol, angulartol) -> boolean
Compare this geometry to another one</UserDocu>
Compare this geometry to another one</UserDocu>
</Documentation>
</Methode>
<Methode Name="hasExtensionOfType" Const="true">

View File

@@ -161,15 +161,15 @@ of the nearest orthogonal projection of the point.</UserDocu>
<Methode Name="toBSpline" Const="true" Keyword="true">
<Documentation>
<UserDocu>Returns a B-Spline representation of this surface.
The optional arguments are:
* tolerance (default=1e-7)
* continuity in u (as string e.g. C0, G0, G1, C1, G2, C3, CN) (default='C1')
* continuity in v (as string e.g. C0, G0, G1, C1, G2, C3, CN) (default='C1')
* maximum degree in u (default=25)
* maximum degree in v (default=25)
* maximum number of segments (default=1000)
* precision code (default=0)
Will raise an exception if surface is infinite in U or V (like planes, cones or cylinders)</UserDocu>
The optional arguments are:
* tolerance (default=1e-7)
* continuity in u (as string e.g. C0, G0, G1, C1, G2, C3, CN) (default='C1')
* continuity in v (as string e.g. C0, G0, G1, C1, G2, C3, CN) (default='C1')
* maximum degree in u (default=25)
* maximum degree in v (default=25)
* maximum number of segments (default=1000)
* precision code (default=0)
Will raise an exception if surface is infinite in U or V (like planes, cones or cylinders)</UserDocu>
</Documentation>
</Methode>
<Methode Name="intersect" Const="true">

View File

@@ -14,25 +14,28 @@
<Documentation>
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net"/>
<UserDocu>Describes an hyperbola in 3D space
To create a hyperbola there are several ways:
Part.Hyperbola()
Creates an hyperbola with major radius 2 and minor radius 1 with the
center in (0,0,0)
Part.Hyperbola(Hyperbola)
Create a copy of the given hyperbola
To create a hyperbola there are several ways:
Part.Hyperbola(S1,S2,Center)
Creates an hyperbola centered on the point Center, where
the plane of the hyperbola is defined by Center, S1 and S2,
its major axis is defined by Center and S1,
its major radius is the distance between Center and S1, and
its minor radius is the distance between S2 and the major axis.
Part.Hyperbola()
Creates an hyperbola with major radius 2 and minor radius 1 with the
center in (0,0,0)
Part.Hyperbola(Center,MajorRadius,MinorRadius)
Creates an hyperbola with major and minor radii MajorRadius and
MinorRadius, and located in the plane defined by Center and
the normal (0,0,1)</UserDocu>
Part.Hyperbola(Hyperbola)
Create a copy of the given hyperbola
Part.Hyperbola(S1,S2,Center)
Creates an hyperbola centered on the point Center, where
the plane of the hyperbola is defined by Center, S1 and S2,
its major axis is defined by Center and S1,
its major radius is the distance between Center and S1, and
its minor radius is the distance between S2 and the major axis.
Part.Hyperbola(Center,MajorRadius,MinorRadius)
Creates an hyperbola with major and minor radii MajorRadius and
MinorRadius, and located in the plane defined by Center and
the normal (0,0,1)
</UserDocu>
</Documentation>
<Attribute Name="MajorRadius" ReadOnly="false">
<Documentation>
@@ -54,17 +57,13 @@
</Attribute>
<Attribute Name="Focus1" ReadOnly="true">
<Documentation>
<UserDocu>The first focus is on the positive side of the major axis of the hyperbola;
the second focus is on the negative side.</UserDocu>
<UserDocu>The first focus is on the positive side of the major axis of the hyperbola.</UserDocu>
</Documentation>
<Parameter Name="Focus1" Type="Object"/>
</Attribute>
<Attribute Name="Focus2" ReadOnly="true">
<Documentation>
<Documentation>
<UserDocu>The first focus is on the positive side of the major axis of the hyperbola;
the second focus is on the negative side.</UserDocu>
</Documentation>
<UserDocu>The second focus is on the negative side of the major axis of the hyperbola.</UserDocu>
</Documentation>
<Parameter Name="Focus2" Type="Object"/>
</Attribute>

View File

@@ -17,8 +17,9 @@
</Documentation>
<Methode Name="compute">
<Documentation>
<UserDocu>compute(p1,p2,p3)
The three points must lie on a plane parallel to xy plane and must not be collinear</UserDocu>
<UserDocu>compute(p1,p2,p3) -> None
The three points must lie on a plane parallel to xy plane and must not be collinear</UserDocu>
</Documentation>
</Methode>
<Attribute Name="Focal" ReadOnly="false">

View File

@@ -27,7 +27,11 @@ necessarily have the same orientation as the basis surface.</UserDocu>
</Documentation>
<Methode Name="setTrim">
<Documentation>
<UserDocu>Modifies this patch by changing the trim values applied to the original surface</UserDocu>
<UserDocu>
setTrim(self, params: (u1, u2, v1, v2)) -> None
Modifies this patch by changing the trim values applied to the original surface
</UserDocu>
</Documentation>
</Methode>
<Attribute Name="BasisSurface" ReadOnly="true">

View File

@@ -340,7 +340,6 @@ p=e.discretize(Number=50,First=3.14)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
p=e.discretize(Angular=0.09,Curvature=0.01,Last=3.14,Minimum=100)
s=Part.Compound([Part.Vertex(i) for i in p])
Part.show(s)
@@ -515,22 +514,22 @@ coordinate system.</UserDocu>
<Attribute Name="StaticMoments" ReadOnly="true">
<Documentation>
<UserDocu>Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
</Documentation>
<Parameter Name="StaticMoments" Type="Object"/>
</Attribute>
<Attribute Name="PrincipalProperties" ReadOnly="true">
<Documentation>
<UserDocu>Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
</Documentation>
<Parameter Name="PrincipalProperties" Type="Dict"/>
</Attribute>
@@ -540,7 +539,5 @@ coordinate system.</UserDocu>
</Documentation>
<Parameter Name="Continuity" Type="String"/>
</Attribute>
<ClassDeclarations>
</ClassDeclarations>
</PythonExport>
</GenerateModel>

View File

@@ -123,7 +123,7 @@ validate()
curveOnSurface(Edge) -> (curve, min, max) or None
--
If this curve exists then a tuple of curve and parameter range is returned.
Returns None if this curve does not exist.
Returns None if this curve does not exist.
</UserDocu>
</Documentation>
</Methode>
@@ -204,22 +204,22 @@ coordinate system.</UserDocu>
<Attribute Name="StaticMoments" ReadOnly="true">
<Documentation>
<UserDocu>Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
</Documentation>
<Parameter Name="StaticMoments" Type="Object"/>
</Attribute>
<Attribute Name="PrincipalProperties" ReadOnly="true">
<Documentation>
<UserDocu>Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
</Documentation>
<Parameter Name="PrincipalProperties" Type="Dict"/>
</Attribute>

View File

@@ -109,7 +109,7 @@ importBinary(filename)</UserDocu>
<UserDocu>Load the shape from a string that keeps the content in BREP format.
importBrepFromString(string, [displayProgressBar=True])
--
importBrepFromString(str,False) to not display a progress bar.
importBrepFromString(str, False) to not display a progress bar.
</UserDocu>
</Documentation>
</Methode>
@@ -311,11 +311,11 @@ sewShape()
<UserDocu>Return a list of sub-shapes that are direct children of this shape.
childShapes([cumOri=True, cumLoc=True]) -> list
--
* If cumOri is true, the function composes all
sub-shapes with the orientation of this shape.
* If cumLoc is true, the function multiplies all
sub-shapes by the location of this shape, i.e. it applies to
each sub-shape the transformation that is associated with this shape.
* If cumOri is true, the function composes all
sub-shapes with the orientation of this shape.
* If cumLoc is true, the function multiplies all
sub-shapes by the location of this shape, i.e. it applies to
each sub-shape the transformation that is associated with this shape.
</UserDocu>
</Documentation>
</Methode>
@@ -368,7 +368,7 @@ underlying geometry then use the methods translate or rotate.
<Methode Name="transformShape">
<Documentation>
<UserDocu>Apply transformation on a shape without changing the underlying geometry.
transformShape(Matrix,[boolean copy=False, checkScale=False]) -> None
transformShape(Matrix, [boolean copy=False, checkScale=False]) -> None
--
If checkScale is True, it will use transformGeometry if non-uniform
scaling is detected.</UserDocu>
@@ -397,49 +397,49 @@ translated(vector) -> shape
</Methode>
<Methode Name="rotate">
<Documentation>
<UserDocu>Apply the rotation (base,dir,degree) to the current location of this shape
rotate(base,dir,degree)
<UserDocu>Apply the rotation (base, dir, degree) to the current location of this shape
rotate(base, dir, degree)
--
Shp.rotate(App.Vector(0,0,0),App.Vector(0,0,1),180) - rotate the shape around the Z Axis 180 degrees.
Shp.rotate(App.Vector(0,0,0), App.Vector(0,0,1), 180) - rotate the shape around the Z Axis 180 degrees.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="rotated" Const="true">
<Documentation>
<UserDocu>Create a new shape with rotation.
rotated(base,dir,degree) -> shape
rotated(base, dir, degree) -> shape
</UserDocu>
</Documentation>
</Methode>
<Methode Name="scale">
<Documentation>
<UserDocu>Apply scaling with point and factor to this shape.
scale(factor,[base=App.Vector(0,0,0)])
scale(factor, [base=App.Vector(0,0,0)])
</UserDocu>
</Documentation>
</Methode>
<Methode Name="scaled" Const="true">
<Documentation>
<UserDocu>Create a new shape with scale.
scaled(factor,[base=App.Vector(0,0,0)]) -> shape
scaled(factor, [base=App.Vector(0,0,0)]) -> shape
</UserDocu>
</Documentation>
</Methode>
<Methode Name="makeFillet" Const="true">
<Documentation>
<UserDocu>Make fillet.
makeFillet(radius,edgeList) -> Shape
makeFillet(radius, edgeList) -> Shape
or
makeFillet(radius1,radius2,edgeList) -> Shape
makeFillet(radius1, radius2, edgeList) -> Shape
</UserDocu>
</Documentation>
</Methode>
<Methode Name="makeChamfer" Const="true">
<Documentation>
<UserDocu>Make chamfer.
makeChamfer(radius,edgeList) -> Shape
makeChamfer(radius, edgeList) -> Shape
or
makeChamfer(radius1,radius2,edgeList) -> Shape</UserDocu>
makeChamfer(radius1, radius2, edgeList) -> Shape</UserDocu>
</Documentation>
</Methode>
<Methode Name="makeThickness" Const="true">
@@ -454,14 +454,12 @@ the hollowed solid, their thickness defined at the time of construction.</UserDo
</Methode>
<Methode Name="makeOffsetShape" Const="true" Keyword="true">
<Documentation>
<UserDocu>makes an offset shape (3d offsetting).
makeOffsetShape(offset, tolerance, [inter = False, self_inter = False,
offsetMode = 0, join = 0, fill = False]) -> Shape
<UserDocu>Makes an offset shape (3d offsetting).
makeOffsetShape(offset, tolerance, [inter=False, self_inter=False, offsetMode=0, join=0, fill=False]) -> Shape
--
The function supports keyword arguments.
* offset: distance to expand the shape by. Negative value will shrink the
shape.
* offset: distance to expand the shape by. Negative value will shrink the shape.
* tolerance: precision of approximation.
@@ -481,18 +479,15 @@ Returns: result of offsetting.</UserDocu>
</Methode>
<Methode Name="makeOffset2D" Const="true" Keyword="true">
<Documentation>
<UserDocu>makes an offset shape (2d offsetting).
makeOffset2D(offset, [join = 0, fill = False, openResult = false, intersection =
false]) -> Shape
<UserDocu>Makes an offset shape (2d offsetting).
makeOffset2D(offset, [join=0, fill=False, openResult=False, intersection=False]) -> Shape
--
The function supports keyword
arguments. Input shape (self) can be edge, wire, face, or a compound of those.
The function supports keyword arguments.
Input shape (self) can be edge, wire, face, or a compound of those.
* offset: distance to expand the shape by. Negative value will shrink the
shape.
* offset: distance to expand the shape by. Negative value will shrink the shape.
* join: method of offsetting non-tangent joints. 0 = arcs, 1 = tangent, 2 =
intersection
* join: method of offsetting non-tangent joints. 0 = arcs, 1 = tangent, 2 = intersection
* fill: if true, the output is a face filling the space covered by offset. If
false, the output is a wire.
@@ -518,7 +513,7 @@ structure follows that of source shape.</UserDocu>
</Methode>
<Methode Name="makeWires" Const="true">
<Documentation>
<UserDocu>make wire(s) using the edges of this shape
<UserDocu>Make wire(s) using the edges of this shape
makeWires([op=None])
--
The function will sort any edges inside the current shape, and connect them
@@ -570,7 +565,7 @@ isClosed() -> bool
--
If the shape is a shell it returns True if it has no free boundaries (edges).
If the shape is a wire it returns True if it has no free ends (vertices).
(Internal and External sub-shepes are ignored in these checks)
(Internal and External sub-shapes are ignored in these checks)
If the shape is an edge it returns True if its vertices are the same.
</UserDocu>
</Documentation>
@@ -586,7 +581,7 @@ isPartner(shape) -> bool
<Methode Name="isSame" Const="true">
<Documentation>
<UserDocu>Checks if both shapes share the same geometry
and placement. Orientation may differ.
and placement. Orientation may differ.
isSame(shape) -> bool
</UserDocu>
</Documentation>
@@ -594,7 +589,7 @@ isSame(shape) -> bool
<Methode Name="isEqual" Const="true">
<Documentation>
<UserDocu>Checks if both shapes are equal.
This means geometry, placement and orientation are equal.
This means geometry, placement and orientation are equal.
isEqual(shape) -> bool
</UserDocu>
</Documentation>
@@ -628,7 +623,7 @@ isInfinite() -> bool
</Methode>
<Methode Name="findPlane" Const="true">
<Documentation>
<UserDocu>return a plane if the shape is planar
<UserDocu>Returns a plane if the shape is planar
findPlane(tol=None) -> Shape
</UserDocu>
</Documentation>
@@ -808,7 +803,7 @@ infos contains additional info on the solutions. It is a list of tuples:
params1, params2 are parameters of internal space of the elements. For
vertices, params is None. For edges, params is one float, u. For faces,
params is a tuple (u,v). </UserDocu>
params is a tuple (u,v).</UserDocu>
</Documentation>
</Methode>
<Methode Name="getElement" Const="true">
@@ -832,39 +827,39 @@ countElement(type) -> int
<Methode Name="mapSubElement">
<Documentation>
<UserDocu>
mapSubElement(shape|[shape...], op='') - maps the sub element of other shape
mapSubElement(shape|[shape...], op='') - maps the sub element of other shape
shape: other shape or sequence of shapes to map the sub-elements
op: optional string prefix to append before the mapped sub element names
shape: other shape or sequence of shapes to map the sub-elements
op: optional string prefix to append before the mapped sub element names
</UserDocu>
</Documentation>
</Methode>
<Methode Name="mapShapes">
<Documentation>
<UserDocu>
mapShapes(generated, modified, op='')
mapShapes(generated, modified, op='')
generate element names with user defined mapping
generate element names with user defined mapping
generated: a list of tuple(src, dst) that indicating src shape or shapes
generates dst shape or shapes. Note that the dst shape or shapes
must be sub-shapes of this shape.
modified: a list of tuple(src, dst) that indicating src shape or shapes
modifies into dst shape or shapes. Note that the dst shape or
shapes must be sub-shapes of this shape.
op: optional string prefix to append before the mapped sub element names
generated: a list of tuple(src, dst) that indicating src shape or shapes
generates dst shape or shapes. Note that the dst shape or shapes
must be sub-shapes of this shape.
modified: a list of tuple(src, dst) that indicating src shape or shapes
modifies into dst shape or shapes. Note that the dst shape or
shapes must be sub-shapes of this shape.
op: optional string prefix to append before the mapped sub element names
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getElementHistory" Const="true">
<Documentation>
<UserDocu>
getElementHistory(name) - returns the element mapped name history
getElementHistory(name) - returns the element mapped name history
name: mapped element name belonging to this shape
name: mapped element name belonging to this shape
Returns tuple(sourceShapeTag, sourceName, [intermediateNames...]),
or None if no history.
Returns tuple(sourceShapeTag, sourceName, [intermediateNames...]),
or None if no history.
</UserDocu>
</Documentation>
</Methode>
@@ -962,44 +957,44 @@ optimalBoundingBox([useTriangulation = True, useShapeTolerance = False]) -> boun
<Methode Name="findSubShape" Const="true">
<Documentation>
<UserDocu>
findSubShape(shape) -> (type_name, index)
findSubShape(shape) -> (type_name, index)
Find sub shape and return the shape type name and index. If not found,
then return (None, 0)
Find sub shape and return the shape type name and index. If not found,
then return (None, 0)
</UserDocu>
</Documentation>
</Methode>
<Methode Name="findSubShapesWithSharedVertex" Const="true" Keyword="true">
<Documentation>
<UserDocu>
findSubShapesWithSharedVertex(shape, needName=False, checkGeometry=True, tol=1e-7, atol=1e-12) -> Shape
findSubShapesWithSharedVertex(shape, needName=False, checkGeometry=True, tol=1e-7, atol=1e-12) -> Shape
shape: input elementary shape, currently only support Face, Edge, or Vertex
shape: input elementary shape, currently only support Face, Edge, or Vertex
needName: if True, return a list of tuple(name, shape), or else return a list
of shapes.
needName: if True, return a list of tuple(name, shape), or else return a list
of shapes.
checkGeometry: whether to compare geometry
checkGeometry: whether to compare geometry
tol: distance tolerance
tol: distance tolerance
atol: angular tolerance
atol: angular tolerance
Search sub shape by checking vertex coordinates and comparing the underlying
geometries, This can find shapes that are copied. It currently only works with
elementary shapes, Face, Edge, Vertex.
Search sub shape by checking vertex coordinates and comparing the underlying
geometries, This can find shapes that are copied. It currently only works with
elementary shapes, Face, Edge, Vertex.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getChildShapes" Const="true">
<Documentation>
<UserDocu>
getChildShapes(shapetype, avoidtype='') -> list(Shape)
getChildShapes(shapetype, avoidtype='') -> list(Shape)
Return a list of child sub-shapes of given type.
Return a list of child sub-shapes of given type.
shapetype: the type of requesting sub shapes
avoidtype: optional shape type to skip when exploring
shapetype: the type of requesting sub shapes
avoidtype: optional shape type to skip when exploring
</UserDocu>
</Documentation>
</Methode>

View File

@@ -81,22 +81,22 @@ coordinate system.</UserDocu>
<Attribute Name="StaticMoments" ReadOnly="true">
<Documentation>
<UserDocu>Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
</Documentation>
<Parameter Name="StaticMoments" Type="Object"/>
</Attribute>
<Attribute Name="PrincipalProperties" ReadOnly="true">
<Documentation>
<UserDocu>Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
</Documentation>
<Parameter Name="PrincipalProperties" Type="Dict"/>
</Attribute>

View File

@@ -18,7 +18,7 @@
<Documentation>
<UserDocu>Returns the mass of the current system.</UserDocu>
</Documentation>
<Parameter Name="Mass" Type="Object"/>
<Parameter Name="Mass" Type="Float"/>
</Attribute>
<Attribute Name="CenterOfMass" ReadOnly="true">
<Documentation>
@@ -53,22 +53,22 @@ coordinate system.</UserDocu>
<Attribute Name="StaticMoments" ReadOnly="true">
<Documentation>
<UserDocu>Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
</Documentation>
<Parameter Name="StaticMoments" Type="Object"/>
</Attribute>
<Attribute Name="PrincipalProperties" ReadOnly="true">
<Documentation>
<UserDocu>Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
</Documentation>
<Parameter Name="PrincipalProperties" Type="Dict"/>
</Attribute>

View File

@@ -100,7 +100,7 @@ int TopoShapeSolidPy::PyInit(PyObject* args, PyObject* /*kwd*/)
return 0;
}
Py::Object TopoShapeSolidPy::getMass() const
Py::Float TopoShapeSolidPy::getMass() const
{
GProp_GProps props;
BRepGProp::VolumeProperties(getTopoShapePtr()->getShape(), props);

View File

@@ -151,22 +151,22 @@ coordinate system.</UserDocu>
<Attribute Name="StaticMoments" ReadOnly="true">
<Documentation>
<UserDocu>Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.</UserDocu>
</Documentation>
<Parameter Name="StaticMoments" Type="Object"/>
</Attribute>
<Attribute Name="PrincipalProperties" ReadOnly="true">
<Documentation>
<UserDocu>Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.</UserDocu>
</Documentation>
<Parameter Name="PrincipalProperties" Type="Dict"/>
</Attribute>