Download src/Mod/Draft/DraftGeomUtils.py from AbdulElahGwaith/FreeCAD: direct link, hf CLI and curl.
- Browser
- Download file 5.58 kB
-
https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/src/Mod/Draft/DraftGeomUtils.py
- Command line
-
hf download hf://AbdulElahGwaith/FreeCAD/src/Mod/Draft/DraftGeomUtils.py
-
curl -L -o DraftGeomUtils.py https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/src/Mod/Draft/DraftGeomUtils.py
5.58 kB
| # SPDX-License-Identifier: LGPL-2.1-or-later | |
| # *************************************************************************** | |
| # * Copyright (c) 2009, 2010 Yorik van Havre <yorik@uncreated.net> * | |
| # * Copyright (c) 2009, 2010 Ken Cline <cline@frii.com> * | |
| # * * | |
| # * This program is free software; you can redistribute it and/or modify * | |
| # * it under the terms of the GNU Lesser General Public License (LGPL) * | |
| # * as published by the Free Software Foundation; either version 2 of * | |
| # * the License, or (at your option) any later version. * | |
| # * for detail see the LICENCE text file. * | |
| # * * | |
| # * This program is distributed in the hope that it will be useful, * | |
| # * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
| # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
| # * GNU Library General Public License for more details. * | |
| # * * | |
| # * You should have received a copy of the GNU Library General Public * | |
| # * License along with this program; if not, write to the Free Software * | |
| # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * | |
| # * USA * | |
| # * * | |
| # *************************************************************************** | |
| """Define geometry functions for manipulating shapes in the Draft Workbench. | |
| These functions are used by different object creation functions | |
| of the Draft Workbench, both in `Draft.py` and `DraftTools.py`. | |
| They operate on the internal shapes (`Part::TopoShape`) of different objects | |
| and on their subelements, that is, vertices, edges, and faces. | |
| """ | |
| ## \defgroup DRAFTGEOMUTILS DraftGeomUtils | |
| # \ingroup UTILITIES | |
| # \brief Shape manipulation utilities for the Draft workbench | |
| # | |
| # Shapes manipulation utilities | |
| ## \addtogroup DRAFTGEOMUTILS | |
| # @{ | |
| __title__ = "FreeCAD Draft Workbench - Geometry library" | |
| __author__ = "Yorik van Havre, Jacques-Antoine Gaudin, Ken Cline" | |
| __url__ = ["https://www.freecad.org"] | |
| # Doesn't need requisites | |
| from draftgeoutils.linear_algebra import linearFromPoints, determinant | |
| # Needs math, Part, and vector tools | |
| from draftgeoutils.general import NORM | |
| from draftgeoutils.general import ( | |
| precision, | |
| vec, | |
| edg, | |
| getVerts, | |
| v1, | |
| isNull, | |
| isPtOnEdge, | |
| hasCurves, | |
| isAligned, | |
| getQuad, | |
| areColinear, | |
| hasOnlyWires, | |
| geomType, | |
| isValidPath, | |
| findClosest, | |
| getBoundaryAngles, | |
| ) | |
| # Needs general functions | |
| from draftgeoutils.geometry import ( | |
| findPerpendicular, | |
| findDistance, | |
| getSplineNormal, | |
| get_spline_normal, | |
| getNormal, | |
| get_normal, | |
| get_shape_normal, | |
| getRotation, | |
| isPlanar, | |
| is_planar, | |
| calculatePlacement, | |
| mirror, | |
| are_coplanar, | |
| is_straight_line, | |
| mirror_matrix, | |
| uv_vectors_from_face, | |
| placement_from_face, | |
| placement_from_points, | |
| distance_to_plane, | |
| project_point_on_plane, | |
| ) | |
| from draftgeoutils.edges import ( | |
| findEdge, | |
| orientEdge, | |
| isSameLine, | |
| isLine, | |
| is_line, | |
| invert, | |
| findMidpoint, | |
| getTangent, | |
| get_referenced_edges, | |
| ) | |
| from draftgeoutils.faces import ( | |
| concatenate, | |
| getBoundary, | |
| isCoplanar, | |
| is_coplanar, | |
| bind, | |
| cleanFaces, | |
| removeSplitter, | |
| ) | |
| from draftgeoutils.arcs import isClockwise, isWideAngle, arcFrom2Pts, arcFromSpline | |
| from draftgeoutils.cuboids import isCubic, getCubicDimensions | |
| # Needs geometry functions | |
| from draftgeoutils.circle_inversion import pointInversion, polarInversion, circleInversion | |
| # Needs edges functions | |
| from draftgeoutils.sort_edges import sortEdges, sortEdgesOld | |
| from draftgeoutils.intersections import findIntersection, wiresIntersect, connect, angleBisection | |
| from draftgeoutils.wires import ( | |
| findWires, | |
| findWiresOld, | |
| findWiresOld2, | |
| flattenWire, | |
| superWire, | |
| isReallyClosed, | |
| curvetowire, | |
| curvetosegment, | |
| rebaseWire, | |
| removeInterVertices, | |
| cleanProjection, | |
| tessellateProjection, | |
| get_placement_perpendicular_to_wire, | |
| get_extended_wire, | |
| ) | |
| # Needs wires functions | |
| from draftgeoutils.fillets import fillet, filletWire | |
| # Needs intersections functions | |
| from draftgeoutils.offsets import pocket2d, offset, offsetWire | |
| from draftgeoutils.circles import ( | |
| findClosestCircle, | |
| getCircleFromSpline, | |
| circlefrom1Line2Points, | |
| circlefrom2Lines1Point, | |
| circleFrom2LinesRadius, | |
| circleFrom3LineTangents, | |
| circleFromPointLineRadius, | |
| circleFrom2PointsRadius, | |
| findHomotheticCenterOfCircles, | |
| findRadicalAxis, | |
| findRadicalCenter, | |
| ) | |
| from draftgeoutils.circles_apollonius import ( | |
| outerSoddyCircle, | |
| innerSoddyCircle, | |
| circleFrom3CircleTangents, | |
| ) | |
| # Needs circles_apollonius functions | |
| # These functions are not imported because they are incomplete; | |
| # they require pre-requisite functions that haven't been written | |
| # from draftgeoutils.circles_incomplete import (circleFrom2tan1pt, | |
| # circleFrom2tan1rad, | |
| # circleFrom1tan2pt, | |
| # circleFrom1tan1pt1rad, | |
| # circleFrom3tan) | |
| ## @} | |