mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
20955d88da |
@@ -162,7 +162,7 @@ void APIHeaderSection_MakeHeader::Apply
|
||||
Handle(StepData_Protocol) stepro = Handle(StepData_Protocol)::DownCast
|
||||
( model->Protocol());
|
||||
if (!stepro.IsNull()) sch = new TCollection_HAsciiString
|
||||
(stepro->SchemaName(model));
|
||||
(stepro->SchemaName());
|
||||
if (!sch.IsNull()) schid->SetValue (1,sch);
|
||||
}
|
||||
header.AddItem(fs);
|
||||
|
@@ -151,8 +151,6 @@ bool STEPCAFControl_ConfigurationNode::Load(const Handle(DE_ConfigurationContext
|
||||
theResource->BooleanVal("write.props", InternalParameters.WriteProps, aScope);
|
||||
InternalParameters.WriteModelType = (STEPControl_StepModelType)
|
||||
theResource->IntegerVal("write.model.type", InternalParameters.WriteModelType, aScope);
|
||||
InternalParameters.WriteNonmanifold =
|
||||
theResource->IntegerVal("write.nonmanifold", InternalParameters.WriteNonmanifold, aScope);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@@ -74,12 +74,12 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
|
||||
aReader.SetLayerMode(aNode->InternalParameters.ReadLayer);
|
||||
aReader.SetPropsMode(aNode->InternalParameters.ReadProps);
|
||||
IFSelect_ReturnStatus aReadStat = IFSelect_RetVoid;
|
||||
aReadStat = aReader.ReadFile(thePath.ToCString(), aNode->InternalParameters);
|
||||
StepData_ConfParameters aParams;
|
||||
aReadStat = aReader.ReadFile(thePath.ToCString(), aParams);
|
||||
if (aReadStat != IFSelect_RetDone)
|
||||
{
|
||||
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
|
||||
thePath << "\t: abandon";
|
||||
aNode->InternalParameters.Reset();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -87,10 +87,8 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
|
||||
{
|
||||
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
|
||||
thePath << "\t: Cannot read any relevant data from the STEP file";
|
||||
aNode->InternalParameters.Reset();
|
||||
return false;
|
||||
}
|
||||
aNode->InternalParameters.Reset();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -124,13 +122,13 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
|
||||
aWriter.SetNameMode(aNode->InternalParameters.WriteName);
|
||||
aWriter.SetLayerMode(aNode->InternalParameters.WriteLayer);
|
||||
aWriter.SetPropsMode(aNode->InternalParameters.WriteProps);
|
||||
aModel->SetWriteLengthUnit(UnitsMethods::GetLengthUnitScale(aNode->InternalParameters.WriteUnit, UnitsMethods_LengthUnit_Millimeter));
|
||||
|
||||
TDF_Label aLabel;
|
||||
if (!aWriter.Transfer(theDocument, aNode->InternalParameters, aMode, 0, theProgress))
|
||||
StepData_ConfParameters aParams;
|
||||
if (!aWriter.Transfer(theDocument, aParams, aMode, 0, theProgress))
|
||||
{
|
||||
Message::SendFail() << "Error in the STEPCAFControl_Provider during writing the file " <<
|
||||
thePath << "\t: The document cannot be translated or gives no result";
|
||||
aNode->InternalParameters.Reset();
|
||||
return false;
|
||||
}
|
||||
IFSelect_ReturnStatus aStatus = aWriter.Write(thePath.ToCString());
|
||||
@@ -140,7 +138,6 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
|
||||
{
|
||||
Message::SendFail() << "Error in the STEPCAFControl_Provider during writing the file " <<
|
||||
thePath << "\t: No file written";
|
||||
aNode->InternalParameters.Reset();
|
||||
return false;;
|
||||
}
|
||||
case IFSelect_RetDone:
|
||||
@@ -151,11 +148,9 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
|
||||
{
|
||||
Message::SendFail() << "Error in the STEPCAFControl_Provider during writing the file " <<
|
||||
thePath << "\t: Error on writing file";
|
||||
aNode->InternalParameters.Reset();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
aNode->InternalParameters.Reset();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -204,13 +199,13 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
|
||||
STEPControl_Reader aReader;
|
||||
aReader.SetWS(theWS);
|
||||
IFSelect_ReturnStatus aReadstat = IFSelect_RetVoid;
|
||||
aReadstat = aReader.ReadFile(thePath.ToCString(), aNode->InternalParameters);
|
||||
StepData_ConfParameters aParams;
|
||||
aReadstat = aReader.ReadFile(thePath.ToCString(), aParams);
|
||||
Handle(StepData_StepModel) aModel = aReader.StepModel();
|
||||
if (aReadstat != IFSelect_RetDone)
|
||||
{
|
||||
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
|
||||
thePath << "\t: abandon, no model loaded";
|
||||
aNode->InternalParameters.Reset();
|
||||
return false;
|
||||
}
|
||||
aModel->SetLocalLengthUnit(aNode->GlobalParameters.LengthUnit);
|
||||
@@ -218,11 +213,9 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
|
||||
{
|
||||
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
|
||||
thePath << "\t:Cannot read any relevant data from the STEP file";
|
||||
aNode->InternalParameters.Reset();
|
||||
return false;
|
||||
}
|
||||
theShape = aReader.OneShape();
|
||||
aNode->InternalParameters.Reset();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -249,21 +242,19 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
|
||||
IFSelect_ReturnStatus aWritestat = IFSelect_RetVoid;
|
||||
Handle(StepData_StepModel) aModel = aWriter.Model();
|
||||
aModel->SetWriteLengthUnit(UnitsMethods::GetLengthUnitScale(aNode->InternalParameters.WriteUnit, UnitsMethods_LengthUnit_Millimeter));
|
||||
aWritestat = aWriter.Transfer(theShape, aNode->InternalParameters.WriteModelType, aNode->InternalParameters, true, theProgress);
|
||||
StepData_ConfParameters aParams;
|
||||
aWritestat = aWriter.Transfer(theShape, aNode->InternalParameters.WriteModelType, aParams, true, theProgress);
|
||||
if (aWritestat != IFSelect_RetDone)
|
||||
{
|
||||
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
|
||||
thePath << "\t: abandon, no model loaded";
|
||||
aNode->InternalParameters.Reset();
|
||||
return false;
|
||||
}
|
||||
if (aWriter.Write(thePath.ToCString()) != IFSelect_RetDone)
|
||||
{
|
||||
Message::SendFail() << "STEPCAFControl_Provider: Error on writing file";
|
||||
aNode->InternalParameters.Reset();
|
||||
return false;
|
||||
}
|
||||
aNode->InternalParameters.Reset();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -573,7 +573,6 @@ Standard_Boolean STEPCAFControl_Reader::Transfer (STEPControl_Reader &reader,
|
||||
{
|
||||
reader.ClearShapes();
|
||||
Handle(StepData_StepModel) aModel = Handle(StepData_StepModel)::DownCast(reader.Model());
|
||||
myReader.WS()->TransferReader()->SetEncodeRegAngle(aModel->InternalParameters.EncodeRegAngle);
|
||||
StepData_Factors aLocalFactors;
|
||||
prepareUnits(aModel, doc, aLocalFactors);
|
||||
Standard_Integer i;
|
||||
|
@@ -580,7 +580,7 @@ static void getSDR(const Handle(StepRepr_ProductDefinitionShape)& PDS,
|
||||
|
||||
// common progress indicator for translation of own shapes and sub-assemblies
|
||||
Message_ProgressScope PS(theProgress, "Part", nbEnt);
|
||||
Standard_Integer nbComponents=0, nbShapes=0;
|
||||
Standard_Integer nbComponents=0;
|
||||
|
||||
// translate sub-assemblies
|
||||
for ( Standard_Integer nbNauo =1; nbNauo <= listNAUO->Length() && PS.More(); nbNauo++) {
|
||||
@@ -662,7 +662,6 @@ static void getSDR(const Handle(StepRepr_ProductDefinitionShape)& PDS,
|
||||
else
|
||||
B.Add(Cund, theResult);
|
||||
// [END] ssv: OCCT#22436: extra compound in NMSSR case
|
||||
nbShapes++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -670,50 +669,20 @@ static void getSDR(const Handle(StepRepr_ProductDefinitionShape)& PDS,
|
||||
// way of writing hybrid models in AP203 since 1998, and AP209
|
||||
// Note that both AP203 and AP209 allow main representation to be non-empty
|
||||
if ( readSRR && /*theResult.IsNull() &&*/ i <= nbNotAspect) {
|
||||
Interface_EntityIterator subs1 = graph.Sharings(rep);
|
||||
Handle(Standard_Type) tSRR = STANDARD_TYPE(StepRepr_ShapeRepresentationRelationship);
|
||||
for (subs1.Start(); subs1.More(); subs1.Next()) {
|
||||
const Handle(Standard_Transient)& anitem = subs1.Value();
|
||||
if( !anitem->IsKind(STANDARD_TYPE(StepRepr_RepresentationRelationship)))
|
||||
continue;
|
||||
if (anitem->DynamicType() == tSRR)
|
||||
{
|
||||
Handle(StepRepr_ShapeRepresentationRelationship) SRR =
|
||||
Handle(StepRepr_ShapeRepresentationRelationship)::DownCast(anitem);
|
||||
Standard_Integer nbrep = (rep == SRR->Rep1() ? 2 : 1);
|
||||
// SKL for bug 29068: parameter useTrsf is used because if root entity has connection with other
|
||||
// by ShapeRepresentationRelationship then result after such transferring need to transform also.
|
||||
// This case is from test "bugs modalg_7 bug30196"
|
||||
binder = TransferEntity(SRR, TP, theLocalFactors, nbrep, useTrsf, aPS1.Next());
|
||||
if (! binder.IsNull()) {
|
||||
theResult = TransferBRep::ShapeResult (binder);
|
||||
Result1 = theResult;
|
||||
B.Add(Cund, theResult);
|
||||
nbShapes++;
|
||||
}
|
||||
}
|
||||
else if(readConstructiveGeomRR && anitem->IsKind(STANDARD_TYPE(StepRepr_ConstructiveGeometryRepresentationRelationship)))
|
||||
{
|
||||
Handle(StepRepr_ConstructiveGeometryRepresentationRelationship) aCSRR =
|
||||
Handle(StepRepr_ConstructiveGeometryRepresentationRelationship)::DownCast(anitem);
|
||||
binder = TransferEntity(aCSRR, TP, theLocalFactors);
|
||||
if (! binder.IsNull())
|
||||
{
|
||||
Result1 = TransferBRep::ShapeResult (binder);
|
||||
B.Add(Cund, Result1);
|
||||
nbShapes++;
|
||||
}
|
||||
}
|
||||
TopoDS_Shape aNewResult = TransferRelatedSRR(TP, rep, useTrsf, readConstructiveGeomRR, theLocalFactors, Cund, aPS1);
|
||||
if (!aNewResult.IsNull())
|
||||
{
|
||||
Result1 = aNewResult;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// make a warning if both own shape and sub-assemblies are present
|
||||
if ( nbShapes >0 && nbComponents > 0 )
|
||||
if ( (Cund.NbChildren() - nbComponents) > 0 && nbComponents > 0 )
|
||||
TP->AddWarning ( PD, "Product has both sub-assemblies and directly assigned shape" );
|
||||
|
||||
// if only single shape is read, add it as it is; otherwise add compound
|
||||
if( nbShapes == 1 && nbComponents == 0 )
|
||||
if( (Cund.NbChildren() - nbComponents) == 1 && nbComponents == 0 )
|
||||
shbinder = new TransferBRep_ShapeBinder (Result1);
|
||||
else
|
||||
shbinder = new TransferBRep_ShapeBinder (Cund);
|
||||
@@ -1555,8 +1524,8 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity
|
||||
const Message_ProgressRange& theProgress)
|
||||
{
|
||||
Handle(TransferBRep_ShapeBinder) shbinder;
|
||||
|
||||
// --------------------------------------------------------------
|
||||
|
||||
// --------------------------------------------------------------
|
||||
// On se trouve ici dans un contexte " d'assemblage geometrique "
|
||||
// - MappedItem
|
||||
// --------------------------------------------------------------
|
||||
@@ -1567,7 +1536,8 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity
|
||||
// La Shape, et la mise en position
|
||||
Handle(StepShape_ShapeRepresentation) maprep = Handle(StepShape_ShapeRepresentation)::
|
||||
DownCast(mapit->MappingSource()->MappedRepresentation());
|
||||
Standard_Boolean isBound = Standard_False;
|
||||
Standard_Boolean isBound = Standard_False;
|
||||
Message_ProgressScope aPSRoot(theProgress, NULL, 2);
|
||||
Handle(Transfer_Binder) binder = TP->Find(maprep);
|
||||
if (binder.IsNull()) binder = TransferEntity(maprep, TP, theLocalFactors, isBound, Standard_False, theProgress);
|
||||
shbinder = Handle(TransferBRep_ShapeBinder)::DownCast(binder);
|
||||
@@ -1575,7 +1545,6 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity
|
||||
else {
|
||||
TopoDS_Shape mappedShape = shbinder->Result();
|
||||
if ( ! mappedShape.IsNull() ) {
|
||||
|
||||
// Positionnement : 2 formules
|
||||
// 1/ Ax2 dans Source et comme Target : passage de Source a Target
|
||||
// 2/ CartesianOperator3d comme Target : on applique
|
||||
@@ -1607,6 +1576,39 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity
|
||||
shbinder = new TransferBRep_ShapeBinder (mappedShape);
|
||||
}
|
||||
}
|
||||
TopoDS_Compound aCund;
|
||||
TopoDS_Shape aResult;
|
||||
BRep_Builder aBuilder;
|
||||
aBuilder.MakeCompound(aCund);
|
||||
if (!shbinder.IsNull())
|
||||
{
|
||||
aResult = TransferBRep::ShapeResult(shbinder);
|
||||
aBuilder.Add(aCund, aResult);
|
||||
}
|
||||
// translate possible shapes related by SRRs, which corresponds to
|
||||
// way of writing hybrid models in AP203 since 1998, and AP209
|
||||
Standard_Integer aReadSRR = Interface_Static::IVal("read.step.shape.relationship");
|
||||
Standard_Integer aReadConstructiveGeomRR = Interface_Static::IVal("read.step.constructivegeom.relationship");
|
||||
if (aReadSRR)
|
||||
{
|
||||
const Interface_Graph& aGraph = TP->Graph();
|
||||
Standard_Integer aSRRnum = 0;
|
||||
for (Interface_EntityIterator aSubsIt(aGraph.Sharings(maprep)); aSubsIt.More(); aSubsIt.Next())
|
||||
++aSRRnum;
|
||||
Message_ProgressScope aPS(aPSRoot.Next(), "Part", aSRRnum);
|
||||
TopoDS_Shape aNewResult = TransferRelatedSRR(TP, maprep, Standard_False, aReadConstructiveGeomRR, theLocalFactors, aCund, aPS);
|
||||
if (!aNewResult.IsNull())
|
||||
{
|
||||
aResult = aNewResult;
|
||||
}
|
||||
// if only single shape is read, add it as it is; otherwise add compound
|
||||
if (aCund.NbChildren() == 1)
|
||||
shbinder = new TransferBRep_ShapeBinder(aResult);
|
||||
else if (aCund.NbChildren() > 1)
|
||||
{
|
||||
shbinder = new TransferBRep_ShapeBinder(aCund);
|
||||
}
|
||||
}
|
||||
TP->Bind(mapit, shbinder);
|
||||
return shbinder;
|
||||
}
|
||||
@@ -2091,3 +2093,47 @@ void STEPControl_ActorRead::SetModel(const Handle(Interface_InterfaceModel)& the
|
||||
{
|
||||
myModel = theModel;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// Method : TransferRelatedSRR
|
||||
// Purpose : Helper method to transfer SRR related to the representation
|
||||
//=======================================================================
|
||||
TopoDS_Shape STEPControl_ActorRead::TransferRelatedSRR(const Handle(Transfer_TransientProcess)& theTP,
|
||||
const Handle(StepShape_ShapeRepresentation)& theRep,
|
||||
const Standard_Boolean theUseTrsf,
|
||||
const Standard_Integer theReadConstructiveGeomRR,
|
||||
const StepData_Factors& theLocalFactors,
|
||||
TopoDS_Compound& theCund,
|
||||
Message_ProgressScope& thePS)
|
||||
{
|
||||
BRep_Builder aBuilder;
|
||||
TopoDS_Shape aResult;
|
||||
const Interface_Graph& aGraph = theTP->Graph();
|
||||
for (Interface_EntityIterator aSubsIt(aGraph.Sharings(theRep)); aSubsIt.More() && thePS.More(); aSubsIt.Next())
|
||||
{
|
||||
Handle(Standard_Transient) anItem = aSubsIt.Value();
|
||||
if (!anItem->IsKind(STANDARD_TYPE(StepRepr_RepresentationRelationship)))
|
||||
continue;
|
||||
Handle(Transfer_Binder) aBinder;
|
||||
if (anItem->DynamicType() == STANDARD_TYPE(StepRepr_ShapeRepresentationRelationship))
|
||||
{
|
||||
Handle(StepRepr_ShapeRepresentationRelationship) aSRR =
|
||||
Handle(StepRepr_ShapeRepresentationRelationship)::DownCast(anItem);
|
||||
Standard_Integer aNbRep = (theRep == aSRR->Rep1() ? 2 : 1);
|
||||
aBinder = TransferEntity(aSRR, theTP, theLocalFactors, aNbRep, theUseTrsf, thePS.Next());
|
||||
}
|
||||
else if (theReadConstructiveGeomRR &&
|
||||
anItem->DynamicType() == STANDARD_TYPE(StepRepr_ConstructiveGeometryRepresentationRelationship))
|
||||
{
|
||||
Handle(StepRepr_ConstructiveGeometryRepresentationRelationship) aCGRR =
|
||||
Handle(StepRepr_ConstructiveGeometryRepresentationRelationship)::DownCast(anItem);
|
||||
aBinder = TransferEntity(aCGRR, theTP, theLocalFactors);
|
||||
}
|
||||
if (!aBinder.IsNull())
|
||||
{
|
||||
aResult = TransferBRep::ShapeResult(aBinder);
|
||||
aBuilder.Add(theCund, aResult);
|
||||
}
|
||||
}
|
||||
return aResult;
|
||||
}
|
||||
|
@@ -206,6 +206,14 @@ private:
|
||||
|
||||
Standard_EXPORT void computeIDEASClosings (const TopoDS_Compound& comp, TopTools_IndexedDataMapOfShapeListOfShape& shellClosingMap);
|
||||
|
||||
Standard_EXPORT TopoDS_Shape TransferRelatedSRR(const Handle(Transfer_TransientProcess)& theTP,
|
||||
const Handle(StepShape_ShapeRepresentation)& theRep,
|
||||
const Standard_Boolean theUseTrsf,
|
||||
const Standard_Integer theReadConstructiveGeomRR,
|
||||
const StepData_Factors& theLocalFactors,
|
||||
TopoDS_Compound& theCund,
|
||||
Message_ProgressScope& thePS);
|
||||
|
||||
StepToTopoDS_NMTool myNMTool;
|
||||
Standard_Real myPrecision;
|
||||
Standard_Real myMaxTol;
|
||||
|
@@ -13,7 +13,6 @@
|
||||
|
||||
#include <STEPControl_Writer.hxx>
|
||||
|
||||
#include <APIHeaderSection_MakeHeader.hxx>
|
||||
#include <Interface_InterfaceModel.hxx>
|
||||
#include <Interface_Macros.hxx>
|
||||
#include <STEPControl_ActorWrite.hxx>
|
||||
@@ -163,12 +162,7 @@ IFSelect_ReturnStatus STEPControl_Writer::Transfer
|
||||
}
|
||||
if (!thesession->Model().IsNull())
|
||||
{
|
||||
Handle(StepData_StepModel) aStepModel = Handle(StepData_StepModel)::DownCast(thesession->Model());
|
||||
aStepModel->InternalParameters = theParams;
|
||||
thesession->TransferWriter()->SetNonmanifoldMode(aStepModel->InternalParameters.WriteNonmanifold);
|
||||
aStepModel->ClearHeader();
|
||||
APIHeaderSection_MakeHeader aHeaderApi;
|
||||
aHeaderApi.Apply(aStepModel);
|
||||
Handle(StepData_StepModel)::DownCast(thesession->Model())->InternalParameters = theParams;
|
||||
}
|
||||
Handle(STEPControl_ActorWrite) ActWrite =
|
||||
Handle(STEPControl_ActorWrite)::DownCast(WS()->NormAdaptor()->ActorWrite());
|
||||
|
@@ -27,7 +27,6 @@ static Standard_CString schemaAP242DIS = "AP242_MANAGED_MODEL_BASED_3D_ENGINEERI
|
||||
|
||||
#include <HeaderSection_Protocol.hxx>
|
||||
|
||||
#include <StepData_StepModel.hxx>
|
||||
#include <StepShape_AdvancedBrepShapeRepresentation.hxx>
|
||||
#include <StepShape_AdvancedFace.hxx>
|
||||
// Removed from CC1-Rev2 to Rev4 : <StepVisual_AnnotationCurveOccurrence.hxx>
|
||||
@@ -1578,38 +1577,6 @@ Handle(Standard_Type)& atype) const
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : SchemaName
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_CString StepAP214_Protocol::SchemaName(const Handle(Interface_InterfaceModel)& theModel) const
|
||||
{
|
||||
Handle(StepData_StepModel) aModel = Handle(StepData_StepModel)::DownCast(theModel);
|
||||
if (aModel.IsNull())
|
||||
{
|
||||
return "";
|
||||
}
|
||||
switch (aModel->InternalParameters.WriteSchema)
|
||||
{
|
||||
case StepData_ConfParameters::WriteMode_StepSchema_AP214CD:
|
||||
return schemaAP214CD;
|
||||
break;
|
||||
case StepData_ConfParameters::WriteMode_StepSchema_AP214DIS:
|
||||
return schemaAP214DIS;
|
||||
break;
|
||||
case StepData_ConfParameters::WriteMode_StepSchema_AP203:
|
||||
return schemaAP203;
|
||||
break;
|
||||
case StepData_ConfParameters::WriteMode_StepSchema_AP214IS:
|
||||
return schemaAP214IS;
|
||||
break;
|
||||
case StepData_ConfParameters::WriteMode_StepSchema_AP242DIS:
|
||||
return schemaAP242DIS;
|
||||
break;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SchemaName
|
||||
//purpose :
|
||||
|
@@ -42,8 +42,6 @@ public:
|
||||
//! Returns a Case Number for each of the StepAP214 Entities
|
||||
Standard_EXPORT virtual Standard_Integer TypeNumber (const Handle(Standard_Type)& atype) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_CString SchemaName(const Handle(Interface_InterfaceModel)& theModel) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_CString SchemaName() const Standard_OVERRIDE;
|
||||
|
||||
//! Returns count of Protocol used as Resources (level one)
|
||||
|
@@ -67,14 +67,9 @@ Standard_Integer StepData_Protocol::TypeNumber
|
||||
return 0;
|
||||
}
|
||||
|
||||
Standard_CString StepData_Protocol::SchemaName() const
|
||||
{
|
||||
return thename;
|
||||
}
|
||||
|
||||
Standard_CString StepData_Protocol::SchemaName (const Handle(Interface_InterfaceModel)& theModel) const
|
||||
Standard_CString StepData_Protocol::SchemaName () const
|
||||
{
|
||||
(void)theModel;
|
||||
return thename;
|
||||
}
|
||||
|
||||
|
@@ -67,8 +67,6 @@ public:
|
||||
//! To be redefined by each sub-class
|
||||
//! Here, SchemaName returns "(DEFAULT)"
|
||||
//! was C++ : return const
|
||||
Standard_EXPORT virtual Standard_CString SchemaName(const Handle(Interface_InterfaceModel)& theModel) const;
|
||||
|
||||
Standard_EXPORT virtual Standard_CString SchemaName() const;
|
||||
|
||||
//! Creates an empty Model for Step Norm
|
||||
|
@@ -399,7 +399,7 @@ TopoDS_Shape XSControl_TransferReader::ShapeResult
|
||||
TopoDS_Shape sh = xu.BinderShape (mres->Binder());
|
||||
|
||||
// Ouh la vilaine verrue
|
||||
Standard_Real tolang = EncodeRegAngle();
|
||||
Standard_Real tolang = Interface_Static::RVal("read.encoderegularity.angle");
|
||||
if (tolang <= 0 || sh.IsNull()) return sh;
|
||||
ShapeFix::EncodeRegularity (sh,tolang);
|
||||
return sh;
|
||||
|
@@ -65,7 +65,6 @@ class XSControl_TransferReader : public Standard_Transient
|
||||
|
||||
//! Creates a TransferReader, empty
|
||||
XSControl_TransferReader()
|
||||
: myEncodeRegAngle(0.01)
|
||||
{}
|
||||
|
||||
//! Sets a Controller. It is required to generate the Actor.
|
||||
@@ -114,14 +113,6 @@ class XSControl_TransferReader : public Standard_Transient
|
||||
//! Returns actual value of file name
|
||||
Standard_CString FileName() const
|
||||
{ return myFileName.ToCString(); }
|
||||
|
||||
//! Sets value for EncodeRegularityAngle
|
||||
void SetEncodeRegAngle(const Standard_Real theEncRegAngle)
|
||||
{ myEncodeRegAngle = theEncRegAngle; }
|
||||
|
||||
//! Returns value of EncodeRegularityAngle
|
||||
Standard_Real EncodeRegAngle() const
|
||||
{ return myEncodeRegAngle; }
|
||||
|
||||
//! Clears data, according mode :
|
||||
//! -1 all
|
||||
@@ -368,7 +359,6 @@ class XSControl_TransferReader : public Standard_Transient
|
||||
Handle(Transfer_TransientProcess) myTP;
|
||||
TColStd_DataMapOfIntegerTransient myResults;
|
||||
Handle(TopTools_HSequenceOfShape) myShapeResult;
|
||||
Standard_Real myEncodeRegAngle;
|
||||
};
|
||||
|
||||
#endif // _XSControl_TransferReader_HeaderFile
|
||||
|
@@ -141,7 +141,7 @@ IFSelect_ReturnStatus XSControl_TransferWriter::TransferWriteShape
|
||||
if (theModel.IsNull()) return IFSelect_RetVoid;
|
||||
|
||||
TopoDS_Shape aShape = theShape;
|
||||
Standard_Boolean isNMMode = NonmanifoldMode() != 0;
|
||||
Standard_Boolean isNMMode = Interface_Static::IVal("write.step.nonmanifold") != 0;
|
||||
if (isNMMode)
|
||||
{
|
||||
ShapeUpgrade_RemoveLocations aRemLoc;
|
||||
|
@@ -46,8 +46,7 @@ class XSControl_TransferWriter : public Standard_Transient
|
||||
//! with an empty FinderProcess (but no controller, etc)
|
||||
XSControl_TransferWriter()
|
||||
: myTransferWriter(new Transfer_FinderProcess),
|
||||
myTransferMode(0),
|
||||
myNonmanifoldMode(0)
|
||||
myTransferMode(0)
|
||||
{}
|
||||
|
||||
//! Returns the FinderProcess itself
|
||||
@@ -85,14 +84,6 @@ class XSControl_TransferWriter : public Standard_Transient
|
||||
void SetTransferMode (const Standard_Integer theMode)
|
||||
{ myTransferMode = theMode; }
|
||||
|
||||
//! Returns Nonmanifold Mode
|
||||
Standard_Integer NonmanifoldMode() const
|
||||
{ return myNonmanifoldMode; }
|
||||
|
||||
//! Changes Nonmanifold Mode
|
||||
void SetNonmanifoldMode (const Standard_Integer theNonmMode)
|
||||
{ myNonmanifoldMode = theNonmMode; }
|
||||
|
||||
//! Prints statistics on current Trace File, according what,mode
|
||||
//! See PrintStatsProcess for details
|
||||
Standard_EXPORT void PrintStats (const Standard_Integer theWhat, const Standard_Integer theMode = 0) const;
|
||||
@@ -143,7 +134,6 @@ class XSControl_TransferWriter : public Standard_Transient
|
||||
Handle(XSControl_Controller) myController;
|
||||
Handle(Transfer_FinderProcess) myTransferWriter;
|
||||
Standard_Integer myTransferMode;
|
||||
Standard_Integer myNonmanifoldMode;
|
||||
};
|
||||
|
||||
#endif // _XSControl_TransferWriter_HeaderFile
|
||||
|
17
tests/bugs/step/bug33261
Normal file
17
tests/bugs/step/bug33261
Normal file
@@ -0,0 +1,17 @@
|
||||
puts "======="
|
||||
puts "0033261: Data Exchange, Step Import - Empty shape after reading process"
|
||||
puts "======="
|
||||
|
||||
pload OCAF MODELING
|
||||
|
||||
# Read file
|
||||
ReadStep D [locate_data_file bug33261.stp]
|
||||
|
||||
# get document model as a single shape
|
||||
XGetOneShape S1 D
|
||||
|
||||
# check number of subshapes in the shape restored from STEP
|
||||
checknbshapes S1 -face 2025 -solid 24 -compound 100
|
||||
|
||||
Close D -silent
|
||||
unset S1
|
Reference in New Issue
Block a user