////////////////////////////////////////////////////////////////////////////// // // Copyright 2026 Autodesk, Inc. All rights reserved. // // Use of this software is subject to the terms of the Autodesk license // agreement provided at the time of installation or download, or which // otherwise accompanies this software. // ////////////////////////////////////////////////////////////////////////////// #pragma once #include "Contact.h" // THIS CLASS WILL BE VISIBLE TO AN API CLIENT. // THIS HEADER FILE WILL BE GENERATED FROM NIDL. #include "../../Core/OSMacros.h" #ifdef SIMXINTERFACE_EXPORTS # ifdef __COMPILING_ADSK_SIM_NASTRANCONTACT_CPP__ # define ADSK_SIM_NASTRANCONTACT_API XI_EXPORT # else # define ADSK_SIM_NASTRANCONTACT_API # endif #else # define ADSK_SIM_NASTRANCONTACT_API XI_IMPORT #endif namespace adsk { namespace sim { class OptionalDouble; }} namespace adsk { namespace sim { /// !!!!! Warning !!!!! /// ! This is hidden and not officially supported /// !!!!! Warning !!!!! /// /// Contact in Nastran-based studies (Static Stress, Nonlinear Static Stress). class NastranContact : public Contact { public: /// Gets whether symmetric penetration is used. bool isSymmetric() const; /// Gets whether the maximum activation distance is automatically calculated. bool isAutoMaxActivationDistance() const; /// Gets the stiffness factor property. core::Ptr stiffnessFactor() const; /// Gets the coefficient of static friction property. core::Ptr coefficientOfStaticFriction() const; /// Gets the maximum activation distance property. core::Ptr maxActivationDistance() const; /// Gets the thermal conductance property. core::Ptr thermalConductance() const; /// Gets the penetration surface offset property. core::Ptr penetrationSurfaceOffset() const; /// Gets the maximum allowable penetration property. core::Ptr maxAllowablePenetration() const; /// Gets the frictional stiffness for stick property. core::Ptr frictionalStiffnessForStick() const; /// Gets the maximum allowable adjustment ratio property. core::Ptr maxAllowableAdjustmentRatio() const; /// Gets the allowable penetration lower bound ratio property. core::Ptr allowablePenetrationLowerBoundRatio() const; /// Gets the maximum radial activation distance property. core::Ptr maxRadialActivationDistance() const; /// Gets the maximum normal activation distance property. core::Ptr maxNormalActivationDistance() const; /// Gets the maximum allowable slip property. core::Ptr maxAllowableSlip() const; ADSK_SIM_NASTRANCONTACT_API static const char* classType(); ADSK_SIM_NASTRANCONTACT_API const char* objectType() const override; ADSK_SIM_NASTRANCONTACT_API void* queryInterface(const char* id) const override; ADSK_SIM_NASTRANCONTACT_API static const char* interfaceId() { return classType(); } private: // Raw interface virtual bool isSymmetric_raw() const = 0; virtual bool isAutoMaxActivationDistance_raw() const = 0; virtual OptionalDouble* stiffnessFactor_raw() const = 0; virtual OptionalDouble* coefficientOfStaticFriction_raw() const = 0; virtual OptionalDouble* maxActivationDistance_raw() const = 0; virtual OptionalDouble* thermalConductance_raw() const = 0; virtual OptionalDouble* penetrationSurfaceOffset_raw() const = 0; virtual OptionalDouble* maxAllowablePenetration_raw() const = 0; virtual OptionalDouble* frictionalStiffnessForStick_raw() const = 0; virtual OptionalDouble* maxAllowableAdjustmentRatio_raw() const = 0; virtual OptionalDouble* allowablePenetrationLowerBoundRatio_raw() const = 0; virtual OptionalDouble* maxRadialActivationDistance_raw() const = 0; virtual OptionalDouble* maxNormalActivationDistance_raw() const = 0; virtual OptionalDouble* maxAllowableSlip_raw() const = 0; }; // Inline wrappers inline bool NastranContact::isSymmetric() const { bool res = isSymmetric_raw(); return res; } inline bool NastranContact::isAutoMaxActivationDistance() const { bool res = isAutoMaxActivationDistance_raw(); return res; } inline core::Ptr NastranContact::stiffnessFactor() const { core::Ptr res = stiffnessFactor_raw(); return res; } inline core::Ptr NastranContact::coefficientOfStaticFriction() const { core::Ptr res = coefficientOfStaticFriction_raw(); return res; } inline core::Ptr NastranContact::maxActivationDistance() const { core::Ptr res = maxActivationDistance_raw(); return res; } inline core::Ptr NastranContact::thermalConductance() const { core::Ptr res = thermalConductance_raw(); return res; } inline core::Ptr NastranContact::penetrationSurfaceOffset() const { core::Ptr res = penetrationSurfaceOffset_raw(); return res; } inline core::Ptr NastranContact::maxAllowablePenetration() const { core::Ptr res = maxAllowablePenetration_raw(); return res; } inline core::Ptr NastranContact::frictionalStiffnessForStick() const { core::Ptr res = frictionalStiffnessForStick_raw(); return res; } inline core::Ptr NastranContact::maxAllowableAdjustmentRatio() const { core::Ptr res = maxAllowableAdjustmentRatio_raw(); return res; } inline core::Ptr NastranContact::allowablePenetrationLowerBoundRatio() const { core::Ptr res = allowablePenetrationLowerBoundRatio_raw(); return res; } inline core::Ptr NastranContact::maxRadialActivationDistance() const { core::Ptr res = maxRadialActivationDistance_raw(); return res; } inline core::Ptr NastranContact::maxNormalActivationDistance() const { core::Ptr res = maxNormalActivationDistance_raw(); return res; } inline core::Ptr NastranContact::maxAllowableSlip() const { core::Ptr res = maxAllowableSlip_raw(); return res; } }// namespace sim }// namespace adsk #undef ADSK_SIM_NASTRANCONTACT_API