mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-01-03 21:30:35 +05:00
Fix for bug Bug IPAL20288 (4x: CRASH after trying to build a sketch).
This commit is contained in:
parent
81fdd49b0f
commit
e8f00b5087
@ -648,13 +648,12 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSplineInterpolation
|
|||||||
* MakeSketcher
|
* MakeSketcher
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher
|
Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher (const char* theCommand,
|
||||||
(const TCollection_AsciiString& theCommand,
|
|
||||||
list<double> theWorkingPlane)
|
list<double> theWorkingPlane)
|
||||||
{
|
{
|
||||||
SetErrorCode(KO);
|
SetErrorCode(KO);
|
||||||
|
|
||||||
if (theCommand.IsEmpty()) return NULL;
|
if (!theCommand || strcmp(theCommand, "") == 0) return NULL;
|
||||||
|
|
||||||
//Add a new Sketcher object
|
//Add a new Sketcher object
|
||||||
Handle(GEOM_Object) aSketcher = GetEngine()->AddObject(GetDocID(), GEOM_SKETCHER);
|
Handle(GEOM_Object) aSketcher = GetEngine()->AddObject(GetDocID(), GEOM_SKETCHER);
|
||||||
@ -669,7 +668,8 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher
|
|||||||
|
|
||||||
GEOMImpl_ISketcher aCI (aFunction);
|
GEOMImpl_ISketcher aCI (aFunction);
|
||||||
|
|
||||||
aCI.SetCommand(theCommand);
|
TCollection_AsciiString aCommand((char*) theCommand);
|
||||||
|
aCI.SetCommand(aCommand);
|
||||||
|
|
||||||
int ind = 1;
|
int ind = 1;
|
||||||
list<double>::iterator it = theWorkingPlane.begin();
|
list<double>::iterator it = theWorkingPlane.begin();
|
||||||
@ -694,7 +694,7 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher
|
|||||||
|
|
||||||
//Make a Python command
|
//Make a Python command
|
||||||
GEOM::TPythonDump pd (aFunction);
|
GEOM::TPythonDump pd (aFunction);
|
||||||
pd << aSketcher << " = geompy.MakeSketcher(\"" << theCommand.ToCString() << "\", [";
|
pd << aSketcher << " = geompy.MakeSketcher(\"" << aCommand.ToCString() << "\", [";
|
||||||
|
|
||||||
it = theWorkingPlane.begin();
|
it = theWorkingPlane.begin();
|
||||||
pd << (*it++);
|
pd << (*it++);
|
||||||
@ -713,12 +713,12 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher
|
|||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcherOnPlane
|
Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcherOnPlane
|
||||||
(const TCollection_AsciiString& theCommand,
|
(const char* theCommand,
|
||||||
Handle(GEOM_Object) theWorkingPlane)
|
Handle(GEOM_Object) theWorkingPlane)
|
||||||
{
|
{
|
||||||
SetErrorCode(KO);
|
SetErrorCode(KO);
|
||||||
|
|
||||||
if (theCommand.IsEmpty()) return NULL;
|
if (!theCommand || strcmp(theCommand, "") == 0) return NULL;
|
||||||
|
|
||||||
//Add a new Sketcher object
|
//Add a new Sketcher object
|
||||||
Handle(GEOM_Object) aSketcher = GetEngine()->AddObject(GetDocID(), GEOM_SKETCHER);
|
Handle(GEOM_Object) aSketcher = GetEngine()->AddObject(GetDocID(), GEOM_SKETCHER);
|
||||||
@ -732,7 +732,9 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcherOnPlane
|
|||||||
if (aFunction->GetDriverGUID() != GEOMImpl_SketcherDriver::GetID()) return NULL;
|
if (aFunction->GetDriverGUID() != GEOMImpl_SketcherDriver::GetID()) return NULL;
|
||||||
|
|
||||||
GEOMImpl_ISketcher aCI (aFunction);
|
GEOMImpl_ISketcher aCI (aFunction);
|
||||||
aCI.SetCommand(theCommand);
|
|
||||||
|
TCollection_AsciiString aCommand((char*) theCommand);
|
||||||
|
aCI.SetCommand(aCommand);
|
||||||
|
|
||||||
Handle(GEOM_Function) aRefPlane = theWorkingPlane->GetLastFunction();
|
Handle(GEOM_Function) aRefPlane = theWorkingPlane->GetLastFunction();
|
||||||
if (aRefPlane.IsNull()) return NULL;
|
if (aRefPlane.IsNull()) return NULL;
|
||||||
@ -756,7 +758,7 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcherOnPlane
|
|||||||
|
|
||||||
//Make a Python command
|
//Make a Python command
|
||||||
GEOM::TPythonDump (aFunction) << aSketcher << " = geompy.MakeSketcherOnPlane(\""
|
GEOM::TPythonDump (aFunction) << aSketcher << " = geompy.MakeSketcherOnPlane(\""
|
||||||
<< theCommand.ToCString() << "\", " << theWorkingPlane << " )";
|
<< aCommand.ToCString() << "\", " << theWorkingPlane << " )";
|
||||||
|
|
||||||
SetErrorCode(OK);
|
SetErrorCode(OK);
|
||||||
return aSketcher;
|
return aSketcher;
|
||||||
|
@ -63,9 +63,9 @@ class GEOMImpl_ICurvesOperations : public GEOM_IOperations {
|
|||||||
Standard_EXPORT Handle(GEOM_Object) MakeSplineBezier (list<Handle(GEOM_Object)> thePoints);
|
Standard_EXPORT Handle(GEOM_Object) MakeSplineBezier (list<Handle(GEOM_Object)> thePoints);
|
||||||
Standard_EXPORT Handle(GEOM_Object) MakeSplineInterpolation (list<Handle(GEOM_Object)> thePoints);
|
Standard_EXPORT Handle(GEOM_Object) MakeSplineInterpolation (list<Handle(GEOM_Object)> thePoints);
|
||||||
|
|
||||||
Standard_EXPORT Handle(GEOM_Object) MakeSketcher (const TCollection_AsciiString& theCommand,
|
Standard_EXPORT Handle(GEOM_Object) MakeSketcher (const char* theCommand,
|
||||||
list<double> theWorkingPlane);
|
list<double> theWorkingPlane);
|
||||||
Standard_EXPORT Handle(GEOM_Object) MakeSketcherOnPlane (const TCollection_AsciiString& theCommand,
|
Standard_EXPORT Handle(GEOM_Object) MakeSketcherOnPlane (const char* theCommand,
|
||||||
Handle(GEOM_Object) theWorkingPlane);
|
Handle(GEOM_Object) theWorkingPlane);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -400,7 +400,7 @@ GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeSketcher
|
|||||||
|
|
||||||
// Make Sketcher
|
// Make Sketcher
|
||||||
Handle(GEOM_Object) anObject =
|
Handle(GEOM_Object) anObject =
|
||||||
GetOperations()->MakeSketcher((char*)theCommand, aWorkingPlane);
|
GetOperations()->MakeSketcher(theCommand, aWorkingPlane);
|
||||||
if (!GetOperations()->IsDone() || anObject.IsNull())
|
if (!GetOperations()->IsDone() || anObject.IsNull())
|
||||||
return GEOM::GEOM_Object::_nil();
|
return GEOM::GEOM_Object::_nil();
|
||||||
|
|
||||||
@ -424,7 +424,7 @@ GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeSketcherOnPlane
|
|||||||
|
|
||||||
// Make Sketcher
|
// Make Sketcher
|
||||||
Handle(GEOM_Object) anObject =
|
Handle(GEOM_Object) anObject =
|
||||||
GetOperations()->MakeSketcherOnPlane((char*)theCommand, aWorkingPlane);
|
GetOperations()->MakeSketcherOnPlane(theCommand, aWorkingPlane);
|
||||||
if (!GetOperations()->IsDone() || anObject.IsNull())
|
if (!GetOperations()->IsDone() || anObject.IsNull())
|
||||||
return GEOM::GEOM_Object::_nil();
|
return GEOM::GEOM_Object::_nil();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user