fixed various documentation errors. changed license to apache
This commit is contained in:
parent
142a5c88d8
commit
2154a7bfbd
315
LICENSE
315
LICENSE
|
@ -2,182 +2,207 @@ 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 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
|
||||
modify it under the terms of the Apache Public License, v 2.0
|
||||
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
0. Additional Definitions.
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
4. Combined Works.
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
d) Do one of the following:
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
5. Combined Libraries.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -57,7 +57,8 @@ CadQuery scripts have several key advantages over OpenSCAD:
|
|||
License
|
||||
========
|
||||
|
||||
CadQuery is licensed under the terms of the LGPLv3. http://www.gnu.org/copyleft/lesser.html
|
||||
CadQuery is licensed under the terms of the Apache Public License, version 2.0.
|
||||
A copy of the license can be found at http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Where is the GUI?
|
||||
==================
|
||||
|
|
|
@ -5,7 +5,7 @@ Summary: CadQuery is a parametric scripting language for creating and traversin
|
|||
Home-page: https://github.com/dcowden/cadquery
|
||||
Author: David Cowden
|
||||
Author-email: dave.cowden@gmail.com
|
||||
License: LGPL
|
||||
License: Apache Public License
|
||||
Description: What is a CadQuery?
|
||||
========================================
|
||||
|
||||
|
@ -33,13 +33,6 @@ Description: What is a CadQuery?
|
|||
It has tons of awesome features like integration with FreeCAD so you can see your objects, code-autocompletion, an examples bundle, and script saving/loading. Its definitely the best way to kick the tires!
|
||||
|
||||
|
||||
Recently Added Features
|
||||
========================================
|
||||
|
||||
* 12/5/14 -- New FreeCAD/CadQuery Module! https://github.com/jmwright/cadquery-freecad-module
|
||||
* 10/25/14 -- Added Revolution Feature ( thanks Jeremy ! )
|
||||
|
||||
|
||||
Why CadQuery instead of OpenSCAD?
|
||||
========================================
|
||||
|
||||
|
@ -67,7 +60,7 @@ Description: What is a CadQuery?
|
|||
License
|
||||
========
|
||||
|
||||
CadQuery is licensed under the terms of the LGPLv3. http://www.gnu.org/copyleft/lesser.html
|
||||
CadQuery is licensed under the terms of the Apache Public License, v 2.0 http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Where is the GUI?
|
||||
==================
|
||||
|
|
|
@ -81,7 +81,7 @@ class CQModel(object):
|
|||
:param build_parameters: a dictionary of variables. The variables must be
|
||||
assignable to the underlying variable type.
|
||||
:raises: Nothing. If there is an exception, it will be on the exception property of the result.
|
||||
This is the interface so that we can return other information onthe result, such as the build time
|
||||
This is the interface so that we can return other information on the result, such as the build time
|
||||
:return: a BuildResult object, which includes the status of the result, and either
|
||||
a resulting shape or an exception
|
||||
"""
|
||||
|
@ -309,7 +309,7 @@ class InvalidParameterError(Exception):
|
|||
|
||||
class NoOutputError(Exception):
|
||||
"""
|
||||
Raised when the script does not execute the build_output() method to
|
||||
Raised when the script does not execute the build_object() method to
|
||||
return a solid
|
||||
"""
|
||||
pass
|
||||
|
|
|
@ -61,7 +61,7 @@ If the script was successful, the results property will include a list of result
|
|||
|
||||
If the script failed, the exception property contains the exception object.
|
||||
|
||||
If your have a way to get inputs from a user, you can override any of the constants defined in the user script
|
||||
If you have a way to get inputs from a user, you can override any of the constants defined in the user script
|
||||
with new values::
|
||||
|
||||
from cadquery import cqgi
|
||||
|
|
|
@ -38,7 +38,7 @@ If you have experience with 3D CAD systems, you also know that there is a key de
|
|||
After the base block is created, how the hole is located is key. If it is located from one edge, changing the block
|
||||
size will have a different affect than if the hole is located from the center.
|
||||
|
||||
Many scripting langauges to not provide a way to capture design intent-- because they require that you always work in
|
||||
Many scripting langauges do not provide a way to capture design intent-- because they require that you always work in
|
||||
global coordinates. CadQuery is different-- you can locate features relative to others in a relative way-- preserving
|
||||
the design intent just like a human would when creating a drawing or building an object.
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ Just about the simplest possible example, a rectangular box
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cadquery.Workplane("front").box(2.0,2.0,0.5)
|
||||
result = cadquery.Workplane("front").box(2.0, 2.0, 0.5)
|
||||
build_object(result)
|
||||
|
||||
.. topic:: Api References
|
||||
|
@ -96,7 +96,7 @@ By default, rectangles and circles are centered around the previous working poin
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").circle(2.0).rect(0.5,0.75).extrude(0.5)
|
||||
result = cq.Workplane("front").circle(2.0).rect(0.5, 0.75).extrude(0.5)
|
||||
build_object(result)
|
||||
|
||||
.. topic:: Api References
|
||||
|
@ -121,7 +121,7 @@ closed curve.
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").lineTo(2.0,0).lineTo(2.0,1.0).threePointArc((1.0,1.5),(0.0,1.0))\
|
||||
result = cq.Workplane("front").lineTo(2.0, 0).lineTo(2.0, 1.0).threePointArc((1.0, 1.5),(0.0, 1.0))\
|
||||
.close().extrude(0.25)
|
||||
build_object(result)
|
||||
|
||||
|
@ -149,9 +149,9 @@ A new work plane center can be established at any point.
|
|||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").circle(3.0) #current point is the center of the circle, at (0,0)
|
||||
result = result.center(1.5,0.0).rect(0.5,0.5) # new work center is (1.5,0.0)
|
||||
result = result.center(1.5, 0.0).rect(0.5, 0.5) # new work center is (1.5, 0.0)
|
||||
|
||||
result = result.center(-1.5,1.5).circle(0.25) # new work center is ( 0.0,1.5).
|
||||
result = result.center(-1.5, 1.5).circle(0.25) # new work center is ( 0.0, 1.5).
|
||||
#the new center is specified relative to the previous center, not global coordinates!
|
||||
|
||||
result = result.extrude(0.25)
|
||||
|
@ -181,7 +181,7 @@ like :py:meth:`Workplane.circle` and :py:meth:`Workplane.rect`, will operate on
|
|||
.. cq_plot::
|
||||
|
||||
r = cq.Workplane("front").circle(2.0) # make base
|
||||
r = r.pushPoints( [ (1.5,0),(0,1.5),(-1.5,0),(0,-1.5) ] ) # now four points are on the stack
|
||||
r = r.pushPoints( [ (1.5, 0),(0, 1.5),(-1.5, 0),(0, -1.5) ] ) # now four points are on the stack
|
||||
r = r.circle( 0.25 ) # circle will operate on all four points
|
||||
result = r.extrude(0.125 ) # make prism
|
||||
build_object(result)
|
||||
|
@ -204,8 +204,8 @@ correct for small hole sizes.
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").box(3.0,4.0,0.25).pushPoints ( [ ( 0,0.75 ),(0,-0.75) ]) \
|
||||
.polygon(6,1.0).cutThruAll()
|
||||
result = cq.Workplane("front").box(3.0, 4.0, 0.25).pushPoints ( [ ( 0,0.75 ),(0, -0.75) ]) \
|
||||
.polygon(6, 1.0).cutThruAll()
|
||||
build_object(result)
|
||||
|
||||
.. topic:: Api References
|
||||
|
@ -226,7 +226,7 @@ This example uses a polyline to create one half of an i-beam shape, which is mir
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
(L,H,W,t) = ( 100.0,20.0,20.0,1.0)
|
||||
(L,H,W,t) = ( 100.0, 20.0, 20.0, 1.0)
|
||||
pts = [
|
||||
(0,H/2.0),
|
||||
(W/2.0,H/2.0),
|
||||
|
@ -262,15 +262,15 @@ needs a complex profile
|
|||
|
||||
s = cq.Workplane("XY")
|
||||
sPnts = [
|
||||
(2.75,1.5),
|
||||
(2.5,1.75),
|
||||
(2.0,1.5),
|
||||
(1.5,1.0),
|
||||
(1.0,1.25),
|
||||
(0.5,1.0),
|
||||
(0,1.0)
|
||||
(2.75, 1.5),
|
||||
(2.5, 1.75),
|
||||
(2.0, 1.5),
|
||||
(1.5, 1.0),
|
||||
(1.0, 1.25),
|
||||
(0.5, 1.0),
|
||||
(0, 1.0)
|
||||
]
|
||||
r = s.lineTo(3.0,0).lineTo(3.0,1.0).spline(sPnts).close()
|
||||
r = s.lineTo(3.0, 0).lineTo(3.0, 1.0).spline(sPnts).close()
|
||||
result = r.extrude(0.5)
|
||||
build_object(result)
|
||||
|
||||
|
@ -331,7 +331,7 @@ Keep in mind that the origin of new workplanes are located at the center of a fa
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").box(2,3,0.5) #make a basic prism
|
||||
result = cq.Workplane("front").box(2,3, 0.5) #make a basic prism
|
||||
result = result.faces(">Z").workplane().hole(0.5) #find the top-most face and make a hole
|
||||
build_object(result)
|
||||
|
||||
|
@ -359,7 +359,7 @@ how deep the part is
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").box(3,2,0.5) #make a basic prism
|
||||
result = cq.Workplane("front").box(3,2, 0.5) #make a basic prism
|
||||
result = result.faces(">Z").vertices("<XY").workplane() #select the lower left vertex and make a workplane
|
||||
result = result.circle(1.0).cutThruAll() #cut the corner out
|
||||
build_object(result)
|
||||
|
@ -387,7 +387,7 @@ This example uses an offset workplane to make a compound object, which is perfec
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").box(3,2,0.5) #make a basic prism
|
||||
result = cq.Workplane("front").box(3, 2, 0.5) #make a basic prism
|
||||
result = result.faces("<X").workplane(offset=0.75) #workplane is offset from the object surface
|
||||
result = result.circle(1.0).extrude(0.5) #disc
|
||||
build_object(result)
|
||||
|
@ -409,8 +409,8 @@ You can create a rotated work plane by specifying angles of rotation relative to
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").box(4.0,4.0,0.25).faces(">Z").workplane() \
|
||||
.transformed(offset=cq.Vector(0,-1.5,1.0),rotate=cq.Vector(60,0,0)) \
|
||||
result = cq.Workplane("front").box(4.0, 4.0, 0.25).faces(">Z").workplane() \
|
||||
.transformed(offset=cq.Vector(0, -1.5, 1.0),rotate=cq.Vector(60, 0, 0)) \
|
||||
.rect(1.5,1.5,forConstruction=True).vertices().hole(0.25)
|
||||
build_object(result)
|
||||
|
||||
|
@ -434,8 +434,8 @@ In the example below, a rectangle is drawn, and its vertices are used to locate
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").box(2,2,0.5).faces(">Z").workplane() \
|
||||
.rect(1.5,1.5,forConstruction=True).vertices().hole(0.125 )
|
||||
result = cq.Workplane("front").box(2, 2, 0.5).faces(">Z").workplane() \
|
||||
.rect(1.5, 1.5, forConstruction=True).vertices().hole(0.125 )
|
||||
build_object(result)
|
||||
|
||||
.. topic:: Api References
|
||||
|
@ -459,7 +459,7 @@ are removed, and then the inside of the solid is 'hollowed out' to make the shel
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").box(2,2,2).faces("+Z").shell(0.05)
|
||||
result = cq.Workplane("front").box(2, 2, 2).faces("+Z").shell(0.05)
|
||||
build_object(result)
|
||||
|
||||
.. topic:: Api References
|
||||
|
@ -480,8 +480,8 @@ and a circular section.
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("front").box(4.0,4.0,0.25).faces(">Z").circle(1.5) \
|
||||
.workplane(offset=3.0).rect(0.75,0.5).loft(combine=True)
|
||||
result = cq.Workplane("front").box(4.0, 4.0, 0.25).faces(">Z").circle(1.5) \
|
||||
.workplane(offset=3.0).rect(0.75, 0.5).loft(combine=True)
|
||||
|
||||
build_object(result)
|
||||
|
||||
|
@ -505,8 +505,8 @@ Similar to :py:meth:`Workplane.hole` , these functions operate on a list of poin
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane(cq.Plane.XY()).box(4,2,0.5).faces(">Z").workplane().rect(3.5,1.5,forConstruction=True)\
|
||||
.vertices().cboreHole(0.125, 0.25,0.125,depth=None)
|
||||
result = cq.Workplane(cq.Plane.XY()).box(4,2, 0.5).faces(">Z").workplane().rect(3.5, 1.5, forConstruction=True)\
|
||||
.vertices().cboreHole(0.125, 0.25, 0.125, depth=None)
|
||||
|
||||
build_object(result)
|
||||
|
||||
|
@ -533,7 +533,7 @@ Here we fillet all of the edges of a simple plate.
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
result = cq.Workplane("XY" ).box(3,3,0.5).edges("|Z").fillet(0.125)
|
||||
result = cq.Workplane("XY" ).box(3, 3, 0.5).edges("|Z").fillet(0.125)
|
||||
build_object(result)
|
||||
|
||||
.. topic:: Api References
|
||||
|
@ -554,12 +554,12 @@ with just a few lines of code.
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
(length,height,bearing_diam, thickness,padding) = ( 30.0,40.0,22.0,10.0,8.0)
|
||||
(length,height,bearing_diam, thickness,padding) = ( 30.0, 40.0, 22.0, 10.0, 8.0)
|
||||
|
||||
result = cq.Workplane("XY").box(length,height,thickness).faces(">Z").workplane().hole(bearing_diam) \
|
||||
.faces(">Z").workplane() \
|
||||
.rect(length-padding,height-padding,forConstruction=True) \
|
||||
.vertices().cboreHole(2.4,4.4,2.1)
|
||||
.vertices().cboreHole(2.4, 4.4, 2.1)
|
||||
|
||||
build_object(result)
|
||||
|
||||
|
@ -604,12 +604,12 @@ ones at 13 lines, but that's very short compared to the pythonOCC version, which
|
|||
|
||||
.. cq_plot::
|
||||
|
||||
(L,w,t) = (20.0,6.0,3.0)
|
||||
(L,w,t) = (20.0, 6.0, 3.0)
|
||||
s = cq.Workplane("XY")
|
||||
|
||||
#draw half the profile of the bottle and extrude it
|
||||
p = s.center(-L/2.0,0).vLine(w/2.0) \
|
||||
.threePointArc((L/2.0, w/2.0 + t),(L,w/2.0)).vLine(-w/2.0) \
|
||||
p = s.center(-L/2.0, 0).vLine(w/2.0) \
|
||||
.threePointArc((L/2.0, w/2.0 + t),(L, w/2.0)).vLine(-w/2.0) \
|
||||
.mirrorX().extrude(30.0,True)
|
||||
|
||||
#make the neck
|
||||
|
|
|
@ -7,17 +7,16 @@ CadQuery scripts are pure python scripts, that may follow a few conventions.
|
|||
|
||||
If you are using cadquery as a library, there are no constraints.
|
||||
|
||||
If you are using cadquery scripts inside of a caduquer execution environment,
|
||||
If you are using cadquery scripts inside of a cadquery execution environment,
|
||||
like `The CadQuery Freecad Module <https://github.com/jmwright/cadquery-freecad-module>`_ or
|
||||
`parametricParts.com <https://www.parametricparts.com>`_, there are a few conventions you need to be aware of:
|
||||
|
||||
* cadquery is already imported as 'cq'
|
||||
* to return an object to the container, you need to call the build_object() method.
|
||||
|
||||
See the
|
||||
Each script generally has three sections:
|
||||
|
||||
* Variable Assignments
|
||||
* Variable Assignments and metadata definitions
|
||||
* cadquery and other python code
|
||||
* object exports, via the export_object() function
|
||||
|
||||
|
|
|
@ -42,16 +42,21 @@ Adding a Nicer GUI via the cadquery-freecad-module
|
|||
--------------------------------------------------------
|
||||
|
||||
If you prefer to have a GUI available, your best option is to use
|
||||
the `The CadQuery Freecad Module <https://github.com/jmwright/cadquery-freecad-module>`_.
|
||||
`The CadQuery Freecad Module <https://github.com/jmwright/cadquery-freecad-module>`_.
|
||||
|
||||
Simply extract cadquery-freecad-module into your FreeCAD installation. You'll end up
|
||||
with a cadquery workbench that allows you to interactively run scripts, and then see the results in the FreeCAD GUI
|
||||
|
||||
If you are using Ubuntu, you can also install it via this ppa:
|
||||
|
||||
https://code.launchpad.net/~freecad-community/+archive/ubuntu/ppa/+packages
|
||||
|
||||
|
||||
Zero Step Install
|
||||
-------------------------------------------------
|
||||
|
||||
If you would like to use cadquery with no installation all, you can
|
||||
use `ParametricParts.com <https://www.parametricparts.com>`_, a web-based platform that runs cadQuery scripts
|
||||
use `ParametricParts.com <https://www.parametricparts.com>`_, a web-based platform that runs cadquery scripts
|
||||
|
||||
It is free, and allows running and viewing cadquery scripts in your web browser or mobile phone
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ There is quite a bit going on here, so lets break it down a bit.
|
|||
|
||||
**Line 5** creates a new padding parameter that decides how far the holes are from the edges of the plate.
|
||||
|
||||
**Line 10** selects the top-most face of the block, and creates a workplane on the top that face, which we'll use to
|
||||
**Line 10** selects the top-most face of the block, and creates a workplane on the top of that face, which we'll use to
|
||||
define the centers of the holes in the corners.
|
||||
|
||||
There are a couple of things to note about this line:
|
||||
|
|
|
@ -25,6 +25,29 @@ string patterns in, CadQuery will automatically use the associated selector obje
|
|||
See :ref:`extending` to see how.
|
||||
|
||||
|
||||
Combining Selectors
|
||||
==========================
|
||||
|
||||
Selectors can be combined arithmetically and logically, so that it is possible to do intersection, union, and other
|
||||
combinations. For example::
|
||||
|
||||
box = cadquery.Workplane("XY").box(10,10,10)
|
||||
|
||||
s = selectors.StringSyntaxSelector
|
||||
|
||||
### select all edges on right and left faces
|
||||
#box = box.edges((s("|Z") + s("|Y"))).fillet(1)
|
||||
|
||||
### select all edges on top and bottom
|
||||
#box = box.edges(-s("|Z")).fillet(1)
|
||||
#box = box.edges(s('|X')+s('Y')).fillet(1)
|
||||
box = box.faces(s('>Z')+s('<Z')).fillet(1)
|
||||
|
||||
|
||||
or for another example::
|
||||
|
||||
# select diagonal edges
|
||||
box = box.faces(s('>Z')+s('<Z')).edges(-s('|X')-s('Y')).fillet(1)
|
||||
|
||||
.. _filteringfaces:
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user