/* Copyright (c) 2024 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved. */ #include <ProToolkit.h> #include <ProSolid.h> /*====================================================================*\ FUNCTION: UserSolidFullRegenerate() PURPOSE: Fully regenerates the indicated model - prompt for fix model on failure \*====================================================================*/ ProError UserSolidFullRegenerate (ProSolid solid, ProBoolean allow_fix) { ProError status; int regeneration_flags = PRO_REGEN_FORCE_REGEN; /*--------------------------------------------------------------------*\ Add the "Can fix" flag to the regeneration options \*--------------------------------------------------------------------*/ if (allow_fix) regeneration_flags |= PRO_REGEN_ALLOW_CONFIRM; status = ProSolidRegenerate (solid, regeneration_flags); return PRO_TK_NO_ERROR; } /*====================================================================*\ FUNCTION: UserFullRegenerate() PURPOSE: Fully regenerates the current model - allow fix model on failure \*====================================================================*/ ProError UserFullRegenerate () { ProError status; ProMdl model; ProMdlType type; status = ProMdlCurrentGet (&model); if (status != PRO_TK_NO_ERROR) return PRO_TK_GENERAL_ERROR; status = ProMdlTypeGet (model, &type); if (type != PRO_MDL_PART && type != PRO_MDL_ASSEMBLY) return PRO_TK_GENERAL_ERROR; UserSolidFullRegenerate (model, PRO_B_TRUE); return PRO_TK_NO_ERROR; }