DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0028003

Cannot revolve a face with a straight B-spline edge lying on axis of revolution

CommunityOCCT:Modeling Algorithmsclosed4 public notes

Search issues

Description

It is not possible to revolve a face if one of its edges is a straight B-spline edge that lies on the axis of revolution.
If the B-spline is replaced by a line, the revolution is possible.

It is understandable that there are problems if a B-spline is very close to or intersecting the axis of revolution but shouldn't the case when all control points of the spline lie on the axis be supported?

Steps to reproduce

restore Attachment 2 (BREP) s
whatis s
vinit
vdisplay s
checkshape s
revol r s 0 0 0 0 0 1 360
#=> works

whatis r
checkshape r
vdisplay r

restore Attachment 3 (BREP) s
whatis s
vclear
vdisplay s
checkshape s
revol r s 0 0 0 0 0 1 360
#=> An exception was caught [revision removed] : Standard_ConstructionError: Adaptor3d_SurfaceOfRevolution : Axe and meridian are confused
#** Exception ** [revision removed] : Standard_ConstructionError: Adaptor3d_SurfaceOfRevolution : Axe and meridian are confused

Public activity

4 archived notes

Participants are labeled by their role within this record.

01Commenter 3
If the following lines are removed from GeomAdaptor_SurfaceOfRevolution::Load(const gp_Ax1& V), the operation works:

if ( Ratio >= 100 ) {
      Standard_ConstructionError::Raise("Adaptor3d_SurfaceOfRevolution : Axe and meridian are confused");
    }
Ox = ( (Oz^gp_Vec(PP.XYZ()-O.XYZ()))^Oz);

The result is a valid solid according to checkshape. However, it has an edge lying on the axis and bopcheck complains about the self-intersection between the edge on axis and the plane. See "Attachment 1 (PNG)". If the input shape has a line instead of a spline lying on the axis, the resulting solid does not have an edge on the aixs.

02Commenter 2
This bug is fixed with #0028326.
03Commenter 3
Dear Commenter 1, please test if it is reproduced.
04Commenter 4
Dear Commenter 1,
problem described in issue is not reproduced on current state of OCCT.
Problem was fixed with #0028326.
Test was created with #0028326.

Related records