Now an arbitrary mixture of edges and wires can be used as input.
However, the total count of edges together with the wire members
can only be 2, 3 or 4.
For some reason, wires do not work in Python script:
test1.BoundaryList = [(Draft.upgrade([bs1a, bs2a]), 'Wire1')]
yields an empty BoundaryList
Non b-spline curves are converted into b-splines if possible.
This means circles, lines etc are allowed.
Further parameter checks prohibiting surfaces being accepted as input.
Fill type is now of type PropertyEnumerator, allowing enumerated names
in the Data tab. However, it has 2 problems:
1. Invalid shows up
2. The user has the illusion to see the result after changing the value.
However, the result gets updated only
Now if the user creates a surface, the cancel in the widget deletes it.
If an already existing one is opened for editing, cancel rejects the
user change in fill type, but the surface remains.
I have unified the user interface for Bezier and b-spline surfaces.
Based on the selection contents the CmdSurfaceBSurf::isActive method
determines which one can be created, and marks it for the activate
method.
For any sort of inappropriate selection contents, including foreign
shapes or mixture of Bezier and b-spline curves, the tool remains
disabled.
A regular common dialog with apply, cancel and OK buttons allowing
surface fill type selection for Bezier and b-spline surfaces.
The Bezier and b-spline surface functionality now seems to be complete.
I have made further cleanup in Bezier and B spline surface code, and
corrected the bug in face creation for B splines (Nate has also written
that that was incomplete).
I have converted Nate's b-spline generation to use my superclass
FeatureBSurf and added it to the GUI. Other half-ready operations as
filling and cut are commented out.
Missing:
- the fill type must be queried from the user. The data panel lets it
modify, but it is not user-friendly.
- b-spline surface is generated, but it covers only a fraction of the
supporting curves. It may lie on OCC error.
The subshape is copied to prevent the wire tool from modifying it. This
lets the user modify any supporting Bezier curves and the Bezier surface
will follow them.
One gets the curve and the location from the healed wire. However, the
curve has the original coordinates, the transformation the user used to
obtain it need to be applied before adding it to the surface builder.
Modifications for:
- let the surface workbench appear
- use only one Surface menu and toolbar instead of two separate ones
- create a Bezier surface using 2..4 Bezier curves (does not work yet)
- use enums for fill type
Signed-off-by: balazs-bamer <kolaloka@freemail.hu>