AcDbAssocEdgeFilletActionBody.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright 2015 Autodesk, Inc. All rights reserved.
  4. //
  5. // Use of this software is subject to the terms of the Autodesk license
  6. // agreement provided at the time of installation or download, or which
  7. // otherwise accompanies this software in either electronic or hard copy form.
  8. //
  9. //////////////////////////////////////////////////////////////////////////////
  10. //
  11. // CREATED BY: Sharad Jaiswal Sept 2009
  12. //
  13. //////////////////////////////////////////////////////////////////////////////
  14. #pragma once
  15. #include "acdbassocpathbasedsurfaceactionbody.h"
  16. #pragma pack (push, 8)
  17. /// <summary>
  18. /// AcDbAssocEdgeFilletActionBody is an action body that controls edge fillet
  19. /// applied to a surface with the set of input data of the action.
  20. /// The "input data" for this action are list of edges, fillet radius and the
  21. /// surface to which the input edges belongs.
  22. /// </summary>
  23. ///
  24. class ACDB_PORT AcDbAssocEdgeFilletActionBody : public AcDbAssocPathBasedSurfaceActionBody
  25. {
  26. public:
  27. ACRX_DECLARE_MEMBERS(AcDbAssocEdgeFilletActionBody);
  28. /// <summary> Default constructor. </summary>
  29. /// <param name="createImpObject"> See AcDbAssocCreateImpObject. </param>
  30. ///
  31. explicit AcDbAssocEdgeFilletActionBody(AcDbAssocCreateImpObject createImpObject = kAcDbAssocCreateImpObject);
  32. /// <summary> Method to set input edges for fillet. </summary>
  33. /// <param name="filletEdges"> List of input edges. </param>
  34. /// <returns> Acad::ErrorStatus. </returns>
  35. ///
  36. Acad::ErrorStatus setInputEdges(const AcDbFullSubentPathArray& filletEdges);
  37. /// <summary><para>
  38. /// Sets fillet radius value, expression and evaluatorId for this action.
  39. /// If there is no expression, the expression string and the evaluatorId
  40. /// must be empty strings.
  41. /// </para><para>
  42. /// Fillet radius can also be set using setValueParam method with paramName
  43. /// kFilletRadiusParamName and value index 0.
  44. /// </para></summary>
  45. /// <param name="radius"> Radius value. </param>
  46. /// <param name="expression"> expression of radius parameter. </param>
  47. /// <param name="evaluatorId"> evaluator id. </param>
  48. /// <returns> Acad::ErrorStatus. </returns>
  49. ///
  50. Acad::ErrorStatus setRadius(double radius, const AcString& expression = AcString(),
  51. const AcString& evaluatorId = AcString());
  52. /// <summary><para>
  53. /// Gets fillet radius value, expression and evaluatorId for this action.
  54. /// If there is no expression, the expression string and the evaluatorId
  55. /// are empty strings.
  56. /// </para><para>
  57. /// Fillet radius can also be obtained using getValueParam method with
  58. /// paramName kFilletRadiusParamName and value index 0.
  59. /// </para></summary>
  60. /// <param name="expression"> expression of the parameter. </param>
  61. /// <param name="evaluatorId"> evaluator id. </param>
  62. /// <returns> Radius value. </returns>
  63. ///
  64. double radius(AcString& expression = dummyString(), AcString& evaluatorId = dummyString()) const;
  65. /// <summary>
  66. /// Implements abstract method AcDbAssocActionBody::evaluateOverride(), this
  67. /// method is called while evaluating the parent action that owns this action
  68. /// body object.
  69. /// </summary>
  70. ///
  71. virtual void evaluateOverride();
  72. /// <summary><para>
  73. /// Utility function to create AcDbAssocEdgeFilletActionBody and attach
  74. /// dependencies and actions for given filletEdges.
  75. /// </para><para>
  76. /// This method must be called before applying actual fillet on the input
  77. /// edges and after calling this method, it is advised to evaluate the
  78. /// associative network.
  79. /// </para></summary>
  80. /// <param name="filletEdges"> List of input edges. </param>
  81. /// <param name="radius"> Radius value. </param>
  82. /// <param name="bEnabled"> Specify if the action is fully associative. </param>
  83. /// <param name="createdActionId"> Object id for action owning
  84. /// created instance of AcDbAssocEdgeFilletActionBody. </param>
  85. /// <returns> Acad::ErrorStatus. </returns>
  86. ///
  87. static Acad::ErrorStatus createInstance( const AcDbFullSubentPathArray& filletEdges,
  88. double radius,
  89. bool bEnabled,
  90. AcDbObjectId& createdActionId);
  91. };
  92. #pragma pack (pop)