Trim lines ending with superfluous whitespace
This commit is contained in:
@@ -26,7 +26,7 @@ The FreeCAD Contribution Process is expressed here with the following specific g
|
|||||||
1. FreeCAD uses the git distributed revision control system.
|
1. FreeCAD uses the git distributed revision control system.
|
||||||
2. Source code for the main application and related subprojects is hosted on github.com in the FreeCAD organization.
|
2. Source code for the main application and related subprojects is hosted on github.com in the FreeCAD organization.
|
||||||
3. Problems are discrete, well-defined limitations or bugs.
|
3. Problems are discrete, well-defined limitations or bugs.
|
||||||
4. FreeCAD uses GitHub's issue-tracking system to track problems and contributions. For help requests and general discussions, use the project forum.
|
4. FreeCAD uses GitHub's issue-tracking system to track problems and contributions. For help requests and general discussions, use the project forum.
|
||||||
5. Contributions are sets of code changes that resolve a single problem.
|
5. Contributions are sets of code changes that resolve a single problem.
|
||||||
6. FreeCAD uses the Pull Request workflow for evaluating and accepting contributions.
|
6. FreeCAD uses the Pull Request workflow for evaluating and accepting contributions.
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ The FreeCAD Contribution Process is expressed here with the following specific g
|
|||||||
## 5. Contribution Requirements
|
## 5. Contribution Requirements
|
||||||
|
|
||||||
1. Contributions are submitted in the form of Pull Requests (PR).
|
1. Contributions are submitted in the form of Pull Requests (PR).
|
||||||
2. Maintainers and Contributors MUST have a GitHub account and SHOULD use their real names or a well-known alias.
|
2. Maintainers and Contributors MUST have a GitHub account and SHOULD use their real names or a well-known alias.
|
||||||
3. If the GitHub username differs from the username on the FreeCAD Forum, effort SHOULD be taken to avoid confusion.
|
3. If the GitHub username differs from the username on the FreeCAD Forum, effort SHOULD be taken to avoid confusion.
|
||||||
4. A PR SHOULD be a minimal and accurate answer to exactly one identified and agreed-on problem.
|
4. A PR SHOULD be a minimal and accurate answer to exactly one identified and agreed-on problem.
|
||||||
5. A PR SHOULD refrain from adding additional dependencies to the FreeCAD project unless no other option is available.
|
5. A PR SHOULD refrain from adding additional dependencies to the FreeCAD project unless no other option is available.
|
||||||
|
|||||||
10
SECURITY.md
10
SECURITY.md
@@ -1,18 +1,18 @@
|
|||||||
# Security Policy
|
# Security Policy
|
||||||
|
|
||||||
The FreeCAD project is a FOSS (Free and Open-Source Software) project that has a community of thousands of users and
|
The FreeCAD project is a FOSS (Free and Open-Source Software) project that has a community of thousands of users and
|
||||||
hundreds of developers worldwide. We encourage responsible reporting of security vulnerabilities that may affect users
|
hundreds of developers worldwide. We encourage responsible reporting of security vulnerabilities that may affect users
|
||||||
of this software, and will endeavor to address these vulnerabilities when they are discovered.
|
of this software, and will endeavor to address these vulnerabilities when they are discovered.
|
||||||
|
|
||||||
## Bounties
|
## Bounties
|
||||||
|
|
||||||
FreeCAD does not have a program to pay bounties for security bugs. If you discover a vulnerability that affects a part
|
FreeCAD does not have a program to pay bounties for security bugs. If you discover a vulnerability that affects a part
|
||||||
of the FreeCAD project (either directly in FreeCAD, in a library it depends on, or in any of the various other
|
of the FreeCAD project (either directly in FreeCAD, in a library it depends on, or in any of the various other
|
||||||
subprojects such as our website, forums, etc.) we ask you to join the large community of volunteer contributors and
|
subprojects such as our website, forums, etc.) we ask you to join the large community of volunteer contributors and
|
||||||
file a report about the issue.
|
file a report about the issue.
|
||||||
|
|
||||||
Note that funds may be available from the [FreeCAD Project Association (FPA)](https://fpa.freecad.org) to pursue
|
Note that funds may be available from the [FreeCAD Project Association (FPA)](https://fpa.freecad.org) to pursue
|
||||||
security research and/or the development of fixes to any vulnerabilities discovered. However, vulnerabilities held as
|
security research and/or the development of fixes to any vulnerabilities discovered. However, vulnerabilities held as
|
||||||
hostage in demands for "bounties" will not be entertained. Contact the FPA at fpa@freecad.org for more information.
|
hostage in demands for "bounties" will not be entertained. Contact the FPA at fpa@freecad.org for more information.
|
||||||
|
|
||||||
## Supported Versions
|
## Supported Versions
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ if(PYCXX_FOUND)
|
|||||||
${PYCXX_SOURCE_DIR}/IndirectPythonInterface.cxx
|
${PYCXX_SOURCE_DIR}/IndirectPythonInterface.cxx
|
||||||
)
|
)
|
||||||
|
|
||||||
#set old 6.2 pycxx compatibility
|
#set old 6.2 pycxx compatibility
|
||||||
list(APPEND PYCXX_SOURCES ${PYCXX_SOURCE_DIR}/cxx_exceptions.cxx)
|
list(APPEND PYCXX_SOURCES ${PYCXX_SOURCE_DIR}/cxx_exceptions.cxx)
|
||||||
add_definitions(-DPYCXX_6_2_COMPATIBILITY)
|
add_definitions(-DPYCXX_6_2_COMPATIBILITY)
|
||||||
#end old compatibility
|
#end old compatibility
|
||||||
|
|||||||
@@ -5,14 +5,14 @@ The FreeCAD Document Object
|
|||||||
:maxdepth: 4
|
:maxdepth: 4
|
||||||
|
|
||||||
.. automodule:: DocumentObject
|
.. automodule:: DocumentObject
|
||||||
|
|
||||||
.. autoclass:: DocumentObject
|
.. autoclass:: DocumentObject
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
.. method:: __setstate__(value)
|
.. method:: __setstate__(value)
|
||||||
|
|
||||||
allows to save custom attributes of this object as strings, so they can be saved when saving the FreeCAD document
|
allows to save custom attributes of this object as strings, so they can be saved when saving the FreeCAD document
|
||||||
|
|
||||||
.. method:: __getstate__()
|
.. method:: __getstate__()
|
||||||
|
|
||||||
reads values previously saved with __setstate__()
|
reads values previously saved with __setstate__()
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ The Matrix object
|
|||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 4
|
:maxdepth: 4
|
||||||
|
|
||||||
.. automodule:: FreeCAD
|
.. automodule:: FreeCAD
|
||||||
|
|
||||||
.. autoclass:: Matrix
|
.. autoclass:: Matrix
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ The Placement object
|
|||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 4
|
:maxdepth: 4
|
||||||
|
|
||||||
.. automodule:: FreeCAD
|
.. automodule:: FreeCAD
|
||||||
|
|
||||||
.. autoclass:: Placement
|
.. autoclass:: Placement
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ The Vector object
|
|||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 4
|
:maxdepth: 4
|
||||||
|
|
||||||
.. automodule:: FreeCAD
|
.. automodule:: FreeCAD
|
||||||
|
|
||||||
.. autoclass:: Vector
|
.. autoclass:: Vector
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ DlgCheckableMessageBox::DlgCheckableMessageBox(QWidget *parent) :
|
|||||||
m_d->ui.setupUi(this);
|
m_d->ui.setupUi(this);
|
||||||
m_d->ui.pixmapLabel->setVisible(false);
|
m_d->ui.pixmapLabel->setVisible(false);
|
||||||
connect(m_d->ui.buttonBox, &QDialogButtonBox::accepted, this, &DlgCheckableMessageBox::accept);
|
connect(m_d->ui.buttonBox, &QDialogButtonBox::accepted, this, &DlgCheckableMessageBox::accept);
|
||||||
connect(m_d->ui.buttonBox, &QDialogButtonBox::rejected, this, &DlgCheckableMessageBox::reject);
|
connect(m_d->ui.buttonBox, &QDialogButtonBox::rejected, this, &DlgCheckableMessageBox::reject);
|
||||||
connect(m_d->ui.buttonBox, &QDialogButtonBox::clicked,
|
connect(m_d->ui.buttonBox, &QDialogButtonBox::clicked,
|
||||||
this, &DlgCheckableMessageBox::slotClicked);
|
this, &DlgCheckableMessageBox::slotClicked);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,11 +33,11 @@ namespace Gui
|
|||||||
/**
|
/**
|
||||||
* @class SoFCTransform
|
* @class SoFCTransform
|
||||||
* @brief A temporary workaround for coin3d/coin#534.
|
* @brief A temporary workaround for coin3d/coin#534.
|
||||||
*
|
*
|
||||||
* This class is a workaround for a missing feature to reduce the OpenGL stack size.
|
* This class is a workaround for a missing feature to reduce the OpenGL stack size.
|
||||||
* The issue was reported here: https://github.com/coin3d/coin/issues/534
|
* The issue was reported here: https://github.com/coin3d/coin/issues/534
|
||||||
* And was merged here: https://github.com/coin3d/coin/pull/535
|
* And was merged here: https://github.com/coin3d/coin/pull/535
|
||||||
*
|
*
|
||||||
* Once this feature is available in all supported versions of Coin3D, this class should
|
* Once this feature is available in all supported versions of Coin3D, this class should
|
||||||
* be removed and all instances should revert to using SoTransform.
|
* be removed and all instances should revert to using SoTransform.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ class Component(ArchIFC.IfcProduct):
|
|||||||
prop: string
|
prop: string
|
||||||
The name of the property that has changed.
|
The name of the property that has changed.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import math
|
import math
|
||||||
|
|
||||||
ArchIFC.IfcProduct.onChanged(self, obj, prop)
|
ArchIFC.IfcProduct.onChanged(self, obj, prop)
|
||||||
|
|||||||
@@ -337,7 +337,7 @@ class _Wall(ArchComponent.Component):
|
|||||||
if hasattr(baseProxy,"getPropertySet"):
|
if hasattr(baseProxy,"getPropertySet"):
|
||||||
# get full list of PropertySet
|
# get full list of PropertySet
|
||||||
propSetListCur = baseProxy.getPropertySet(obj.Base)
|
propSetListCur = baseProxy.getPropertySet(obj.Base)
|
||||||
# get updated name (if any) of the selected PropertySet
|
# get updated name (if any) of the selected PropertySet
|
||||||
propSetSelectedNameCur = baseProxy.getPropertySet(obj.Base,
|
propSetSelectedNameCur = baseProxy.getPropertySet(obj.Base,
|
||||||
propSetUuid=propSetPickedUuidPrev)
|
propSetUuid=propSetPickedUuidPrev)
|
||||||
if propSetSelectedNameCur: # True if selection is not deleted
|
if propSetSelectedNameCur: # True if selection is not deleted
|
||||||
@@ -613,11 +613,11 @@ class _Wall(ArchComponent.Component):
|
|||||||
else:
|
else:
|
||||||
FreeCAD.Console.PrintError(translate("Arch","Error: Unable to modify the base object of this wall")+"\n")
|
FreeCAD.Console.PrintError(translate("Arch","Error: Unable to modify the base object of this wall")+"\n")
|
||||||
|
|
||||||
if (prop == "ArchSketchPropertySet"
|
if (prop == "ArchSketchPropertySet"
|
||||||
and Draft.getType(obj.Base) == "ArchSketch"):
|
and Draft.getType(obj.Base) == "ArchSketch"):
|
||||||
baseProxy = obj.Base.Proxy
|
baseProxy = obj.Base.Proxy
|
||||||
if hasattr(baseProxy,"getPropertySet"):
|
if hasattr(baseProxy,"getPropertySet"):
|
||||||
uuid = baseProxy.getPropertySet(obj,
|
uuid = baseProxy.getPropertySet(obj,
|
||||||
propSetName=obj.ArchSketchPropertySet)
|
propSetName=obj.ArchSketchPropertySet)
|
||||||
self.ArchSkPropSetPickedUuid = uuid
|
self.ArchSkPropSetPickedUuid = uuid
|
||||||
if (hasattr(obj,"ArchSketchData") and obj.ArchSketchData
|
if (hasattr(obj,"ArchSketchData") and obj.ArchSketchData
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="checkAskAgain">
|
<widget class="QCheckBox" name="checkAskAgain">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>If this is checked, you won't be asked again when creating a new FreeCAD document,
|
<string>If this is checked, you won't be asked again when creating a new FreeCAD document,
|
||||||
and that document won't be turned into an IFC document automatically.
|
and that document won't be turned into an IFC document automatically.
|
||||||
You can still turn a FreeCAD document into an IFC document manually, using
|
You can still turn a FreeCAD document into an IFC document manually, using
|
||||||
Utils -> Make IFC project</string>
|
Utils -> Make IFC project</string>
|
||||||
|
|||||||
@@ -793,7 +793,7 @@ class ArchTest(unittest.TestCase):
|
|||||||
level = Arch.makeFloor()
|
level = Arch.makeFloor()
|
||||||
level.addObjects([wall, column])
|
level.addObjects([wall, column])
|
||||||
App.ActiveDocument.recompute()
|
App.ActiveDocument.recompute()
|
||||||
|
|
||||||
# Create a drawing view
|
# Create a drawing view
|
||||||
section = Arch.makeSectionPlane(level)
|
section = Arch.makeSectionPlane(level)
|
||||||
drawing = Arch.make2DDrawing()
|
drawing = Arch.make2DDrawing()
|
||||||
@@ -803,7 +803,7 @@ class ArchTest(unittest.TestCase):
|
|||||||
cut.ProjectionMode = "Cutfaces"
|
cut.ProjectionMode = "Cutfaces"
|
||||||
drawing.addObjects([view, cut])
|
drawing.addObjects([view, cut])
|
||||||
App.ActiveDocument.recompute()
|
App.ActiveDocument.recompute()
|
||||||
|
|
||||||
# Create a TD page
|
# Create a TD page
|
||||||
tpath = os.path.join(App.getResourceDir(),"Mod","TechDraw","Templates","A3_Landscape_blank.svg")
|
tpath = os.path.join(App.getResourceDir(),"Mod","TechDraw","Templates","A3_Landscape_blank.svg")
|
||||||
page = App.ActiveDocument.addObject("TechDraw::DrawPage", "Page")
|
page = App.ActiveDocument.addObject("TechDraw::DrawPage", "Page")
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ FCBRepAlgoAPI_BooleanOperation::FCBRepAlgoAPI_BooleanOperation(const TopoDS_Shap
|
|||||||
SetRunParallel(Standard_True);
|
SetRunParallel(Standard_True);
|
||||||
SetNonDestructive(Standard_True);
|
SetNonDestructive(Standard_True);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FCBRepAlgoAPI_BooleanOperation::setAutoFuzzy()
|
void FCBRepAlgoAPI_BooleanOperation::setAutoFuzzy()
|
||||||
{
|
{
|
||||||
FCBRepAlgoAPIHelper::setAutoFuzzy(this);
|
FCBRepAlgoAPIHelper::setAutoFuzzy(this);
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ MeasureAreaInfoPtr MeasureAreaHandler(const App::SubObjectT& subject)
|
|||||||
BRepGProp::SurfaceProperties(shape, gprops);
|
BRepGProp::SurfaceProperties(shape, gprops);
|
||||||
auto origin = gprops.CentreOfMass();
|
auto origin = gprops.CentreOfMass();
|
||||||
|
|
||||||
// TODO: Center of Mass might not lie on the surface, somehow snap to the closest point on the surface?
|
// TODO: Center of Mass might not lie on the surface, somehow snap to the closest point on the surface?
|
||||||
|
|
||||||
Base::Placement placement(Base::Vector3d(origin.X(), origin.Y(), origin.Z()), Base::Rotation());
|
Base::Placement placement(Base::Vector3d(origin.X(), origin.Y(), origin.Z()), Base::Rotation());
|
||||||
return std::make_shared<MeasureAreaInfo>(true, getFaceArea(shape), placement);
|
return std::make_shared<MeasureAreaInfo>(true, getFaceArea(shape), placement);
|
||||||
@@ -340,7 +340,7 @@ MeasurePositionInfoPtr MeasurePositionHandler(const App::SubObjectT& subject)
|
|||||||
return std::make_shared<MeasurePositionInfo>(false, Base::Vector3d());
|
return std::make_shared<MeasurePositionInfo>(false, Base::Vector3d());
|
||||||
}
|
}
|
||||||
|
|
||||||
TopoDS_Vertex vertex = TopoDS::Vertex(shape);
|
TopoDS_Vertex vertex = TopoDS::Vertex(shape);
|
||||||
auto point = BRep_Tool::Pnt(vertex);
|
auto point = BRep_Tool::Pnt(vertex);
|
||||||
return std::make_shared<MeasurePositionInfo>( true, Base::Vector3d(point.X(), point.Y(), point.Z()));
|
return std::make_shared<MeasurePositionInfo>( true, Base::Vector3d(point.X(), point.Y(), point.Z()));
|
||||||
}
|
}
|
||||||
@@ -365,11 +365,11 @@ MeasureAngleInfoPtr MeasureAngleHandler(const App::SubObjectT& subject)
|
|||||||
Base::Vector3d position;
|
Base::Vector3d position;
|
||||||
if (sType == TopAbs_FACE) {
|
if (sType == TopAbs_FACE) {
|
||||||
TopoDS_Face face = TopoDS::Face(shape);
|
TopoDS_Face face = TopoDS::Face(shape);
|
||||||
|
|
||||||
GProp_GProps gprops;
|
GProp_GProps gprops;
|
||||||
BRepGProp::SurfaceProperties(face, gprops);
|
BRepGProp::SurfaceProperties(face, gprops);
|
||||||
vec = gprops.CentreOfMass();
|
vec = gprops.CentreOfMass();
|
||||||
|
|
||||||
} else if (sType == TopAbs_EDGE) {
|
} else if (sType == TopAbs_EDGE) {
|
||||||
TopoDS_Edge edge = TopoDS::Edge(shape);
|
TopoDS_Edge edge = TopoDS::Edge(shape);
|
||||||
|
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ public:
|
|||||||
//! callback registrations
|
//! callback registrations
|
||||||
// TODO: is there more that one place that GeometryHandler is defined?
|
// TODO: is there more that one place that GeometryHandler is defined?
|
||||||
using GeometryHandler = std::function<Part::MeasureInfoPtr (App::SubObjectT)>;
|
using GeometryHandler = std::function<Part::MeasureInfoPtr (App::SubObjectT)>;
|
||||||
|
|
||||||
class PartExport CallbackRegistrationRecord
|
class PartExport CallbackRegistrationRecord
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -146,7 +146,7 @@ public:
|
|||||||
CallbackRegistrationRecord(const std::string& module, const std::string& measureType, GeometryHandler callback) :
|
CallbackRegistrationRecord(const std::string& module, const std::string& measureType, GeometryHandler callback) :
|
||||||
m_module(module), m_measureType(measureType), m_callback(callback)
|
m_module(module), m_measureType(measureType), m_callback(callback)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
std::string m_module;
|
std::string m_module;
|
||||||
std::string m_measureType;
|
std::string m_measureType;
|
||||||
GeometryHandler m_callback;
|
GeometryHandler m_callback;
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
</Methode>
|
</Methode>
|
||||||
<Methode Name="fixShape">
|
<Methode Name="fixShape">
|
||||||
<Documentation>
|
<Documentation>
|
||||||
<UserDocu>Fixes issues in the overall geometric shape.
|
<UserDocu>Fixes issues in the overall geometric shape.
|
||||||
This function likely encapsulates higher-level fixes that involve multiple faces or elements.</UserDocu>
|
This function likely encapsulates higher-level fixes that involve multiple faces or elements.</UserDocu>
|
||||||
</Documentation>
|
</Documentation>
|
||||||
</Methode>
|
</Methode>
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ void SweepWidget::findShapes()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!shape.Infinite() &&
|
if (!shape.Infinite() &&
|
||||||
(shape.ShapeType() == TopAbs_FACE ||
|
(shape.ShapeType() == TopAbs_FACE ||
|
||||||
shape.ShapeType() == TopAbs_WIRE ||
|
shape.ShapeType() == TopAbs_WIRE ||
|
||||||
shape.ShapeType() == TopAbs_EDGE ||
|
shape.ShapeType() == TopAbs_EDGE ||
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ class ColorTransparencyTest(unittest.TestCase):
|
|||||||
of 0 corresponds to a fully transparent color, which is not desirable. It changes
|
of 0 corresponds to a fully transparent color, which is not desirable. It changes
|
||||||
the transparency when loading to 1.0
|
the transparency when loading to 1.0
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self._pg.SetUnsigned('DefaultShapeColor', 0xff000000) # red
|
self._pg.SetUnsigned('DefaultShapeColor', 0xff000000) # red
|
||||||
obj = self._doc.addObject('Part::Box')
|
obj = self._doc.addObject('Part::Box')
|
||||||
|
|
||||||
|
|||||||
@@ -260,7 +260,7 @@ App::DocumentObjectExecReturn* Helix::execute()
|
|||||||
if (SC.State() == TopAbs_IN) {
|
if (SC.State() == TopAbs_IN) {
|
||||||
result.Reverse();
|
result.Reverse();
|
||||||
}
|
}
|
||||||
|
|
||||||
fix.LimitTolerance(result, Precision::Confusion() * size * Tolerance.getValue() ); // significant precision reduction due to helical approximation - needed to allow fusion to succeed
|
fix.LimitTolerance(result, Precision::Confusion() * size * Tolerance.getValue() ); // significant precision reduction due to helical approximation - needed to allow fusion to succeed
|
||||||
|
|
||||||
AddSubShape.setValue(result);
|
AddSubShape.setValue(result);
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ class TestHelix(unittest.TestCase):
|
|||||||
helix.Angle = 0
|
helix.Angle = 0
|
||||||
helix.Mode = 0
|
helix.Mode = 0
|
||||||
self.Doc.recompute()
|
self.Doc.recompute()
|
||||||
|
|
||||||
self.assertTrue(helix.Shape.isValid())
|
self.assertTrue(helix.Shape.isValid())
|
||||||
bbox = helix.Shape.BoundBox
|
bbox = helix.Shape.BoundBox
|
||||||
self.assertAlmostEqual(bbox.ZMin/((10**exponent)**3),0,places=4)
|
self.assertAlmostEqual(bbox.ZMin/((10**exponent)**3),0,places=4)
|
||||||
|
|||||||
@@ -696,7 +696,7 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Shape of line end caps. The default (round) should almost
|
<string>Shape of line end caps. The default (round) should almost
|
||||||
always be the right choice. Flat or square caps are useful
|
always be the right choice. Flat or square caps are useful
|
||||||
if you are planning to use a drawing as a 1:1 cutting guide.
|
if you are planning to use a drawing as a 1:1 cutting guide.
|
||||||
</string>
|
</string>
|
||||||
</property>
|
</property>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
osifont license:
|
osifont license:
|
||||||
|
|
||||||
osifont-lgpl3fe.ttf is used under one or more of the following licenses:
|
osifont-lgpl3fe.ttf is used under one or more of the following licenses:
|
||||||
- GNU GPL licence version 3 with GPL font exception,
|
- GNU GPL licence version 3 with GPL font exception,
|
||||||
- GNU GPL licence version 2 with GPL font exception,
|
- GNU GPL licence version 2 with GPL font exception,
|
||||||
- GNU LGPL licence version 3 with GPL font exception.
|
- GNU LGPL licence version 3 with GPL font exception.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# ASME Y14.2-2008 line element definitions
|
# ASME Y14.2-2008 line element definitions
|
||||||
# NOTE: ASME Y14.2-2008 explicitly does not define the lengths of line elements,
|
# NOTE: ASME Y14.2-2008 explicitly does not define the lengths of line elements,
|
||||||
# but recommends lengths that "depict the appropriate line convention commensurate
|
# but recommends lengths that "depict the appropriate line convention commensurate
|
||||||
# with the drawing size and scale". The values used here are generally those
|
# with the drawing size and scale". The values used here are generally those
|
||||||
# from ISO128.
|
# from ISO128.
|
||||||
# NOTE: saving this file from a spreadsheet program (like LibreOffice Calc) may
|
# NOTE: saving this file from a spreadsheet program (like LibreOffice Calc) may
|
||||||
|
|||||||
|
Can't render this file because it contains an unexpected character in line 3 and column 31.
|
@@ -1,7 +1,7 @@
|
|||||||
This folder (`locale`) contains translations for [TechDraw workbench templates](https://wiki.freecad.org/TechDraw_Templates) in the parent `Templates` folder.
|
This folder (`locale`) contains translations for [TechDraw workbench templates](https://wiki.freecad.org/TechDraw_Templates) in the parent `Templates` folder.
|
||||||
The name of each `locale` subfolder represents a language, which follows [IETF BCP 47 standardized codes](https://en.wikipedia.org/wiki/IETF_language_tag). The original TechDraw templates in the parent folder are written using American English (`en-US`).
|
The name of each `locale` subfolder represents a language, which follows [IETF BCP 47 standardized codes](https://en.wikipedia.org/wiki/IETF_language_tag). The original TechDraw templates in the parent folder are written using American English (`en-US`).
|
||||||
|
|
||||||
As such, the most basic name for a locale subfolder will include an [ISO 639 language code](https://en.wikipedia.org/wiki/ISO_639) (e.g. `de` for German). If it's necessary, additional subtags can be added to describe language variants. For instance variants spoken in a particular country, or a specific script. Those subtags are combinable and are based in other standards.
|
As such, the most basic name for a locale subfolder will include an [ISO 639 language code](https://en.wikipedia.org/wiki/ISO_639) (e.g. `de` for German). If it's necessary, additional subtags can be added to describe language variants. For instance variants spoken in a particular country, or a specific script. Those subtags are combinable and are based in other standards.
|
||||||
|
|
||||||
The most common additional subtag is an additional country code to describe a regional variant of the language (e.g. `de-DE` for German spoken in Germany, `es-AR` for Spanish spoken in Argentina, or `zh-CN` for Simplified Chinese in Mainland China). Country subtags are based on [the ISO 3166-1 standard's country codes](https://en.wikipedia.org/wiki/ISO_3166-1).
|
The most common additional subtag is an additional country code to describe a regional variant of the language (e.g. `de-DE` for German spoken in Germany, `es-AR` for Spanish spoken in Argentina, or `zh-CN` for Simplified Chinese in Mainland China). Country subtags are based on [the ISO 3166-1 standard's country codes](https://en.wikipedia.org/wiki/ISO_3166-1).
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
<keyword>architecture</keyword>
|
<keyword>architecture</keyword>
|
||||||
<keyword>assembly</keyword>
|
<keyword>assembly</keyword>
|
||||||
<keyword>part</keyword>
|
<keyword>part</keyword>
|
||||||
<keyword translate="no">coin</keyword>
|
<keyword translate="no">coin</keyword>
|
||||||
</keywords>
|
</keywords>
|
||||||
<url type="homepage">https://www.freecad.org/</url>
|
<url type="homepage">https://www.freecad.org/</url>
|
||||||
<url type="bugtracker">https://github.com/FreeCAD/FreeCAD/issues</url>
|
<url type="bugtracker">https://github.com/FreeCAD/FreeCAD/issues</url>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -32,7 +32,7 @@ msvcp140.dll
|
|||||||
vcamp140.dll
|
vcamp140.dll
|
||||||
vccorlib140.dll
|
vccorlib140.dll
|
||||||
vcomp140.dll
|
vcomp140.dll
|
||||||
```
|
```
|
||||||
3. Open the file *Settings.nsh* with a text editor (both jEdit and Visual Studio Code are good editors for NSIS files). Edit the following paths to correspond to your system: `FILES_FREECAD` corresponds to your installation directory (e.g. `CMAKE_INSTALL_PREFIX` if you self-compiled) and `FILES_DEPS` is the folder you created with the MSVC redistributable files in it.
|
3. Open the file *Settings.nsh* with a text editor (both jEdit and Visual Studio Code are good editors for NSIS files). Edit the following paths to correspond to your system: `FILES_FREECAD` corresponds to your installation directory (e.g. `CMAKE_INSTALL_PREFIX` if you self-compiled) and `FILES_DEPS` is the folder you created with the MSVC redistributable files in it.
|
||||||
```
|
```
|
||||||
!define FILES_FREECAD "C:\FreeCAD\Installer\FreeCAD"
|
!define FILES_FREECAD "C:\FreeCAD\Installer\FreeCAD"
|
||||||
|
|||||||
Reference in New Issue
Block a user