/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #include "OdaCommon.h" #include "daiModule.h" #include "daiRepository.h" #include "daiModel.h" #include "daiHeaderSection.h" #include "ExStepHostAppServices.h" #include "ExStepTutorial_08.h" #include "ExStepTutorialBase.h" #include "Common/examples/daiSimpleProgramOptions.h" #define USING_AP242 StepTutorial::ExecutionResult Tutorial_08(const ExStepServices& svcs, const std::vector& params, std::ostream& ouputStream) { OdAnsiString outputStepFile; OdDAI::utils::argv_parser tutorialArgsParser("Tutorial_08"); tutorialArgsParser.add_param(std::make_shared>(outputStepFile, "filename", "Output STEP physical file name", true, false)); switch (tutorialArgsParser.parse(params, ouputStream)) { case OdDAI::utils::ParseResult::showHelp: { return StepTutorial::ExecutionResult::eShowHelp; } break; case OdDAI::utils::ParseResult::failed: { return StepTutorial::ExecutionResult::eWrongParams; } break; default: break; } OdDAI::SessionPtr session = oddaiCreateSession(); OdAnsiString workDir = StepTutorial::WorkDir::getPath(); #ifdef USING_AP242 OdDAI::SchemaPtr workSchema = oddaiGetSchema(workDir + "Schemas/ap242ed2_mim_lf_v1.101.exp"); #else OdDAI::SchemaPtr workSchema = oddaiGetSchema(workDir + "Schemas/AP214E3_2010.exp"); #endif // USING_AP242 if (workSchema.isNull()) return StepTutorial::ExecutionResult::eFailed; //// Creating header section OdDAI::RepositoryPtr repo = session->createRepo("TUTORIAL_08_Repo"); session->openRepo(repo); OdDAI::ModelPtr model = repo->createModel("Tutorial_08", workSchema); OdString fileName; if (outputStepFile.isEmpty()) fileName = workDir + "Tutorial_08.stp"; else fileName = outputStepFile; OdDAI::OdHeaderSectionPtr header = repo->getHeaderSection(); OdDAI::ApplicationInstancePtr pDesc = header->getEntityByType(OdDAI::OdHeaderEntityType::kFileDescription); OdAnsiStringArray description; description.append("STEP AP242"); pDesc->putAttr("description", description); OdDAI::ApplicationInstancePtr pFileName = header->getEntityByType(OdDAI::OdHeaderEntityType::kFileName); pFileName->putAttr("name", fileName); OdTimeStamp timeStamp(OdTimeStamp::kInitLocalTime); OdString timeStampString; timeStamp.strftime(L"%Y-%m-%dT%H:%M:%S", timeStampString); pFileName->putAttr("time_stamp", timeStampString); OdAnsiStringArray author; author.append(" "); pFileName->putAttr("author", author); OdAnsiString originatingSystem(" "); pFileName->putAttr("originating_system", originatingSystem); OdAnsiString authorization(" "); pFileName->putAttr("authorization", authorization); if (!model.isNull()) { model->promoteModelToReadWrite(); OdDAI::Aggr* aggr = nullptr; OdDAI::ApplicationInstancePtr inst_product_definition_context = model->createEntityInstance("product_definition_context"); OdDAIObjectId id_product_definition_context = model->appendEntityInstance(inst_product_definition_context); inst_product_definition_context->putAttr("name", (OdAnsiString)""); inst_product_definition_context->putAttr("life_cycle_stage", (OdAnsiString)"design"); OdDAI::ApplicationInstancePtr inst_app_protocol_def = model->createEntityInstance("application_protocol_definition"); model->appendEntityInstance(inst_app_protocol_def); inst_app_protocol_def->putAttr("status", (OdAnsiString)"INTERNATIONAL STANDARD"); inst_app_protocol_def->putAttr("application_interpreted_model_schema_name", (OdAnsiString)"AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF"); inst_app_protocol_def->putAttr("application_protocol_year", 2011); OdDAI::ApplicationInstancePtr inst_product_category_rel = model->createEntityInstance("product_category_relationship"); model->appendEntityInstance(inst_product_category_rel); inst_product_category_rel->putAttr("name", (OdAnsiString)"NONE"); inst_product_category_rel->putAttr("description", (OdAnsiString)"NONE"); OdDAI::ApplicationInstancePtr inst_product_category = model->createEntityInstance("product_category"); inst_product_category->putAttr("name", (OdAnsiString)"part"); inst_product_category->putAttr("description", (OdAnsiString)"NONE"); inst_product_category_rel->putAttr("category", model->appendEntityInstance(inst_product_category)); OdDAI::ApplicationInstancePtr inst_product_rel_product_category = model->createEntityInstance("product_related_product_category"); inst_product_rel_product_category->putAttr("name", (OdAnsiString)"detail"); inst_product_rel_product_category->putAttr("description", (OdAnsiString)" "); inst_product_category_rel->putAttr("sub_category", model->appendEntityInstance(inst_product_rel_product_category)); OdDAI::ApplicationInstancePtr inst_application_context = model->createEntityInstance("application_context"); OdDAIObjectId id_application_context = model->appendEntityInstance(inst_application_context); inst_application_context->putAttr("application", (OdAnsiString)""); inst_product_definition_context->putAttr("frame_of_reference", id_application_context); inst_app_protocol_def->putAttr("application", id_application_context); OdDAI::ApplicationInstancePtr inst_product_context = model->createEntityInstance("product_context"); OdDAIObjectId id_product_context = model->appendEntityInstance(inst_product_context); inst_product_context->putAttr("discipline_type", (OdAnsiString)"mechanical"); inst_product_context->putAttr("frame_of_reference", id_application_context); inst_product_context->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_product = model->createEntityInstance("product"); OdDAIObjectId id_product = model->appendEntityInstance(inst_product); inst_product->putAttr("id", 1); inst_product->putAttr("name", (OdAnsiString)"Just a cube"); OdDAI::Set* set_product_ctx; inst_product->getAttr("frame_of_reference") >> set_product_ctx; set_product_ctx->createEmpty(); set_product_ctx->Add(id_product_context); OdDAI::Set * set10; inst_product_rel_product_category->getAttr("products") >> set10; set10->createEmpty(); set10->Add(id_product); OdDAI::ApplicationInstancePtr inst_geometric_presentation_representation = model->createEntityInstance("mechanical_design_geometric_presentation_representation"); model->appendEntityInstance(inst_geometric_presentation_representation); inst_geometric_presentation_representation->putAttr("name", (OdAnsiString)""); OdDAI::EntityPtr geom_rep_context = workSchema->find("geometric_representation_context"); OdDAI::EntityPtr global_unsert_assigned_context = workSchema->find("global_uncertainty_assigned_context"); OdDAI::EntityPtr global_unit_assigned_context = workSchema->find("global_unit_assigned_context"); OdDAI::EntityPtr representation_context = workSchema->find("representation_context"); OdDAI::List complex_ent_1; complex_ent_1.createEmpty(); complex_ent_1.addByIndex(0, geom_rep_context); complex_ent_1.addByIndex(1, global_unsert_assigned_context); complex_ent_1.addByIndex(2, global_unit_assigned_context); complex_ent_1.addByIndex(3, representation_context); OdDAI::EntityPtr complexEntity_Units = workSchema->getComplexEntity(complex_ent_1); OdDAI::ApplicationInstancePtr inst_complex_ent_1 = model->createEntityInstance(complexEntity_Units); OdDAIObjectId id_complex_ent_1 = model->appendEntityInstance(inst_complex_ent_1); inst_complex_ent_1->putAttr("coordinate_space_dimension", 3); inst_complex_ent_1->putAttr("context_identifier", (OdAnsiString)"NONE"); inst_complex_ent_1->putAttr("context_type", (OdAnsiString)"WORKSPACE"); OdDAI::ApplicationInstancePtr inst_uncertanty_measure_unit = model->createEntityInstance("uncertainty_measure_with_unit"); inst_uncertanty_measure_unit->putAttr("name", (OdAnsiString)""); inst_uncertanty_measure_unit->putAttr("description", (OdAnsiString)""); OdDAI::Select* value_component; inst_uncertanty_measure_unit->getAttr("value_component") >> value_component; if (value_component->underlyingTypeName("length_measure")) value_component->setDouble(3.93700787401575E-008); OdDAI::Set * set6; inst_complex_ent_1->getAttr("uncertainty") >> set6; set6->createEmpty(); set6->Add(model->appendEntityInstance(inst_uncertanty_measure_unit)); OdDAI::EntityPtr ent_named_unit = workSchema->find("named_unit"); OdDAI::EntityPtr ent_conversion_based_unit = workSchema->find("conversion_based_unit"); OdDAI::EntityPtr ent_length_unit = workSchema->find("length_unit"); OdDAI::EntityPtr ent_si_unit = workSchema->find("si_unit"); OdDAI::EntityPtr ent_plane_angle_unit = workSchema->find("plane_angle_unit"); OdDAI::EntityPtr ent_solid_angle_unit = workSchema->find("solid_angle_unit"); OdDAI::List complex_ent_2; complex_ent_2.createEmpty(); complex_ent_2.addByIndex(0, ent_conversion_based_unit); complex_ent_2.addByIndex(1, ent_length_unit); complex_ent_2.addByIndex(2, ent_named_unit); OdDAI::EntityPtr complexEntity_2 = workSchema->getComplexEntity(complex_ent_2); OdDAI::ApplicationInstancePtr inst_complex_ent_2 = model->createEntityInstance(complexEntity_2); OdDAIObjectId id_complex_ent_2 = model->appendEntityInstance(inst_complex_ent_2); inst_complex_ent_2->putAttr("name", (OdAnsiString)"INCH"); inst_uncertanty_measure_unit->putAttr("unit_component", id_complex_ent_2); OdDAI::List complex_ent_3; complex_ent_3.createEmpty(); complex_ent_3.addByIndex(0, ent_named_unit); complex_ent_3.addByIndex(1, ent_plane_angle_unit); complex_ent_3.addByIndex(2, ent_si_unit); OdDAI::EntityPtr complexEntity_3 = workSchema->getComplexEntity(complex_ent_3); OdDAI::ApplicationInstancePtr inst_complex_ent_3 = model->createEntityInstance(complexEntity_3); OdDAIObjectId id_complex_ent_3 = model->appendEntityInstance(inst_complex_ent_3); inst_complex_ent_3->putAttr("name", (OdAnsiString)"RADIAN"); OdDAI::List complex_ent_4; complex_ent_4.createEmpty(); complex_ent_4.addByIndex(0, ent_named_unit); complex_ent_4.addByIndex(1, ent_solid_angle_unit); complex_ent_4.addByIndex(2, ent_si_unit); OdDAI::ApplicationInstancePtr complexEntity_4 = model->createEntityInstance(workSchema->getComplexEntity(complex_ent_4)); OdDAIObjectId id_complex_ent_4 = model->appendEntityInstance(complexEntity_4); complexEntity_4->putAttr("name", (OdAnsiString)"STERADIAN"); OdDAI::Set * set_6; inst_complex_ent_1->getAttr("units") >> set_6; set_6->createEmpty(); set_6->Add(OdRxValue(id_complex_ent_2)); set_6->Add(OdRxValue(id_complex_ent_3)); set_6->Add(OdRxValue(id_complex_ent_4)); inst_geometric_presentation_representation->putAttr("context_of_items", id_complex_ent_1); OdDAI::ApplicationInstancePtr inst_length_measure_w_unit = model->createEntityInstance("length_measure_with_unit"); OdDAIObjectId id_length_measure_w_unit = model->appendEntityInstance(inst_length_measure_w_unit); OdDAI::Select* value_component_2; inst_length_measure_w_unit->getAttr("value_component") >> value_component_2; if (value_component_2->underlyingTypeName("length_measure")) value_component_2->setDouble(25.4); OdDAI::List complex_ent_5; complex_ent_5.createEmpty(); complex_ent_5.addByIndex(0, ent_named_unit); complex_ent_5.addByIndex(1, ent_length_unit); complex_ent_5.addByIndex(2, ent_si_unit); OdDAI::EntityPtr complexEntity_5 = workSchema->getComplexEntity(complex_ent_5); OdDAI::ApplicationInstancePtr inst_complex_ent_5 = model->createEntityInstance(complexEntity_5); OdDAIObjectId id_complex_ent_5 = model->appendEntityInstance(inst_complex_ent_5); inst_complex_ent_5->putAttr("prefix", (OdAnsiString)"MILLI"); inst_complex_ent_5->putAttr("name", (OdAnsiString)"METRE"); inst_length_measure_w_unit->putAttr("unit_component", id_complex_ent_5); inst_complex_ent_2->putAttr("conversion_factor", id_length_measure_w_unit); OdDAIObjectId id_dim_ext_1 = createDimmExponents(model, 1., 0., 0., 0., 0., 0., 0.); inst_complex_ent_2->putAttr("dimensions", id_dim_ext_1); OdDAIObjectId id_dim_ext_2 = createDimmExponents(model, 0., 0., 0., 0., 0., 0., 0.); OdDAI::ApplicationInstancePtr inst_advanced_brep_repr = model->createEntityInstance("advanced_brep_shape_representation"); OdDAIObjectId id_advanced_brep_repr = model->appendEntityInstance(inst_advanced_brep_repr); inst_advanced_brep_repr->putAttr("name", (OdAnsiString)""); inst_advanced_brep_repr->putAttr("context_of_items", id_complex_ent_1); OdDAI::ApplicationInstancePtr inst_shape_definition_representation = model->createEntityInstance("shape_definition_representation"); OdDAIObjectId id_shape_definition_representation = model->appendEntityInstance(inst_shape_definition_representation); inst_shape_definition_representation->putAttr("used_representation", id_advanced_brep_repr); OdDAI::ApplicationInstancePtr inst_product_definition_shape = model->createEntityInstance("product_definition_shape"); OdDAIObjectId id_product_definition_shape = model->appendEntityInstance(inst_product_definition_shape); inst_product_definition_shape->putAttr("name", (OdAnsiString)""); inst_shape_definition_representation->putAttr("definition", id_product_definition_shape); OdDAI::ApplicationInstancePtr inst_product_definition = model->createEntityInstance("product_definition"); OdDAIObjectId id_product_definition = model->appendEntityInstance(inst_product_definition); inst_product_definition->putAttr("frame_of_reference", id_product_definition_context); inst_product_definition->putAttr("id", (OdAnsiString)""); inst_product_definition_shape->putAttr("definition", id_product_definition); OdDAI::ApplicationInstancePtr inst_product_defin_with_source = model->createEntityInstance("product_definition_formation_with_specified_source"); OdDAIObjectId id_product_defin_with_source = model->appendEntityInstance(inst_product_defin_with_source); inst_product_defin_with_source->putAttr("id", (OdAnsiString)""); inst_product_defin_with_source->putAttr("description", (OdAnsiString)"NONE"); inst_product_defin_with_source->putAttr("frame_of_reference", id_product_definition_context); inst_product_defin_with_source->putAttr("of_product", id_product); inst_product_defin_with_source->putAttr("make_or_buy", (OdAnsiString)"NOT_KNOWN"); inst_product_definition->putAttr("formation", id_product_defin_with_source); OdDAIObjectId id_direcrion_1 = createDirection(model, "", 0., 0., 1.); OdDAIObjectId id_direcrion_2 = createDirection(model, "", 1., 0., 0.); OdDAIObjectId id_direcrion_3 = createDirection(model, "", 0., 1., 0.); OdDAIObjectId id_direcrion_4 = createDirection(model, "", 0., 0., -1.); OdDAIObjectId id_direcrion_5 = createDirection(model, "", 0., 1., 0.); OdDAIObjectId id_direcrion_6 = createDirection(model, "", 0., 0., -1.); OdDAIObjectId id_direcrion_7 = createDirection(model, "", -1., 0., 0.); OdDAIObjectId id_direcrion_8 = createDirection(model, "", 0., 0., 1.); OdDAIObjectId id_direcrion_9 = createDirection(model, "", -1., 0., 0.); OdDAIObjectId id_direcrion_10 = createDirection(model, "", 0., 0., -1.); OdDAIObjectId id_direcrion_11 = createDirection(model, "", -1., 0., 0.); OdDAIObjectId id_direcrion_12 = createDirection(model, "", 0., -1., 0.); OdDAIObjectId id_direcrion_13 = createDirection(model, "", 0., 0., -1.); OdDAIObjectId id_direcrion_14 = createDirection(model, "", -3.70074341541719E-015, -1., 0.); OdDAIObjectId id_direcrion_15 = createDirection(model, "", 0., 0., -1.); OdDAIObjectId id_direcrion_16 = createDirection(model, "", -3.70074341541719E-015, -1., 0.); OdDAIObjectId id_direcrion_17 = createDirection(model, "", 1., -3.70074341541719E-015, 0.); OdDAIObjectId id_direcrion_18 = createDirection(model, "", 3.69149155687865E-015, 1., 0.); OdDAIObjectId id_direcrion_19 = createDirection(model, "", 1., -1.11022302462515E-015, 0.); OdDAIObjectId id_direcrion_20 = createDirection(model, "", 1., -1.11022302462515E-015, 0.); OdDAIObjectId id_direcrion_21 = createDirection(model, "", 1.11022302462515E-015, 1., 0.); OdDAIObjectId id_direcrion_22 = createDirection(model, "", -1., 1.11022302462516E-015, 0.); OdDAIObjectId id_direcrion_23 = createDirection(model, "", 0., 0., 1.); OdDAIObjectId id_direcrion_24 = createDirection(model, "", 1., 0., 0.); OdDAIObjectId id_direcrion_25 = createDirection(model, "", 0., 0., 1.); OdDAIObjectId id_direcrion_26 = createDirection(model, "", 1., 0., 0.); OdDAIObjectId point_1 = createCartesianPoint(model, "", 0., 0., 0.); OdDAIObjectId point_2 = createCartesianPoint(model, "", 140., -140., 0.); OdDAIObjectId point_3 = createCartesianPoint(model, "", 140., -140., 0.); OdDAIObjectId point_4 = createCartesianPoint(model, "", 140., 160., 0.); OdDAIObjectId point_5 = createCartesianPoint(model, "", 140., 160., 300.); OdDAIObjectId point_6 = createCartesianPoint(model, "", 140., 160., 300.); OdDAIObjectId point_7 = createCartesianPoint(model, "", 140., -140., 300.); OdDAIObjectId point_8 = createCartesianPoint(model, "", 140., -140., 300.); OdDAIObjectId point_9 = createCartesianPoint(model, "", 140., -140., 300.); OdDAIObjectId point_10 = createCartesianPoint(model, "", 140., -140., 300.); OdDAIObjectId point_11 = createCartesianPoint(model, "", 140., 160., 0.); OdDAIObjectId point_12 = createCartesianPoint(model, "", -160., 160., 0.); OdDAIObjectId point_13 = createCartesianPoint(model, "", -160., 160., 300.); OdDAIObjectId point_14 = createCartesianPoint(model, "", -160., 160., 300.); OdDAIObjectId point_15 = createCartesianPoint(model, "", 140., 160., 300.); OdDAIObjectId point_16 = createCartesianPoint(model, "", 140., 160., 300.); OdDAIObjectId point_17 = createCartesianPoint(model, "", -160., 160., 0.); OdDAIObjectId point_18 = createCartesianPoint(model, "", -160.000000000001, -140., 0.); OdDAIObjectId point_19 = createCartesianPoint(model, "", -160.000000000001, -140., 300.); OdDAIObjectId point_20 = createCartesianPoint(model, "", -160.000000000001, -140., 300.); OdDAIObjectId point_21 = createCartesianPoint(model, "", -160., 160., 300.); OdDAIObjectId point_22 = createCartesianPoint(model, "", -160., 160., 300.); OdDAIObjectId point_23 = createCartesianPoint(model, "", -160.000000000001, -140., 0.); OdDAIObjectId point_24 = createCartesianPoint(model, "", -160.000000000001, -140., 300.); OdDAIObjectId point_25 = createCartesianPoint(model, "", -160.000000000001, -140., 300.); OdDAIObjectId point_26 = createCartesianPoint(model, "", 0., 0., 300.); OdDAIObjectId point_27 = createCartesianPoint(model, "", 0., 0., 0.); OdDAI::ApplicationInstancePtr inst_vertex_point_1 = model->createEntityInstance("vertex_point"); OdDAIObjectId id_vertex_point_1 = model->appendEntityInstance(inst_vertex_point_1); inst_vertex_point_1->putAttr("name", (OdAnsiString)""); inst_vertex_point_1->putAttr("vertex_geometry", point_3); OdDAI::ApplicationInstancePtr inst_vertex_point_2 = model->createEntityInstance("vertex_point"); OdDAIObjectId id_vertex_point_2 = model->appendEntityInstance(inst_vertex_point_2); inst_vertex_point_2->putAttr("name", (OdAnsiString)""); inst_vertex_point_2->putAttr("vertex_geometry", point_4); OdDAI::ApplicationInstancePtr inst_vertex_point_3 = model->createEntityInstance("vertex_point"); OdDAIObjectId id_vertex_point_3 = model->appendEntityInstance(inst_vertex_point_3); inst_vertex_point_3->putAttr("name", (OdAnsiString)""); inst_vertex_point_3->putAttr("vertex_geometry", point_5); OdDAI::ApplicationInstancePtr inst_vertex_point_4 = model->createEntityInstance("vertex_point"); OdDAIObjectId id_vertex_point_4 = model->appendEntityInstance(inst_vertex_point_4); inst_vertex_point_4->putAttr("name", (OdAnsiString)""); inst_vertex_point_4->putAttr("vertex_geometry", point_8); OdDAI::ApplicationInstancePtr inst_vertex_point_5 = model->createEntityInstance("vertex_point"); OdDAIObjectId id_vertex_point_5 = model->appendEntityInstance(inst_vertex_point_5); inst_vertex_point_5->putAttr("name", (OdAnsiString)""); inst_vertex_point_5->putAttr("vertex_geometry", point_12); OdDAI::ApplicationInstancePtr inst_vertex_point_6 = model->createEntityInstance("vertex_point"); OdDAIObjectId id_vertex_point_6 = model->appendEntityInstance(inst_vertex_point_6); inst_vertex_point_6->putAttr("name", (OdAnsiString)""); inst_vertex_point_6->putAttr("vertex_geometry", point_14); OdDAI::ApplicationInstancePtr inst_vertex_point_7 = model->createEntityInstance("vertex_point"); OdDAIObjectId id_vertex_point_7 = model->appendEntityInstance(inst_vertex_point_7); inst_vertex_point_7->putAttr("name", (OdAnsiString)""); inst_vertex_point_7->putAttr("vertex_geometry", point_18); OdDAI::ApplicationInstancePtr inst_vertex_point_8 = model->createEntityInstance("vertex_point"); OdDAIObjectId id_vertex_point_8 = model->appendEntityInstance(inst_vertex_point_8); inst_vertex_point_8->putAttr("name", (OdAnsiString)""); inst_vertex_point_8->putAttr("vertex_geometry", point_20); OdDAI::ApplicationInstancePtr inst_vector_1 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_1 = model->appendEntityInstance(inst_vector_1); inst_vector_1->putAttr("name", (OdAnsiString)""); inst_vector_1->putAttr("orientation", id_direcrion_3); inst_vector_1->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_2 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_2 = model->appendEntityInstance(inst_vector_2); inst_vector_2->putAttr("name", (OdAnsiString)""); inst_vector_2->putAttr("orientation", id_direcrion_4); inst_vector_2->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_3 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_3 = model->appendEntityInstance(inst_vector_3); inst_vector_3->putAttr("name", (OdAnsiString)""); inst_vector_3->putAttr("orientation", id_direcrion_5); inst_vector_3->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_4 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_4 = model->appendEntityInstance(inst_vector_4); inst_vector_4->putAttr("name", (OdAnsiString)""); inst_vector_4->putAttr("orientation", id_direcrion_6); inst_vector_4->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_5 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_5 = model->appendEntityInstance(inst_vector_5); inst_vector_5->putAttr("name", (OdAnsiString)""); inst_vector_5->putAttr("orientation", id_direcrion_9); inst_vector_5->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_6 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_6 = model->appendEntityInstance(inst_vector_6); inst_vector_6->putAttr("name", (OdAnsiString)""); inst_vector_6->putAttr("orientation", id_direcrion_10); inst_vector_6->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_7 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_7 = model->appendEntityInstance(inst_vector_7); inst_vector_7->putAttr("name", (OdAnsiString)""); inst_vector_7->putAttr("orientation", id_direcrion_11); inst_vector_7->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_8 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_8 = model->appendEntityInstance(inst_vector_8); inst_vector_8->putAttr("name", (OdAnsiString)""); inst_vector_8->putAttr("orientation", id_direcrion_14); inst_vector_8->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_9 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_9 = model->appendEntityInstance(inst_vector_9); inst_vector_9->putAttr("name", (OdAnsiString)""); inst_vector_9->putAttr("orientation", id_direcrion_15); inst_vector_9->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_10 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_10 = model->appendEntityInstance(inst_vector_10); inst_vector_10->putAttr("name", (OdAnsiString)""); inst_vector_10->putAttr("orientation", id_direcrion_16); inst_vector_10->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_11 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_11 = model->appendEntityInstance(inst_vector_11); inst_vector_11->putAttr("name", (OdAnsiString)""); inst_vector_11->putAttr("orientation", id_direcrion_19); inst_vector_11->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_vector_12 = model->createEntityInstance("vector"); OdDAIObjectId id_vector_12 = model->appendEntityInstance(inst_vector_12); inst_vector_12->putAttr("name", (OdAnsiString)""); inst_vector_12->putAttr("orientation", id_direcrion_20); inst_vector_12->putAttr("magnitude", 1.); OdDAI::ApplicationInstancePtr inst_line_1 = model->createEntityInstance("line"); OdDAIObjectId id_line_1 = model->appendEntityInstance(inst_line_1); inst_line_1->putAttr("name", (OdAnsiString)""); inst_line_1->putAttr("pnt", point_2); inst_line_1->putAttr("dir", id_vector_1); OdDAI::ApplicationInstancePtr inst_line_2 = model->createEntityInstance("line"); OdDAIObjectId id_line_2 = model->appendEntityInstance(inst_line_2); inst_line_2->putAttr("name", (OdAnsiString)""); inst_line_2->putAttr("pnt", point_5); inst_line_2->putAttr("dir", id_vector_2); OdDAI::ApplicationInstancePtr inst_line_3 = model->createEntityInstance("line"); OdDAIObjectId id_line_3 = model->appendEntityInstance(inst_line_3); inst_line_3->putAttr("name", (OdAnsiString)""); inst_line_3->putAttr("pnt", point_7); inst_line_3->putAttr("dir", id_vector_3); OdDAI::ApplicationInstancePtr inst_line_4 = model->createEntityInstance("line"); OdDAIObjectId id_line_4 = model->appendEntityInstance(inst_line_4); inst_line_4->putAttr("name", (OdAnsiString)""); inst_line_4->putAttr("pnt", point_9); inst_line_4->putAttr("dir", id_vector_4); OdDAI::ApplicationInstancePtr inst_line_5 = model->createEntityInstance("line"); OdDAIObjectId id_line_5 = model->appendEntityInstance(inst_line_5); inst_line_5->putAttr("name", (OdAnsiString)""); inst_line_5->putAttr("pnt", point_11); inst_line_5->putAttr("dir", id_vector_5); OdDAI::ApplicationInstancePtr inst_line_6 = model->createEntityInstance("line"); OdDAIObjectId id_line_6 = model->appendEntityInstance(inst_line_6); inst_line_6->putAttr("name", (OdAnsiString)""); inst_line_6->putAttr("pnt", point_13); inst_line_6->putAttr("dir", id_vector_6); OdDAI::ApplicationInstancePtr inst_line_7 = model->createEntityInstance("line"); OdDAIObjectId id_line_7 = model->appendEntityInstance(inst_line_7); inst_line_7->putAttr("name", (OdAnsiString)""); inst_line_7->putAttr("pnt", point_15); inst_line_7->putAttr("dir", id_vector_7); OdDAI::ApplicationInstancePtr inst_line_8 = model->createEntityInstance("line"); OdDAIObjectId id_line_8 = model->appendEntityInstance(inst_line_8); inst_line_8->putAttr("name", (OdAnsiString)""); inst_line_8->putAttr("pnt", point_17); inst_line_8->putAttr("dir", id_vector_8); OdDAI::ApplicationInstancePtr inst_line_9 = model->createEntityInstance("line"); OdDAIObjectId id_line_9 = model->appendEntityInstance(inst_line_9); inst_line_9->putAttr("name", (OdAnsiString)""); inst_line_9->putAttr("pnt", point_19); inst_line_9->putAttr("dir", id_vector_9); OdDAI::ApplicationInstancePtr inst_line_10 = model->createEntityInstance("line"); OdDAIObjectId id_line_10 = model->appendEntityInstance(inst_line_10); inst_line_10->putAttr("name", (OdAnsiString)""); inst_line_10->putAttr("pnt", point_21); inst_line_10->putAttr("dir", id_vector_10); OdDAI::ApplicationInstancePtr inst_line_11 = model->createEntityInstance("line"); OdDAIObjectId id_line_11 = model->appendEntityInstance(inst_line_11); inst_line_11->putAttr("name", (OdAnsiString)""); inst_line_11->putAttr("pnt", point_23); inst_line_11->putAttr("dir", id_vector_11); OdDAI::ApplicationInstancePtr inst_line_12 = model->createEntityInstance("line"); OdDAIObjectId id_line_12 = model->appendEntityInstance(inst_line_12); inst_line_12->putAttr("name", (OdAnsiString)""); inst_line_12->putAttr("pnt", point_24); inst_line_12->putAttr("dir", id_vector_12); OdDAI::ApplicationInstancePtr inst_axis2placement_1 = model->createEntityInstance("axis2_placement_3d"); OdDAIObjectId id_axis2placement_1 = model->appendEntityInstance(inst_axis2placement_1); inst_axis2placement_1->putAttr("name", (OdAnsiString)""); inst_axis2placement_1->putAttr("location", point_1); inst_axis2placement_1->putAttr("axis", id_direcrion_1); inst_axis2placement_1->putAttr("ref_direction", id_direcrion_2); OdDAI::ApplicationInstancePtr inst_axis2placement_2 = model->createEntityInstance("axis2_placement_3d"); OdDAIObjectId id_axis2placement_2 = model->appendEntityInstance(inst_axis2placement_2); inst_axis2placement_2->putAttr("name", (OdAnsiString)""); inst_axis2placement_2->putAttr("location", point_10); inst_axis2placement_2->putAttr("axis", id_direcrion_7); inst_axis2placement_2->putAttr("ref_direction", id_direcrion_8); OdDAI::ApplicationInstancePtr inst_axis2placement_3 = model->createEntityInstance("axis2_placement_3d"); OdDAIObjectId id_axis2placement_3 = model->appendEntityInstance(inst_axis2placement_3); inst_axis2placement_3->putAttr("name", (OdAnsiString)""); inst_axis2placement_3->putAttr("location", point_16); inst_axis2placement_3->putAttr("axis", id_direcrion_12); inst_axis2placement_3->putAttr("ref_direction", id_direcrion_13); OdDAI::ApplicationInstancePtr inst_axis2placement_4 = model->createEntityInstance("axis2_placement_3d"); OdDAIObjectId id_axis2placement_4 = model->appendEntityInstance(inst_axis2placement_4); inst_axis2placement_4->putAttr("name", (OdAnsiString)""); inst_axis2placement_4->putAttr("location", point_22); inst_axis2placement_4->putAttr("axis", id_direcrion_17); inst_axis2placement_4->putAttr("ref_direction", id_direcrion_18); OdDAI::ApplicationInstancePtr inst_axis2placement_5 = model->createEntityInstance("axis2_placement_3d"); OdDAIObjectId id_axis2placement_5 = model->appendEntityInstance(inst_axis2placement_5); inst_axis2placement_5->putAttr("name", (OdAnsiString)""); inst_axis2placement_5->putAttr("location", point_25); inst_axis2placement_5->putAttr("axis", id_direcrion_21); inst_axis2placement_5->putAttr("ref_direction", id_direcrion_22); OdDAI::ApplicationInstancePtr inst_axis2placement_6 = model->createEntityInstance("axis2_placement_3d"); OdDAIObjectId id_axis2placement_6 = model->appendEntityInstance(inst_axis2placement_6); inst_axis2placement_6->putAttr("name", (OdAnsiString)""); inst_axis2placement_6->putAttr("location", point_26); inst_axis2placement_6->putAttr("axis", id_direcrion_23); inst_axis2placement_6->putAttr("ref_direction", id_direcrion_24); OdDAI::ApplicationInstancePtr inst_axis2placement_7 = model->createEntityInstance("axis2_placement_3d"); OdDAIObjectId id_axis2placement_7 = model->appendEntityInstance(inst_axis2placement_7); inst_axis2placement_7->putAttr("name", (OdAnsiString)""); inst_axis2placement_7->putAttr("location", point_27); inst_axis2placement_7->putAttr("axis", id_direcrion_25); inst_axis2placement_7->putAttr("ref_direction", id_direcrion_26); OdDAI::ApplicationInstancePtr inst_plane_1 = model->createEntityInstance("plane"); OdDAIObjectId id_plane_1 = model->appendEntityInstance(inst_plane_1); inst_plane_1->putAttr("name", (OdAnsiString)""); inst_plane_1->putAttr("position", id_axis2placement_2); OdDAI::ApplicationInstancePtr inst_plane_2 = model->createEntityInstance("plane"); OdDAIObjectId id_plane_2 = model->appendEntityInstance(inst_plane_2); inst_plane_2->putAttr("name", (OdAnsiString)""); inst_plane_2->putAttr("position", id_axis2placement_3); OdDAI::ApplicationInstancePtr inst_plane_3 = model->createEntityInstance("plane"); OdDAIObjectId id_plane_3 = model->appendEntityInstance(inst_plane_3); inst_plane_3->putAttr("name", (OdAnsiString)""); inst_plane_3->putAttr("position", id_axis2placement_4); OdDAI::ApplicationInstancePtr inst_plane_4 = model->createEntityInstance("plane"); OdDAIObjectId id_plane_4 = model->appendEntityInstance(inst_plane_4); inst_plane_4->putAttr("name", (OdAnsiString)""); inst_plane_4->putAttr("position", id_axis2placement_5); OdDAI::ApplicationInstancePtr inst_plane_5 = model->createEntityInstance("plane"); OdDAIObjectId id_plane_5 = model->appendEntityInstance(inst_plane_5); inst_plane_5->putAttr("name", (OdAnsiString)""); inst_plane_5->putAttr("position", id_axis2placement_6); OdDAI::ApplicationInstancePtr inst_plane_6 = model->createEntityInstance("plane"); OdDAIObjectId id_plane_6 = model->appendEntityInstance(inst_plane_6); inst_plane_6->putAttr("name", (OdAnsiString)""); inst_plane_6->putAttr("position", id_axis2placement_7); OdDAI::ApplicationInstancePtr inst_edge_curve_1 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_1 = model->appendEntityInstance(inst_edge_curve_1); inst_edge_curve_1->putAttr("name", (OdAnsiString)""); inst_edge_curve_1->putAttr("edge_start", id_vertex_point_1); inst_edge_curve_1->putAttr("edge_end", id_vertex_point_2); inst_edge_curve_1->putAttr("edge_geometry", id_line_1); inst_edge_curve_1->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_2 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_2 = model->appendEntityInstance(inst_edge_curve_2); inst_edge_curve_2->putAttr("name", (OdAnsiString)""); inst_edge_curve_2->putAttr("edge_start", id_vertex_point_3); inst_edge_curve_2->putAttr("edge_end", id_vertex_point_2); inst_edge_curve_2->putAttr("edge_geometry", id_line_2); inst_edge_curve_2->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_3 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_3 = model->appendEntityInstance(inst_edge_curve_3); inst_edge_curve_3->putAttr("name", (OdAnsiString)""); inst_edge_curve_3->putAttr("edge_start", id_vertex_point_4); inst_edge_curve_3->putAttr("edge_end", id_vertex_point_3); inst_edge_curve_3->putAttr("edge_geometry", id_line_3); inst_edge_curve_3->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_4 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_4 = model->appendEntityInstance(inst_edge_curve_4); inst_edge_curve_4->putAttr("name", (OdAnsiString)""); inst_edge_curve_4->putAttr("edge_start", id_vertex_point_4); inst_edge_curve_4->putAttr("edge_end", id_vertex_point_1); inst_edge_curve_4->putAttr("edge_geometry", id_line_4); inst_edge_curve_4->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_5 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_5 = model->appendEntityInstance(inst_edge_curve_5); inst_edge_curve_5->putAttr("name", (OdAnsiString)""); inst_edge_curve_5->putAttr("edge_start", id_vertex_point_2); inst_edge_curve_5->putAttr("edge_end", id_vertex_point_5); inst_edge_curve_5->putAttr("edge_geometry", id_line_5); inst_edge_curve_5->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_6 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_6 = model->appendEntityInstance(inst_edge_curve_6); inst_edge_curve_6->putAttr("name", (OdAnsiString)""); inst_edge_curve_6->putAttr("edge_start", id_vertex_point_6); inst_edge_curve_6->putAttr("edge_end", id_vertex_point_5); inst_edge_curve_6->putAttr("edge_geometry", id_line_6); inst_edge_curve_6->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_7 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_7 = model->appendEntityInstance(inst_edge_curve_7); inst_edge_curve_7->putAttr("name", (OdAnsiString)""); inst_edge_curve_7->putAttr("edge_start", id_vertex_point_3); inst_edge_curve_7->putAttr("edge_end", id_vertex_point_6); inst_edge_curve_7->putAttr("edge_geometry", id_line_7); inst_edge_curve_7->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_8 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_8 = model->appendEntityInstance(inst_edge_curve_8); inst_edge_curve_8->putAttr("name", (OdAnsiString)""); inst_edge_curve_8->putAttr("edge_start", id_vertex_point_5); inst_edge_curve_8->putAttr("edge_end", id_vertex_point_7); inst_edge_curve_8->putAttr("edge_geometry", id_line_8); inst_edge_curve_8->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_9 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_9 = model->appendEntityInstance(inst_edge_curve_9); inst_edge_curve_9->putAttr("name", (OdAnsiString)""); inst_edge_curve_9->putAttr("edge_start", id_vertex_point_8); inst_edge_curve_9->putAttr("edge_end", id_vertex_point_7); inst_edge_curve_9->putAttr("edge_geometry", id_line_9); inst_edge_curve_9->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_10 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_10 = model->appendEntityInstance(inst_edge_curve_10); inst_edge_curve_10->putAttr("name", (OdAnsiString)""); inst_edge_curve_10->putAttr("edge_start", id_vertex_point_6); inst_edge_curve_10->putAttr("edge_end", id_vertex_point_8); inst_edge_curve_10->putAttr("edge_geometry", id_line_10); inst_edge_curve_10->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_11 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_11 = model->appendEntityInstance(inst_edge_curve_11); inst_edge_curve_11->putAttr("name", (OdAnsiString)""); inst_edge_curve_11->putAttr("edge_start", id_vertex_point_7); inst_edge_curve_11->putAttr("edge_end", id_vertex_point_1); inst_edge_curve_11->putAttr("edge_geometry", id_line_11); inst_edge_curve_11->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_edge_curve_12 = model->createEntityInstance("edge_curve"); OdDAIObjectId id_edge_curve_12 = model->appendEntityInstance(inst_edge_curve_12); inst_edge_curve_12->putAttr("name", (OdAnsiString)""); inst_edge_curve_12->putAttr("edge_start", id_vertex_point_8); inst_edge_curve_12->putAttr("edge_end", id_vertex_point_4); inst_edge_curve_12->putAttr("edge_geometry", id_line_12); inst_edge_curve_12->putAttr("same_sense", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_1 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_1 = model->appendEntityInstance(inst_oriented_edge_1); inst_oriented_edge_1->putAttr("name", (OdAnsiString)""); inst_oriented_edge_1->putAttr("edge_element", id_edge_curve_1); inst_oriented_edge_1->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_2 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_2 = model->appendEntityInstance(inst_oriented_edge_2); inst_oriented_edge_2->putAttr("name", (OdAnsiString)""); inst_oriented_edge_2->putAttr("edge_element", id_edge_curve_2); inst_oriented_edge_2->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_3 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_3 = model->appendEntityInstance(inst_oriented_edge_3); inst_oriented_edge_3->putAttr("name", (OdAnsiString)""); inst_oriented_edge_3->putAttr("edge_element", id_edge_curve_3); inst_oriented_edge_3->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_4 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_4 = model->appendEntityInstance(inst_oriented_edge_4); inst_oriented_edge_4->putAttr("name", (OdAnsiString)""); inst_oriented_edge_4->putAttr("edge_element", id_edge_curve_4); inst_oriented_edge_4->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_5 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_5 = model->appendEntityInstance(inst_oriented_edge_5); inst_oriented_edge_5->putAttr("name", (OdAnsiString)""); inst_oriented_edge_5->putAttr("edge_element", id_edge_curve_5); inst_oriented_edge_5->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_6 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_6 = model->appendEntityInstance(inst_oriented_edge_6); inst_oriented_edge_6->putAttr("name", (OdAnsiString)""); inst_oriented_edge_6->putAttr("edge_element", id_edge_curve_6); inst_oriented_edge_6->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_7 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_7 = model->appendEntityInstance(inst_oriented_edge_7); inst_oriented_edge_7->putAttr("name", (OdAnsiString)""); inst_oriented_edge_7->putAttr("edge_element", id_edge_curve_7); inst_oriented_edge_7->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_8 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_8 = model->appendEntityInstance(inst_oriented_edge_8); inst_oriented_edge_8->putAttr("name", (OdAnsiString)""); inst_oriented_edge_8->putAttr("edge_element", id_edge_curve_2); inst_oriented_edge_8->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_9 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_9 = model->appendEntityInstance(inst_oriented_edge_9); inst_oriented_edge_9->putAttr("name", (OdAnsiString)""); inst_oriented_edge_9->putAttr("edge_element", id_edge_curve_8); inst_oriented_edge_9->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_10 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_10 = model->appendEntityInstance(inst_oriented_edge_10); inst_oriented_edge_10->putAttr("name", (OdAnsiString)""); inst_oriented_edge_10->putAttr("edge_element", id_edge_curve_9); inst_oriented_edge_10->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_11 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_11 = model->appendEntityInstance(inst_oriented_edge_11); inst_oriented_edge_11->putAttr("name", (OdAnsiString)""); inst_oriented_edge_11->putAttr("edge_element", id_edge_curve_10); inst_oriented_edge_11->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_12 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_12 = model->appendEntityInstance(inst_oriented_edge_12); inst_oriented_edge_12->putAttr("name", (OdAnsiString)""); inst_oriented_edge_12->putAttr("edge_element", id_edge_curve_6); inst_oriented_edge_12->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_13 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_13 = model->appendEntityInstance(inst_oriented_edge_13); inst_oriented_edge_13->putAttr("name", (OdAnsiString)""); inst_oriented_edge_13->putAttr("edge_element", id_edge_curve_11); inst_oriented_edge_13->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_14 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_14 = model->appendEntityInstance(inst_oriented_edge_14); inst_oriented_edge_14->putAttr("name", (OdAnsiString)""); inst_oriented_edge_14->putAttr("edge_element", id_edge_curve_4); inst_oriented_edge_14->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_15 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_15 = model->appendEntityInstance(inst_oriented_edge_15); inst_oriented_edge_15->putAttr("name", (OdAnsiString)""); inst_oriented_edge_15->putAttr("edge_element", id_edge_curve_12); inst_oriented_edge_15->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_16 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_16 = model->appendEntityInstance(inst_oriented_edge_16); inst_oriented_edge_16->putAttr("name", (OdAnsiString)""); inst_oriented_edge_16->putAttr("edge_element", id_edge_curve_9); inst_oriented_edge_16->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_17 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_17 = model->appendEntityInstance(inst_oriented_edge_17); inst_oriented_edge_17->putAttr("name", (OdAnsiString)""); inst_oriented_edge_17->putAttr("edge_element", id_edge_curve_3); inst_oriented_edge_17->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_18 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_18 = model->appendEntityInstance(inst_oriented_edge_18); inst_oriented_edge_18->putAttr("name", (OdAnsiString)""); inst_oriented_edge_18->putAttr("edge_element", id_edge_curve_7); inst_oriented_edge_18->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_19 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_19 = model->appendEntityInstance(inst_oriented_edge_19); inst_oriented_edge_19->putAttr("name", (OdAnsiString)""); inst_oriented_edge_19->putAttr("edge_element", id_edge_curve_10); inst_oriented_edge_19->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_20 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_20 = model->appendEntityInstance(inst_oriented_edge_20); inst_oriented_edge_20->putAttr("name", (OdAnsiString)""); inst_oriented_edge_20->putAttr("edge_element", id_edge_curve_12); inst_oriented_edge_20->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_oriented_edge_21 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_21 = model->appendEntityInstance(inst_oriented_edge_21); inst_oriented_edge_21->putAttr("name", (OdAnsiString)""); inst_oriented_edge_21->putAttr("edge_element", id_edge_curve_1); inst_oriented_edge_21->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_22 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_22 = model->appendEntityInstance(inst_oriented_edge_22); inst_oriented_edge_22->putAttr("name", (OdAnsiString)""); inst_oriented_edge_22->putAttr("edge_element", id_edge_curve_11); inst_oriented_edge_22->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_23 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_23 = model->appendEntityInstance(inst_oriented_edge_23); inst_oriented_edge_23->putAttr("name", (OdAnsiString)""); inst_oriented_edge_23->putAttr("edge_element", id_edge_curve_8); inst_oriented_edge_23->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_oriented_edge_24 = model->createEntityInstance("oriented_edge"); OdDAIObjectId id_oriented_edge_24 = model->appendEntityInstance(inst_oriented_edge_24); inst_oriented_edge_24->putAttr("name", (OdAnsiString)""); inst_oriented_edge_24->putAttr("edge_element", id_edge_curve_5); inst_oriented_edge_24->putAttr("orientation", false); OdDAI::ApplicationInstancePtr inst_edge_loop_1 = model->createEntityInstance("edge_loop"); OdDAIObjectId id_edge_loop_1 = model->appendEntityInstance(inst_edge_loop_1); OdDAIObjectIds edge_loop_list_1; edge_loop_list_1.append(id_oriented_edge_1); edge_loop_list_1.append(id_oriented_edge_2); edge_loop_list_1.append(id_oriented_edge_3); edge_loop_list_1.append(id_oriented_edge_4); inst_edge_loop_1->putAttr("edge_list", edge_loop_list_1); inst_edge_loop_1->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_edge_loop_2 = model->createEntityInstance("edge_loop"); OdDAIObjectId id_edge_loop_2 = model->appendEntityInstance(inst_edge_loop_2); OdDAIObjectIds edge_loop_list_2; edge_loop_list_2.append(id_oriented_edge_5); edge_loop_list_2.append(id_oriented_edge_6); edge_loop_list_2.append(id_oriented_edge_7); edge_loop_list_2.append(id_oriented_edge_8); inst_edge_loop_2->putAttr("edge_list", edge_loop_list_2); inst_edge_loop_2->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_edge_loop_3 = model->createEntityInstance("edge_loop"); OdDAIObjectId id_edge_loop_3 = model->appendEntityInstance(inst_edge_loop_3); OdDAIObjectIds edge_loop_list_3; edge_loop_list_3.append(id_oriented_edge_9); edge_loop_list_3.append(id_oriented_edge_10); edge_loop_list_3.append(id_oriented_edge_11); edge_loop_list_3.append(id_oriented_edge_12); inst_edge_loop_3->putAttr("edge_list", edge_loop_list_3); inst_edge_loop_3->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_edge_loop_4 = model->createEntityInstance("edge_loop"); OdDAIObjectId id_edge_loop_4 = model->appendEntityInstance(inst_edge_loop_4); OdDAIObjectIds edge_loop_list_4; edge_loop_list_4.append(id_oriented_edge_13); edge_loop_list_4.append(id_oriented_edge_14); edge_loop_list_4.append(id_oriented_edge_15); edge_loop_list_4.append(id_oriented_edge_16); inst_edge_loop_4->putAttr("edge_list", edge_loop_list_4); inst_edge_loop_4->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_edge_loop_5 = model->createEntityInstance("edge_loop"); OdDAIObjectId id_edge_loop_5 = model->appendEntityInstance(inst_edge_loop_5); OdDAIObjectIds edge_loop_list_5; edge_loop_list_5.append(id_oriented_edge_17); edge_loop_list_5.append(id_oriented_edge_18); edge_loop_list_5.append(id_oriented_edge_19); edge_loop_list_5.append(id_oriented_edge_20); inst_edge_loop_5->putAttr("edge_list", edge_loop_list_5); inst_edge_loop_5->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_edge_loop_6 = model->createEntityInstance("edge_loop"); OdDAIObjectId id_edge_loop_6 = model->appendEntityInstance(inst_edge_loop_6); OdDAIObjectIds edge_loop_list_6; edge_loop_list_6.append(id_oriented_edge_21); edge_loop_list_6.append(id_oriented_edge_22); edge_loop_list_6.append(id_oriented_edge_23); edge_loop_list_6.append(id_oriented_edge_24); inst_edge_loop_6->putAttr("edge_list", edge_loop_list_6); inst_edge_loop_6->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_face_outer_bound_1 = model->createEntityInstance("face_outer_bound"); OdDAIObjectId id_face_outer_bound_1 = model->appendEntityInstance(inst_face_outer_bound_1); inst_face_outer_bound_1->putAttr("name", (OdAnsiString)""); inst_face_outer_bound_1->putAttr("bound", id_edge_loop_1); inst_face_outer_bound_1->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_face_outer_bound_2 = model->createEntityInstance("face_outer_bound"); OdDAIObjectId id_face_outer_bound_2 = model->appendEntityInstance(inst_face_outer_bound_2); inst_face_outer_bound_2->putAttr("name", (OdAnsiString)""); inst_face_outer_bound_2->putAttr("bound", id_edge_loop_2); inst_face_outer_bound_2->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_face_outer_bound_3 = model->createEntityInstance("face_outer_bound"); OdDAIObjectId id_face_outer_bound_3 = model->appendEntityInstance(inst_face_outer_bound_3); inst_face_outer_bound_3->putAttr("name", (OdAnsiString)""); inst_face_outer_bound_3->putAttr("bound", id_edge_loop_3); inst_face_outer_bound_3->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_face_outer_bound_4 = model->createEntityInstance("face_outer_bound"); OdDAIObjectId id_face_outer_bound_4 = model->appendEntityInstance(inst_face_outer_bound_4); inst_face_outer_bound_4->putAttr("name", (OdAnsiString)""); inst_face_outer_bound_4->putAttr("bound", id_edge_loop_4); inst_face_outer_bound_4->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_face_outer_bound_5 = model->createEntityInstance("face_outer_bound"); OdDAIObjectId id_face_outer_bound_5 = model->appendEntityInstance(inst_face_outer_bound_5); inst_face_outer_bound_5->putAttr("name", (OdAnsiString)""); inst_face_outer_bound_5->putAttr("bound", id_edge_loop_5); inst_face_outer_bound_5->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_face_outer_bound_6 = model->createEntityInstance("face_outer_bound"); OdDAIObjectId id_face_outer_bound_6 = model->appendEntityInstance(inst_face_outer_bound_6); inst_face_outer_bound_6->putAttr("name", (OdAnsiString)""); inst_face_outer_bound_6->putAttr("bound", id_edge_loop_6); inst_face_outer_bound_6->putAttr("orientation", true); OdDAI::ApplicationInstancePtr inst_advanced_face_1 = model->createEntityInstance("advanced_face"); OdDAIObjectId id_advanced_face_1 = model->appendEntityInstance(inst_advanced_face_1); OdDAI::Set * face_bounds_1; inst_advanced_face_1->getAttr("bounds") >> face_bounds_1; face_bounds_1->createEmpty(); face_bounds_1->Add(id_face_outer_bound_1); inst_advanced_face_1->putAttr("face_geometry", id_plane_1); inst_advanced_face_1->putAttr("same_sense", false); inst_advanced_face_1->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_advanced_face_2 = model->createEntityInstance("advanced_face"); OdDAIObjectId id_advanced_face_2 = model->appendEntityInstance(inst_advanced_face_2); OdDAI::Set * face_bounds_2; inst_advanced_face_2->getAttr("bounds") >> face_bounds_2; face_bounds_2->createEmpty(); face_bounds_2->Add(id_face_outer_bound_2); inst_advanced_face_2->putAttr("face_geometry", id_plane_2); inst_advanced_face_2->putAttr("same_sense", false); inst_advanced_face_2->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_advanced_face_3 = model->createEntityInstance("advanced_face"); OdDAIObjectId id_advanced_face_3 = model->appendEntityInstance(inst_advanced_face_3); OdDAI::Set * face_bounds_3; inst_advanced_face_3->getAttr("bounds") >> face_bounds_3; face_bounds_3->createEmpty(); face_bounds_3->Add(id_face_outer_bound_3); inst_advanced_face_3->putAttr("face_geometry", id_plane_3); inst_advanced_face_3->putAttr("same_sense", false); inst_advanced_face_3->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_advanced_face_4 = model->createEntityInstance("advanced_face"); OdDAIObjectId id_advanced_face_4 = model->appendEntityInstance(inst_advanced_face_4); OdDAI::Set * face_bounds_4; inst_advanced_face_4->getAttr("bounds") >> face_bounds_4; face_bounds_4->createEmpty(); face_bounds_4->Add(id_face_outer_bound_4); inst_advanced_face_4->putAttr("face_geometry", id_plane_4); inst_advanced_face_4->putAttr("same_sense", false); inst_advanced_face_4->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_advanced_face_5 = model->createEntityInstance("advanced_face"); OdDAIObjectId id_advanced_face_5 = model->appendEntityInstance(inst_advanced_face_5); OdDAI::Set * face_bounds_5; inst_advanced_face_5->getAttr("bounds") >> face_bounds_5; face_bounds_5->createEmpty(); face_bounds_5->Add(id_face_outer_bound_5); inst_advanced_face_5->putAttr("face_geometry", id_plane_5); inst_advanced_face_5->putAttr("same_sense", true); inst_advanced_face_5->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_advanced_face_6 = model->createEntityInstance("advanced_face"); OdDAIObjectId id_advanced_face_6 = model->appendEntityInstance(inst_advanced_face_6); OdDAI::Set * face_bounds_6; inst_advanced_face_6->getAttr("bounds") >> face_bounds_6; face_bounds_6->createEmpty(); face_bounds_6->Add(id_face_outer_bound_6); inst_advanced_face_6->putAttr("face_geometry", id_plane_6); inst_advanced_face_6->putAttr("same_sense", false); inst_advanced_face_6->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_closed_shell = model->createEntityInstance("closed_shell"); OdDAIObjectId id_closed_shell = model->appendEntityInstance(inst_closed_shell); inst_closed_shell->putAttr("name", (OdAnsiString)""); OdDAI::Set* set_faces; inst_closed_shell->getAttr("cfs_faces") >> set_faces; set_faces->createEmpty(); set_faces->Add(id_advanced_face_1); set_faces->Add(id_advanced_face_2); set_faces->Add(id_advanced_face_3); set_faces->Add(id_advanced_face_4); set_faces->Add(id_advanced_face_5); set_faces->Add(id_advanced_face_6); OdDAI::ApplicationInstancePtr inst_manifold_solid_brep = model->createEntityInstance("manifold_solid_brep"); OdDAIObjectId id_manifold_solid_brep = model->appendEntityInstance(inst_manifold_solid_brep); inst_manifold_solid_brep->putAttr("outer", id_closed_shell); inst_manifold_solid_brep->putAttr("name", (OdAnsiString)""); OdDAI::Set * set_advanced_brep_repr; inst_advanced_brep_repr->getAttr("items") >> set_advanced_brep_repr; set_advanced_brep_repr->createEmpty(); set_advanced_brep_repr->Add(id_manifold_solid_brep); OdDAI::ApplicationInstancePtr inst_colour_rgb = model->createEntityInstance("colour_rgb"); OdDAIObjectId id_colour_rgb = model->appendEntityInstance(inst_colour_rgb); inst_colour_rgb->putAttr("name", (OdAnsiString)""); inst_colour_rgb->putAttr("red", 1.); inst_colour_rgb->putAttr("green", 0.6); inst_colour_rgb->putAttr("blue", 0.); OdDAI::ApplicationInstancePtr inst_fill_area_style_colour = model->createEntityInstance("fill_area_style_colour"); OdDAIObjectId id_fill_area_style_colour = model->appendEntityInstance(inst_fill_area_style_colour); inst_fill_area_style_colour->putAttr("name", (OdAnsiString)""); inst_fill_area_style_colour->putAttr("fill_colour", id_colour_rgb); OdDAI::ApplicationInstancePtr inst_fill_area_style = model->createEntityInstance("fill_area_style"); OdDAIObjectId id_fill_area_style = model->appendEntityInstance(inst_fill_area_style); inst_fill_area_style->putAttr("name", (OdAnsiString)""); OdDAI::Set* set_fill_styles; inst_fill_area_style->getAttr("fill_styles") >> set_fill_styles; set_fill_styles->createEmpty(); set_fill_styles->Add(OdRxValue(id_fill_area_style_colour)); OdDAI::ApplicationInstancePtr inst_surface_style_fill_area = model->createEntityInstance("surface_style_fill_area"); OdDAIObjectId id_surface_style_fill_area = model->appendEntityInstance(inst_surface_style_fill_area); inst_surface_style_fill_area->putAttr("fill_area", id_fill_area_style); OdDAI::ApplicationInstancePtr inst_surface_side_style = model->createEntityInstance("surface_side_style"); OdDAIObjectId id_surface_side_style = model->appendEntityInstance(inst_surface_side_style); OdDAI::Set* set_styles; inst_surface_side_style->getAttr("styles") >> set_styles; set_styles->createEmpty(); set_styles->Add(OdRxValue(id_surface_style_fill_area)); inst_surface_side_style->putAttr("name", (OdAnsiString)""); OdDAI::ApplicationInstancePtr inst_surface_style_usage = model->createEntityInstance("surface_style_usage"); OdDAIObjectId id_surface_style_usage = model->appendEntityInstance(inst_surface_style_usage); inst_surface_style_usage->putAttr("side", (OdAnsiString)"BOTH"); inst_surface_style_usage->putAttr("style", id_surface_side_style); OdDAI::ApplicationInstancePtr inst_presentation_style_assignment = model->createEntityInstance("presentation_style_assignment"); OdDAIObjectId id_presentation_style_assignment = model->appendEntityInstance(inst_presentation_style_assignment); OdDAI::Set* set_style_assignment; inst_presentation_style_assignment->getAttr("styles") >> set_style_assignment; set_style_assignment->createEmpty(); set_style_assignment->Add(OdRxValue(id_surface_style_usage)); OdDAI::ApplicationInstancePtr inst_styled_item = model->createEntityInstance("styled_item"); OdDAIObjectId id_styled_item = model->appendEntityInstance(inst_styled_item); inst_styled_item->putAttr("item", id_manifold_solid_brep); OdDAI::Set* set_style_item; inst_styled_item->getAttr("styles") >> set_style_item; set_style_item->createEmpty(); set_style_item->Add(id_presentation_style_assignment); inst_styled_item->putAttr("name", (OdAnsiString)""); OdDAI::Set* set_repr_items{}; inst_geometric_presentation_representation->getAttr("items") >> set_repr_items; set_repr_items->createEmpty(); set_repr_items->Add(OdRxValue(id_styled_item)); } repo->writeFile(fileName); session->closeRepo(repo); odPrintConsoleString(L"\n"); oddaiCloseCurrentSession(); return StepTutorial::ExecutionResult::eSucceed; }