============================ PolyNURBS (hwx.inspire.core) ============================ Create free-form solid geometry that is smooth and continuous. A PolyNURBS object represents geometry as a NURBS surface surrounded by a transparent polymesh cage. The shape of the PolyNURBS object is the result of the modifications made to the cage, which can be manipulated using the cage's faces, edges, and vertices. ---------- Attributes ---------- +----------------------------------------+----------------------------------------+----------------------------------------+ | active_: Bool | autoCalcMotionContactResolution_: Bool | autoCalculateCG_: Bool | +----------------------------------------+----------------------------------------+----------------------------------------+ | autoCalculateMass_: Bool | autoCalculateMeshSize_: Bool | autoCalculateMoment_: Bool | +----------------------------------------+----------------------------------------+----------------------------------------+ | autoCalculateThickness_: Bool | cg_: Location | color_: Color | +----------------------------------------+----------------------------------------+----------------------------------------+ | designSpace_: Bool | detectCollisions_: Bool | flexible_: Bool | +----------------------------------------+----------------------------------------+----------------------------------------+ | ground_: Bool | ignoreFlexibility_: Bool | ip_: Inertia | +----------------------------------------+----------------------------------------+----------------------------------------+ | mass_: Double | material_: Attribute | maxFreq_: Double | +----------------------------------------+----------------------------------------+----------------------------------------+ | maxMeshSize_: Double | maxThickness_: Double | minGap_: Double | +----------------------------------------+----------------------------------------+----------------------------------------+ | minMeshSize_: Double | minThickness_: Double | modeType_: Enum | +----------------------------------------+----------------------------------------+----------------------------------------+ | modifiable_: Bool | morphable_: Bool | motionContactResolution_: Enum | +----------------------------------------+----------------------------------------+----------------------------------------+ | movable_: Bool | name_: Attribute | numModes_: Int | +----------------------------------------+----------------------------------------+----------------------------------------+ | orderType_: Enum | position_: Attribute | rigidGroup_: Attribute | +----------------------------------------+----------------------------------------+----------------------------------------+ | sheetThickness_: Double | strainCalculation_: Bool | stressCalculation_: Bool | +----------------------------------------+----------------------------------------+----------------------------------------+ | transparency_: Double | visible_: Bool | volume_: Double | +----------------------------------------+----------------------------------------+----------------------------------------+ -------------- Public Methods -------------- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | classmethod create2DSurface_ (cls, numberRowsOfFaces=1, numberColumnOfFaces=1, cornerVertices=[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], parent=None) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | classmethod createBrick_ (cls, x=1, y=1, z=1, position=None, parent=None) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | classmethod createCustomPolygon_ (cls, vertices, indices, edgeWeights=None, parent=None) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | classmethod createPolygonMesh_ (cls, vertices, indices, edgeWeights=None, parent=None) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | classmethod createSurfaceGrid_ (cls, numberRowsOfFaces=1, numberColumnOfFaces=1, cornerVertices=[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], parent=None) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | classmethod fit_ (cls, parts, numberOfFaces=500, curvature=0.5, autoCrease=False, system=None, symmetry=(0, 0, 0), parent=None) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | classmethod fitSynthesis_ (cls, synthesis, curvature=50, numberOfFaces=2500, shrinkWrapSize=0.0019, autoCrease=False, intersect=True, symmetry=True, density=None) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | bridge_ (self, faces) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | closeHolesInSolid_ (self) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | edit_ (self) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | findAndFixBadFaces_ (self) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | getFeatures_ (self, type=None, rep='PolymeshRep', **kwds) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | mirror_ (self, areas, origin, normal, keepOriginal=True) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | moveEdge_ (self, edge, direction, distance) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | moveFace_ (self, face, direction, distance) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | movePoints_ (self, deltaLocations) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | setPointLocations_ (self, locations) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | sharpen_ (self, edge, weight) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | shell_ (self, areas, thickness=0) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | splitArea_ (self, area, point1, point2) | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ----------------- Attribute Details ----------------- .. _active: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ active : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns or sets the object activeness. Setting this on or off sets all children. Setting to True sets all the parents active too. .. _autoCalcMotionContactResolution: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ autoCalcMotionContactResolution : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns or sets the motion contact fidelity properties from the part. .. _autoCalculateCG: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ autoCalculateCG : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether the center of gravity is auto calculated. .. _autoCalculateMass: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ autoCalculateMass : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether the mass value is automatically calculated based upon volume and material density. .. _autoCalculateMeshSize: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ autoCalculateMeshSize : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Indicates whether the minimum and average element sizes used for the solution are automatically calculated. Set to False to enter these values manually. Decreasing the minimum element size will increase the detail of your results in areas that use a number of small elements. The average element size controls the overall detail of your results. .. _autoCalculateMoment: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ autoCalculateMoment : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether the mass moment of inertia is automatically calculated. .. _autoCalculateThickness: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ autoCalculateThickness : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether the minimum and maximum thickness values are automatically calculated. All parts are taken into account during the calculation. .. _cg: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cg : :ref:`Location ` (units="length") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the object's global center of gravity as a point. .. _color: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ color : :ref:`Color ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines the color assigned to the object when it is displayed in the modeling window. The default color for parts is gray, but a different color can be assigned. .. _designSpace: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ designSpace : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether the part is a design space. A part must be designated as a design space if we intend to optimize it. .. _detectCollisions: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ detectCollisions : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether to detect collision. It prevents parts in the model from overlapping and has been enabled by default. .. _flexible: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ flexible : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Makes the part flexible, if set to True. .. _ground: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ground : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns or sets the object to be ground or immovable. .. _ignoreFlexibility: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ignoreFlexibility : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Allows the part to ignore flexibility. .. _ip: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ip : :ref:`Inertia ` (units="massMI") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Specifies the inertial properties of this object. Resistance to change in motion (ixx, iyy, izz, ixy, izy, ixz). .. _mass: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mass : :ref:`Double ` (units="m") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The mass of the object. .. _material: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ material : :ref:`Attribute ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The material of the object. Every part in the model has a material assigned to it. The default material is steel, but a different material can be assigned. .. _maxFreq: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ maxFreq : :ref:`Double ` (units="frequency") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Upper bound frequency for the eigenvalue analysis of the flexible part. .. _maxMeshSize: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ maxMeshSize : :ref:`Double ` (units="length") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns or sets the maximum mesh size of the part. .. _maxThickness: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ maxThickness : :ref:`Double ` (units="length") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The maximum thickness value. .. _minGap: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ minGap : :ref:`Double ` (units="length") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _minMeshSize: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ minMeshSize : :ref:`Double ` (units="length") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns or sets the minimum mesh size of the part. .. _minThickness: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ minThickness : :ref:`Double ` (units="length") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The minimum thickness value. .. _modeType: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ modeType : :ref:`Enum ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ How normal modes are defined. .. _modifiable: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ modifiable : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether the selected object can be edited. .. _morphable: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ morphable : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether the selected object shape can be changed. .. _motionContactResolution: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ motionContactResolution : :ref:`Enum ` (verylow, low, medium, high, veryhigh) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The resolution of the motion contact. It can be: - "verylow" - "low" - "medium" - "high" - "veryhigh" .. _movable: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ movable : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether the selected object can be translated in the modeling window or has been locked in place. .. _name: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ name : :ref:`Attribute ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns or sets the name of the object. It can be any text string, including spaces, although it's best to avoid using the following characters: " ' * ? and $. While these characters are allowed, they could create difficulties when you export the model to other applications. .. _numModes: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ numModes : :ref:`Int ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Specifies the number of modes of the part. .. _orderType: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ orderType : :ref:`Enum ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Order of elements for flexbody mesh. .. _position: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ position : :ref:`Attribute ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Specifies the global transform as a Matrix44. .. _rigidGroup: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rigidGroup : :ref:`Attribute ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The rigid group this object belongs to. .. _sheetThickness: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ sheetThickness : :ref:`Double ` (units="length") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Thickness of the 2D part used in volume calculation. .. _strainCalculation: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ strainCalculation : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether to calculate the strain or not. .. _stressCalculation: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stressCalculation : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether to calculate stress or not. .. _transparency: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ transparency : :ref:`Double ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Specifies the transparency of the object. Allows you to change the transparency, according to a percentage. By default, objects are 0% transparent(opaque). .. _visible: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ visible : :ref:`Bool ` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines whether the object is visible in the graphics window. Setting this on or off sets all children. Setting to True sets all the parents visible too. .. _volume: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ volume : :ref:`Double ` (units="volume") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The volume of the object in the assembly. -------------- Method Details -------------- .. _create2DSurface: .. classmethod:: create2DSurface(cls, numberRowsOfFaces=1, numberColumnOfFaces=1, cornerVertices=[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], parent=None) Creates a PolyNURBS surface in space. :param numberRowsOfFaces: Number of faces to be shown vertically for the surface. :type numberRowsOfFaces: int :param numberColumnOfFaces: Number of faces to be shown horizontally for the surface. :type numberColumnOfFaces: int :param cornerVertices: The four corner vertices location in global space. :type cornerVertices: list[math.Point, math.Point, math.Point, math.Point] :param parent: The parent of the new part created. :type parent: Assembly :returns: PolyNURBS .. _createBrick: .. classmethod:: createBrick(cls, x=1, y=1, z=1, position=None, parent=None) Creates a PolyNURBS block in space. :param x: Length of the block. :type x: float :param y: Width of the block. :type y: float :param z: Depth of the block. :type z: float :param position: Transformation matrix of the block. :type position: math.Matrix44 :param parent: The parent of the new part created. :type parent: Assembly :returns: PolyNURBS .. _createCustomPolygon: .. classmethod:: createCustomPolygon(cls, vertices, indices, edgeWeights=None, parent=None) Creates a custom PolyNURBs polygon. :param vertices: List of each vertex location in global space. :type vertices: list[math.Point] :param indices: List of vertex indices forming each polygon. :type indices: list[list[int]] :param edgeWeights: A list of list containing vertex 1 index, vertex 2 index and the weight. The weight should be in [0, 10], with 10 being perfect crease with the cage. Edge weights pull the smooth surface closer to the cage's edge. :type edgeWeights: list[list[int, int, float]] :param parent: The parent of the new part created. :type parent: Assembly :returns: PolyNURBS .. _createPolygonMesh: .. classmethod:: createPolygonMesh(cls, vertices, indices, edgeWeights=None, parent=None) Creates a custom PolyNURBs polygon. :param vertices: List of each vertex location in global space. :type vertices: list[math.Point] :param indices: List of vertex indices forming each polygon. :type indices: list[list[int]] :param edgeWeights: A list of list containing vertex 1 index, vertex 2 index and the weight. The weight should be in [0, 10], with 10 being perfect crease with the cage. Edge weights pull the smooth surface closer to the cage's edge. :type edgeWeights: list[list[int, int, float]] :param parent: The parent of the new part created. :type parent: Assembly :returns: PolyNURBS .. _createSurfaceGrid: .. classmethod:: createSurfaceGrid(cls, numberRowsOfFaces=1, numberColumnOfFaces=1, cornerVertices=[[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], parent=None) Creates a PolyNURBS surface in space. :param numberRowsOfFaces: Number of faces to be shown vertically for the surface. :type numberRowsOfFaces: int :param numberColumnOfFaces: Number of faces to be shown horizontally for the surface. :type numberColumnOfFaces: int :param cornerVertices: The four corner vertices location in global space. :type cornerVertices: list[math.Point, math.Point, math.Point, math.Point] :param parent: The parent of the new part created. :type parent: Assembly :returns: PolyNURBS .. _fit: .. classmethod:: fit(cls, parts, numberOfFaces=500, curvature=0.5, autoCrease=False, system=None, symmetry=(0, 0, 0), parent=None) Creates a new PolyNURBS part, on top of an existing mesh geometry. :param parts: The parts to be fitted. If you pass more than one part, they will be combined into a single part. :type parts: list[Part] :param numberOfFaces: The number of PolyNURBS cage faces to be created for each part. :type numberOfFaces: int :param curvature: The amount of curvature detail to be captured. The value should range between 0 and 1. Higher values will capture more features. :type curvature: float :param autoCrease: If True, the Fit operation will attempt to retain sharp edges from the original model, so you can create fillets at a later time. :type autoCrease: bool :param system: Reference system which symmetry should occur about. :type system: System :param symmetry: Specifies the direction of the symmetry along which axis of the system. The value can be (0,1,0) specifying the symmetry along Y axis of the reference system. :type symmetry: math.Vector :param parent: The parent of the new part created. :type parent: Assembly :returns: PolyNURBS .. _fitSynthesis: .. classmethod:: fitSynthesis(cls, synthesis, curvature=50, numberOfFaces=2500, shrinkWrapSize=0.0019, autoCrease=False, intersect=True, symmetry=True, density=None) Fits an optimized part with PolyNURBS :param synthesis: Synthesis object to get the synthesized part :type synthesis: Synthesis :param curvature: The amount of curvature detail to be captured. The value must be between 0 and 100. Higher values capture more features. :type curvature: float :param numberOfFaces: The number of PolyNURBs cage faces to be created for each optimized part. :type numberOfFaces: int :param shrinkWrapSize: The Voxel dimension size for each PolyNURB cage. :type shrinkWrapSize: float :param autoCrease: If True, the Fit operation will attempt to retain sharp edges from the original model, so you can create fillets at a later time. :type autoCrease: bool :param intersect: If True, intersects the optimized part with the new PolyNURBS part. :type intersect: bool :param symmetry: If True, align the optimized part with symmetric constraints. :type symmetry: bool :param density: Density Threshold Value.Value can range from 0 to 1.0. :type density: float .. _bridge: .. method:: bridge(self, faces) Bridge tool to create a bridge between two or more faces of either the same PolyNURBS cage or different cages. :param faces: The faces to create bridge. :type faces: list[FeatureArea] .. _closeHolesInSolid: .. method:: closeHolesInSolid(self) Closes holes of the given part. .. _edit: .. method:: edit(self) Contextmanager to group multiple updates for performance. .. _findAndFixBadFaces: .. method:: findAndFixBadFaces(self) Finds and fixes any bad faces of the given part. .. _getFeatures: .. method:: getFeatures(self, type=None, rep='PolymeshRep', **kwds) Returns a list of features based on specified filters. .. _mirror: .. method:: mirror(self, areas, origin, normal, keepOriginal=True) Tool to mirror PolyNURBS bodies across a symmetry plane. :param areas: The faces to create mirror. :type areas: list[FeatureArea] :param origin: The origin of the mirror. :type origin: math.Point :param normal: The normal of the mirror. :type normal: math.Vector :param keepOriginal: If True, both the original and the mirrored bodies will be retained in the model. :type keepOriginal: bool .. _moveEdge: .. method:: moveEdge(self, edge, direction, distance) Move the edge according to direction and distance. :param edge: Face to be moved. :type edge: FeatureLinear :param direction: Direction in which face to be moved. :type direction: math.Vector :param distance: The distance by which face need to be moved. :type distance: float .. _moveFace: .. method:: moveFace(self, face, direction, distance) Move the face according to direction and distance. :param face: Face to be moved. :type face: FeatureArea :param direction: Direction in which face to be moved. :type direction: math.Vector :param distance: The distance by which face need to be moved. :type distance: float .. _movePoints: .. method:: movePoints(self, deltaLocations) Translates the points according to translation deltas given. :param deltaLocations: A mapping of points to their corresponding (dx, dy, dz) translation. :type deltaLocations: dict[FeaturePoint, math.Point] .. _setPointLocations: .. method:: setPointLocations(self, locations) Moves points to an exact location. :param locations: A mapping of points to the corresponding new location. :type locations: dict[FeaturePoint, math.Point] .. _sharpen: .. method:: sharpen(self, edge, weight) Controls sharpness along an edge of the part. :param edge: Edge to sharpen. :type edge: FeatureCurve :param weight: Weight to sharpen edge with. :type weight: float .. _shell: .. method:: shell(self, areas, thickness=0) Removes the cage face and creates thin walls to generate a shelled PolyNURBS part. :param areas: The cage faces to remove. :type areas: list[FeatureArea] :param thickness: The wall thickness of the shelled PolyNURBS part. If invalid thickness, is passed in, it will be computed. :type thickness: float .. _splitArea: .. method:: splitArea(self, area, point1, point2) Splits a single PolyNURBS cage face. Divides the area into two, including the original face, with a new edge between the original and new face. The order of points determines which resulting face is the original and which is new. :param area: The area to divide. :type area: FeatureArea :param point1: The first point of the edge. :type point1: FeaturePoint :param point2: The second point of the edge. :type point2: FeaturePoint