#include <Core/Application/Application.h> #include <Core/Application/Document.h> #include <Core/Application/ValueInput.h> #include <Core/UserInterface/UserInterface.h> #include <Fusion/Components/Component.h> #include <Fusion/BRep/BRepBodies.h> #include <Fusion/BRep/BRepBody.h> #include <Fusion/BRep/BRepEdge.h> #include <Fusion/BRep/BRepEdges.h> #include <Fusion/Features/Features.h> #include <Fusion/Features/HemFeature.h> #include <Fusion/Features/HemFeatureInput.h> #include <Fusion/Features/HemFeatures.h> #include <Fusion/Fusion/Design.h> using namespace adsk::core; using namespace adsk::fusion; Ptr<UserInterface> ui; extern "C" XI_EXPORT bool run(const char* context) { Ptr<Application> app = Application::get(); if (!app) return false; ui = app->userInterface(); if (!ui) return false; // Get active design Ptr<Product> product = app->activeProduct(); if (!product) return false; Ptr<Design> design = product; if (!design) return false; // Get root component in this design Ptr<Component> rootComp = design->rootComponent(); if (!rootComp) return false; // Get hem features Ptr<Features> features = rootComp->features(); if (!features) return false; Ptr<HemFeatures> hemFeatures = features->hemFeatures(); if (!hemFeatures) return false; Ptr<BRepBodies> bodies = rootComp->bRepBodies(); Ptr<BRepBody> body = bodies->item(0); Ptr<BRepEdges> edges = body->edges(); // Create an open hem Ptr<ValueInput> gap = ValueInput::createByReal(0.2); Ptr<ValueInput> length = ValueInput::createByReal(2.0); Ptr<HemFeatureInput> openHemFeatureInput = hemFeatures->createHemFeatureInput(); Ptr<BRepEdge> edge = edges->item(0); bool isFlipped = false; BendPositionTypes bendPositionType = BendPositionTypes::BendStartEdge; // Create the feature Ptr<HemFeature> openHemFeature = hemFeatures->add(openHemFeatureInput); // Create a rolled hem Ptr<ValueInput> radius = ValueInput::createByReal(0.3); Ptr<ValueInput> angle = ValueInput::createByReal(4.5); Ptr<HemFeatureInput> rolledHemFeatureInput = hemFeatures->createHemFeatureInput(); Ptr<BRepEdge> edge = edges->item(4); bool isFlipped = false; BendPositionTypes bendPositionType = BendPositionTypes::BendStartEdge; // Create the feature Ptr<HemFeature> rolledHemFeature = hemFeatures->add(rolledHemFeatureInput); return true; }