Merge pull request #573 from looooo/python3-Part+PD+Sketcher

Python3 part+pd+sketcher
This commit is contained in:
wwmayer 2017-03-01 20:58:46 +01:00 committed by GitHub
commit 4664e5bb48
46 changed files with 444 additions and 199 deletions

View File

@ -163,8 +163,9 @@ public:
/// Type structure of LinePyOld
PyTypeObject LinePyOld::Type = {
PyObject_HEAD_INIT(&PyType_Type)
0, /*ob_size*/
// PyObject_HEAD_INIT(&PyType_Type)
// 0, /*ob_size*/
PyVarObject_HEAD_INIT(&PyType_Type,0)
"Part.Line", /*tp_name*/
sizeof(LinePyOld), /*tp_basicsize*/
0, /*tp_itemsize*/
@ -186,7 +187,11 @@ PyTypeObject LinePyOld::Type = {
/* --- Functions to access object as input/output buffer ---------*/
0, /* tp_as_buffer */
/* --- Flags to define presence of optional/expanded features */
Py_TPFLAGS_HAVE_CLASS, /*tp_flags */
#if PY_MAJOR_VERSION >= 3
Py_TPFLAGS_DEFAULT, /*tp_flags */
#else
Py_TPFLAGS_HAVE_CLASS, /*tp_flags */
#endif
"",
0, /*tp_traverse */
0, /*tp_clear */
@ -214,12 +219,15 @@ PyTypeObject LinePyOld::Type = {
0, /*tp_weaklist */
0, /*tp_del */
0 /*tp_version_tag */
#if PY_MAJOR_VERSION >=3
,0 /*tp_finalize */
#endif
};
}
// --->
PyMODINIT_FUNC initPart()
PyMOD_INIT_FUNC(Part)
{
Base::Console().Log("Module: Part\n");
@ -337,16 +345,25 @@ PyMODINIT_FUNC initPart()
::Type,partModule,"RectangularTrimmedSurface");
Base::Interpreter().addType(&Part::PartFeaturePy ::Type,partModule,"Feature");
Base::Interpreter().addType(&Attacher::AttachEnginePy ::Type,partModule,"AttachEngine");
#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef BRepOffsetAPIDef = {PyModuleDef_HEAD_INIT,"BRepOffsetAPI", "BRepOffsetAPI", -1, 0};
PyObject* brepModule = PyModule_Create(&BRepOffsetAPIDef);
#else
PyObject* brepModule = Py_InitModule3("BRepOffsetAPI", 0, "BrepOffsetAPI");
#endif
Py_INCREF(brepModule);
PyModule_AddObject(partModule, "BRepOffsetAPI", brepModule);
Base::Interpreter().addType(&Part::BRepOffsetAPI_MakePipeShellPy::Type,brepModule,"MakePipeShell");
// Geom2d package
PyObject* geom2dModule = Py_InitModule3("Geom2d", 0, "Geom2d");
#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef geom2dDef = {PyModuleDef_HEAD_INIT,"Geom2dD", "Geom2d", -1, 0};
PyObject* geom2dModule = PyModule_Create(&geom2dDef);
#else
PyObject* geom2dModule = Py_InitModule3("Geom2d", 0, "Geom2d");
#endif
Py_INCREF(geom2dModule);
PyModule_AddObject(partModule, "Geom2d", geom2dModule);
Base::Interpreter().addType(&Part::Geometry2dPy::Type,geom2dModule,"Geometry2d");
@ -366,7 +383,9 @@ PyMODINIT_FUNC initPart()
Base::Interpreter().addType(&Part::Line2dSegmentPy::Type,geom2dModule,"Line2dSegment");
Base::Interpreter().addType(&Part::Line2dPy::Type,geom2dModule,"Line2d");
Base::Interpreter().addType(&Part::OffsetCurve2dPy::Type,geom2dModule,"OffsetCurve2d");
#if 0 /* for python3 this isn't working anymore, it's solved by importing the BOPTools
directly. (import BOPTools) */
// this causes double initialisation of the part modul with python3.
try {
//import all submodules of BOPTools, to make them easy to browse in Py console.
//It's done in this weird manner instead of bt.caMemberFunction("importAll"),
@ -379,6 +398,7 @@ PyMODINIT_FUNC initPart()
Base::Console().Error("Failed to import BOPTools package:\n");
err.ReportException();
}
#endif
Part::TopoShape ::init();
Part::PropertyPartShape ::init();
@ -588,4 +608,6 @@ PyMODINIT_FUNC initPart()
Interface_Static::SetCVal("write.step.schema", ap.c_str());
Interface_Static::SetCVal("write.step.product.name", hStepGrp->GetASCII("Product",
Interface_Static::CVal("write.step.product.name")).c_str());
PyMOD_Return(partModule);
}

View File

@ -1569,8 +1569,14 @@ private:
}
}
#if PY_MAJOR_VERSION >= 3
//FIXME: Test this!
if (PyBytes_Check(intext)) {
PyObject *p = Base::PyAsUnicodeObject(PyBytes_AsString(intext));
#else
if (PyString_Check(intext)) {
PyObject *p = Base::PyAsUnicodeObject(PyString_AsString(intext));
PyObject *p = Base::PyAsUnicodeObject(PyString_AsString(intext));
#endif
if (!p) {
throw Py::TypeError("** makeWireString can't convert PyString.");
}
@ -1645,8 +1651,13 @@ private:
PyErr_Clear();
PyObject* index_or_value;
if (PyArg_ParseTuple(args.ptr(), "sO", &name, &index_or_value)) {
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check(index_or_value)) {
int ival = (int)PyLong_AsLong(index_or_value);
#else
if (PyInt_Check(index_or_value)) {
int ival = (int)PyInt_AsLong(index_or_value);
#endif
if (!Interface_Static::SetIVal(name, ival)) {
std::stringstream str;
str << "Failed to set '" << name << "'";

View File

@ -257,8 +257,11 @@ PyObject* AttachEnginePy::getModeInfo(PyObject* args)
}
Py::Dict ret;
ret["ReferenceCombinations"] = pyListOfCombinations;
#if PY_MAJOR_VERSION >= 3
ret["ModeIndex"] = Py::Long(mmode);
#else
ret["ModeIndex"] = Py::Int(mmode);
#endif
try {
Py::Module module(PyImport_ImportModule("PartGui"),true);
if (!module.hasAttr("AttachEngineResources")) {
@ -269,7 +272,11 @@ PyObject* AttachEnginePy::getModeInfo(PyObject* args)
Py::Callable method(submod.getAttr("getModeStrings"));
Py::Tuple arg(2);
arg.setItem(0, Py::String(this->getAttachEnginePtr()->getTypeId().getName()));
#if PY_MAJOR_VERSION >= 3
arg.setItem(1, Py::Long(mmode));
#else
arg.setItem(1, Py::Int(mmode));
#endif
Py::List strs = method.apply(arg);
assert(strs.size() == 2);
ret["UserFriendlyName"] = strs[0];
@ -342,8 +349,13 @@ PyObject* AttachEnginePy::getRefTypeInfo(PyObject* args)
AttachEngine &attacher = *(this->getAttachEnginePtr());
eRefType rt = attacher.getRefTypeByName(typeName);
Py::Dict ret;
#if PY_MAJOR_VERSION >= 3
ret["TypeIndex"] = Py::Long(rt);
ret["Rank"] = Py::Long(AttachEngine::getTypeRank(rt));
#else
ret["TypeIndex"] = Py::Int(rt);
ret["Rank"] = Py::Int(AttachEngine::getTypeRank(rt));
#endif
try {
Py::Module module(PyImport_ImportModule("PartGui"),true);
@ -354,7 +366,11 @@ PyObject* AttachEnginePy::getRefTypeInfo(PyObject* args)
Py::Object submod(module.getAttr("AttachEngineResources"));
Py::Callable method(submod.getAttr("getRefTypeUserFriendlyName"));
Py::Tuple arg(1);
#if PY_MAJOR_VERSION >= 3
arg.setItem(0, Py::Long(rt));
#else
arg.setItem(0, Py::Int(rt));
#endif
Py::String st = method.apply(arg);
ret["UserFriendlyName"] = st;
} catch (Py::Exception& e) {

View File

@ -117,7 +117,7 @@ PyObject* BRepOffsetAPI_MakePipeShellPy::setAuxiliarySpine(PyObject *args)
PyObject *spine, *curv, *keep;
if (!PyArg_ParseTuple(args, "O!O!O!",&Part::TopoShapePy::Type,&spine
,&PyBool_Type,&curv
,&PyInt_Type,&keep))
,&PyLong_Type,&keep))
return 0;
const TopoDS_Shape& s = static_cast<Part::TopoShapePy*>(spine)->getTopoShapePtr()->getShape();
if (s.IsNull() || s.ShapeType() != TopAbs_WIRE) {
@ -199,7 +199,7 @@ PyObject* BRepOffsetAPI_MakePipeShellPy::getStatus(PyObject *args)
if (!PyArg_ParseTuple(args, ""))
return 0;
Standard_Integer val = this->getBRepOffsetAPI_MakePipeShellPtr()->GetStatus();
return Py::new_reference_to(Py::Int(val));
return Py::new_reference_to(Py::Long(val));
}
PyObject* BRepOffsetAPI_MakePipeShellPy::makeSolid(PyObject *args)

View File

@ -19,21 +19,21 @@
<Documentation>
<UserDocu>Returns the polynomial degree of this B-Spline curve.</UserDocu>
</Documentation>
<Parameter Name="Degree" Type="Int"/>
<Parameter Name="Degree" Type="Long"/>
</Attribute>
<Attribute Name="MaxDegree" ReadOnly="true">
<Documentation>
<UserDocu>Returns the value of the maximum polynomial degree of any
B-Spline curve curve. This value is 25.</UserDocu>
</Documentation>
<Parameter Name="MaxDegree" Type="Int"/>
<Parameter Name="MaxDegree" Type="Long"/>
</Attribute>
<Attribute Name="NbPoles" ReadOnly="true">
<Documentation>
<UserDocu>Returns the number of poles of this B-Spline curve.
</UserDocu>
</Documentation>
<Parameter Name="NbPoles" Type="Int"/>
<Parameter Name="NbPoles" Type="Long"/>
</Attribute>
<Attribute Name="NbKnots" ReadOnly="true">
<Documentation>
@ -41,7 +41,7 @@ B-Spline curve curve. This value is 25.</UserDocu>
Returns the number of knots of this B-Spline curve.
</UserDocu>
</Documentation>
<Parameter Name="NbPoles" Type="Int"/>
<Parameter Name="NbPoles" Type="Long"/>
</Attribute>
<Attribute Name="StartPoint" ReadOnly="true">
<Documentation>

View File

@ -225,7 +225,11 @@ PyObject* BSplineCurvePy::insertKnots(PyObject * args)
TColStd_Array1OfInteger m(1,mults.size());
index=1;
for (Py::Sequence::iterator it = mults.begin(); it != mults.end(); ++it) {
#if PY_MAJOR_VERSION >= 3
Py::Long val(*it);
#else
Py::Int val(*it);
#endif
m(index++) = (int)val;
}
@ -662,7 +666,7 @@ PyObject* BSplineCurvePy::getMultiplicities(PyObject * args)
curve->Multiplicities(m);
Py::List mults;
for (Standard_Integer i=m.Lower(); i<=m.Upper(); i++) {
mults.append(Py::Int(m(i)));
mults.append(Py::Long(m(i)));
}
return Py::new_reference_to(mults);
}
@ -672,33 +676,32 @@ PyObject* BSplineCurvePy::getMultiplicities(PyObject * args)
return 0;
}
}
Py::Int BSplineCurvePy::getDegree(void) const
Py::Long BSplineCurvePy::getDegree(void) const
{
Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle());
return Py::Int(curve->Degree());
return Py::Long(curve->Degree());
}
Py::Int BSplineCurvePy::getMaxDegree(void) const
Py::Long BSplineCurvePy::getMaxDegree(void) const
{
Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle());
return Py::Int(curve->MaxDegree());
return Py::Long(curve->MaxDegree());
}
Py::Int BSplineCurvePy::getNbPoles(void) const
Py::Long BSplineCurvePy::getNbPoles(void) const
{
Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle());
return Py::Int(curve->NbPoles());
return Py::Long(curve->NbPoles());
}
Py::Int BSplineCurvePy::getNbKnots(void) const
Py::Long BSplineCurvePy::getNbKnots(void) const
{
Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle());
return Py::Int(curve->NbKnots());
return Py::Long(curve->NbKnots());
}
Py::Object BSplineCurvePy::getStartPoint(void) const
@ -721,14 +724,14 @@ Py::Object BSplineCurvePy::getFirstUKnotIndex(void) const
{
Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle());
return Py::Int(curve->FirstUKnotIndex());
return Py::Long(curve->FirstUKnotIndex());
}
Py::Object BSplineCurvePy::getLastUKnotIndex(void) const
{
Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle());
return Py::Int(curve->LastUKnotIndex());
return Py::Long(curve->LastUKnotIndex());
}
Py::List BSplineCurvePy::getKnotSequence(void) const
@ -1211,11 +1214,15 @@ PyObject* BSplineCurvePy::buildFromPolesMultsKnots(PyObject *args, PyObject *key
Py::Sequence multssq(mults);
Standard_Integer index = 1;
for (Py::Sequence::iterator it = multssq.begin(); it != multssq.end() && index <= occmults.Length(); ++it) {
#if PY_MAJOR_VERSION >= 3
Py::Long mult(*it);
#else
Py::Int mult(*it);
#endif
if (index < occmults.Length() || PyObject_Not(periodic)) {
sum_of_mults += mult; //sum up the mults to compare them against the number of poles later
sum_of_mults += static_cast<int>(mult); //sum up the mults to compare them against the number of poles later
}
occmults(index++) = mult;
occmults(index++) = static_cast<int>(mult);
}
}
else { //mults are 1 or degree+1 at the ends

View File

@ -21,7 +21,7 @@
Returns the degree of this B-Spline surface in the u parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="UDegree" Type="Int"/>
<Parameter Name="UDegree" Type="Long"/>
</Attribute>
<Attribute Name="VDegree" ReadOnly="true">
<Documentation>
@ -29,7 +29,7 @@
Returns the degree of this B-Spline surface in the v parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="VDegree" Type="Int"/>
<Parameter Name="VDegree" Type="Long"/>
</Attribute>
<Attribute Name="MaxDegree" ReadOnly="true">
<Documentation>
@ -39,7 +39,7 @@
This value is 25.
</UserDocu>
</Documentation>
<Parameter Name="MaxDegree" Type="Int"/>
<Parameter Name="MaxDegree" Type="Long"/>
</Attribute>
<Attribute Name="NbUPoles" ReadOnly="true">
<Documentation>
@ -47,7 +47,7 @@
Returns the number of poles of this B-Spline surface in the u parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="NbUPoles" Type="Int"/>
<Parameter Name="NbUPoles" Type="Long"/>
</Attribute>
<Attribute Name="NbVPoles" ReadOnly="true">
<Documentation>
@ -55,7 +55,7 @@
Returns the number of poles of this B-Spline surface in the v parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="NbVPoles" Type="Int"/>
<Parameter Name="NbVPoles" Type="Long"/>
</Attribute>
<Attribute Name="NbUKnots" ReadOnly="true">
<Documentation>
@ -63,7 +63,7 @@
Returns the number of knots of this B-Spline surface in the u parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="NbUKnots" Type="Int"/>
<Parameter Name="NbUKnots" Type="Long"/>
</Attribute>
<Attribute Name="NbVKnots" ReadOnly="true">
<Documentation>
@ -71,7 +71,7 @@
Returns the number of knots of this B-Spline surface in the v parametric direction.
</UserDocu>
</Documentation>
<Parameter Name="NbVKnots" Type="Int"/>
<Parameter Name="NbVKnots" Type="Long"/>
</Attribute>
<Attribute Name="FirstUKnotIndex" ReadOnly="true">
<Documentation>

View File

@ -286,7 +286,11 @@ PyObject* BSplineSurfacePy::insertUKnots(PyObject *args)
TColStd_Array1OfInteger m(1,mults.size());
index=1;
for (Py::Sequence::iterator it = mults.begin(); it != mults.end(); ++it) {
#if PY_MAJOR_VERSION >= 3
Py::Long val(*it);
#else
Py::Int val(*it);
#endif
m(index++) = (int)val;
}
@ -349,7 +353,11 @@ PyObject* BSplineSurfacePy::insertVKnots(PyObject *args)
TColStd_Array1OfInteger m(1,mults.size());
index=1;
for (Py::Sequence::iterator it = mults.begin(); it != mults.end(); ++it) {
#if PY_MAJOR_VERSION >= 3
Py::Long val(*it);
#else
Py::Int val(*it);
#endif
m(index++) = (int)val;
}
@ -1092,7 +1100,7 @@ PyObject* BSplineSurfacePy::getUMultiplicities(PyObject *args)
surf->UMultiplicities(m);
Py::List mults;
for (Standard_Integer i=m.Lower(); i<=m.Upper(); i++) {
mults.append(Py::Int(m(i)));
mults.append(Py::Long(m(i)));
}
return Py::new_reference_to(mults);
}
@ -1114,7 +1122,7 @@ PyObject* BSplineSurfacePy::getVMultiplicities(PyObject *args)
surf->VMultiplicities(m);
Py::List mults;
for (Standard_Integer i=m.Lower(); i<=m.Upper(); i++) {
mults.append(Py::Int(m(i)));
mults.append(Py::Long(m(i)));
}
return Py::new_reference_to(mults);
}
@ -1467,20 +1475,28 @@ PyObject* BSplineSurfacePy::buildFromPolesMultsKnots(PyObject *args, PyObject *k
Py::Sequence umultssq(umults);
Standard_Integer index = 1;
for (Py::Sequence::iterator it = umultssq.begin(); it != umultssq.end() && index <= occumults.Length(); ++it) {
#if PY_MAJOR_VERSION >= 3
Py::Long mult(*it);
#else
Py::Int mult(*it);
#endif
if (index < occumults.Length() || PyObject_Not(uperiodic)) {
sum_of_umults += mult; //sum up the mults to compare them against the number of poles later
sum_of_umults += static_cast<int>(mult); //sum up the mults to compare them against the number of poles later
}
occumults(index++) = mult;
occumults(index++) = static_cast<int>(mult);
}
Py::Sequence vmultssq(vmults);
index = 1;
for (Py::Sequence::iterator it = vmultssq.begin(); it != vmultssq.end() && index <= occvmults.Length(); ++it) {
#if PY_MAJOR_VERSION >= 3
Py::Long mult(*it);
#else
Py::Int mult(*it);
#endif
if (index < occvmults.Length() || PyObject_Not(vperiodic)) {
sum_of_vmults += mult; //sum up the mults to compare them against the number of poles later
sum_of_vmults += static_cast<int>(mult); //sum up the mults to compare them against the number of poles later
}
occvmults(index++) = mult;
occvmults(index++) = static_cast<int>(mult);
}
//copy or generate knots
if (uknots != Py_None) { //uknots are given
@ -1536,56 +1552,55 @@ PyObject* BSplineSurfacePy::buildFromPolesMultsKnots(PyObject *args, PyObject *k
return 0;
}
}
Py::Int BSplineSurfacePy::getUDegree(void) const
Py::Long BSplineSurfacePy::getUDegree(void) const
{
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
int deg = surf->UDegree();
return Py::Int(deg);
return Py::Long(deg);
}
Py::Int BSplineSurfacePy::getVDegree(void) const
Py::Long BSplineSurfacePy::getVDegree(void) const
{
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
int deg = surf->VDegree();
return Py::Int(deg);
return Py::Long(deg);
}
Py::Int BSplineSurfacePy::getMaxDegree(void) const
Py::Long BSplineSurfacePy::getMaxDegree(void) const
{
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->MaxDegree());
return Py::Long(surf->MaxDegree());
}
Py::Int BSplineSurfacePy::getNbUPoles(void) const
Py::Long BSplineSurfacePy::getNbUPoles(void) const
{
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->NbUPoles());
return Py::Long(surf->NbUPoles());
}
Py::Int BSplineSurfacePy::getNbVPoles(void) const
Py::Long BSplineSurfacePy::getNbVPoles(void) const
{
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->NbVPoles());
return Py::Long(surf->NbVPoles());
}
Py::Int BSplineSurfacePy::getNbUKnots(void) const
Py::Long BSplineSurfacePy::getNbUKnots(void) const
{
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->NbUKnots());
return Py::Long(surf->NbUKnots());
}
Py::Int BSplineSurfacePy::getNbVKnots(void) const
Py::Long BSplineSurfacePy::getNbVKnots(void) const
{
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->NbVKnots());
return Py::Long(surf->NbVKnots());
}
Py::Object BSplineSurfacePy::getFirstUKnotIndex(void) const
@ -1593,7 +1608,7 @@ Py::Object BSplineSurfacePy::getFirstUKnotIndex(void) const
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
int index = surf->FirstUKnotIndex();
return Py::Int(index);
return Py::Long(index);
}
Py::Object BSplineSurfacePy::getLastUKnotIndex(void) const
@ -1601,7 +1616,7 @@ Py::Object BSplineSurfacePy::getLastUKnotIndex(void) const
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
int index = surf->LastUKnotIndex();
return Py::Int(index);
return Py::Long(index);
}
Py::Object BSplineSurfacePy::getFirstVKnotIndex(void) const
@ -1609,7 +1624,7 @@ Py::Object BSplineSurfacePy::getFirstVKnotIndex(void) const
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
int index = surf->FirstVKnotIndex();
return Py::Int(index);
return Py::Long(index);
}
Py::Object BSplineSurfacePy::getLastVKnotIndex(void) const
@ -1617,7 +1632,7 @@ Py::Object BSplineSurfacePy::getLastVKnotIndex(void) const
Handle_Geom_BSplineSurface surf = Handle_Geom_BSplineSurface::DownCast
(getGeometryPtr()->handle());
int index = surf->LastVKnotIndex();
return Py::Int(index);
return Py::Long(index);
}
Py::List BSplineSurfacePy::getUKnotSequence(void) const

View File

@ -24,21 +24,21 @@
<UserDocu>Returns the polynomial degree of this Bezier curve,
which is equal to the number of poles minus 1.</UserDocu>
</Documentation>
<Parameter Name="Degree" Type="Int"/>
<Parameter Name="Degree" Type="Long"/>
</Attribute>
<Attribute Name="MaxDegree" ReadOnly="true">
<Documentation>
<UserDocu>Returns the value of the maximum polynomial degree of any
Bezier curve curve. This value is 25.</UserDocu>
</Documentation>
<Parameter Name="MaxDegree" Type="Int"/>
<Parameter Name="MaxDegree" Type="Long"/>
</Attribute>
<Attribute Name="NbPoles" ReadOnly="true">
<Documentation>
<UserDocu>Returns the number of poles of this Bezier curve.
</UserDocu>
</Documentation>
<Parameter Name="NbPoles" Type="Int"/>
<Parameter Name="NbPoles" Type="Long"/>
</Attribute>
<Attribute Name="StartPoint" ReadOnly="true">
<Documentation>

View File

@ -355,26 +355,25 @@ PyObject* BezierCurvePy::getResolution(PyObject* args)
return 0;
}
}
Py::Int BezierCurvePy::getDegree(void) const
Py::Long BezierCurvePy::getDegree(void) const
{
Handle_Geom_BezierCurve curve = Handle_Geom_BezierCurve::DownCast
(getGeometryPtr()->handle());
return Py::Int(curve->Degree());
return Py::Long(curve->Degree());
}
Py::Int BezierCurvePy::getMaxDegree(void) const
Py::Long BezierCurvePy::getMaxDegree(void) const
{
Handle_Geom_BezierCurve curve = Handle_Geom_BezierCurve::DownCast
(getGeometryPtr()->handle());
return Py::Int(curve->MaxDegree());
return Py::Long(curve->MaxDegree());
}
Py::Int BezierCurvePy::getNbPoles(void) const
Py::Long BezierCurvePy::getNbPoles(void) const
{
Handle_Geom_BezierCurve curve = Handle_Geom_BezierCurve::DownCast
(getGeometryPtr()->handle());
return Py::Int(curve->NbPoles());
return Py::Long(curve->NbPoles());
}
Py::Object BezierCurvePy::getStartPoint(void) const

View File

@ -25,7 +25,7 @@
which is equal to the number of poles minus 1.
</UserDocu>
</Documentation>
<Parameter Name="UDegree" Type="Int"/>
<Parameter Name="UDegree" Type="Long"/>
</Attribute>
<Attribute Name="VDegree" ReadOnly="true">
<Documentation>
@ -34,7 +34,7 @@
which is equal to the number of poles minus 1.
</UserDocu>
</Documentation>
<Parameter Name="VDegree" Type="Int"/>
<Parameter Name="VDegree" Type="Long"/>
</Attribute>
<Attribute Name="MaxDegree" ReadOnly="true">
<Documentation>
@ -43,7 +43,7 @@
Bezier surface. This value is 25.
</UserDocu>
</Documentation>
<Parameter Name="MaxDegree" Type="Int"/>
<Parameter Name="MaxDegree" Type="Long"/>
</Attribute>
<Attribute Name="NbUPoles" ReadOnly="true">
<Documentation>
@ -51,7 +51,7 @@
Returns the number of poles in u direction of this Bezier surface.
</UserDocu>
</Documentation>
<Parameter Name="NbUPoles" Type="Int"/>
<Parameter Name="NbUPoles" Type="Long"/>
</Attribute>
<Attribute Name="NbVPoles" ReadOnly="true">
<Documentation>
@ -59,7 +59,7 @@
Returns the number of poles in v direction of this Bezier surface.
</UserDocu>
</Documentation>
<Parameter Name="NbVPoles" Type="Int"/>
<Parameter Name="NbVPoles" Type="Long"/>
</Attribute>
<Methode Name="bounds">
<Documentation>

View File

@ -728,40 +728,39 @@ PyObject* BezierSurfacePy::vIso(PyObject * args)
return 0;
}
}
Py::Int BezierSurfacePy::getUDegree(void) const
Py::Long BezierSurfacePy::getUDegree(void) const
{
Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->UDegree());
return Py::Long(surf->UDegree());
}
Py::Int BezierSurfacePy::getVDegree(void) const
Py::Long BezierSurfacePy::getVDegree(void) const
{
Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->VDegree());
return Py::Long(surf->VDegree());
}
Py::Int BezierSurfacePy::getMaxDegree(void) const
Py::Long BezierSurfacePy::getMaxDegree(void) const
{
Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->MaxDegree());
return Py::Long(surf->MaxDegree());
}
Py::Int BezierSurfacePy::getNbUPoles(void) const
Py::Long BezierSurfacePy::getNbUPoles(void) const
{
Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->NbUPoles());
return Py::Long(surf->NbUPoles());
}
Py::Int BezierSurfacePy::getNbVPoles(void) const
Py::Long BezierSurfacePy::getNbVPoles(void) const
{
Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle());
return Py::Int(surf->NbVPoles());
return Py::Long(surf->NbVPoles());
}
PyObject *BezierSurfacePy::getCustomAttributes(const char* /*attr*/) const

View File

@ -19,21 +19,21 @@
<Documentation>
<UserDocu>Returns the polynomial degree of this B-Spline curve.</UserDocu>
</Documentation>
<Parameter Name="Degree" Type="Int"/>
<Parameter Name="Degree" Type="Long"/>
</Attribute>
<Attribute Name="MaxDegree" ReadOnly="true">
<Documentation>
<UserDocu>Returns the value of the maximum polynomial degree of any
B-Spline curve curve. This value is 25.</UserDocu>
</Documentation>
<Parameter Name="MaxDegree" Type="Int"/>
<Parameter Name="MaxDegree" Type="Long"/>
</Attribute>
<Attribute Name="NbPoles" ReadOnly="true">
<Documentation>
<UserDocu>Returns the number of poles of this B-Spline curve.
</UserDocu>
</Documentation>
<Parameter Name="NbPoles" Type="Int"/>
<Parameter Name="NbPoles" Type="Long"/>
</Attribute>
<Attribute Name="NbKnots" ReadOnly="true">
<Documentation>
@ -41,7 +41,7 @@ B-Spline curve curve. This value is 25.</UserDocu>
Returns the number of knots of this B-Spline curve.
</UserDocu>
</Documentation>
<Parameter Name="NbPoles" Type="Int"/>
<Parameter Name="NbPoles" Type="Long"/>
</Attribute>
<Attribute Name="StartPoint" ReadOnly="true">
<Documentation>

View File

@ -214,7 +214,11 @@ PyObject* BSplineCurve2dPy::insertKnots(PyObject * args)
TColStd_Array1OfInteger m(1,mults.size());
index=1;
for (Py::Sequence::iterator it = mults.begin(); it != mults.end(); ++it) {
#if PY_MAJOR_VERSION >= 3
Py::Long val(*it);
#else
Py::Int val(*it);
#endif
m(index++) = (int)val;
}
@ -408,7 +412,7 @@ PyObject* BSplineCurve2dPy::getPoles(PyObject * args)
try {
Handle_Geom2d_BSplineCurve curve = Handle_Geom2d_BSplineCurve::DownCast
(getGeometry2dPtr()->handle());
TColgp_Array1OfPnt2d p(1,curve->NbPoles());
TColgp_Array1OfPnt2d p(1, (int)curve->NbPoles());
curve->Poles(p);
Py::List poles;
@ -645,7 +649,11 @@ PyObject* BSplineCurve2dPy::getMultiplicities(PyObject * args)
curve->Multiplicities(m);
Py::List mults;
for (Standard_Integer i=m.Lower(); i<=m.Upper(); i++) {
#if PY_MAJOR_VERSION >= 3
mults.append(Py::Long(m(i)));
#else
mults.append(Py::Int(m(i)));
#endif
}
return Py::new_reference_to(mults);
}
@ -656,32 +664,32 @@ PyObject* BSplineCurve2dPy::getMultiplicities(PyObject * args)
}
}
Py::Int BSplineCurve2dPy::getDegree(void) const
Py::Long BSplineCurve2dPy::getDegree(void) const
{
Handle_Geom2d_BSplineCurve curve = Handle_Geom2d_BSplineCurve::DownCast
(getGeometry2dPtr()->handle());
return Py::Int(curve->Degree());
return Py::Long(curve->Degree());
}
Py::Int BSplineCurve2dPy::getMaxDegree(void) const
Py::Long BSplineCurve2dPy::getMaxDegree(void) const
{
Handle_Geom2d_BSplineCurve curve = Handle_Geom2d_BSplineCurve::DownCast
(getGeometry2dPtr()->handle());
return Py::Int(curve->MaxDegree());
return Py::Long(curve->MaxDegree());
}
Py::Int BSplineCurve2dPy::getNbPoles(void) const
Py::Long BSplineCurve2dPy::getNbPoles(void) const
{
Handle_Geom2d_BSplineCurve curve = Handle_Geom2d_BSplineCurve::DownCast
(getGeometry2dPtr()->handle());
return Py::Int(curve->NbPoles());
return Py::Long(curve->NbPoles());
}
Py::Int BSplineCurve2dPy::getNbKnots(void) const
Py::Long BSplineCurve2dPy::getNbKnots(void) const
{
Handle_Geom2d_BSplineCurve curve = Handle_Geom2d_BSplineCurve::DownCast
(getGeometry2dPtr()->handle());
return Py::Int(curve->NbKnots());
return Py::Long(curve->NbKnots());
}
Py::Object BSplineCurve2dPy::getStartPoint(void) const
@ -716,14 +724,22 @@ Py::Object BSplineCurve2dPy::getFirstUKnotIndex(void) const
{
Handle_Geom2d_BSplineCurve curve = Handle_Geom2d_BSplineCurve::DownCast
(getGeometry2dPtr()->handle());
#if PY_MAJOR_VERSION >= 3
return Py::Long(curve->FirstUKnotIndex());
#else
return Py::Int(curve->FirstUKnotIndex());
#endif
}
Py::Object BSplineCurve2dPy::getLastUKnotIndex(void) const
{
Handle_Geom2d_BSplineCurve curve = Handle_Geom2d_BSplineCurve::DownCast
(getGeometry2dPtr()->handle());
return Py::Int(curve->LastUKnotIndex());
#if PY_MAJOR_VERSION >= 3
return Py::Long(curve->LastUKnotIndex());
#else
return Py::Int(curve->FirstUKnotIndex());
#endif
}
Py::List BSplineCurve2dPy::getKnotSequence(void) const
@ -733,12 +749,12 @@ Py::List BSplineCurve2dPy::getKnotSequence(void) const
Standard_Integer m = 0;
if (curve->IsPeriodic()) {
// knots=poles+2*degree-mult(1)+2
m = curve->NbPoles() + 2*curve->Degree() - curve->Multiplicity(1) + 2;
m = (int)(curve->NbPoles() + 2*curve->Degree() - curve->Multiplicity(1) + 2);
}
else {
// knots=poles+degree+1
for (int i=1; i<= curve->NbKnots(); i++)
m += curve->Multiplicity(i);
m += (int)curve->Multiplicity(i);
}
TColStd_Array1OfReal k(1,m);
@ -1208,9 +1224,13 @@ PyObject* BSplineCurve2dPy::buildFromPolesMultsKnots(PyObject *args, PyObject *k
Py::Sequence multssq(mults);
Standard_Integer index = 1;
for (Py::Sequence::iterator it = multssq.begin(); it != multssq.end() && index <= occmults.Length(); ++it) {
#if PY_MAJOR_VERSION >=3
Py::Long mult(*it);
#else
Py::Int mult(*it);
#endif
if (index < occmults.Length() || PyObject_Not(periodic)) {
sum_of_mults += mult; //sum up the mults to compare them against the number of poles later
sum_of_mults += (int)mult; //sum up the mults to compare them against the number of poles later
}
occmults(index++) = mult;
}

View File

@ -24,21 +24,21 @@
<UserDocu>Returns the polynomial degree of this Bezier curve,
which is equal to the number of poles minus 1.</UserDocu>
</Documentation>
<Parameter Name="Degree" Type="Int"/>
<Parameter Name="Degree" Type="Long"/>
</Attribute>
<Attribute Name="MaxDegree" ReadOnly="true">
<Documentation>
<UserDocu>Returns the value of the maximum polynomial degree of any
Bezier curve curve. This value is 25.</UserDocu>
</Documentation>
<Parameter Name="MaxDegree" Type="Int"/>
<Parameter Name="MaxDegree" Type="Long"/>
</Attribute>
<Attribute Name="NbPoles" ReadOnly="true">
<Documentation>
<UserDocu>Returns the number of poles of this Bezier curve.
</UserDocu>
</Documentation>
<Parameter Name="NbPoles" Type="Int"/>
<Parameter Name="NbPoles" Type="Long"/>
</Attribute>
<Attribute Name="StartPoint" ReadOnly="true">
<Documentation>

View File

@ -362,26 +362,25 @@ PyObject* BezierCurve2dPy::getResolution(PyObject* args)
return 0;
}
}
Py::Int BezierCurve2dPy::getDegree(void) const
Py::Long BezierCurve2dPy::getDegree(void) const
{
Handle_Geom2d_BezierCurve curve = Handle_Geom2d_BezierCurve::DownCast
(getGeometry2dPtr()->handle());
return Py::Int(curve->Degree());
return Py::Long(curve->Degree());
}
Py::Int BezierCurve2dPy::getMaxDegree(void) const
Py::Long BezierCurve2dPy::getMaxDegree(void) const
{
Handle_Geom2d_BezierCurve curve = Handle_Geom2d_BezierCurve::DownCast
(getGeometry2dPtr()->handle());
return Py::Int(curve->MaxDegree());
return Py::Long(curve->MaxDegree());
}
Py::Int BezierCurve2dPy::getNbPoles(void) const
Py::Long BezierCurve2dPy::getNbPoles(void) const
{
Handle_Geom2d_BezierCurve curve = Handle_Geom2d_BezierCurve::DownCast
(getGeometry2dPtr()->handle());
return Py::Int(curve->NbPoles());
return Py::Long(curve->NbPoles());
}
Py::Object BezierCurve2dPy::getStartPoint(void) const

View File

@ -145,10 +145,17 @@ PyObject* GeometryCurvePy::discretize(PyObject *args, PyObject *kwds)
// use no kwds
PyObject* dist_or_num;
if (PyArg_ParseTuple(args, "O", &dist_or_num)) {
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check(dist_or_num)) {
numPoints = PyLong_AsLong(dist_or_num);
uniformAbscissaPoints = true;
}
#else
if (PyInt_Check(dist_or_num)) {
numPoints = PyInt_AsLong(dist_or_num);
uniformAbscissaPoints = true;
}
#endif
else if (PyFloat_Check(dist_or_num)) {
distance = PyFloat_AsDouble(dist_or_num);
uniformAbscissaDistance = true;

View File

@ -501,7 +501,11 @@ PyObject *PropertyFilletEdges::getPyObject(void)
int index = 0;
for (it = _lValueList.begin(); it != _lValueList.end(); ++it) {
Py::Tuple ent(3);
#if PY_MAJOR_VERSION >= 3
ent.setItem(0, Py::Long(it->edgeid));
#else
ent.setItem(0, Py::Int(it->edgeid));
#endif
ent.setItem(1, Py::Float(it->radius1));
ent.setItem(2, Py::Float(it->radius2));
list[index++] = ent;
@ -518,7 +522,11 @@ void PropertyFilletEdges::setPyObject(PyObject *value)
for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) {
FilletElement fe;
Py::Tuple ent(*it);
#if PY_MAJOR_VERSION >= 3
fe.edgeid = (int)Py::Long(ent.getItem(0));
#else
fe.edgeid = (int)Py::Int(ent.getItem(0));
#endif
fe.radius1 = (double)Py::Float(ent.getItem(1));
fe.radius2 = (double)Py::Float(ent.getItem(2));
values.push_back(fe);

View File

@ -412,10 +412,17 @@ PyObject* TopoShapeEdgePy::discretize(PyObject *args, PyObject *kwds)
// use no kwds
PyObject* dist_or_num;
if (PyArg_ParseTuple(args, "O", &dist_or_num)) {
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check(dist_or_num)) {
numPoints = PyLong_AsLong(dist_or_num);
uniformAbscissaPoints = true;
}
#else
if (PyInt_Check(dist_or_num)) {
numPoints = PyInt_AsLong(dist_or_num);
uniformAbscissaPoints = true;
}
#endif
else if (PyFloat_Check(dist_or_num)) {
distance = PyFloat_AsDouble(dist_or_num);
uniformAbscissaDistance = true;

View File

@ -750,7 +750,7 @@ PyObject* TopoShapePy::check(PyObject *args)
if (!getTopoShapePtr()->getShape().IsNull()) {
std::stringstream str;
if (!getTopoShapePtr()->analyze(str)) {
PyErr_SetString(PyExc_StandardError, str.str().c_str());
PyErr_SetString(PyExc_ValueError, str.str().c_str());
PyErr_Print();
}
}
@ -1758,9 +1758,9 @@ PyObject* TopoShapePy::tessellate(PyObject *args)
for (std::vector<Data::ComplexGeoData::Facet>::const_iterator
it = Facets.begin(); it != Facets.end(); ++it) {
Py::Tuple f(3);
f.setItem(0,Py::Int((int)it->I1));
f.setItem(1,Py::Int((int)it->I2));
f.setItem(2,Py::Int((int)it->I3));
f.setItem(0,Py::Long((long)it->I1));
f.setItem(1,Py::Long((long)it->I2));
f.setItem(2,Py::Long((long)it->I3));
facet.append(f);
}
tuple.setItem(1, facet);
@ -1870,9 +1870,15 @@ PyObject* TopoShapePy::makeShapeFromMesh(PyObject *args)
for (Py::Sequence::iterator it = facets.begin(); it != facets.end(); ++it) {
Data::ComplexGeoData::Facet face;
Py::Tuple f(*it);
#if PY_MAJOR_VERSION >= 3
face.I1 = (int)Py::Long(f[0]);
face.I2 = (int)Py::Long(f[1]);
face.I3 = (int)Py::Long(f[2]);
#else
face.I1 = (int)Py::Int(f[0]);
face.I2 = (int)Py::Int(f[1]);
face.I3 = (int)Py::Int(f[2]);
#endif
Facets.push_back(face);
}
@ -2245,7 +2251,11 @@ PyObject* _getSupportIndex(char* suppStr, TopoShape* ts, TopoDS_Shape suppShape)
break;
}
}
#if PY_MAJOR_VERSION >= 3
return PyLong_FromLong(supportIndex);
#else
return PyInt_FromLong(supportIndex);
#endif
}
PyObject* TopoShapePy::proximity(PyObject *args)
@ -2286,11 +2296,19 @@ PyObject* TopoShapePy::proximity(PyObject *args)
for (BRepExtrema_OverlappedSubShapes::Iterator anIt1 (proximity.OverlapSubShapes1()); anIt1.More(); anIt1.Next()) {
//PyList_Append(overlappss1, new TopoShapeFacePy(new TopoShape(proximity.GetSubShape1 (anIt1.Key()))));
#if PY_MAJOR_VERSION >= 3
PyList_Append(overlappssindex1,PyLong_FromLong(anIt1.Key()+1));
#else
PyList_Append(overlappssindex1,PyInt_FromLong(anIt1.Key()+1));
#endif
}
for (BRepExtrema_OverlappedSubShapes::Iterator anIt2 (proximity.OverlapSubShapes2()); anIt2.More(); anIt2.Next()) {
//PyList_Append(overlappss2, new TopoShapeFacePy(new TopoShape(proximity.GetSubShape2 (anIt2.Key()))));
#if PY_MAJOR_VERSION >= 3
PyList_Append(overlappssindex2,PyLong_FromLong(anIt2.Key()+1));
#else
PyList_Append(overlappssindex2,PyInt_FromLong(anIt2.Key()+1));
#endif
}
//return Py_BuildValue("OO", overlappss1, overlappss2); //subshapes
return Py_BuildValue("OO", overlappssindex1, overlappssindex2); //face indexes
@ -2341,20 +2359,32 @@ PyObject* TopoShapePy::distToShape(PyObject *args)
suppS1 = extss.SupportOnShape1(i);
switch (supportType1) {
case BRepExtrema_IsVertex:
#if PY_MAJOR_VERSION >= 3
pSuppType1 = PyBytes_FromString("Vertex");
#else
pSuppType1 = PyString_FromString("Vertex");
#endif
pSupportIndex1 = _getSupportIndex("Vertex",ts1,suppS1);
pParm1 = Py_None;
pParm2 = Py_None;
break;
case BRepExtrema_IsOnEdge:
#if PY_MAJOR_VERSION >= 3
pSuppType1 = PyBytes_FromString("Edge");
#else
pSuppType1 = PyString_FromString("Edge");
#endif
pSupportIndex1 = _getSupportIndex("Edge",ts1,suppS1);
extss.ParOnEdgeS1(i,t1);
pParm1 = PyFloat_FromDouble(t1);
pParm2 = Py_None;
break;
case BRepExtrema_IsInFace:
#if PY_MAJOR_VERSION >= 3
pSuppType1 = PyBytes_FromString("Face");
#else
pSuppType1 = PyString_FromString("Face");
#endif
pSupportIndex1 = _getSupportIndex("Face",ts1,suppS1);
extss.ParOnFaceS1(i,u1,v1);
pParm1 = PyTuple_New(2);
@ -2364,8 +2394,13 @@ PyObject* TopoShapePy::distToShape(PyObject *args)
break;
default:
Base::Console().Message("distToShape: supportType1 is unknown: %d \n",supportType1);
#if PY_MAJOR_VERSION >= 3
pSuppType1 = PyBytes_FromString("Unknown");
pSupportIndex1 = PyLong_FromLong(-1);
#else
pSuppType1 = PyString_FromString("Unknown");
pSupportIndex1 = PyInt_FromLong(-1);
#endif
pParm1 = Py_None;
pParm2 = Py_None;
}
@ -2376,18 +2411,30 @@ PyObject* TopoShapePy::distToShape(PyObject *args)
suppS2 = extss.SupportOnShape2(i);
switch (supportType2) {
case BRepExtrema_IsVertex:
#if PY_MAJOR_VERSION >= 3
pSuppType2 = PyBytes_FromString("Vertex");
#else
pSuppType2 = PyString_FromString("Vertex");
#endif
pSupportIndex2 = _getSupportIndex("Vertex",ts2,suppS2);
pParm2 = Py_None;
break;
case BRepExtrema_IsOnEdge:
#if PY_MAJOR_VERSION >= 3
pSuppType2 = PyBytes_FromString("Edge");
#else
pSuppType2 = PyString_FromString("Edge");
#endif
pSupportIndex2 = _getSupportIndex("Edge",ts2,suppS2);
extss.ParOnEdgeS2(i,t2);
pParm2 = PyFloat_FromDouble(t2);
break;
case BRepExtrema_IsInFace:
#if PY_MAJOR_VERSION >= 3
pSuppType2 = PyBytes_FromString("Face");
#else
pSuppType2 = PyString_FromString("Face");
#endif
pSupportIndex2 = _getSupportIndex("Face",ts2,suppS2);
extss.ParOnFaceS2(i,u2,v2);
pParm2 = PyTuple_New(2);
@ -2396,8 +2443,13 @@ PyObject* TopoShapePy::distToShape(PyObject *args)
break;
default:
Base::Console().Message("distToShape: supportType2 is unknown: %d \n",supportType1);
#if PY_MAJOR_VERSION >= 3
pSuppType2 = PyBytes_FromString("Unknown");
pSupportIndex2 = PyLong_FromLong(-1);
#else
pSuppType2 = PyString_FromString("Unknown");
pSupportIndex2 = PyInt_FromLong(-1);
#endif
}
pts = PyTuple_New(2);
PyTuple_SetItem(pts,0,pPt1);

View File

@ -362,10 +362,17 @@ PyObject* TopoShapeWirePy::discretize(PyObject *args, PyObject *kwds)
// use no kwds
PyObject* dist_or_num;
if (PyArg_ParseTuple(args, "O", &dist_or_num)) {
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check(dist_or_num)) {
numPoints = PyLong_AsLong(dist_or_num);
uniformAbscissaPoints = true;
}
#else
if (PyInt_Check(dist_or_num)) {
numPoints = PyInt_AsLong(dist_or_num);
uniformAbscissaPoints = true;
}
#endif
else if (PyFloat_Check(dist_or_num)) {
distance = PyFloat_AsDouble(dist_or_num);
uniformAbscissaDistance = true;

View File

@ -83,7 +83,7 @@ class CommandEditAttachment:
from PySide import QtGui
mb = QtGui.QMessageBox()
mb.setIcon(mb.Icon.Warning)
mb.setText(err.message)
mb.setText(str(err))
mb.setWindowTitle("Error")
mb.exec_()

View File

@ -40,7 +40,7 @@ except ImportError as err:
def getAllDependent(feature):
return []
App.Console.PrintWarning("AttachmentEditor: Failed to import some code from Show module. Functionality will be limited.\n")
App.Console.PrintWarning(err.message)
App.Console.PrintWarning(str(err))
if App.GuiUp:
import FreeCADGui as Gui
@ -583,7 +583,7 @@ class AttachmentEditorTaskPanel(FrozenClass):
# when entering and extiting dialog without changing anything
self.obj.Placement = new_plm
except Exception as err:
self.form.message.setText(_translate('AttachmentEditor',"Error: {err}",None).format(err= err.message))
self.form.message.setText(_translate('AttachmentEditor',"Error: {err}",None).format(err= str(err)))
if new_plm is not None:
self.form.groupBox_superplacement.setTitle(_translate('AttachmentEditor',"Extra placement:",None))

View File

@ -83,7 +83,7 @@ def cmdCreateJoinFeature(name, mode):
mb = QtGui.QMessageBox()
mb.setIcon(mb.Icon.Warning)
mb.setText(_translate("Part_JoinFeatures","Computing the result failed with an error: \n\n{err}\n\n Click 'Continue' to create the feature anyway, or 'Abort' to cancel.", None)
.format(err= err.message))
.format(err= str(err)))
mb.setWindowTitle(_translate("Part_JoinFeatures","Bad selection", None))
btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
btnOK = mb.addButton(_translate("Part_JoinFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)
@ -167,7 +167,7 @@ class ViewProviderConnect:
for obj in self.claimChildren():
obj.ViewObject.show()
except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message)
FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True
class CommandConnect:
@ -261,7 +261,7 @@ class ViewProviderEmbed:
self.Object.Base.ViewObject.show()
self.Object.Tool.ViewObject.show()
except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message)
FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True
class CommandEmbed:
@ -356,7 +356,7 @@ class ViewProviderCutout:
self.Object.Base.ViewObject.show()
self.Object.Tool.ViewObject.show()
except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message)
FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True

View File

@ -119,7 +119,7 @@ class ViewProviderBooleanFragments:
for obj in self.claimChildren():
obj.ViewObject.show()
except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message)
FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True
def cmdCreateBooleanFragmentsFeature(name, mode):
@ -141,7 +141,7 @@ def cmdCreateBooleanFragmentsFeature(name, mode):
mb = QtGui.QMessageBox()
mb.setIcon(mb.Icon.Warning)
mb.setText(_translate("Part_SplitFeatures","Computing the result failed with an error: \n\n{err}\n\nClick 'Continue' to create the feature anyway, or 'Abort' to cancel.", None)
.format(err= err.message))
.format(err= str(err)))
mb.setWindowTitle(_translate("Part_SplitFeatures","Bad selection", None))
btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
btnOK = mb.addButton(_translate("Part_SplitFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)
@ -246,7 +246,7 @@ class ViewProviderSlice:
for obj in self.claimChildren():
obj.ViewObject.show()
except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message)
FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True
def cmdCreateSliceFeature(name, mode):
@ -269,7 +269,7 @@ def cmdCreateSliceFeature(name, mode):
mb = QtGui.QMessageBox()
mb.setIcon(mb.Icon.Warning)
mb.setText(_translate("Part_SplitFeatures","Computing the result failed with an error: \n\n{err}\n\nClick 'Continue' to create the feature anyway, or 'Abort' to cancel.", None)
.format(err= err.message))
.format(err= str(err)))
mb.setWindowTitle(_translate("Part_SplitFeatures","Bad selection", None))
btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
btnOK = mb.addButton(_translate("Part_SplitFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)
@ -374,7 +374,7 @@ class ViewProviderXOR:
for obj in self.claimChildren():
obj.ViewObject.show()
except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message)
FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True
def cmdCreateXORFeature(name):
@ -395,7 +395,7 @@ def cmdCreateXORFeature(name):
mb = QtGui.QMessageBox()
mb.setIcon(mb.Icon.Warning)
mb.setText(_translate("Part_SplitFeatures","Computing the result failed with an error: \n\n{err}\n\nClick 'Continue' to create the feature anyway, or 'Abort' to cancel.", None)
.format(err= err.message))
.format(err= str(err)))
mb.setWindowTitle(_translate("Part_SplitFeatures","Bad selection", None))
btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
btnOK = mb.addButton(_translate("Part_SplitFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)

View File

@ -102,11 +102,11 @@ PyObject* initModule()
} // namespace PartGui
PyMODINIT_FUNC initPartGui()
PyMOD_INIT_FUNC(PartGui)
{
if (!Gui::Application::Instance) {
PyErr_SetString(PyExc_ImportError, "Cannot load Gui module in console application.");
return;
PyMOD_Return(0);
}
// load needed modules
@ -115,14 +115,21 @@ PyMODINIT_FUNC initPartGui()
}
catch(const Base::Exception& e) {
PyErr_SetString(PyExc_ImportError, e.what());
return;
PyMOD_Return(0);
}
PyObject* partGuiModule = PartGui::initModule();
Base::Console().Log("Loading GUI of Part module... done\n");
#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef pAttachEngineTextsModuleDef = {PyModuleDef_HEAD_INIT,"AttachEngineResources", "AttachEngineResources", -1, 0};
PyObject* pAttachEngineTextsModule = PyModule_Create(&pAttachEngineTextsModuleDef);
#else
PyObject* pAttachEngineTextsModule = Py_InitModule3("AttachEngineResources", AttacherGui::AttacherGuiPy::Methods,
"AttachEngine Gui resources");
#endif
Py_INCREF(pAttachEngineTextsModule);
PyModule_AddObject(partGuiModule, "AttachEngineResources", pAttachEngineTextsModule);
@ -207,4 +214,6 @@ PyMODINIT_FUNC initPartGui()
Gui::BitmapFactoryInst& rclBmpFactory = Gui::BitmapFactory();
rclBmpFactory.addXPM("PartFeature",(const char**) PartFeature_xpm);
rclBmpFactory.addXPM("PartFeatureImport",(const char**) PartFeatureImport_xpm);
PyMOD_Return(partGuiModule);
}

View File

@ -606,12 +606,12 @@ void CmdPartCompJoinFeatures::languageChange()
if (!_pcAction)
return;
#if 0
Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
QList<QAction*> a = pcAction->actions();
Gui::Command* joinConnect = rcCmdMgr.getCommandByName("Part_JoinConnect");
if (joinConnect) {
QAction* cmd0 = a[0];
@ -635,6 +635,7 @@ void CmdPartCompJoinFeatures::languageChange()
cmd2->setToolTip(QApplication::translate("Part_JoinFeatures", joinCutout->getToolTipText()));
cmd2->setStatusTip(QApplication::translate("Part_JoinFeatures", joinCutout->getStatusTip()));
}
#endif
}
bool CmdPartCompJoinFeatures::isActive(void)

View File

@ -41,14 +41,15 @@ class PartWorkbench ( Workbench ):
def Initialize(self):
# load the module
import PartGui
import Part
import BOPTools
import CompoundTools._CommandCompoundFilter
try:
Part.BOPTools.addCommands()
BOPTools.importAll()
BOPTools.addCommands()
except Exception as err:
FreeCAD.Console.PrintError("Features from BOPTools package cannot be loaded. {err}\n".format(err= err.message))
FreeCAD.Console.PrintError("Features from BOPTools package cannot be loaded. {err}\n".format(err= str(err)))
def GetClassName(self):
return "PartGui::Workbench"

View File

@ -158,7 +158,7 @@ class _ViewProviderPartJoinFeature:
self.Object.Base.ViewObject.show()
self.Object.Tool.ViewObject.show()
except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message)
FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True
#
@ -176,7 +176,7 @@ class _ViewProviderPartJoinFeature:
# mb = QtGui.QMessageBox()
# mb.setIcon(mb.Icon.Warning)
# mb.setText(_translate("Part_JoinFeatures","Computing the result failed with an error: {err}. Click 'Continue' to create the feature anyway, or 'Abort' to cancel.", None)
# .format(err= err.message))
# .format(err= str(err)))
# mb.setWindowTitle(_translate("Part_JoinFeatures","Bad selection", None))
# btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
# btnOK = mb.addButton(_translate("Part_JoinFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)

View File

@ -27,6 +27,7 @@
#endif
#include <Base/Console.h>
#include <Base/PyObjectBase.h>
#include <Base/Interpreter.h>
#include "FeaturePad.h"
@ -63,7 +64,7 @@ extern PyObject* initModule();
}
/* Python entry */
PyMODINIT_FUNC init_PartDesign()
PyMOD_INIT_FUNC(_PartDesign)
{
// load dependent module
try {
@ -72,10 +73,10 @@ PyMODINIT_FUNC init_PartDesign()
}
catch(const Base::Exception& e) {
PyErr_SetString(PyExc_ImportError, e.what());
return;
PyMOD_Return(0);
}
(void)PartDesign::initModule();
PyObject* mod = PartDesign::initModule();
Base::Console().Log("Loading PartDesign module... done\n");
@ -141,4 +142,6 @@ PyMODINIT_FUNC init_PartDesign()
PartDesign::Wedge ::init();
PartDesign::AdditiveWedge ::init();
PartDesign::SubtractiveWedge ::init();
PyMOD_Return(mod);
}

View File

@ -97,11 +97,11 @@ PyObject* initModule()
/* Python entry */
PyMODINIT_FUNC initPartDesignGui()
PyMOD_INIT_FUNC(PartDesignGui)
{
if (!Gui::Application::Instance) {
PyErr_SetString(PyExc_ImportError, "Cannot load Gui module in console application.");
return;
PyMOD_Return(0);
}
try {
@ -110,10 +110,10 @@ PyMODINIT_FUNC initPartDesignGui()
}
catch(const Base::Exception& e) {
PyErr_SetString(PyExc_ImportError, e.what());
return;
PyMOD_Return(0);
}
(void)PartDesignGui::initModule();
PyObject* mod = PartDesignGui::initModule();
Base::Console().Log("Loading GUI of PartDesign module... done\n");
// instantiating the commands
@ -154,4 +154,6 @@ PyMODINIT_FUNC initPartDesignGui()
// add resources and reloads the translators
loadPartDesignResource();
PyMOD_Return(mod);
}

View File

@ -35,29 +35,30 @@ class PartDesignWorkbench ( Workbench ):
self.__class__.Icon = FreeCAD.getResourceDir() + "Mod/PartDesign/Resources/icons/PartDesignWorkbench.svg"
self.__class__.MenuText = "Part Design"
self.__class__.ToolTip = "Part Design workbench"
def Initialize(self):
# load the module
try:
from WizardShaft import WizardShaft
except ImportError:
print "Wizard shaft module cannot be loaded"
print("Wizard shaft module cannot be loaded")
try:
from FeatureHole import HoleGui
except:
pass
import PartDesignGui
import PartDesign
try:
import InvoluteGearFeature
except ImportError:
print "Involute gear module cannot be loaded"
print("Involute gear module cannot be loaded")
#try:
# from FeatureHole import HoleGui
#except:
# pass
def GetClassName(self):
return "PartDesignGui::Workbench"
return "PartDesignGui::Workbench"
Gui.addWorkbench(PartDesignWorkbench())

View File

@ -85,9 +85,9 @@ def makeFilletArc(M1,P,Q,N,r2,ccw):
t = t2
br2 = b.mult(r2)
print br2
print(br2)
ut = u.mult(t)
print ut
print(ut)
M2 = P.add(ut).add(br2)
S1 = M1.mult(r2/(r1+r2)).add(M2.mult(r1/(r1+r2)))
S2 = M2.sub(br2)

View File

@ -47,7 +47,7 @@ def makeRadialCopy():
sel = sel[0]
shape = sel.Shape
name = sel.Label
except IndexError, AttributeError:
except (IndexError, AttributeError):
QtGui.QMessageBox.critical(None,"Wrong selection","Please select a shape object")
#raise Exception("Nothing selected")
else:

View File

@ -350,7 +350,7 @@ class TranslationFunction:
try:
self.boundaries = np.linalg.solve(A, b) # A * self.boundaries = b
except np.linalg.linalg.LinAlgError, e:
except np.linalg.linalg.LinAlgError as e:
FreeCAD.Console.PrintMessage(e.message)
FreeCAD.Console.PrintMessage(". No solution possible.\n")
return

View File

@ -478,7 +478,7 @@ class Shaft:
b = np.array([coefficientsF[ax][0], coefficientsM[ax][0]])
try:
solution = np.linalg.solve(A, b) # A * solution = b
except np.linalg.linalg.LinAlgError, e:
except np.linalg.linalg.LinAlgError as e:
FreeCAD.Console.PrintMessage(e.message)
FreeCAD.Console.PrintMessage(". No solution possible.\n")
self.parent.updateButtons(ax, False)

View File

@ -67,5 +67,5 @@ if __name__ == '__main__':
if len(args) != 2:
p.error()
m, Z = [float(v) for v in args]
print makeGear(m, int(Z), float(opts.angle))
print(makeGear(m, int(Z), float(opts.angle)))

View File

@ -43,7 +43,7 @@ extern PyObject* initModule();
}
/* Python entry */
PyMODINIT_FUNC initSketcher()
PyMOD_INIT_FUNC(Sketcher)
{
// load dependent module
try {
@ -51,7 +51,7 @@ PyMODINIT_FUNC initSketcher()
}
catch(const Base::Exception& e) {
PyErr_SetString(PyExc_ImportError, e.what());
return;
PyMOD_Return(0);
}
PyObject* sketcherModule = Sketcher::initModule();
@ -73,4 +73,6 @@ PyMODINIT_FUNC initSketcher()
Sketcher::PropertyConstraintList::init();
Base::Console().Log("Loading Sketcher module... done\n");
PyMOD_Return(sketcherModule);
}

View File

@ -20,13 +20,13 @@
<Documentation>
<UserDocu>First geometry index the Constraint refers to</UserDocu>
</Documentation>
<Parameter Name="First" Type="Int"/>
<Parameter Name="First" Type="Long"/>
</Attribute>
<Attribute Name="Second" ReadOnly="false">
<Documentation>
<UserDocu>Second geometry index the Constraint refers to</UserDocu>
</Documentation>
<Parameter Name="Second" Type="Int"/>
<Parameter Name="Second" Type="Long"/>
</Attribute>
<Attribute Name="Value" ReadOnly="true">
<Documentation>

View File

@ -77,8 +77,13 @@ int ConstraintPy::PyInit(PyObject* args, PyObject* /*kwd*/)
if (PyArg_ParseTuple(args, "siO", &ConstraintType, &FirstIndex, &index_or_value)) {
// ConstraintType, GeoIndex1, GeoIndex2
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check(index_or_value)) {
SecondIndex = PyLong_AsLong(index_or_value);
#else
if (PyInt_Check(index_or_value)) {
SecondIndex = PyInt_AsLong(index_or_value);
#endif
bool valid = false;
if (strcmp("Tangent",ConstraintType) == 0) {
this->getConstraintPtr()->Type = Tangent;
@ -159,9 +164,15 @@ int ConstraintPy::PyInit(PyObject* args, PyObject* /*kwd*/)
if (PyArg_ParseTuple(args, "siiO", &ConstraintType, &FirstIndex, &any_index, &index_or_value)) {
// ConstraintType, GeoIndex1, PosIndex1, GeoIndex2
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check(index_or_value)) {
FirstPos = any_index;
SecondIndex = PyLong_AsLong(index_or_value);
#else
if (PyInt_Check(index_or_value)) {
FirstPos = any_index;
SecondIndex = PyInt_AsLong(index_or_value);
#endif
bool valid = false;
if (strcmp("Perpendicular", ConstraintType) == 0) {
this->getConstraintPtr()->Type = Perpendicular;
@ -245,8 +256,13 @@ int ConstraintPy::PyInit(PyObject* args, PyObject* /*kwd*/)
if (PyArg_ParseTuple(args, "siiiO", &ConstraintType, &intArg1, &intArg2, &intArg3, &oNumArg4)) {
// Value, ConstraintType, GeoIndex1, PosIndex1, GeoIndex2, PosIndex2
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check(oNumArg4)) {
intArg4 = PyLong_AsLong(oNumArg4);
#else
if (PyInt_Check(oNumArg4)) {
intArg4 = PyInt_AsLong(oNumArg4);
#endif
bool valid = false;
if (strcmp("Coincident", ConstraintType) == 0) {
this->getConstraintPtr()->Type = Coincident;
@ -337,8 +353,13 @@ int ConstraintPy::PyInit(PyObject* args, PyObject* /*kwd*/)
if (PyArg_ParseTuple(args, "siiiiO", &ConstraintType, &intArg1, &intArg2, &intArg3, &intArg4, &oNumArg5)) {
// ConstraintType, GeoIndex1, PosIndex1, GeoIndex2, PosIndex2, GeoIndex3
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check(oNumArg5)) {
intArg5 = PyLong_AsLong(oNumArg5);
#else
if (PyInt_Check(oNumArg5)) {
intArg5 = PyInt_AsLong(oNumArg5);
#endif
if (strcmp("Symmetric",ConstraintType) == 0 ) {
this->getConstraintPtr()->Type = Symmetric;
this->getConstraintPtr()->First = intArg1;
@ -404,8 +425,13 @@ int ConstraintPy::PyInit(PyObject* args, PyObject* /*kwd*/)
PyErr_Clear();
if (PyArg_ParseTuple(args, "siiiiiO", &ConstraintType, &FirstIndex, &FirstPos, &SecondIndex, &SecondPos, &ThirdIndex, &index_or_value)) {
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check(index_or_value)) {
ThirdPos = PyLong_AsLong(index_or_value);
#else
if (PyInt_Check(index_or_value)) {
ThirdPos = PyInt_AsLong(index_or_value);
#endif
// ConstraintType, GeoIndex1, PosIndex1, GeoIndex2, PosIndex2, GeoIndex3, PosIndex3
if (strcmp("Symmetric",ConstraintType) == 0 ) {
this->getConstraintPtr()->Type = Symmetric;
@ -495,24 +521,32 @@ std::string ConstraintPy::representation(void) const
return result.str();
}
Py::Int ConstraintPy::getFirst(void) const
Py::Long ConstraintPy::getFirst(void) const
{
return Py::Int(this->getConstraintPtr()->First);
return Py::Long(this->getConstraintPtr()->First);
}
void ConstraintPy::setFirst(Py::Int arg)
void ConstraintPy::setFirst(Py::Long arg)
{
#if PY_MAJOR_VERSION < 3
this->getConstraintPtr()->First = Py::Int(arg);
#else
this->getConstraintPtr()->First = arg;
#endif
}
Py::Int ConstraintPy::getSecond(void) const
Py::Long ConstraintPy::getSecond(void) const
{
return Py::Int(this->getConstraintPtr()->Second);
return Py::Long(this->getConstraintPtr()->Second);
}
void ConstraintPy::setSecond(Py::Int arg)
void ConstraintPy::setSecond(Py::Long arg)
{
#if PY_MAJOR_VERSION < 3
this->getConstraintPtr()->Second = Py::Int(arg);
#else
this->getConstraintPtr()->Second = arg;
#endif
}
Py::String ConstraintPy::getName(void) const

View File

@ -228,13 +228,13 @@
<Documentation>
<UserDocu>Number of Constraints in this sketch</UserDocu>
</Documentation>
<Parameter Name="ConstraintCount" Type="Int"/>
<Parameter Name="ConstraintCount" Type="Long"/>
</Attribute>
<Attribute Name="GeometryCount" ReadOnly="true">
<Documentation>
<UserDocu>Number of geometric objects in this sketch</UserDocu>
</Documentation>
<Parameter Name="GeometryCount" Type="Int"/>
<Parameter Name="GeometryCount" Type="Long"/>
</Attribute>
<Attribute Name="AxisCount" ReadOnly="true">
<Documentation>
@ -242,7 +242,7 @@
return the the number of construction lines in the sketch which can be used as axes
</UserDocu>
</Documentation>
<Parameter Name="AxisCount" Type="Int"/>
<Parameter Name="AxisCount" Type="Long"/>
</Attribute>
</PythonExport>
</GenerateModel>

View File

@ -124,7 +124,7 @@ PyObject* SketchObjectPy::addGeometry(PyObject *args)
PyErr_SetString(PyExc_TypeError, str.str().c_str());
return 0;
}
return Py::new_reference_to(Py::Int(ret));
return Py::new_reference_to(Py::Long(ret));
}
else if (PyObject_TypeCheck(pcObj, &(PyList_Type)) ||
PyObject_TypeCheck(pcObj, &(PyTuple_Type))) {
@ -186,7 +186,7 @@ PyObject* SketchObjectPy::addGeometry(PyObject *args)
Py::Tuple tuple(numGeo);
for (std::size_t i=0; i<numGeo; ++i) {
int geoId = ret - int(numGeo - i);
tuple.setItem(i, Py::Int(geoId));
tuple.setItem(i, Py::Long(geoId));
}
return Py::new_reference_to(tuple);
@ -278,7 +278,7 @@ PyObject* SketchObjectPy::addConstraint(PyObject *args)
// this forces recalculation of the initial solution (not a full solve)
if(this->getSketchObjectPtr()->noRecomputes)
this->getSketchObjectPtr()->setUpSketch();
return Py::new_reference_to(Py::Int(ret));
return Py::new_reference_to(Py::Long(ret));
}
else if (PyObject_TypeCheck(pcObj, &(PyList_Type)) ||
PyObject_TypeCheck(pcObj, &(PyTuple_Type))) {
@ -302,7 +302,7 @@ PyObject* SketchObjectPy::addConstraint(PyObject *args)
Py::Tuple tuple(numCon);
for (std::size_t i=0; i<numCon; ++i) {
int conId = ret - int(numCon - i);
tuple.setItem(i, Py::Int(conId));
tuple.setItem(i, Py::Long(conId));
}
return Py::new_reference_to(tuple);
}
@ -802,8 +802,13 @@ PyObject* SketchObjectPy::addSymmetric(PyObject *args)
std::vector<int> geoIdList;
Py::Sequence list(pcObj);
for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) {
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check((*it).ptr()))
geoIdList.push_back(PyLong_AsLong((*it).ptr()));
#else
if (PyInt_Check((*it).ptr()))
geoIdList.push_back(PyInt_AsLong((*it).ptr()));
#endif
}
int ret = this->getSketchObjectPtr()->addSymmetric(geoIdList,refGeoId,(Sketcher::PointPos) refPosId) + 1;
@ -815,7 +820,7 @@ PyObject* SketchObjectPy::addSymmetric(PyObject *args)
Py::Tuple tuple(numGeo);
for (std::size_t i=0; i<numGeo; ++i) {
int geoId = ret - int(numGeo - i);
tuple.setItem(i, Py::Int(geoId));
tuple.setItem(i, Py::Long(geoId));
}
return Py::new_reference_to(tuple);
@ -841,8 +846,13 @@ PyObject* SketchObjectPy::addCopy(PyObject *args)
std::vector<int> geoIdList;
Py::Sequence list(pcObj);
for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) {
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check((*it).ptr()))
geoIdList.push_back(PyLong_AsLong((*it).ptr()));
#else
if (PyInt_Check((*it).ptr()))
geoIdList.push_back(PyInt_AsLong((*it).ptr()));
#endif
}
int ret = this->getSketchObjectPtr()->addCopy(geoIdList, vect, PyObject_IsTrue(clone) ? true : false) + 1;
@ -854,7 +864,7 @@ PyObject* SketchObjectPy::addCopy(PyObject *args)
Py::Tuple tuple(numGeo);
for (std::size_t i=0; i<numGeo; ++i) {
int geoId = ret - int(numGeo - i);
tuple.setItem(i, Py::Int(geoId));
tuple.setItem(i, Py::Long(geoId));
}
return Py::new_reference_to(tuple);
@ -884,8 +894,13 @@ PyObject* SketchObjectPy::addRectangularArray(PyObject *args)
std::vector<int> geoIdList;
Py::Sequence list(pcObj);
for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) {
#if PY_MAJOR_VERSION >= 3
if (PyLong_Check((*it).ptr()))
geoIdList.push_back(PyLong_AsLong((*it).ptr()));
#else
if (PyInt_Check((*it).ptr()))
geoIdList.push_back(PyInt_AsLong((*it).ptr()));
#endif
}
int ret = this->getSketchObjectPtr()->addCopy(geoIdList,vect, PyObject_IsTrue(clone) ? true : false,
@ -961,7 +976,7 @@ PyObject* SketchObjectPy::changeConstraintsLocking(PyObject *args)
int naff = obj->changeConstraintsLocking((bool)bLock);
return Py::new_reference_to(Py::Int(naff));
return Py::new_reference_to(Py::Long(naff));
}
//Deprecated
@ -1069,19 +1084,19 @@ PyObject* SketchObjectPy::increaseBSplineDegree(PyObject *args)
Py_Return;
}
Py::Int SketchObjectPy::getConstraintCount(void) const
Py::Long SketchObjectPy::getConstraintCount(void) const
{
return Py::Int(this->getSketchObjectPtr()->Constraints.getSize());
return Py::Long(this->getSketchObjectPtr()->Constraints.getSize());
}
Py::Int SketchObjectPy::getGeometryCount(void) const
Py::Long SketchObjectPy::getGeometryCount(void) const
{
return Py::Int(this->getSketchObjectPtr()->Geometry.getSize());
return Py::Long(this->getSketchObjectPtr()->Geometry.getSize());
}
Py::Int SketchObjectPy::getAxisCount(void) const
Py::Long SketchObjectPy::getAxisCount(void) const
{
return Py::Int(this->getSketchObjectPtr()->getAxisCount());
return Py::Long(this->getSketchObjectPtr()->getAxisCount());
}
PyObject *SketchObjectPy::getCustomAttributes(const char* /*attr*/) const

View File

@ -54,7 +54,7 @@
<Documentation>
<UserDocu>0: exactly constraint, -1 under-constraint, 1 over-constraint</UserDocu>
</Documentation>
<Parameter Name="Constraint" Type="Int"/>
<Parameter Name="Constraint" Type="Long"/>
</Attribute>
<Attribute Name="Conflicts" ReadOnly="true">
<Documentation>

View File

@ -65,7 +65,7 @@ PyObject* SketchPy::solve(PyObject *args)
if (!PyArg_ParseTuple(args, ""))
return 0;
getSketchPtr()->resetSolver();
return Py::new_reference_to(Py::Int(getSketchPtr()->solve()));
return Py::new_reference_to(Py::Long(getSketchPtr()->solve()));
}
PyObject* SketchPy::addGeometry(PyObject *args)
@ -76,7 +76,7 @@ PyObject* SketchPy::addGeometry(PyObject *args)
if (PyObject_TypeCheck(pcObj, &(Part::GeometryPy::Type))) {
Part::Geometry *geo = static_cast<Part::GeometryPy*>(pcObj)->getGeometryPtr();
return Py::new_reference_to(Py::Int(this->getSketchPtr()->addGeometry(geo)));
return Py::new_reference_to(Py::Long(this->getSketchPtr()->addGeometry(geo)));
}
else if (PyObject_TypeCheck(pcObj, &(PyList_Type)) ||
PyObject_TypeCheck(pcObj, &(PyTuple_Type))) {
@ -94,7 +94,7 @@ PyObject* SketchPy::addGeometry(PyObject *args)
Py::Tuple tuple(numGeo);
for (std::size_t i=0; i<numGeo; ++i) {
int geoId = ret - int(numGeo - i);
tuple.setItem(i, Py::Int(geoId));
tuple.setItem(i, Py::Long(geoId));
}
return Py::new_reference_to(tuple);
}
@ -125,14 +125,14 @@ PyObject* SketchPy::addConstraint(PyObject *args)
Py::Tuple tuple(numCon);
for (std::size_t i=0; i<numCon; ++i) {
int conId = ret - int(numCon - i);
tuple.setItem(i, Py::Int(conId));
tuple.setItem(i, Py::Long(conId));
}
return Py::new_reference_to(tuple);
}
else if(PyObject_TypeCheck(pcObj, &(ConstraintPy::Type))) {
ConstraintPy *pcObject = static_cast<ConstraintPy*>(pcObj);
int ret = getSketchPtr()->addConstraint(pcObject->getConstraintPtr());
return Py::new_reference_to(Py::Int(ret));
return Py::new_reference_to(Py::Long(ret));
}
else {
std::string error = std::string("type must be 'Constraint' or list of 'Constraint', not ");
@ -160,12 +160,12 @@ PyObject* SketchPy::movePoint(PyObject *args)
return 0;
Base::Vector3d* toPoint = static_cast<Base::VectorPy*>(pcObj)->getVectorPtr();
return Py::new_reference_to(Py::Int(getSketchPtr()->movePoint(index1,(Sketcher::PointPos)index2,*toPoint,(relative>0))));
return Py::new_reference_to(Py::Long(getSketchPtr()->movePoint(index1,(Sketcher::PointPos)index2,*toPoint,(relative>0))));
}
// +++ attributes implementer ++++++++++++++++++++++++++++++++++++++++++++++++
Py::Int SketchPy::getConstraint(void) const
Py::Long SketchPy::getConstraint(void) const
{
//return Py::Int();
throw Py::AttributeError("Not yet implemented");

View File

@ -72,14 +72,20 @@ public:
private:
};
PyObject* initModule()
{
return (new Module)->module().ptr();
}
} // namespace SketcherGui
/* Python entry */
PyMODINIT_FUNC initSketcherGui()
PyMOD_INIT_FUNC(SketcherGui)
{
if (!Gui::Application::Instance) {
PyErr_SetString(PyExc_ImportError, "Cannot load Gui module in console application.");
return;
PyMOD_Return(0);
}
try {
Base::Interpreter().runString("import PartGui");
@ -87,10 +93,10 @@ PyMODINIT_FUNC initSketcherGui()
}
catch(const Base::Exception& e) {
PyErr_SetString(PyExc_ImportError, e.what());
return;
PyMOD_Return(0);
}
(void)new SketcherGui::Module();
PyObject* mod = SketcherGui::initModule();
Base::Console().Log("Loading GUI of Sketcher module... done\n");
// instantiating the commands
@ -116,4 +122,6 @@ PyMODINIT_FUNC initSketcherGui()
// add resources and reloads the translators
loadSketcherResource();
PyMOD_Return(mod);
}

View File

@ -32,11 +32,11 @@
class SketcherWorkbench ( Workbench ):
"Sketcher workbench object"
"Sketcher workbench object"
def __init__(self):
self.__class__.Icon = FreeCAD.getResourceDir() + "Mod/Sketcher/Resources/icons/SketcherWorkbench.svg"
self.__class__.MenuText = "Sketcher"
self.__class__.ToolTip = "Sketcher workbench"
self.__class__.ToolTip = "Sketcher workbench"
def Initialize(self):
# load the module
@ -45,7 +45,7 @@ class SketcherWorkbench ( Workbench ):
try:
import Profiles
except ImportError:
print "Error in Profiles module"
print("Error in Profiles module")
def GetClassName(self):
return "SketcherGui::Workbench"