В 19ом код работает. В 18 падает в access violation на этих строках.
iPart := ksPart(iDoc3D.GetPart(pNew_Part));
iUserParam := ksUserParam(ikompas.GetParamStruct(ko_UserParam));
iUserParam.number := 1;
iPart.standardComponent := true;
iPart.name := Name;
iPart.filename := path + filename;
iRequestInfo3D := ksRequestInfo3D(iDoc3D.GetRequestInfo(iPart));
iRequestInfo3D.prompt := 'Укажите положение стандартного изделия';
iRequestInfo3D.SetCallBack('SELECTCALLBACKPROC', hinstance, nil);
iRequestInfo3D.SetFilterCallBack('SELECTFILTERPROC', hinstance, nil);
iRequestInfo3D.CreatePhantom;
phantom := ksPart(iRequestInfo3D.GetIPhantom);
// phantom1 := ksFeatureCollection(iRequestInfo3D.GetIPhantom);
VarCol := ksVariableCollection(phantom.VariableCollection);
ShowMessage('here');
count := VarCol.GetCount();
конкретно на строке VarCol := ksVariableCollection(phantom.VariableCollection); Что не так?
Решение нашел сам. Проблема была в том, что модели из программы пакетного сохранения неверно конвертировались в версию 18. Отсюда и проблемы.