View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0030003 | Open CASCADE | OCCT:Modeling Algorithms | public | 2018-07-31 16:22 | 2020-12-02 17:11 |
Reporter | Assigned To | bugmaster | |||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Platform | Windows | OS | VC++ 2013 | ||
Product Version | 7.3.0 | ||||
Target Version | 7.5.0 | Fixed in Version | 7.5.0 | ||
Summary | 0030003: Modeling Algorithms, GeomFill_Pipe - construction of pipe by two circular sections and spine curve leads to crash | ||||
Description | The following simple code leads to an exception (Standard_ConstructionError) in GeomFill_NSections:TColgp_Array1OfPnt pathPoles(1, 3); pathPoles(1) = gp_Pnt(0.0, 0.0, 0.0); pathPoles(2) = gp_Pnt(100.0, 0.0, 0.0); pathPoles(3) = gp_Pnt(100.0, 100.0, 0.0); Handle(Geom_BezierCurve) path = new Geom_BezierCurve(pathPoles); Handle(Geom_Curve) c1 = GeomConvert::CurveToBSplineCurve( new Geom_Circle(gp_Ax2(gp::Origin(), gp::DX()), 10.0), Convert_Polynomial ); // Handle(Geom_Curve) c2 = GeomConvert::CurveToBSplineCurve( new Geom_Circle(gp_Ax2(gp::Origin(), gp::DX()), 20.0), Convert_Polynomial ); GeomFill_Pipe Pipe(path, c1, c2); // Error! Pipe.Perform(); There is a workaround for the issue which looks quite ugly but works (combug_02.png). The user can wrap each Geom_Circle with Geom_TrimmedCurve: Handle(Geom_Curve) c1 = GeomConvert::CurveToBSplineCurve( new Geom_TrimmedCurve(new Geom_Circle(gp_Ax2(gp::Origin(), gp::DX()), 10.0), 0, 2*M_PI), Convert_Polynomial ); // Handle(Geom_Curve) c2 = GeomConvert::CurveToBSplineCurve( new Geom_TrimmedCurve(new Geom_Circle(gp_Ax2(gp::Origin(), gp::DX()), 20.0), 0, 2*M_PI), Convert_Polynomial ); This hack makes the curves c1 and c2 non-periodic and prevents Pipe operator from failure. However, it looks very reasonable to be able to work with periodic profiles in Pipes without this sort of workarounds. Please, also see an important note just below. Note: ideally, GeomConvert::CurveToBSplineCurve() should not be called as GeomFill_Pipe converts section curves to splines internally. However, such internal conversion leads to another weird result: poor approximation of sections represented with rational curves (combug_03.png). Therefore, in the code above I used a polynomial approximation to avoid rationality. This is, again, weird, but that's likely a matter for another bug report. | ||||
Steps To Reproduce | test pipe bugs bug30003 | ||||
Tags | No tags attached. | ||||
Test case number | pipe/bugs/bug30003 | ||||
2018-07-31 16:22 developer |
combug_01.png (6,784 bytes) |
2018-07-31 16:22 developer |
combug_02.png (19,931 bytes) |
2018-07-31 16:22 developer |
combug_03.png (30,750 bytes) |
|
For processing. |
|
Branch CR30003 has been created by akaftasev. SHA-1: 4152b0f524582b810bc516cbdd7ee54ab8c66985 Detailed log of new commits: Author: akaftasev Date: Wed Sep 16 16:01:38 2020 +0300 0030003: Construction of pipe by two circular sections and spine curve leads to crash Added new check for periodic path and sections |
|
Branch CR30003 has been updated forcibly by akaftasev. SHA-1: 545ce7185e313f6d105b88285ea2de120cc1ac78 |
|
Branch CR30003 has been updated forcibly by akaftasev. SHA-1: beef2f3cc54bd00c809fefb05225b9943ba52272 |
|
Remarks: 1. GeomFill_NSections.hxx rename field of class "isPathPeriodic" to "myIsPathPeriodic". 2. GeomFill_Pipe.cxx line 729: comparisons may be incorrect, it is better Abs(deb - first) < aTol 3. New Draw command is redundant. Please use existing command "tuyau" for pipe and command "beziercurve" for building bezier curves. 4. Please create more test cases: for periodic path and V-periodic surface, for periodic path and non-V-periodic surface, ... |
|
Branch CR30003 has been updated forcibly by akaftasev. SHA-1: f35a55903ea999be4b85f60c7cec52c3b1ccbf83 |
|
Branch CR30003 has been updated forcibly by akaftasev. SHA-1: df71724a0955a5c3eadc1276216a864d6514f93f |
|
+ isPathPeriodic = thePathPeriodic; Please use initialization list instead of constructor body for initialization of class fields. - mySec = new (GeomFill_NSections) (SeqC,SeqP,deb,fin,first,last); + mySec = new (GeomFill_NSections) (SeqC, SeqP, deb, fin, first, last, isPathPeriodic); Please use common syntax "new GeomFill_NSections()" while changing these lines. +# Modeling Algorithms - Construction of pipe by two circular sections and spine curve leads to crash Please move bug description in test case to puts, to make it appear in HTML log, e.g.: -puts "OCC30003" +puts "0030003: Modeling Algorithms - Construction of pipe by two circular sections and spine curve leads to crash" Added new check for periodic path and sections Please put into commit description the location of the fix (e.g. which algorithms/classes have been affected). |
|
Branch CR30003 has been updated forcibly by ifv. SHA-1: 3bc06f08aaa41d62e7c45bde9685c429cc183685 |
|
Branch CR30003 has been updated by ifv. SHA-1: 46cd1367bded1aa61b8f194beed84e8f4313c03e Detailed log of new commits: Author: ifv Date: Mon Oct 26 17:03:31 2020 +0300 New version Author: ifv Date: Mon Oct 26 16:48:36 2020 +0300 Revert changes |
|
Branch CR30003 has been updated forcibly by ifv. SHA-1: 808b35214de5c7d99c502f42114b35060d02ac6c |
|
Branch CR30003 is ready for review, test result - CR30003-master-IFV Branches for integration: OCCT - CR30003 Products - not |
|
Reviewed. Branches for integration: OCCT - CR30003 Products - not |
|
Combination - OCCT branch : OCCT-750 master SHA - 5445eaeed56eb279c0ab00af552e614f1bbef9b6 a206de37fbfa0bf71bd534ae47192bbec23b8522 Products branch : OCCT-750 SHA - ebaa925ad092ce36a9743c12e5403ea978cb3417 was compiled on Linux, MacOS and Windows platforms and tested in optimize mode. Number of compiler warnings: No new/fixed warnings Regressions/Differences/Improvements: No regressions/differences CPU differences: Debian80-64: OCCT Total CPU difference: 17992.300000000254 / 17994.53000000008 [-0.01%] Products Total CPU difference: 12161.930000000115 / 12171.670000000115 [-0.08%] Windows-64-VC14: OCCT Total CPU difference: 19710.375 / 19728.265625 [-0.09%] Products Total CPU difference: 13569.53125 / 13538.390625 [+0.23%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR30003 has been deleted by inv. SHA-1: 808b35214de5c7d99c502f42114b35060d02ac6c |
occt: master 5445eaee 2020-09-16 13:01:38 Committer: bugmaster Details Diff |
0030003: Construction of pipe by two circular sections and spine curve leads to crash GeomFill_NSection.cxx : setting of UPeriodic flag while call constructor of BSpline surface is added bug3003 : Test cases added |
Affected Issues 0030003 |
|
mod - src/GeomFill/GeomFill_NSections.cxx | Diff File | ||
add - tests/pipe/bugs/bug30003 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-07-31 16:22 |
|
New Issue | |
2018-07-31 16:22 |
|
Assigned To | => msv |
2018-07-31 16:22 |
|
File Added: combug_01.png | |
2018-07-31 16:22 |
|
File Added: combug_02.png | |
2018-07-31 16:22 |
|
File Added: combug_03.png | |
2019-08-12 17:45 |
|
Target Version | 7.4.0 => 7.5.0 |
2020-06-26 16:25 |
|
Note Added: 0092771 | |
2020-06-26 16:25 |
|
Assigned To | msv => akaftasev |
2020-06-26 16:25 |
|
Status | new => assigned |
2020-09-15 17:19 |
|
Target Version | 7.5.0 => 7.6.0 |
2020-09-23 14:50 | git | Note Added: 0095240 | |
2020-09-23 15:53 | kgv | Summary | Construction of pipe by two circular sections and spine curve leads to crash => Modeling Algorithms - Construction of pipe by two circular sections and spine curve leads to crash |
2020-09-23 15:53 | kgv | Product Version | => 7.3.0 |
2020-09-23 15:54 | kgv | Description Updated | |
2020-09-24 12:49 | git | Note Added: 0095263 | |
2020-09-24 15:09 | git | Note Added: 0095268 | |
2020-09-24 15:14 | akaftasev | Assigned To | akaftasev => jgv |
2020-09-24 15:14 | akaftasev | Status | assigned => resolved |
2020-09-24 15:14 | akaftasev | Steps to Reproduce Updated | |
2020-10-05 15:17 |
|
Note Added: 0095729 | |
2020-10-05 15:17 |
|
Assigned To | jgv => akaftasev |
2020-10-05 15:17 |
|
Status | resolved => assigned |
2020-10-16 17:48 | git | Note Added: 0096014 | |
2020-10-16 17:49 | git | Note Added: 0096015 | |
2020-10-16 17:50 | akaftasev | Assigned To | akaftasev => jgv |
2020-10-16 17:50 | akaftasev | Status | assigned => resolved |
2020-10-16 17:50 | akaftasev | Steps to Reproduce Updated | |
2020-10-19 17:51 | kgv | Note Added: 0096061 | |
2020-10-19 17:52 | kgv | Assigned To | jgv => akaftasev |
2020-10-19 17:52 | kgv | Status | resolved => assigned |
2020-10-19 17:52 | kgv | Target Version | 7.6.0 => 7.5.0 |
2020-10-19 17:57 | kgv | Summary | Modeling Algorithms - Construction of pipe by two circular sections and spine curve leads to crash => Modeling Algorithms, GeomFill_Pipe - construction of pipe by two circular sections and spine curve leads to crash |
2020-10-26 10:25 |
|
Assigned To | akaftasev => ifv |
2020-10-26 10:35 |
|
Target Version | 7.5.0 => 7.6.0 |
2020-10-26 12:40 | git | Note Added: 0096266 | |
2020-10-26 17:00 | git | Note Added: 0096275 | |
2020-10-26 17:12 | git | Note Added: 0096276 | |
2020-10-26 17:57 |
|
Target Version | 7.6.0 => 7.5.0 |
2020-10-26 20:45 |
|
Steps to Reproduce Updated | |
2020-10-26 20:48 |
|
Note Added: 0096280 | |
2020-10-26 20:48 |
|
Assigned To | ifv => jgv |
2020-10-26 20:48 |
|
Status | assigned => resolved |
2020-10-27 11:36 |
|
Note Added: 0096291 | |
2020-10-27 11:36 |
|
Assigned To | jgv => bugmaster |
2020-10-27 11:36 |
|
Status | resolved => reviewed |
2020-10-28 16:59 | bugmaster | Note Added: 0096346 | |
2020-10-28 16:59 | bugmaster | Status | reviewed => tested |
2020-10-28 17:02 | bugmaster | Test case number | => pipe/bugs/bug30003 |
2020-10-31 12:54 | bugmaster | Changeset attached | => occt master 5445eaee |
2020-10-31 12:54 | bugmaster | Status | tested => verified |
2020-10-31 12:54 | bugmaster | Resolution | open => fixed |
2020-11-05 15:59 | git | Note Added: 0096554 | |
2020-12-02 16:22 |
|
Fixed in Version | => 7.5.0 |
2020-12-02 17:11 |
|
Status | verified => closed |