Commit Graph

31 Commits

Author SHA1 Message Date
wmayer
389f014091 Initial task panel for filling function 2017-04-22 11:12:13 +02:00
wmayer
79c762f535 rename task panel class to be conform with the feature class 2017-04-21 19:30:03 +02:00
wmayer
6f4131bece project polyline on mesh and create edge 2017-04-19 23:30:15 +02:00
wmayer
ceb519b737 fix unused variable warnings 2017-04-17 16:20:44 +02:00
wmayer
39d3fc2b69 rename SurfaceFeature to GeomFillSurface 2017-04-17 16:20:44 +02:00
wmayer
c7130b568c move handling of Bezier and BSpline surface creation into a common class to increase flexibility 2017-04-17 16:20:44 +02:00
wmayer
e106d8fede improve usability of surface function 2017-04-17 16:20:44 +02:00
wmayer
e9225fa12a choose more comprehensive class and file names 2017-04-17 16:20:44 +02:00
wmayer
01c193f74b + fix bugs in edge checking 2017-04-17 16:20:44 +02:00
wmayer
c02c90adb2 + fix design flaw to reduce side effects 2017-04-17 16:20:44 +02:00
wmayer
3bbedb1fd2 + make surface module compile with v0.17 and occ 7 2017-04-17 16:20:44 +02:00
balazs-bamer
bb6620aa85 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
dd6775e0f2 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
e47e22e395 Check for null shape before calling ShapeType
Check for null shape before calling ShapeType
2017-04-17 16:20:44 +02:00
balazs-bamer
ef27ba2c8a 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
4e2eede777 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
972e024174 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
901ff4a211 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
f47dbb54da 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
512671b1e2 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
blobfish
2ff65140e1 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
balazs-bamer
254aa167e4 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
06645251ad diagnostics
Some diagnostics to let me see what happens
2017-04-17 16:20:44 +02:00
balazs-bamer
c88fe0edc0 One more experiment
No success yet
2017-04-17 16:20:44 +02:00
balazs-bamer
7a28d5de8b 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
1037cce62f 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
f85011c869 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
8b7a661cf6 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
16eb3f74eb 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
d3e12636b0 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
59fe379f5a 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