Однако, проблема осталась.
За основу взял работающий пример формы ввода данных из Help Fusion
Samples Programs > Command Input
Добавил в Header
// Added
#include <Core/UserInterface/Selections.h>
В форме ввода данных поставил фильтры для точек
// Create selection input
Ptr<SelectionCommandInput> selectionInput = tab1ChildInputs->addSelectionInput(commandId + "_selection", "Select", "Basic select command input");
if (!selectionInput)
return;
selectionInput->setSelectionLimits(0);
selectionInput->addSelectionFilter("SketchPoint");
selectionInput->addSelectionFilter("BRepVertex");
В CommandExecuted event handler
добавил
Ptr<SelectionCommandInput> selectionInput = inputs->itemById(commandId + "_selection");
size_t k = 0;
if(selectionInput) k = selectionInput->selectionCount();
for( int ir = 0; ir < k; ir++){
Ptr<Selection> selection = selectionInput->selection(ir);
// Get
Ptr<Base> enty = selection->entity();
}
Транслятор ругается на selection в Ptr<Base> enty = selection->entity();
Говорит
adsk::core::Ptr<adsk::core::Selection, adsk::core::IcompleteType> selection
Error: использование указателя на тип неполного класса не допускается.
Без этой строки Программа работает. При выборе точек в отладке дает значение k > 0