Hallo API-Freunde,
ich versuche gerade im Inventor mittels API Bohrungen auf einer Fläche zu setzen, leider funktionioniert dies einfach nicht, weil
<SketchHolePlacementDefinition> immer einen NULL-Pointer bringt.
Laut Inventor-Hilfe müßte es aber so gehen.
Was mache ich falsch ???
Im folgenden ein Programmausschnitt der das wesentliche enthält:
// Get PlanarSketches
CComPtr<PlanarSketches> pSketches;
hr = pPartDef->get_Sketches(&pSketches);
// Get standard WorkPlanes
CComPtr<WorkPlanes> pWorkPlanes ;
hr = pPartDef->get_WorkPlanes(&pWorkPlanes);
// Get the standard XY work plane
CComPtr<WorkPlane> pWorkPlane ;
hr = pWorkPlanes->get_Item(CComVariant(3), &pWorkPlane);
// Create a new sketch on the X-Y work plane.
CComPtr<PlanarSketch> pSketch;
hr = pSketches->Add(pWorkPlane, false, &pSketch);
CComPtr<TransientObjects> pTrObj;
hr = _pApplication->get_TransientObjects(&pTrObj);
// Set reference to transient geomtry object
CComPtr<TransientGeometry> pTrGeom;
hr = _pApplication->get_TransientGeometry(&pTrGeom);
// Create center point
CComPtr<Point2d> pCenterPoint;
hr = pTrGeom->CreatePoint2d(0, 0, &pCenterPoint);
// Get Features
CComPtr<PartFeatures> pFeatures;
hr = pPartDef->get_Features(&pFeatures);
/******** Bohrung */
// Set a reference to the HoleFeatures collection object.
CComPtr<HoleFeatures> pHoleFeatures;
hr = pFeatures->get_HoleFeatures(&pHoleFeatures);
ObjectCollectionPtr pPoints = pTrObj->MethodCreateObjectCollection();
hr=pPoints->Add(pCenterPoint);
CComPtr<SketchHolePlacementDefinition> pSketchHolePlacementDefinition =pHoleFeatures->CreateSketchPlacementDefinition(pPoints);
pHoleFeatures->MethodAddDrilledByThroughAllExtent(pSketchHolePlacementDefinition,"1 cm",kPositiveExtentDirection);
Ich bin über jeden Hinweis dankbar
mit bestem Dank und freundlichen Grußen
Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP