========== Operations ========== -------------- Public Methods -------------- +-----------------------+-----------------------+-----------------------+ | pushPull_ | extract_ | mirror_ | +-----------------------+-----------------------+-----------------------+ | patch_ | deleteFaces_ | move_ | +-----------------------+-----------------------+-----------------------+ | rotate_ | scale_ | booleanCombine_ | +-----------------------+-----------------------+-----------------------+ | booleanSubtract_ | booleanIntersect_ | slice_ | +-----------------------+-----------------------+-----------------------+ | simplifyImprints_ | simplifyRounds_ | simplifyHoles_ | +-----------------------+-----------------------+-----------------------+ | simplifyPlugs_ | partition_ | midSurface_ | +-----------------------+-----------------------+-----------------------+ | fillet_ | chamferByAngle_ | chamferByDistance_ | +-----------------------+-----------------------+-----------------------+ | shell_ | referencePlane_ | extrude_ | +-----------------------+-----------------------+-----------------------+ | revolve_ | createPipe_ | circularPattern_ | +-----------------------+-----------------------+-----------------------+ | linearPattern_ | draft_ | moveFaces_ | +-----------------------+-----------------------+-----------------------+ | offset_ | thicken_ | intersect_ | +-----------------------+-----------------------+-----------------------+ | translate_ | convertToMass_ | replaceFromFile_ | +-----------------------+-----------------------+-----------------------+ | replaceFromPart_ | convertBodiesToParts_ | breakInstance_ | +-----------------------+-----------------------+-----------------------+ .. _pushPull: .. method:: pushPull(feature, depth) Push or Pulls a face or edge to specific depth. :param feature: Feature to push or pull. :type feature: FeatureArea :param depth: Push or Pull distance. :type depth: float .. _extract: .. method:: extract(feature) Extracts geometry features and transfer them into a new part. :param feature: Feature to be extracted. :type feature: Feature .. _mirror: .. method:: mirror(entity, planeOrigin=None, planeNormal=None, keep=True) Mirrors part across a symmetry plane. User needs to provide the planeOrigin and planeNormal if passing in a Part for mirror. :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: origin of the symmetry plane. :type planeOrigin: Triple :param planeNormal: normal of the symmetry plane. :type planeNormal: Triple :param keep: True to keep the original part, False remove it. :type keep: Bool :returns: New mirrored part created. :rtype: Part .. _patch: .. method:: patch(feature) Creates patches to fill in specified missing surfaces. :param feature: Feature to be patched. :type feature: Feature .. _deleteFaces: .. method:: deleteFaces(feature) Deletes the specified face from the part. :param feature: Feature to be removed. :type feature: Feature .. _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: Matrix44 .. _rotate: .. method:: rotate(part, axis, angle, degrees=True) Rotates around the specified axis. This is a body rotation. :param part: The part to rotate. :type part: Part :param axis: The rotation axis. Valid choices are "x", "y", "z" or any Vector. :type axis: Union[Vector, str] :param angle: The rotation angle. :type angle: float :param degrees: Determines if angles is in degrees or not. :type degrees: bool .. _scale: .. method:: scale(part, 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 part: Part that needs to be scaled. :type part: Part :param value: Specify scale factor. :type value: float .. _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, deleteOthers=True) 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 deleteOthers: Specify to delete others. :type deleteOthers: bool :returns: The remaining part. :rtype: Part .. _booleanIntersect: .. method:: booleanIntersect(targets, tools, deleteOthers=True, deleteTarget=True) Retains only the intersecting portions of two sets of solid objects. :param targets: The first set of parts :type targets: list[Part] :param tools: Part or parts for boolean intersect operation. :type tools: list[Part] :param deleteOthers: Specify to delete others. :type deleteOthers: bool :param deleteTarget: Specify to delete target. :type deleteTarget: 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. User needs to provide the cutOrigin and cutNormal or the surfaceFeature. :param targets: The parts to slice across the cutting plane. :type targets: [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 remove 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 from which you want to remove the Imprints from or FeatureLinear imprint to be removed. :type entity: Part, FeatureLinear .. _simplifyRounds: .. method:: simplifyRounds(entity) Finds and removes both round (convex) and fillet (concave) surfaces from a part. :param entity: Part from which you want to remove the Fillets, Chamfers from or a Feature to be removed. :type entity: Part, Feature .. _simplifyHoles: .. method:: simplifyHoles(entity) Finds and removes holes and pockets, and find raised areas such as lettering. :param entity: Part from which you want to remove the Holes from or FeatureCircular which needs to be removed. :type entity: Part, Feature .. _simplifyPlugs: .. method:: simplifyPlugs(entity) Finds holes and pockets, and plug them by filling the area with a new part :param entity: Part from which you want to plug the holes or a Circular feature that needs to be plugged. :type entity: Part, Feature .. _partition: .. method:: partition(feature, thickness='1 mm', substractFromTarget=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: partition thickness consider in mm. :type thickness: float :param substractFromTarget: Remove the original feature from the part and then create a partition. Defaults to False, :type substractFromTarget: bool .. _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: part which needs midsurface extraction. :type part: Part :param surfaceOptions: side options allows you to extract the Mid, Left or Right surface of the part. :type surfaceOptions: str .. _fillet: .. method:: fillet(feature, radius='3 mm') Creates fillet on a Linear/Planar feature. :param feature: feature that needs to be fillet. :type feature: Feature :param radius: Radius of the fillet in string format. :type radius: 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 consider in mm. :type thickness: float .. _referencePlane: .. method:: referencePlane(features, planeMethod, ratio=0.5, offset=0, rotationAngle=0, flipTangent=False) Reference planes can be used with the Sketch, Slice, and Mirror tools to create or modify geometry, or to create section cuts. :param features: Features to create a reference plane. :type features: list[Feature], Feature :param planeMethod: Plane Methods. - OFFSET - THREE_POINTS - MIDPLANE - NORMAL_TO_EDGE - AT_AN_ANGLE - NORMAL_TO_EDGE_AT_POINT - CYLINDER_TANGENT - PARALLEL_TO_SCREEN - UNREFERENCED :type planeMethod: str :param ratio: Applicable for MidPlane and CurveNormal method. :type ratio: float :param offset: offset value. Applicable for Offset method. :type offset: float :param rotationAngle: Angle in degree.Applicable for At an angle method. :type rotationAngle: float :param flipTangent: If True, flip the tangent for cylinder tangent method. :type flipTangent: bool .. _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 :type features: Union[Feature] :param extrude.: :param extrudeAsSolid: If True extrude as Solid, otherwise extrude as Sheet. :type extrudeAsSolid: bool :param direction: The Extrude Direction. Valid choices are: - SINGLE - BOTH - SYMMETRY :type direction: str :param resultType: The Extrude Result. Valid choices are: - COMBINE - SUBTRACT - INTERSECT - 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: Union[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. Defaults to 1. :type extrudeTo1: Union[float, FeaturePlanar, FeaturePoint] :param extrudeTo2: If extrudeTo2 is a float then its the extrusion length in direction 2 in meters. If extrudeTo2 is a FeautrePoint or a FeaturePlanar then its used to determine the extrusion length in direction 2. Defaults to 1. :type extrudeTo2: Union[float, FeaturePlanar, FeaturePoint] :param angle1: The draft angle in direction 1 in degree. Defaults to 0. :type angle1: float :param angle2: The draft angle in direction 2 in degree. Defaults to 0. :type angle2: float :param extrusionEndCaps: The Extrusion End Caps. Valid choices are: - NONE - BOTH - START - END :type extrusionEndCaps: str .. _revolve: .. method:: revolve(feature, angle, axis) Revolve a face, sketch, line, or 2D edge about an axis. :param feature: A face, line, or 2D edge. :type feature: Union[FeatureArea, FeatureCurve] :param angle: The angle of revolution. :type angle: float :param axis: An edge, line, cylindrical 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. :type axis: Union[FeatureLinear, FeatureCircular, System] .. _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: A FeatureCurve or a list of FeatureCurve. :type path: list[FeatureCurve], FeatureCurve :param section: The Pipe Profile Type. Valid choices are: - CIRCLE - SQUARE - TRIANGLE - RECTANGLE :type section: str :param size: Length of the pipe. :type size: float :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. :type thickness: float :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: The Result Operation Type. Valid choices are: - COMBINE - SUBTRACT - INTERSECT - NEW_PART :type resultType: str .. _circularPattern: .. method:: circularPattern(input, axis, angle=60, count=3, equalSpacing=False, instances=False) Circular Pattern parts or faces around an axis. :param input: A Part or a list of Parts, or a FeatureArea or a list of FeatureArea. :type input: list[Part], Part, list[FeatureArea], 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 .. _linearPattern: .. method:: linearPattern(input, direction1, direction2=(0, 0, 0), bothDirection=False, spacing1=0.0, count1=3, spacing2=0.0, count2=3, instances=False) Linear Pattern parts or faces along a direction. :param input: A Part or a list of Parts. :type input: list[Part], 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 .. _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], FeatureArea :param direction: The Draft Direction. Valid choices are: - SINGLE - BOTH - 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 SYMMETRIC 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 .. _moveFaces: .. method:: moveFaces(features, position, duplicate=False) Translate, rotate, copy, or extend features. :param features: The features to move. :type features: list[FeatureArea], FeatureArea :param position: The position to move the features at. :type position: Matrix44 :param duplicate: If True, copy the features at given position. :type duplicate: bool .. _offset: .. method:: offset(input, value, newPart=False) Offset surfaces or parts. Use the Offset to: 1. Proportionally increase or decrease the size of a solid part. 2. Increase or decrease a solid part's dimension along a line normal to a selected surface (constrained by surrounding surfaces). 3. Create a new solid part proportionally larger or smaller than the original 4. Create a new surface part at specified distance from a part's selected surface(s) 5. Offset selected surface(s) of a surface part (constrained by surrounding surfaces) :param input: A Part or a list of Parts or a Feature or a list of Features. :type input: list[Part], Part, list[Feature], Feature :param value: Desired offset distance. A negative value means inward direction. :type value: float :param newPart: If True, creates a new part. Defaults to False. :type newPart: bool :returns: New part created if newPart was True. :rtype: Part .. _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: A Part or a list of Parts. :type parts: list[Part], Part :param value: Desired offset distance. A negative value means inward direction. :type value: float :param symmetric: If True, offsets symmetrically to both sides of the part's surface. Defaults to True. :type symmetric: 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], Part :param createSolids: If True, faces of solid volumes automatically selected. :type createSolids: bool :param keepSourceParts: Keep Input Parts yes or no. Default is no. When original parts are not kept, they are deleted from the model at the end of a successful operation. :type keepSourceParts: 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. Defaults to 0. :type x: Union[float, list[float]], optional :param y: The distance to translate the 'y' vector. Defaults to None. :type y: float, optional :param z: The distance to translate the 'z' vector. Defaults to None. :type z: float, optional .. _convertToMass: .. method:: convertToMass(parts, parent=None) Replace Parts to concentrated mass. :param parts: Parts to be replaced with concentrated mass. :type parts: list[Part], 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 .. _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]