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 /// Type structure of LinePyOld
PyTypeObject LinePyOld::Type = { PyTypeObject LinePyOld::Type = {
PyObject_HEAD_INIT(&PyType_Type) // PyObject_HEAD_INIT(&PyType_Type)
0, /*ob_size*/ // 0, /*ob_size*/
PyVarObject_HEAD_INIT(&PyType_Type,0)
"Part.Line", /*tp_name*/ "Part.Line", /*tp_name*/
sizeof(LinePyOld), /*tp_basicsize*/ sizeof(LinePyOld), /*tp_basicsize*/
0, /*tp_itemsize*/ 0, /*tp_itemsize*/
@ -186,7 +187,11 @@ PyTypeObject LinePyOld::Type = {
/* --- Functions to access object as input/output buffer ---------*/ /* --- Functions to access object as input/output buffer ---------*/
0, /* tp_as_buffer */ 0, /* tp_as_buffer */
/* --- Flags to define presence of optional/expanded features */ /* --- Flags to define presence of optional/expanded features */
#if PY_MAJOR_VERSION >= 3
Py_TPFLAGS_DEFAULT, /*tp_flags */
#else
Py_TPFLAGS_HAVE_CLASS, /*tp_flags */ Py_TPFLAGS_HAVE_CLASS, /*tp_flags */
#endif
"", "",
0, /*tp_traverse */ 0, /*tp_traverse */
0, /*tp_clear */ 0, /*tp_clear */
@ -214,12 +219,15 @@ PyTypeObject LinePyOld::Type = {
0, /*tp_weaklist */ 0, /*tp_weaklist */
0, /*tp_del */ 0, /*tp_del */
0 /*tp_version_tag */ 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"); Base::Console().Log("Module: Part\n");
@ -337,16 +345,25 @@ PyMODINIT_FUNC initPart()
::Type,partModule,"RectangularTrimmedSurface"); ::Type,partModule,"RectangularTrimmedSurface");
Base::Interpreter().addType(&Part::PartFeaturePy ::Type,partModule,"Feature"); Base::Interpreter().addType(&Part::PartFeaturePy ::Type,partModule,"Feature");
Base::Interpreter().addType(&Attacher::AttachEnginePy ::Type,partModule,"AttachEngine"); 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"); PyObject* brepModule = Py_InitModule3("BRepOffsetAPI", 0, "BrepOffsetAPI");
#endif
Py_INCREF(brepModule); Py_INCREF(brepModule);
PyModule_AddObject(partModule, "BRepOffsetAPI", brepModule); PyModule_AddObject(partModule, "BRepOffsetAPI", brepModule);
Base::Interpreter().addType(&Part::BRepOffsetAPI_MakePipeShellPy::Type,brepModule,"MakePipeShell"); Base::Interpreter().addType(&Part::BRepOffsetAPI_MakePipeShellPy::Type,brepModule,"MakePipeShell");
// Geom2d package // Geom2d package
#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"); PyObject* geom2dModule = Py_InitModule3("Geom2d", 0, "Geom2d");
#endif
Py_INCREF(geom2dModule); Py_INCREF(geom2dModule);
PyModule_AddObject(partModule, "Geom2d", geom2dModule); PyModule_AddObject(partModule, "Geom2d", geom2dModule);
Base::Interpreter().addType(&Part::Geometry2dPy::Type,geom2dModule,"Geometry2d"); 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::Line2dSegmentPy::Type,geom2dModule,"Line2dSegment");
Base::Interpreter().addType(&Part::Line2dPy::Type,geom2dModule,"Line2d"); Base::Interpreter().addType(&Part::Line2dPy::Type,geom2dModule,"Line2d");
Base::Interpreter().addType(&Part::OffsetCurve2dPy::Type,geom2dModule,"OffsetCurve2d"); 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 { try {
//import all submodules of BOPTools, to make them easy to browse in Py console. //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"), //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"); Base::Console().Error("Failed to import BOPTools package:\n");
err.ReportException(); err.ReportException();
} }
#endif
Part::TopoShape ::init(); Part::TopoShape ::init();
Part::PropertyPartShape ::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.schema", ap.c_str());
Interface_Static::SetCVal("write.step.product.name", hStepGrp->GetASCII("Product", Interface_Static::SetCVal("write.step.product.name", hStepGrp->GetASCII("Product",
Interface_Static::CVal("write.step.product.name")).c_str()); 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)) { if (PyString_Check(intext)) {
PyObject *p = Base::PyAsUnicodeObject(PyString_AsString(intext)); PyObject *p = Base::PyAsUnicodeObject(PyString_AsString(intext));
#endif
if (!p) { if (!p) {
throw Py::TypeError("** makeWireString can't convert PyString."); throw Py::TypeError("** makeWireString can't convert PyString.");
} }
@ -1645,8 +1651,13 @@ private:
PyErr_Clear(); PyErr_Clear();
PyObject* index_or_value; PyObject* index_or_value;
if (PyArg_ParseTuple(args.ptr(), "sO", &name, &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)) { if (PyInt_Check(index_or_value)) {
int ival = (int)PyInt_AsLong(index_or_value); int ival = (int)PyInt_AsLong(index_or_value);
#endif
if (!Interface_Static::SetIVal(name, ival)) { if (!Interface_Static::SetIVal(name, ival)) {
std::stringstream str; std::stringstream str;
str << "Failed to set '" << name << "'"; str << "Failed to set '" << name << "'";

View File

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

View File

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

View File

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

View File

@ -225,7 +225,11 @@ PyObject* BSplineCurvePy::insertKnots(PyObject * args)
TColStd_Array1OfInteger m(1,mults.size()); TColStd_Array1OfInteger m(1,mults.size());
index=1; index=1;
for (Py::Sequence::iterator it = mults.begin(); it != mults.end(); ++it) { 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); Py::Int val(*it);
#endif
m(index++) = (int)val; m(index++) = (int)val;
} }
@ -662,7 +666,7 @@ PyObject* BSplineCurvePy::getMultiplicities(PyObject * args)
curve->Multiplicities(m); curve->Multiplicities(m);
Py::List mults; Py::List mults;
for (Standard_Integer i=m.Lower(); i<=m.Upper(); i++) { 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); return Py::new_reference_to(mults);
} }
@ -672,33 +676,32 @@ PyObject* BSplineCurvePy::getMultiplicities(PyObject * args)
return 0; return 0;
} }
} }
Py::Long BSplineCurvePy::getDegree(void) const
Py::Int BSplineCurvePy::getDegree(void) const
{ {
Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle()); (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 Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle()); (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 Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle()); (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 Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle()); (getGeometryPtr()->handle());
return Py::Int(curve->NbKnots()); return Py::Long(curve->NbKnots());
} }
Py::Object BSplineCurvePy::getStartPoint(void) const Py::Object BSplineCurvePy::getStartPoint(void) const
@ -721,14 +724,14 @@ Py::Object BSplineCurvePy::getFirstUKnotIndex(void) const
{ {
Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle()); (getGeometryPtr()->handle());
return Py::Int(curve->FirstUKnotIndex()); return Py::Long(curve->FirstUKnotIndex());
} }
Py::Object BSplineCurvePy::getLastUKnotIndex(void) const Py::Object BSplineCurvePy::getLastUKnotIndex(void) const
{ {
Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast
(getGeometryPtr()->handle()); (getGeometryPtr()->handle());
return Py::Int(curve->LastUKnotIndex()); return Py::Long(curve->LastUKnotIndex());
} }
Py::List BSplineCurvePy::getKnotSequence(void) const Py::List BSplineCurvePy::getKnotSequence(void) const
@ -1211,11 +1214,15 @@ PyObject* BSplineCurvePy::buildFromPolesMultsKnots(PyObject *args, PyObject *key
Py::Sequence multssq(mults); Py::Sequence multssq(mults);
Standard_Integer index = 1; Standard_Integer index = 1;
for (Py::Sequence::iterator it = multssq.begin(); it != multssq.end() && index <= occmults.Length(); ++it) { 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); Py::Int mult(*it);
#endif
if (index < occmults.Length() || PyObject_Not(periodic)) { 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 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. Returns the degree of this B-Spline surface in the u parametric direction.
</UserDocu> </UserDocu>
</Documentation> </Documentation>
<Parameter Name="UDegree" Type="Int"/> <Parameter Name="UDegree" Type="Long"/>
</Attribute> </Attribute>
<Attribute Name="VDegree" ReadOnly="true"> <Attribute Name="VDegree" ReadOnly="true">
<Documentation> <Documentation>
@ -29,7 +29,7 @@
Returns the degree of this B-Spline surface in the v parametric direction. Returns the degree of this B-Spline surface in the v parametric direction.
</UserDocu> </UserDocu>
</Documentation> </Documentation>
<Parameter Name="VDegree" Type="Int"/> <Parameter Name="VDegree" Type="Long"/>
</Attribute> </Attribute>
<Attribute Name="MaxDegree" ReadOnly="true"> <Attribute Name="MaxDegree" ReadOnly="true">
<Documentation> <Documentation>
@ -39,7 +39,7 @@
This value is 25. This value is 25.
</UserDocu> </UserDocu>
</Documentation> </Documentation>
<Parameter Name="MaxDegree" Type="Int"/> <Parameter Name="MaxDegree" Type="Long"/>
</Attribute> </Attribute>
<Attribute Name="NbUPoles" ReadOnly="true"> <Attribute Name="NbUPoles" ReadOnly="true">
<Documentation> <Documentation>
@ -47,7 +47,7 @@
Returns the number of poles of this B-Spline surface in the u parametric direction. Returns the number of poles of this B-Spline surface in the u parametric direction.
</UserDocu> </UserDocu>
</Documentation> </Documentation>
<Parameter Name="NbUPoles" Type="Int"/> <Parameter Name="NbUPoles" Type="Long"/>
</Attribute> </Attribute>
<Attribute Name="NbVPoles" ReadOnly="true"> <Attribute Name="NbVPoles" ReadOnly="true">
<Documentation> <Documentation>
@ -55,7 +55,7 @@
Returns the number of poles of this B-Spline surface in the v parametric direction. Returns the number of poles of this B-Spline surface in the v parametric direction.
</UserDocu> </UserDocu>
</Documentation> </Documentation>
<Parameter Name="NbVPoles" Type="Int"/> <Parameter Name="NbVPoles" Type="Long"/>
</Attribute> </Attribute>
<Attribute Name="NbUKnots" ReadOnly="true"> <Attribute Name="NbUKnots" ReadOnly="true">
<Documentation> <Documentation>
@ -63,7 +63,7 @@
Returns the number of knots of this B-Spline surface in the u parametric direction. Returns the number of knots of this B-Spline surface in the u parametric direction.
</UserDocu> </UserDocu>
</Documentation> </Documentation>
<Parameter Name="NbUKnots" Type="Int"/> <Parameter Name="NbUKnots" Type="Long"/>
</Attribute> </Attribute>
<Attribute Name="NbVKnots" ReadOnly="true"> <Attribute Name="NbVKnots" ReadOnly="true">
<Documentation> <Documentation>
@ -71,7 +71,7 @@
Returns the number of knots of this B-Spline surface in the v parametric direction. Returns the number of knots of this B-Spline surface in the v parametric direction.
</UserDocu> </UserDocu>
</Documentation> </Documentation>
<Parameter Name="NbVKnots" Type="Int"/> <Parameter Name="NbVKnots" Type="Long"/>
</Attribute> </Attribute>
<Attribute Name="FirstUKnotIndex" ReadOnly="true"> <Attribute Name="FirstUKnotIndex" ReadOnly="true">
<Documentation> <Documentation>

View File

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

View File

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

View File

@ -355,26 +355,25 @@ PyObject* BezierCurvePy::getResolution(PyObject* args)
return 0; return 0;
} }
} }
Py::Long BezierCurvePy::getDegree(void) const
Py::Int BezierCurvePy::getDegree(void) const
{ {
Handle_Geom_BezierCurve curve = Handle_Geom_BezierCurve::DownCast Handle_Geom_BezierCurve curve = Handle_Geom_BezierCurve::DownCast
(getGeometryPtr()->handle()); (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 Handle_Geom_BezierCurve curve = Handle_Geom_BezierCurve::DownCast
(getGeometryPtr()->handle()); (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 Handle_Geom_BezierCurve curve = Handle_Geom_BezierCurve::DownCast
(getGeometryPtr()->handle()); (getGeometryPtr()->handle());
return Py::Int(curve->NbPoles()); return Py::Long(curve->NbPoles());
} }
Py::Object BezierCurvePy::getStartPoint(void) const Py::Object BezierCurvePy::getStartPoint(void) const

View File

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

View File

@ -728,40 +728,39 @@ PyObject* BezierSurfacePy::vIso(PyObject * args)
return 0; return 0;
} }
} }
Py::Long BezierSurfacePy::getUDegree(void) const
Py::Int BezierSurfacePy::getUDegree(void) const
{ {
Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle()); (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 Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle()); (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 Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle()); (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 Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle()); (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 Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast
(getGeometryPtr()->handle()); (getGeometryPtr()->handle());
return Py::Int(surf->NbVPoles()); return Py::Long(surf->NbVPoles());
} }
PyObject *BezierSurfacePy::getCustomAttributes(const char* /*attr*/) const PyObject *BezierSurfacePy::getCustomAttributes(const char* /*attr*/) const

View File

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

View File

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

View File

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

View File

@ -362,26 +362,25 @@ PyObject* BezierCurve2dPy::getResolution(PyObject* args)
return 0; return 0;
} }
} }
Py::Long BezierCurve2dPy::getDegree(void) const
Py::Int BezierCurve2dPy::getDegree(void) const
{ {
Handle_Geom2d_BezierCurve curve = Handle_Geom2d_BezierCurve::DownCast Handle_Geom2d_BezierCurve curve = Handle_Geom2d_BezierCurve::DownCast
(getGeometry2dPtr()->handle()); (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 Handle_Geom2d_BezierCurve curve = Handle_Geom2d_BezierCurve::DownCast
(getGeometry2dPtr()->handle()); (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 Handle_Geom2d_BezierCurve curve = Handle_Geom2d_BezierCurve::DownCast
(getGeometry2dPtr()->handle()); (getGeometry2dPtr()->handle());
return Py::Int(curve->NbPoles()); return Py::Long(curve->NbPoles());
} }
Py::Object BezierCurve2dPy::getStartPoint(void) const Py::Object BezierCurve2dPy::getStartPoint(void) const

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -40,7 +40,7 @@ except ImportError as err:
def getAllDependent(feature): def getAllDependent(feature):
return [] return []
App.Console.PrintWarning("AttachmentEditor: Failed to import some code from Show module. Functionality will be limited.\n") 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: if App.GuiUp:
import FreeCADGui as Gui import FreeCADGui as Gui
@ -583,7 +583,7 @@ class AttachmentEditorTaskPanel(FrozenClass):
# when entering and extiting dialog without changing anything # when entering and extiting dialog without changing anything
self.obj.Placement = new_plm self.obj.Placement = new_plm
except Exception as err: 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: if new_plm is not None:
self.form.groupBox_superplacement.setTitle(_translate('AttachmentEditor',"Extra placement:",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 = QtGui.QMessageBox()
mb.setIcon(mb.Icon.Warning) 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) 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)) mb.setWindowTitle(_translate("Part_JoinFeatures","Bad selection", None))
btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort) btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
btnOK = mb.addButton(_translate("Part_JoinFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole) btnOK = mb.addButton(_translate("Part_JoinFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)
@ -167,7 +167,7 @@ class ViewProviderConnect:
for obj in self.claimChildren(): for obj in self.claimChildren():
obj.ViewObject.show() obj.ViewObject.show()
except Exception as err: except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message) FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True return True
class CommandConnect: class CommandConnect:
@ -261,7 +261,7 @@ class ViewProviderEmbed:
self.Object.Base.ViewObject.show() self.Object.Base.ViewObject.show()
self.Object.Tool.ViewObject.show() self.Object.Tool.ViewObject.show()
except Exception as err: except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message) FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True return True
class CommandEmbed: class CommandEmbed:
@ -356,7 +356,7 @@ class ViewProviderCutout:
self.Object.Base.ViewObject.show() self.Object.Base.ViewObject.show()
self.Object.Tool.ViewObject.show() self.Object.Tool.ViewObject.show()
except Exception as err: except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message) FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True return True

View File

@ -119,7 +119,7 @@ class ViewProviderBooleanFragments:
for obj in self.claimChildren(): for obj in self.claimChildren():
obj.ViewObject.show() obj.ViewObject.show()
except Exception as err: except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message) FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True return True
def cmdCreateBooleanFragmentsFeature(name, mode): def cmdCreateBooleanFragmentsFeature(name, mode):
@ -141,7 +141,7 @@ def cmdCreateBooleanFragmentsFeature(name, mode):
mb = QtGui.QMessageBox() mb = QtGui.QMessageBox()
mb.setIcon(mb.Icon.Warning) 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) 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)) mb.setWindowTitle(_translate("Part_SplitFeatures","Bad selection", None))
btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort) btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
btnOK = mb.addButton(_translate("Part_SplitFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole) btnOK = mb.addButton(_translate("Part_SplitFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)
@ -246,7 +246,7 @@ class ViewProviderSlice:
for obj in self.claimChildren(): for obj in self.claimChildren():
obj.ViewObject.show() obj.ViewObject.show()
except Exception as err: except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message) FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True return True
def cmdCreateSliceFeature(name, mode): def cmdCreateSliceFeature(name, mode):
@ -269,7 +269,7 @@ def cmdCreateSliceFeature(name, mode):
mb = QtGui.QMessageBox() mb = QtGui.QMessageBox()
mb.setIcon(mb.Icon.Warning) 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) 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)) mb.setWindowTitle(_translate("Part_SplitFeatures","Bad selection", None))
btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort) btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
btnOK = mb.addButton(_translate("Part_SplitFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole) btnOK = mb.addButton(_translate("Part_SplitFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)
@ -374,7 +374,7 @@ class ViewProviderXOR:
for obj in self.claimChildren(): for obj in self.claimChildren():
obj.ViewObject.show() obj.ViewObject.show()
except Exception as err: except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message) FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True return True
def cmdCreateXORFeature(name): def cmdCreateXORFeature(name):
@ -395,7 +395,7 @@ def cmdCreateXORFeature(name):
mb = QtGui.QMessageBox() mb = QtGui.QMessageBox()
mb.setIcon(mb.Icon.Warning) 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) 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)) mb.setWindowTitle(_translate("Part_SplitFeatures","Bad selection", None))
btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort) btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
btnOK = mb.addButton(_translate("Part_SplitFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole) btnOK = mb.addButton(_translate("Part_SplitFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)

View File

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

View File

@ -606,7 +606,7 @@ void CmdPartCompJoinFeatures::languageChange()
if (!_pcAction) if (!_pcAction)
return; return;
#if 0
Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction); Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
@ -635,6 +635,7 @@ void CmdPartCompJoinFeatures::languageChange()
cmd2->setToolTip(QApplication::translate("Part_JoinFeatures", joinCutout->getToolTipText())); cmd2->setToolTip(QApplication::translate("Part_JoinFeatures", joinCutout->getToolTipText()));
cmd2->setStatusTip(QApplication::translate("Part_JoinFeatures", joinCutout->getStatusTip())); cmd2->setStatusTip(QApplication::translate("Part_JoinFeatures", joinCutout->getStatusTip()));
} }
#endif
} }
bool CmdPartCompJoinFeatures::isActive(void) bool CmdPartCompJoinFeatures::isActive(void)

View File

@ -41,14 +41,15 @@ class PartWorkbench ( Workbench ):
def Initialize(self): def Initialize(self):
# load the module # load the module
import PartGui import PartGui
import Part import BOPTools
import CompoundTools._CommandCompoundFilter import CompoundTools._CommandCompoundFilter
try: try:
Part.BOPTools.addCommands() BOPTools.importAll()
BOPTools.addCommands()
except Exception as err: 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): def GetClassName(self):
return "PartGui::Workbench" return "PartGui::Workbench"

View File

@ -158,7 +158,7 @@ class _ViewProviderPartJoinFeature:
self.Object.Base.ViewObject.show() self.Object.Base.ViewObject.show()
self.Object.Tool.ViewObject.show() self.Object.Tool.ViewObject.show()
except Exception as err: except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message) FreeCAD.Console.PrintError("Error in onDelete: " + str(err))
return True return True
# #
@ -176,7 +176,7 @@ class _ViewProviderPartJoinFeature:
# mb = QtGui.QMessageBox() # mb = QtGui.QMessageBox()
# mb.setIcon(mb.Icon.Warning) # 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) # 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)) # mb.setWindowTitle(_translate("Part_JoinFeatures","Bad selection", None))
# btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort) # btnAbort = mb.addButton(QtGui.QMessageBox.StandardButton.Abort)
# btnOK = mb.addButton(_translate("Part_JoinFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole) # btnOK = mb.addButton(_translate("Part_JoinFeatures","Continue",None), QtGui.QMessageBox.ButtonRole.ActionRole)

View File

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

View File

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

View File

@ -41,17 +41,18 @@ class PartDesignWorkbench ( Workbench ):
try: try:
from WizardShaft import WizardShaft from WizardShaft import WizardShaft
except ImportError: except ImportError:
print "Wizard shaft module cannot be loaded" print("Wizard shaft module cannot be loaded")
try: try:
from FeatureHole import HoleGui from FeatureHole import HoleGui
except: except:
pass pass
import PartDesignGui import PartDesignGui
import PartDesign import PartDesign
try: try:
import InvoluteGearFeature import InvoluteGearFeature
except ImportError: except ImportError:
print "Involute gear module cannot be loaded" print("Involute gear module cannot be loaded")
#try: #try:
# from FeatureHole import HoleGui # from FeatureHole import HoleGui
#except: #except:

View File

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

View File

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

View File

@ -350,7 +350,7 @@ class TranslationFunction:
try: try:
self.boundaries = np.linalg.solve(A, b) # A * self.boundaries = b 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(e.message)
FreeCAD.Console.PrintMessage(". No solution possible.\n") FreeCAD.Console.PrintMessage(". No solution possible.\n")
return return

View File

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

View File

@ -67,5 +67,5 @@ if __name__ == '__main__':
if len(args) != 2: if len(args) != 2:
p.error() p.error()
m, Z = [float(v) for v in args] 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 */ /* Python entry */
PyMODINIT_FUNC initSketcher() PyMOD_INIT_FUNC(Sketcher)
{ {
// load dependent module // load dependent module
try { try {
@ -51,7 +51,7 @@ PyMODINIT_FUNC initSketcher()
} }
catch(const Base::Exception& e) { catch(const Base::Exception& e) {
PyErr_SetString(PyExc_ImportError, e.what()); PyErr_SetString(PyExc_ImportError, e.what());
return; PyMOD_Return(0);
} }
PyObject* sketcherModule = Sketcher::initModule(); PyObject* sketcherModule = Sketcher::initModule();
@ -73,4 +73,6 @@ PyMODINIT_FUNC initSketcher()
Sketcher::PropertyConstraintList::init(); Sketcher::PropertyConstraintList::init();
Base::Console().Log("Loading Sketcher module... done\n"); Base::Console().Log("Loading Sketcher module... done\n");
PyMOD_Return(sketcherModule);
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -45,7 +45,7 @@ class SketcherWorkbench ( Workbench ):
try: try:
import Profiles import Profiles
except ImportError: except ImportError:
print "Error in Profiles module" print("Error in Profiles module")
def GetClassName(self): def GetClassName(self):
return "SketcherGui::Workbench" return "SketcherGui::Workbench"