Updated CadQuery lib.

This commit is contained in:
Jeremy Wright 2015-05-15 08:16:13 -04:00
parent d8eb92cfc6
commit 30ba4dc31e
9 changed files with 68 additions and 53 deletions

View File

@ -1,5 +1,5 @@
"""
Copyright (C) 2011-2014 Parametric Products Intellectual Holdings, LLC
Copyright (C) 2011-2015 Parametric Products Intellectual Holdings, LLC
This file is part of CadQuery.
@ -1160,7 +1160,7 @@ class Workplane(CQ):
return self.newObject([self.plane.toWorldCoords(newCenter)])
def spline(self,listOfXYTuple,forConstruction=False):
def spline(self, listOfXYTuple, forConstruction=False):
"""
Create a spline interpolated through the provided points.
@ -1196,7 +1196,7 @@ class Workplane(CQ):
gstartPoint = self._findFromPoint(False)
gEndPoint = self.plane.toWorldCoords(listOfXYTuple[-1])
vecs = [self.plane.toWorldCoords(p) for p in listOfXYTuple ]
vecs = [self.plane.toWorldCoords(p) for p in listOfXYTuple]
allPoints = [gstartPoint] + vecs
e = Edge.makeSpline(allPoints)
@ -1336,7 +1336,7 @@ class Workplane(CQ):
CadQuery tracks edges as they are drawn, and automatically combines them into wires
when the user does an operation that needs it.
Similarly, cadQuery tracks pending wires, and automaticlaly combines them into faces
Similarly, cadQuery tracks pending wires, and automatically combines them into faces
when necessary to make a solid.
"""
self.ctx.pendingWires.append(wire)
@ -1349,7 +1349,7 @@ class Workplane(CQ):
if not possible, the wires remain separated
FreeCAD has a bug in Part.Wire([]) which does not create wires/edges properly sometimes
Additionally, it has a bug where a profile compose of two wires ( rather than one )
Additionally, it has a bug where a profile composed of two wires ( rather than one )
also does not work properly. Together these are a real problem.
"""
wires = self.wires().vals()

View File

@ -1,18 +1,18 @@
"""
Copyright (C) 2011-2014 Parametric Products Intellectual Holdings, LLC
Copyright (C) 2011-2015 Parametric Products Intellectual Holdings, LLC
This file is part of CadQuery.
This file is part of CadQuery.
CadQuery is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
CadQuery is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
CadQuery 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
Lesser General Public License for more details.
CadQuery 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; If not, see <http://www.gnu.org/licenses/>
You should have received a copy of the GNU Lesser General Public
License along with this library; If not, see <http://www.gnu.org/licenses/>
"""

View File

@ -1,5 +1,5 @@
"""
Copyright (C) 2011-2014 Parametric Products Intellectual Holdings, LLC
Copyright (C) 2011-2015 Parametric Products Intellectual Holdings, LLC
This file is part of CadQuery.
@ -39,6 +39,7 @@ def _fc_path():
"/usr/lib/freecad/lib",
"/opt/freecad/lib/",
"/usr/bin/freecad/lib",
"/usr/lib/freecad",
]:
if os.path.exists(_PATH):
return _PATH
@ -94,5 +95,18 @@ def _fc_path():
if os.path.exists(_PATH):
return _PATH
#Make sure that the correct FreeCAD path shows up in Python's system path
sys.path.insert(0, _fc_path())
no_library_path = ImportError('cadquery was unable to determine freecads library path')
try:
import FreeCAD
except ImportError:
path = _fc_path()
if path:
sys.path.insert(0, path)
try:
import FreeCAD
except ImportError:
raise no_library_path
else: raise no_library_path

View File

@ -1,5 +1,5 @@
"""
Copyright (C) 2011-2014 Parametric Products Intellectual Holdings, LLC
Copyright (C) 2011-2015 Parametric Products Intellectual Holdings, LLC
This file is part of CadQuery.

View File

@ -1,5 +1,5 @@
"""
Copyright (C) 2011-2014 Parametric Products Intellectual Holdings, LLC
Copyright (C) 2011-2015 Parametric Products Intellectual Holdings, LLC
This file is part of CadQuery.

View File

@ -1,5 +1,5 @@
"""
Copyright (C) 2011-2014 Parametric Products Intellectual Holdings, LLC
Copyright (C) 2011-2015 Parametric Products Intellectual Holdings, LLC
This file is part of CadQuery.

View File

@ -1,5 +1,5 @@
"""
Copyright (C) 2011-2014 Parametric Products Intellectual Holdings, LLC
Copyright (C) 2011-2015 Parametric Products Intellectual Holdings, LLC
This file is part of CadQuery.
@ -30,19 +30,19 @@
1. It allows us to avoid changing key api points if we change underlying implementations.
It would be a disaster if script and plugin authors had to change models because we
changed implmentations
changed implementations
2. Allow better documentation. One of the reasons FreeCAD is no more popular is because
its docs are terrible. This allows us to provie good documentation via docstrings
its docs are terrible. This allows us to provide good documentation via docstrings
for each wrapper
3. Work around bugs. there are a quite a feb bugs in free this layer allows fixing them
4. allows for enhanced functionality. Many objects are missing features we need. For example
we need a 'forConstruciton' flag on the Wire object. this allows adding those kinds of things
we need a 'forConstruction' flag on the Wire object. this allows adding those kinds of things
5. allow changing interfaces when we'd like. there are few cases where the freecad api is not
very userfriendly: we like to change those when necesary. As an example, in the freecad api,
5. allow changing interfaces when we'd like. there are few cases where the FreeCAD api is not
very user friendly: we like to change those when necessary. As an example, in the FreeCAD api,
all factory methods are on the 'Part' object, but it is very useful to know what kind of
object each one returns, so these are better grouped by the type of object they return.
(who would know that Part.makeCircle() returns an Edge, but Part.makePolygon() returns a Wire ?

View File

@ -1,18 +1,18 @@
"""
CadQuery
Copyright (C) 2014 Parametric Products Intellectual Holdings, LLC
CadQuery
Copyright (C) 2015 Parametric Products Intellectual Holdings, LLC
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
"""

View File

@ -1,26 +1,27 @@
"""
Copyright (C) 2011-2014 Parametric Products Intellectual Holdings, LLC
Copyright (C) 2011-2015 Parametric Products Intellectual Holdings, LLC
This file is part of CadQuery.
This file is part of CadQuery.
CadQuery is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
CadQuery is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
CadQuery 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
Lesser General Public License for more details.
CadQuery 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; If not, see <http://www.gnu.org/licenses/>
You should have received a copy of the GNU Lesser General Public
License along with this library; If not, see <http://www.gnu.org/licenses/>
"""
import re
import math
from cadquery import Vector,Edge,Vertex,Face,Solid,Shell,Compound
class Selector(object):
"""
Filters a list of objects