=========== Operations_ =========== .. toctree:: :maxdepth: 2 Reference_/Reference_.rst ------ +-----------------------+-----------------------+-----------------------+ | pushPull_ | extract_ | mirror_ | +-----------------------+-----------------------+-----------------------+ | patch_ | rotate_ | translate_ | +-----------------------+-----------------------+-----------------------+ | move_ | deleteFaces_ | scale_ | +-----------------------+-----------------------+-----------------------+ | booleanCombine_ | booleanSubtract_ | booleanIntersect_ | +-----------------------+-----------------------+-----------------------+ | slice_ | simplifyImprints_ | simplifyRounds_ | +-----------------------+-----------------------+-----------------------+ | simplifyHoles_ | simplifyPlugs_ | partition_ | +-----------------------+-----------------------+-----------------------+ | midSurface_ | chamferByAngle_ | chamferByDistance_ | +-----------------------+-----------------------+-----------------------+ | shell_ | extrude_ | offset_ | +-----------------------+-----------------------+-----------------------+ | thicken_ | linearPattern_ | createPipe_ | +-----------------------+-----------------------+-----------------------+ | moveFaces_ | intersect_ | convertToMass_ | +-----------------------+-----------------------+-----------------------+ | replaceFromFile_ | replaceFromPart_ | circularPattern_ | +-----------------------+-----------------------+-----------------------+ | draft_ | convertBodiesToParts_ | breakInstance_ | +-----------------------+-----------------------+-----------------------+ | projectAndSplit_ | revolve2_ | edgeFillet_ | +-----------------------+-----------------------+-----------------------+ | sweep_ | nurbsCurve_ | patternAlongPath_ | +-----------------------+-----------------------+-----------------------+ | multiSweep_ | loft_ | helixCurve_ | +-----------------------+-----------------------+-----------------------+ | divideCurve_ | | +-----------------------+-----------------------------------------------+ .. _pushPull: .. method:: pushPull(feature, depth, newPart=False, resultType=None) Pushes or pulls a face or an edge to a specified distance. :param feature: Feature to push or pull. :type feature: FeatureArea :param depth: The precise distance. A positive value extends, whereas a negative value contracts. :type depth: float | str :param newPart: If True, creates a new Part as a result of pushPull operation. :type newPart: bool :param resultType: Result type of pushPull operation. This option is valid only for pushPull a sketch on face. - NEW_PART - ADD - REMOVE - REPLACE :type resultType: str :returns: If New Part created, otherwise return None. :rtype: Part .. _extract: .. method:: extract(features, maintainReference=True) Extracts geometry features and transfer them into a new part. :param features: Feature to be extracted. :type features: list[Feature] :param maintainReference: If true, set reference associativity otherwise not. :type maintainReference: bool :returns: New part created. :rtype: Part .. _mirror: .. method:: mirror(entity, planeOrigin=None, planeNormal=None, keep=True) Mirrors part across a symmetry plane. If entity is a Part, the planeOrigin and planeNormal need to be passed :param entity: Part from which a mirror part needs to be created or a Planar feature which needs to be mirrored across the plane :type entity: Part | FeaturePlanar :param planeOrigin: The origin of the symmetry plane. :type planeOrigin: math.Point :param planeNormal: The normal of the symmetry plane. :type planeNormal: math.Vector :param keep: If True it keeps the original part, if False it removes it. :type keep: bool :returns: New mirrored part created. :rtype: Part .. _patch: .. method:: patch(features) Creates patches to fill in specified missing surfaces. :param features: Features to be patched. :type features: list[Feature] :returns: New parts created. :rtype: list[Part] .. _rotate: .. method:: rotate(part, axis, angle, degrees=True) Rotates a part around the specified axis. This is a body rotation. :param part: The part to rotate. :type part: Part :param axis: The rotation axis. If axis a string, valid choices are "x", "y", "z". :type axis: Vector | str :param angle: The rotation angle. :type angle: float :param degrees: If True, angle is considered in degrees, if False in radians. :type degrees: bool .. _translate: .. method:: translate(part, x=0, y=None, z=None) Translates by the specified distance. If y is None, x is assumed to be a list of 3 floats. :param part: The part to translate. :type part: Part :param x: The distance to translate the 'x' vector. :type x: float :param y: The distance to translate the 'y' vector. :type y: float :param z: The distance to translate the 'z' vector. :type z: float .. _move: .. method:: move(part, position) Translates and/or rotates a part. :param part: The part to move. :type part: Part :param position: The position to move the part at. :type position: math.Matrix44 .. _deleteFaces: .. method:: deleteFaces(features) Deletes the specified faces from the part. :param features: Features to be removed. :type features: list[Feature] .. _scale: .. method:: scale(parts, value=1.1) Resizes the part to the specified scale value. This is useful when working with an imported model that is associated with a different default unit system. :param parts: Parts that need to be scaled. :type parts: list[Part] :param value: The scale factor. If value is a string it can be a Model Variable or a value with units. :type value: float | str .. _booleanCombine: .. method:: booleanCombine(target, tools=None) Combines the specified parts. :param target: Part to be combined with tools. :type target: Part :param tools: Parts to be combined with target. Destroyed after combine. :type tools: list[Part] :returns: The combined part. :rtype: Part .. _booleanSubtract: .. method:: booleanSubtract(targets, tools, keepTools=False) Carves out one set of solid objects from another set of solid objects. :param targets: The parts being carved. :type targets: list[Part] :param tools: The parts doing the carving. :type tools: list[Part] :param keepTools: If True, preserves the tools after the operation. :type keepTools: bool :returns: The remaining part. :rtype: Part .. _booleanIntersect: .. method:: booleanIntersect(targets, tools, keepTargets=False, keepTools=False) Retains only the intersecting portions of two sets of solid objects. :param targets: The first set of parts. :type targets: list[Part] :param tools: A list of parts for boolean intersect operation. :type tools: list[Part] :param keepTargets: If True, preserves the target parts after the operation. :type keepTargets: bool :param keepTools: If True, preserves the tools parts after the operation. :type keepTools: bool :returns: The intersected part. :rtype: Part .. _slice: .. method:: slice(targets, cutOrigin=None, cutNormal=None, surfaceFeature=None, extendSurface=True) Slices a set of solid objects with a cutting plane or cutting surface. You must provide cutOrigin and cutNormal or surfaceFeature. :param targets: The parts to slice across the cutting plane. :type targets: list[Part] :param cutOrigin: The origin of the cutting plane. :type cutOrigin: math.Point :param cutNormal: The normal of the cutting plane. :type cutNormal: math.Vector :param surfaceFeature: The surface to slice the enity accross. :type surfaceFeature: FeatureArea :param extendSurface: Set Automatic extension On/Off for tool Surface. :type extendSurface: bool :returns: The new sliced part created. :rtype: Part .. _simplifyImprints: .. method:: simplifyImprints(entity) Finds and removes imprints from a part. An imprint is an edge or a point that appears on a surface that can be removed without changing the underlying integrity of the surface, such as scratches or trimmed points. :param entity: Part/Assembly from which you want to remove the imprints from or FeatureLinear imprint to be removed. :type entity: Part | Assembly | FeatureLinear .. _simplifyRounds: .. method:: simplifyRounds(entity, roundType='ALL', minSize=0, maxSize=None) Finds and removes both round (convex) and fillet (concave) surfaces. :param entity: Part/Assembly from which you want to remove the fillets, chamfers from or a Feature to be removed. :type entity: Part | Assembly | Feature :param roundType: Valid values are: ROUNDS, FILLETS, CHAMFERS and ALL. :type roundType: str :param minSize: Minimum size of round. :type minSize: float :param maxSize: Maximum size of round. :type maxSize: float .. _simplifyHoles: .. method:: simplifyHoles(entity, minSize=0, maxSize=None) Finds and removes holes and pockets, and find raised areas such as lettering. :param entity: Part/Assembly from which you want to remove the holes from or FeatureCircular which needs to be removed. :type entity: Part | Assembly | Feature :param minSize: Minimum size of hole. :type minSize: float :param maxSize: Maximum size of hole. :type maxSize: float .. _simplifyPlugs: .. method:: simplifyPlugs(entity, minSize=0, maxSize=None) Finds holes and pockets, and plug them by filling the area with a new part :param entity: Part/Assembly from which you want to plug the holes or a Circular feature that needs to be plugged. :type entity: Part | Assembly | Feature :param minSize: Minimum size of plug. :type minSize: float :param maxSize: Maximum size of plug. :type maxSize: float .. _partition: .. method:: partition(feature, thickness='1 mm', reverseDirection=False) Divides a solid part into design and non-design regions by selecting a hole, pocket, or face to offset. :param feature: Feature to be partitioned. :type feature: Feature :param thickness: The partition thickness consider in mm. :type thickness: float :param reverseDirection: Switch the direction of the offset for the partition. :type reverseDirection: bool :returns: New part created. :rtype: Part .. _midSurface: .. method:: midSurface(part, surfaceOptions='Mid') Extracts a midsurface or side faces from thin solids, and determine where surfaces are represented. Replacing parts with midsurfaces yields better results while increasing speed when running an analysis or optimization. :param part: The part which needs midsurface extraction. :type part: Part :param surfaceOptions: This options allows you to extract the Mid, Left or Right surface of the part. :type surfaceOptions: str .. _chamferByAngle: .. method:: chamferByAngle(feature, angle=45, dist=0.003) Creates chamfer on a Linear/Planar feature. :param feature: Feature that needs to be chamfer. :type feature: Feature :param angle: Chamfer angle from the edge. :type angle: float :param dist: Chamfer distance from the edge. :type dist: float .. _chamferByDistance: .. method:: chamferByDistance(feature, dist1=0.003, dist2=0.003) Creates chamfer on a linear or planar feature. :param feature: Feature that needs to be chamfer. :type feature: Feature :param dist1: Chamfer distance from the edge. :type dist1: float :param dist2: Chamfer distance from the edge. :type dist2: float .. _shell: .. method:: shell(feature, thickness=1) Removes material and create thin walls to generate a shelled part. :param feature: Feature to create a shelled part from. :type feature: FeatureArea :param thickness: Shell thickness. :type thickness: float .. _extrude: .. method:: extrude(features, direction, resultType, parts=None, extrudeAsSolid=True, reference=None, extrudeTo1=1, extrudeTo2=1, angle1=0, angle2=0, extrusionEndCaps=None) Extrude sketch profile. :param features: The features of the sketch to extrude. :type features: list[Feature] :param extrudeAsSolid: If True extrude as Solid, otherwise extrude as Sheet. :type extrudeAsSolid: bool :param direction: Valid directions to extrude are: SINGLE, BOTH and SYMMETRY. :type direction: str :param resultType: Valid choices are: COMBINE, SUBTRACT, INTERSECT and NEW_PART. :type resultType: str :param parts: Parts you would like to merge the extruded shape with. Defaults to None. That means the extruded shape will be merged with all parts that touch it. :type parts: list[Part] :param reference: Direction vector of extrusion. Defaults to the feature normal. :type reference: math.Vector | FeatureLinear | System :param extrudeTo1: If extrudeTo1 is a float then its the extrusion length in direction 1 in meters. If extrudeTo1 is a FeautrePoint or a FeaturePlanar then its used to determine the extrusion length in direction 1. If value is a string it can be a Model Variable or a value with units. :type extrudeTo1: float | FeaturePlanar | FeaturePoint | str :param extrudeTo2: If value is a float then it's the extrusion length in direction 2 in meters. If value is a FeautrePoint or a FeaturePlanar then it's used to determine the extrusion length in direction 2. If value is a string it can be a Model Variable or a value with units. :type extrudeTo2: float | FeaturePlanar | FeaturePoint | str :param angle1: The draft angle in direction 1 in degree. If value is a string it can be a Model Variable or a value with units. :type angle1: float | str :param angle2: The draft angle in direction 2 in degree. If value is a string it can be a Model Variable or a value with units. :type angle2: float | str :param extrusionEndCaps: Valid choices are: NONE, BOTH, START and END. :type extrusionEndCaps: str :returns: New part created. :rtype: Part .. _offset: .. method:: offset(input, value, newPart=False) Offset surfaces or parts. :param input: :type input: list[Part] | list[Feature] :param value: Desired offset distance. Negative value means inward direction. If value is a string it can be a Model Variable or a value with units. :type value: float | str :param newPart: If True, creates a new part. :type newPart: bool :returns: New part created if newPart was True. :rtype: Part|None .. _thicken: .. method:: thicken(parts, value, symmetric=True) Thicken surface parts and convert them to solids, or thicken and hollow solid parts. When used on a solid part, the Thicken tool yields a hollow solid. When used on a surface part, the Thicken tool yields a solid part. :param parts: :type parts: list[Part] :param value: Desired offset distance. Negative value means inward direction. :type value: float :param symmetric: If True, offsets symmetrically on both sides of the part surface. :type symmetric: bool .. _linearPattern: .. method:: linearPattern(input, direction1, direction2=(0, 0, 0), bothDirection=False, spacing1=0.0, count1=3, spacing2=0.0, count2=3, instances=False, symmetry1=False, symmetry2=False, reverseDir1=False, reverseDir2=False, copiesToSkip=None, seedOnly=False) Linear Pattern parts or faces along a direction. :param input: :type input: list[Part] :param direction1: Direction can be a reference line, edge, or axis to which the pattern will be parallel. :type direction1: math.Vector | FeatureCurve | System :param direction2: Direction can be a reference line, edge, or axis to which the pattern will be parallel. :type direction2: math.Vector | FeatureCurve | System :param bothDirection: If True, sets in both direction otherwise single direction. :type bothDirection: bool :param spacing1: Distance between two copies. :type spacing1: float :param count1: Number of copies. :type count1: int :param spacing2: Distance between two copies. :type spacing2: float :param count2: Number of copies. :type count2: int :param instances: If True, any changes to part or face will apply to all instances. :type instances: bool :param symmetry1: Symmetry in Direction 1. :type symmetry1: bool :param symmetry2: Symmetry in Direction 2. :type symmetry2: bool :param reverseDir1: Reverse the pattern direction in Direction 1. :type reverseDir1: bool :param reverseDir2: Reverse the pattern direction in Direction 2. :type reverseDir2: bool :param copiesToSkip (dict{Part: list[tuple(x,y)]}): Set copies to skip. Here x and y are the indices in 2D space of copy , which needs to be skipped. :param seedOnly: If True, pattern the entities only along the first row and first column. :type seedOnly: bool Returns: list[Part]: List of parts created. .. _createPipe: .. method:: createPipe(path, section='CIRCLE', size=0.01, width=0.01, thickness=0.0, angle=None, ignoredFeatures=None, propagate=False, resultType='COMBINE') Create Pipe for FeatureCurve. :param path: :type path: list[FeatureCurve] :param section: The Pipe profile type. Valid choices are: CIRCLE, SQUARE, TRIANGLE and RECTANGLE. :type section: str :param size: Length of the pipe. If value is a string it can be a Model Variable or a value with units. :type size: float | str :param width: Width of the pipe, only applicable for Rectangular profile. :type width: float :param thickness: Pipe thickness. If not set or set to zero, it will be solid pipe. If value is a string it can be a Model Variable or a value with units. :type thickness: float | str :param angle: Angle in radians. Only for xy alignment. :type angle: float :param ignoredFeatures: Ignored Features. Not mandatory. In propagated cases, if we need to ignore certain curves. :param propagate: if True enables propagate option, otherwise disabled. :type propagate: bool :param resultType: Valid values are: COMBINE, SUBTRACT, INTERSECT and NEW_PART. :type resultType: str :returns: New part created. :rtype: Part .. _moveFaces: .. method:: moveFaces(features, position, duplicate=False) Translate, rotate, copy, or extend features. :param features: The features to move. :type features: list[FeatureArea] :param position: The position to move the features at. :type position: math.Matrix44 :param duplicate: If True, copy the features at given position. :type duplicate: bool .. _intersect: .. method:: intersect(parts, createSolids=False, keepSourceParts=False) Intersect tool that deletes excess faces, edges and vertices. :param parts: Parts to intersect. :type parts: list[Part] :param createSolids: If True, faces of solid volumes automatically selected. :type createSolids: bool :param keepSourceParts: Determines whether to keep source parts or not. When original parts are not kept, they are deleted from the model at the end of a successful operation. :type keepSourceParts: bool :returns: New part if created otherwise none. :rtype: Part/None .. _convertToMass: .. method:: convertToMass(parts, parent=None) Replace Parts to concentrated mass. :param parts: Parts to be replaced with concentrated mass. :type parts: list[Part] :param parent: Parent for the mass created. :type parent: Part .. _replaceFromFile: .. method:: replaceFromFile(part, filePath) Replace part with the contents of a file. :param part: The part to be replaced. :type part: Part :param filePath: The path to the file whose contents will replace the part. :type filePath: str .. _replaceFromPart: .. method:: replaceFromPart(part, toolPart, keepToolPart=False) Replace part with tool part. :param part: The part to be replaced. :type part: Part :param toolPart: The part to replace with. :type toolPart: Part :param keepToolPart: Determines whether to keep the toolPart or not after replace. :type keepToolPart: bool .. _circularPattern: .. method:: circularPattern(input, axis, angle=60, count=3, equalSpacing=False, instances=False, symmetry=False, axisReverse=False, copiesToSkip=None) Circular Pattern parts or faces around an axis. :param input: :type input: list[Part] | list[FeatureArea] :param axis: Axis is a reference line, edge, or axis to which the pattern will be parallel. :type axis: math.Vector | FeatureCurve | System :param angle: Angle within which the copies are equally spaced. :type angle: float :param count: Number of copies. :type count: int :param equalSpacing: If True, equally space the copies within a specified Angle. :type equalSpacing: bool :param instances: If True, any changes to part or face will apply to all instances. :type instances: bool :param symmetry: Symmetry in Direction 1. :type symmetry: bool :param axisReverse: Reverse the axis in Direction 1. :type axisReverse: bool :param copiesToSkip (dict{Part: list[indicesToSkip]}): Set copies to skip. It's basically a dictionary which contains Part as a key and list of indices to skip as values. Returns: list[Part]: List of parts created. .. _draft: .. method:: draft(features, direction, neutralPlane, angle1=3.0, angle2=3.0, flipDrawDirection1=False, flipDrawDirection2=False) Add draft to one or more faces of a part when designing a product that is manufactured using injection molding. :param features: Faces to Draft. :type features: list[FeatureArea] :param direction: The Draft direction. Valid values are: SINGLE, BOTH and SYMMETRY. :type direction: str :param neutralPlane: A reference plane or an existing face in the model. neutralPlane can not be same as draft feature. :type neutralPlane: FeaturePlanar, System :param angle1: The angle1 of draft. :type angle1: float :param angle2: The angle2 of draft. This is applicable for BOTH or SYMMETRY value for direction. :type angle2: float :param flipDrawDirection1: If True, flips the draw direction of draft in single direction. :type flipDrawDirection1: bool :param flipDrawDirection2: If True, flips the draw direction of draft. Applicable for BOTH direction. :type flipDrawDirection2: bool .. _convertBodiesToParts: .. method:: convertBodiesToParts(parts) Convert disconnected bodies to parts. :param parts: The parts to be converted. :type parts: list[Part] :returns: Newly created parts. :rtype: list[Part] .. _breakInstance: .. method:: breakInstance(parts) Break the instances of a part. :param parts: Parts for breaking instances. :type parts: list[Part] .. _projectAndSplit: .. method:: projectAndSplit(targets, tools, direction, vectorDirection=None, extendProjection=True, extractProjection=False, surfaceNormal=None) Project tools onto targets in a specified direction and splits the targets. :param targets: List of Parts or features on which feature projection to be. :type targets: list[Part] | list[Feature] :param tools: Feature that needs to be projected on Part. :type tools: list[Feature] :param direction: Valid values are: TOOL_NORMAL, X, Y, Z, VECTOR and CLOSEST_POINT, SURFACE_NORMAL. :type direction: str :param vectorDirection: Vector direction, only applicable when direction is 'VECTOR'. :type vectorDirection: FeatureLinear | System :param extendProjection: If True, extends the projection. :type extendProjection: bool :param extractProjection: If True, extract projection without split. :type extractProjection: bool :param surfaceNormal: Planar surface along whose normal you want to project the tools. :type surfaceNormal: FeaturePlanar Returns: list[Part]: List of parts created. .. _revolve2: .. method:: revolve2(profiles, axis, direction='SIGLE', resultType='NEW_PART', mergeTargets=None, flipAxis=False, angle1=0, angle2=0) New Revolve - Revolve a face, sketch, line, or 2D edge about an axis. :param profiles: A face, line, or 2D edge. :type profiles: FeatureArea | FeatureCurve :param axis: An edge, line, cylindrical :type axis: FeatureLinear | FeatureCircular | System :param hole or a System. If it is of type System it has to have systemType Axis.: Selecting an edge on another part projects the axis of revolution to the planar face that will be rotated. :param direction: Valid values are: SINGLE, BOTH and SYMMETRY. :type direction: str :param resultType: Valid values are: COMBINE, SUBTRACT, INTERSECT and NEW_PART. :type resultType: str :param mergeTargets: Explict merge targets for Result Type. :type mergeTargets: list[Feature] :param flipAxis: If True, axis will be flipped. :type flipAxis: bool :param angle1: The angle of revolution. :type angle1: float :param angle2: The angle of revolution when direction is Both. :type angle2: float :returns: New part created if resultType is NEW_PART. :rtype: Part|None .. _edgeFillet: .. method:: edgeFillet(feature, radius='3 mm', continuity='TANGENT') Creates fillet on a Linear feature. :param feature: feature that needs to fillet. :type feature: Feature :param radius: Radius of the fillet. :type radius: float | str :param continuity: Valid values are: TANGENT and CURVATURE. :type continuity: str .. _sweep: .. method:: sweep(profiles, path, solidProfile=None, sweepAsSolid=True, profileOrientation=True, propagate=True, pathIgnoredFeatures=None, guideCurves=None, pathDirection='DIRECTION_1', twistType='NO_TWIST', twistAngle=0, twistTurns=0, twistAngleDir2=0, twistTurnsDir2=0, resultType='NEW_PART', mergeWithAllParts=True, mergeParts=None, twist1Reverse=False, twist2Reverse=False, guideScale='UNIFORM') Sweep a profile along a path to create a solid or 3D surface. :param profiles: A face or a closed sketch. :type profiles: FeatureArea | FeatureCurve :param path: Path for the sweep. :type path: list[FeatureCurve] :param solidProfile: Sweep profile as solid. Only applicable for solid cylinder. :type solidProfile: Part :param sweepAsSolid: If true, sweep as solids otherwise sweep as surfaces. :type sweepAsSolid: bool :param profileOrientation: If true, sweep orientation will be normal to the path otherwise parallel. :type profileOrientation: bool :param propagate: If true, all the tangent edges of the input path is also selected. :type propagate: bool :param pathIgnoredFeatures: Edge to be ignored when propagate is True. :type pathIgnoredFeatures: list[FeatureCurve] :param guideCurves: Guide curves for the sweep. No guide curves are set by default. :type guideCurves: list[FeatureCurve] :param pathDirection: Sweep direction. - DIRECTION_1 - DIRECTION_2 - BOTH :type pathDirection: str :param twistType: Twist type. - NO_TWIST - ANGLE_TWIST - NO_OF_TURNS :type twistType: str :param twistAngle: Twist angle in DIRECTION_1. :type twistAngle: float :param twistTurns: Number of twist turns in DIRECTION_1. :type twistTurns: float :param twistAngleDir2: Twist angle in DIRECTION_2. Applicable only when pathDirection is "BOTH". :type twistAngleDir2: float :param twistTurnsDir2: Number of twist turns in DIRECTION_2. Applicable only when pathDirection is "BOTH". :type twistTurnsDir2: float :param resultType: Result type of sweep operation. - COMBINE - SUBTRACT - INTERSECT - NEW_PART :type resultType: str :param mergeWithAllParts: If True, merge with All parts otherwise merge with parts supplied in mergeTargets. :type mergeWithAllParts: bool :param mergeParts: Parts to be merged with sweep operation. :type mergeParts: Part :param twist1Reverse: If True, Reverse the twist in DIRECTION_1 or DIRECTION_2. :type twist1Reverse: bool :param twist2Reverse: If True, Reverse the twist in DIRECTION_2. Applicable only when pathDirection is "BOTH". :type twist2Reverse: bool :param guideScale: Guide scale option. Applicable only when guideCurves is provided. - UNIFORM - LATERAL :type guideScale: str :returns: New part created if resultType is NEW_PART. :rtype: Part|None .. _nurbsCurve: .. method:: nurbsCurve(controlPoints, nurbsCurveType='CURVE_OPEN', nurbsCurveDegree='DEGREE_3', controlPointWeight=None) Create a NURBS curve, which is a free-form curve. :param controlPoints: List of control points to draw NURBS curve. :type controlPoints: list[FeaturePoints] :param nurbsCurveType: NURBS curve type. - CURVE_OPEN - CURVE_CLOSED - CURVE_PERIODIC - CURVE_NUM_TYPES :type nurbsCurveType: str :param nurbsCurveDegree: NURBS curve degree. - DEGREE_2 - DEGREE_3 - DEGREE_4 - DEGREE_5 - DEGREE_6 - DEGREE_7 :type nurbsCurveDegree: str :param controlPointWeight: Index and weight for control point in NURBS curve. :type controlPointWeight: int, float :returns: New NURBS created. :rtype: Part .. _patternAlongPath: .. method:: patternAlongPath(input, path, count=3, equalSpacing=False, spacing=0.01, instances=False, method='TRANSFORM', orientation='MAINTAIN_SEED_ORIENTATION', pathReverse=False, copiesToSkip=None) Pattern parts or faces along curve. Args: input (list[Part] | list[FeatureArea]): Parts or Features to create pattern along the curve. path (list[FeatureCurve]): Path for pattern. count (int): Number of copies. equalSpacing (bool): If True, equally space the copies. spacing (float): Distance between two copies. instances (bool): If True, any changes to part or face will apply to all instances. method (str): Pattern method. - TRANSFORM - OFFSET orientation (str): Pattern Orientation. - TANGENT_TO_CURVE - MAINTAIN_SEED_ORIENTATION pathReverse (bool): Reverse the path of pattern. copiesToSkip (dict{Part: list[indicesToSkip]}): Set copies to skip. It's basically a dictionary which contains Part as a key and list of indices to skip as values. Returns: list[Part | Feature]: List of parts/features created. .. _multiSweep: .. method:: multiSweep(profiles, path, sweepAsSolid=True, arcLengthProfiles=False, arcLengthGuides=False, orientation='PERPENDICULAR', normalToSurface=None, resultType='NEW_PART', mergeWithAllParts=True, mergeParts=None) Sweep multiple profiles along a path to create a solid or surface. :param profiles: Faces or closed sketches. :type profiles: list[FeatureArea | FeatureCurve] :param path: Path for the multiSweep. :type path: list[FeatureCurve] :param sweepAsSolid: If true, sweep as solids otherwise sweep as surfaces. :type sweepAsSolid: bool :param arcLengthProfiles: If True, Set Arc Length Parametrization on profiles. :type arcLengthProfiles: bool :param arcLengthGuides: If True, Set Arc Length Parametrization on path. :type arcLengthGuides: bool :param orientation: Orientation for multiSweep. - PERPENDICULAR - PARALLEL - NORMAL_TO_SURFACE :type orientation: str :param normalToSurface: Face to which sweep orientation will be normal. :type normalToSurface: list[FeatureArea] :param resultType: Result type of multiSweep operation. - COMBINE - SUBTRACT - INTERSECT - NEW_PART :type resultType: str :param mergeWithAllParts: If True, merge with All parts otherwise merge with parts supplied in mergeTargets. :type mergeWithAllParts: bool :param mergeParts: Parts to be merged with sweep operation. :type mergeParts: Part :returns: New part created if resultType is NEW_PART. :rtype: Part|None .. _loft: .. method:: loft(profiles, loftAsSolid=True, guideCurves=None, arcLengthProfiles=False, arcLengthGuides=False, swapSurface=False, closed=False, resultType='NEW_PART', mergeWithAllParts=True, mergeParts=None) Create a solid loft or a lofted surface from profiles and guide curves. :param profiles: Faces, closed sketches or curves. :type profiles: list[FeatureArea | FeatureCurve] :param loftAsSolid: If true, sweep as solids otherwise sweep as surfaces. :type loftAsSolid: bool :param guideCurves: Guide curves for the loft. :type guideCurves: list[FeatureCurve] :param arcLengthProfiles: If True, Set Arc Length Parametrization on profiles. :type arcLengthProfiles: bool :param arcLengthGuides: If True, Set Arc Length Parametrization on guides. :type arcLengthGuides: bool :param swapSurface: If True, interchange the profiles and rails to get preferred shape. :type swapSurface: bool :param closed: If True, close the loft. :type closed: bool :param resultType: Result type of loft operation. - COMBINE - SUBTRACT - INTERSECT - NEW_PART :type resultType: str :param mergeWithAllParts: If True, merge with All parts otherwise merge with parts supplied in mergeTargets. :type mergeWithAllParts: bool :param mergeParts: Parts to be merged with loft operation. :type mergeParts: Part :returns: New part created if resultType is NEW_PART. :rtype: Part|None .. _helixCurve: .. method:: helixCurve(profile, type='TURNS_AND_HEIGHT', numTurns=2, pitch=0.003, height=0.01, startAngle=0, curveHand='RIGHT', heightReverse=False, lockDiameterRatio=True, topDiameter=0) Create a solid loft or a lofted surface from profiles and guide curves. :param profile: Circular sketch profile. :type profile: FeatureCircular :param type: Helix Curve Type. - TURNS_AND_HEIGHT - TURNS_AND_PITCH - HEIGHT_AND_PITCH :type type: str :param numTurns: Number of turns in helix curve. :type numTurns: float :param pitch: Pitch distance of helix curve. :type pitch: float :param height: Height of helix curve. :type height: float :param startAngle: Start angle of helix curve. :type startAngle: float :param curveHand: Helix curve sweep direction. - LEFT - RIGHT :type curveHand: str :param heightReverse: If True, Reverse the height in other direction of helix curve. :type heightReverse: bool :param lockDiameterRatio: If True, Set lock diameter ratio of helix curve. :type lockDiameterRatio: bool :param topDiameter: Top Diameter of helix curve. :type topDiameter: float :returns: New part created. :rtype: Part .. _divideCurve: .. method:: divideCurve(curve, divisionPoints, uniformDivision=False) Divide a curve by inserting points along the curve. :param curve: Curve to divide. :type curve: FeatureCurve :param divisionPoints: List of divisionPoints (length ratio or length along the curve) and the bool value depicts position ratio. If True, Divide the curve on length ratio otherwise division occurs at length along the curve. :type divisionPoints: list(list[float], bool) :param uniformDivision: If True, Curve is uniformly divided. :type uniformDivision: bool :returns: New part created. :rtype: Part