For creating a new .prc file with one file structure (one product definition and one file structure), use the following steps:
OdPrcFilePtr pFile = svcs.createObject();
pFile->setVersions(8137, 8137);
pFile->modelFileData().unit().setUnitFromCADFile(true);
pFile->modelFileData().unit().setUnit(1);
pFile->fileStructureId() = OdPrcUniqueId::generateUID();
OdPrcFileStructurePtrArray &fileStructures = pFile->fileStructures();
OdPrcFileStructurePtr newStructure = OdPrcFileStructure::createObject();
newStructure->fileStructureId() = OdPrcUniqueId::generateUID();
fileStructures.append(newStructure);
pFile->addFileStructure(*newStructure);
OdPrcFileStructureGlobals& fileStructureGlobals = newStructure->fileStructureGlobals();
fileStructureGlobals.setTessellationChordHeightRatio(2000);
fileStructureGlobals.setTessellationAngleDegree(40);
OdPrcPartDefinitionPtr newDefinition = OdPrcPartDefinition::createObject();
newStructure->addObject(newDefinition);
newStructure->fileStructureTree().partDefinition().push_back(newDefinition->objectId());
OdPrcProductOccurrencePtr newProductOccurrence = OdPrcProductOccurrence::createObject();
newStructure->addObject(newProductOccurrence);
newProductOccurrence->referencesOfProductOccurrence().setCorrespondingPartDefinition(newDefinition->objectId());
newProductOccurrence->productInformation().unitInformation().setUnit(1);
newStructure->fileStructureTree().productOccurrence().push_back(newProductOccurrence);
newStructure->fileStructureTree().internalData().setRootProductOccurrence(newProductOccurrence->objectId());
OdPrcContextAndBodies newContextAndBodies;
newContextAndBodies.topoContext().setBehaviour(6);
newContextAndBodies.topoContext().setGranularity(1e-8);
newContextAndBodies.topoContext().setTolerance(1e-6);
newStructure->fileStructureGeometry().fileStructureExactGeometry().topologicalContext().push_back(newContextAndBodies);
newStructure->setVersions(8137, 8137);
pFile->modelFileData().addStartRootOccurrence(*newProductOccurrence);
Copyright © 2002 – 2020. Open Design Alliance. All rights reserved.
|