Commit Graph

46 Commits

Author SHA1 Message Date
wmayer
11d570103c Extend task panel for filling function 2017-04-24 11:12:12 +02:00
wmayer
2e6345dbba Extend task panel for filling function 2017-04-22 14:46:26 +02:00
wmayer
389f014091 Initial task panel for filling function 2017-04-22 11:12:13 +02:00
Peter Lama
fa4bebf2e0 Use OCCT Handle macro for Handle_ classes
This is the result of running OCCT's upgrade script provided
with OCCT 7.0. See
https://www.opencascade.com/content/freecad-occt710-and-windows-rtti-data-missing#comment-form
and
https://www.forum.freecadweb.org/viewtopic.php?f=4&t=21405&start=120#p169019
for why this is necessary for OCCT >= 7.1
2017-04-20 12:27:34 +02:00
wmayer
39d3fc2b69 rename SurfaceFeature to GeomFillSurface 2017-04-17 16:20:44 +02:00
wmayer
00a60a6b5b remove superfluous classes BezierSurface and BSplineSurface 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
b697fed9f0 improve undo/redo handling 2017-04-17 16:20:44 +02:00
wmayer
92393cfbfc remove superfluous FillType enum 2017-04-17 16:20:44 +02:00
wmayer
cda9eddc8c do not make property read-only in property editor 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
29cfb5a555 polish filling feature 2017-04-17 16:20:44 +02:00
wmayer
1005c5c765 polish sewing feature 2017-04-17 16:20:44 +02:00
wmayer
632c6e33db port Surface module to v0.17 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
cb434e517b + move FillType.h to App folder 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
wmayer
2b3c1595db + use PyCXX for module initialization 2017-04-17 16:20:44 +02:00
wmayer
40c5fef1d0 + delete superfluous files 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
073749e931 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
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
85c3aa10c1 Surface properties are hidden
Surface properties are now hidden. Read-only made creation
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
3d70ef9ab7 Corrected feature property names
aBList -> BoundaryList
filltype -> FillType
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
blobfish
ab37648977 header clean up 2017-04-17 16:20:44 +02:00
blobfish
7ae5dbde01 createFace function signature 2017-04-17 16:20:44 +02:00
blobfish
9a11431b73 class hierarchy and macros 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
6d35abbf74 One step towards the dialog
Problem registering the own ViewProvider
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
7b090bcc5e 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
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
fbef2d7ced cleanup: fill type into superclass
Fill type translation gets into superclass BSurf
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
6461e94467 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
7aad0598a9 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
8bbec39c70 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
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