Commit Graph

10868 Commits

Author SHA1 Message Date
wmayer
ffa88e559b do not make property read-only in property editor 2017-04-17 16:20:44 +02:00
wmayer
6a71dd23d3 fix edit mode of view provider 2017-04-17 16:20:44 +02:00
wmayer
39f433a410 choose more comprehensive class and file names 2017-04-17 16:20:44 +02:00
wmayer
4b25a0febc polish filling feature 2017-04-17 16:20:44 +02:00
wmayer
a5452e9363 polish sewing feature 2017-04-17 16:20:44 +02:00
wmayer
1fd27d18df port Surface module to v0.17 2017-04-17 16:20:44 +02:00
wmayer
e29636a88d + fix bugs in edge checking 2017-04-17 16:20:44 +02:00
wmayer
a303b76334 + fix design flaw to reduce side effects 2017-04-17 16:20:44 +02:00
wmayer
88b15392eb + move FillType.h to App folder 2017-04-17 16:20:44 +02:00
wmayer
d3ac517146 + make surface module compile with v0.17 and occ 7 2017-04-17 16:20:44 +02:00
wmayer
7706124df7 + use PyCXX for module initialization 2017-04-17 16:20:44 +02:00
wmayer
6bf1dc8144 + delete superfluous files 2017-04-17 16:20:44 +02:00
balazs-bamer
a8adbaa125 Fix: edges of a solid can be used as surface input
Edges of a solid can be used as surface input. The real subName is
passed instead of the constant 'Edge1'
2017-04-17 16:20:44 +02:00
balazs-bamer
307105f1ab Curve validation is done in a common ancestor of App and GUI
Curve validation is done in a common ancestor class of Surface::BSurf
and SurfaceGui::CmdSurfaceBSurf
2017-04-17 16:20:44 +02:00
balazs-bamer
d980889b3a Check for null shape before calling ShapeType
Check for null shape before calling ShapeType
2017-04-17 16:20:44 +02:00
balazs-bamer
e681dc3771 Unhide surface props and set the filltype to read-only in data tab
I made the surface property (FillType and boundary) default again.
Status bit 2 is set on fill type to hide it in data tab.
2017-04-17 16:20:44 +02:00
balazs-bamer
0af6fc0894 allow wires as surface input
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
2017-04-17 16:20:44 +02:00
balazs-bamer
724fa4fe4e try to convert non-b-splines into b-splines; further parameter check
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.
2017-04-17 16:20:44 +02:00
balazs-bamer
05335359ea Surface properties are hidden
Surface properties are now hidden. Read-only made creation
2017-04-17 16:20:44 +02:00
balazs-bamer
d3fb21f93b PropertyEnumerator for fill type
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
2017-04-17 16:20:44 +02:00
balazs-bamer
2d5119c266 Corrected feature property names
aBList -> BoundaryList
filltype -> FillType
2017-04-17 16:20:44 +02:00
balazs-bamer
d8e48f3a92 Surface icon in the object tree
Bezier- and b-spline surfaces now have a surface icon in the tree.
2017-04-17 16:20:44 +02:00
balazs-bamer
7c95f25abf Warning for surfaces with 2 edges only
If the user creates a surface from 2 edges, a warning dialog appears.
Some refactoring in Command.cpp to make it simpler.
2017-04-17 16:20:44 +02:00
balazs-bamer
76c357ad70 Cancelling the just created surface deletes it
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.
2017-04-17 16:20:44 +02:00
balazs-bamer
29eed4a3f6 Unified UI for Bezier and b-spline surfaces
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.
2017-04-17 16:20:44 +02:00
balazs-bamer
8aeb5ae971 Cancel by fill type edit did not work
After clicking Apply the old fill type was overwritten and canceling the
whole edit did not revert the fill type into the original value.
2017-04-17 16:20:44 +02:00
blobfish
1920b407ee use taskbox in taskdialog 2017-04-17 16:20:44 +02:00
blobfish
e83189b9bf header clean up 2017-04-17 16:20:44 +02:00
blobfish
4372355e4c createFace function signature 2017-04-17 16:20:44 +02:00
blobfish
17946ce033 task widget based from qwidget instead of qdialog 2017-04-17 16:20:44 +02:00
blobfish
9d1dc7d23e task flow
synchronize fill types on setEdit
    finishing up command
    make activate for commands similar
    don't call execute directly
    remove unneeded update calls
2017-04-17 16:20:44 +02:00
blobfish
64bc5abe30 class hierarchy and macros 2017-04-17 16:20:44 +02:00
balazs-bamer
d5a999447e Dialog with radio buttons for choosing Bezier and b-spline surface fill type
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.
2017-04-17 16:20:44 +02:00
balazs-bamer
486578e5b3 diagnostics
Some diagnostics to let me see what happens
2017-04-17 16:20:44 +02:00
balazs-bamer
405fa9c39a One more experiment
No success yet
2017-04-17 16:20:44 +02:00
balazs-bamer
0c76e1f1e1 One step towards the dialog
Problem registering the own ViewProvider
2017-04-17 16:20:44 +02:00
balazs-bamer
90ad7e3470 Next try for showing dialog
Does not work yet.
2017-04-17 16:20:44 +02:00
balazs-bamer
65bd9da6d2 fill type radio buttons - incomplete
I tried to implement a dialog with fill type radio buttons, but no
success yet.
2017-04-17 16:20:44 +02:00
balazs-bamer
328d525a82 Bezier and B spline cleanup, fixed B spline error
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).
2017-04-17 16:20:44 +02:00
balazs-bamer
c85368bfc0 B-spline surface operation enabled
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.
2017-04-17 16:20:44 +02:00
balazs-bamer
37406a968e Bezier surface: check selected objects
As the GUI selection changes, the Bezier surface tool avaibility is
always updated, so it is active if and only if 2-4 Bezier curves are
selected.
2017-04-17 16:20:44 +02:00
balazs-bamer
1311d5cf2c cleanup: fill type into superclass
Fill type translation gets into superclass BSurf
2017-04-17 16:20:44 +02:00
balazs-bamer
1fb63c097e Refactor and cleanup: FeatureBezSurf
Refactored and cleaned up code for FeatureBezSurf and created a new
common ancestor class for this and FeatureBSplineSurf.
2017-04-17 16:20:44 +02:00
balazs-bamer
186bd33585 WMayer's fix: subshape copy
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.
2017-04-17 16:20:44 +02:00
balazs-bamer
14014bc61a Fix build failures on Windows by WMayer
Patch request from WMayer to fix build failures on Windows.
2017-04-17 16:20:44 +02:00
balazs-bamer
00f245efdd Transformed Bezier curves work now
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.
2017-04-17 16:20:44 +02:00
balazs-bamer
66e44578f5 Specify edge name correctly
PropertyLinkSubList does not work without a correctly specified edge name.

Signed-off-by: balazs-bamer <kolaloka@freemail.hu>
2017-04-17 16:20:44 +02:00
balazs-bamer
4f96fa2300 Let the Surface workbench appear and try to create a Bezier surface
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>
2017-04-17 16:20:44 +02:00
NateAM
6f4e3acce4 Added Surface module
I have added Nate's SurfaceTools module with the name changed to Surface in all files and filenames.
2017-04-17 16:20:44 +02:00
wmayer
6b26fa6ca7 fix segmentation fault in TaskFeaturePick::makeCopy 2017-04-17 11:07:54 +02:00